proteus画完图怎么保存_单片机八路抢答器设计(keil+Proteus仿真+PCB原理图)

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 00dc333da101e6486215a7402c0c83b8.png

Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)d6d2d7230e6bc073ca71c50acb88ca1f.pngecdad1d8e9413df07b54759493b92f7e.png1e9ba40b2efc19b6543545a8a13802bb.png

单片机源程序如下:

  1. /*************************************************************
  2.                       八路抢答器系统
  3. 补充说明:
  4. ***************************************************************/
  5. #include<                   //头文件
  6. #include<SMG.h>
  7. #include<EEPROM.h>
  8. #include<INTERRUPT.h>
  9. #define uchar unsigned char//宏定义
  10. #define uint unsigned int
  11. /**********************引脚定义************************/
  12. sbit key_zhu=P2^2;           //主持人键
  13. sbit key_jia=P2^1;           //加键
  14. sbit key_jian=P2^0;           //减键
  15. sbit key_1=P1^1;           //八位选手按键定义
  16. sbit key_2=P1^3;
  17. sbit key_3=P1^5;
  18. sbit key_4=P1^7;
  19. sbit key_5=P3^1;
  20. sbit key_6=P3^3;
  21. sbit key_7=P3^5;
  22. sbit key_8=P3^7;
  23. sbit led_1=P1^0;           //八位LED灯按键定义
  24. sbit led_2=P1^2;
  25. sbit led_3=P1^4;
  26. sbit led_4=P1^6;
  27. sbit led_5=P3^0;
  28. sbit led_6=P3^2;
  29. sbit led_7=P3^4;
  30. sbit led_8=P3^6;
  31. /**********************变量定义************************/
  32. uchar zhu_f=0;                   //比赛进行阶段标记位,=0表示没有按。=1表示在设置倒计时的时间。=2表示开始抢答
  33. uchar qiang_f=0;           //抢答犯规标记,=0没有犯规。=1表示有人犯规
  34. uchar wan_f=0;                   //抢答完成标记,=0抢答没完成后还没有开始。=1表示抢答完成
  35. uchar time=30;                   //倒计时时间
  36. uchar T0_num;                   //定时器0计数
  37. uchar number;                   //抢答成功选手的编号,或犯规选手的编号。=0的时候表示没有
  38. /********************************************************
  39. 函数名称:void delayms(uint ms)
  40. 函数作用:毫秒延时函数
  41. 参数说明:
  42. ********************************************************/
  43. void delayms(uint ms)
  44. {
  45.         unsigned char i=100,j;
  46.         for(;ms;ms--)
  47.         {
  48.                 while(--i)
  49.                 {
  50.                         j=10;
  51.                         while(--j);
  52.                 }
  53.         }
  54. }
  55. /********************************************************
  56. 函数名称:void bajing()
  57. 函数作用:抢答犯规报警提示
  58. 参数说明:
  59. ********************************************************/
  60. void bajing()
  61. {
  62.         buzz=0;                   //开蜂鸣器
  63.         delayms(10);
  64.         buzz=1;                   //关蜂鸣器
  65.         delayms(10);
  66. }
  67. /****************
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值