找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5801|回复: 3
打印 上一主题 下一主题
收起左侧

Proteus仿真三路抢答器 附单片机代码

[复制链接]
跳转到指定楼层
楼主
单片机三路抢答器仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. /*****************
  2. 三路抢答器
  3. ********************/
  4. #include "reg51.h"

  5. sbit led1=P2^0;        //指示灯
  6. sbit led2=P2^1;
  7. sbit led3=P2^2;

  8. sbit key1=P2^3;//按键
  9. sbit key2=P2^4;
  10. sbit key3=P2^5;

  11. sbit key4=P3^2;

  12. int n=0;

  13. void delayms(int c)
  14. {
  15.   char a,b;
  16.   for(;c>0;c--)
  17.    for(a=142;a>0;a--)
  18.      for(b=2;b>0;b--);
  19. }

  20. void Int0Init()
  21. {
  22.         IT0=1;
  23.         EX0=1;        
  24.         EA=1;        
  25. }
  26. void key_scan()
  27. {
  28.          if(key1==0)
  29.           {
  30.            delayms(20);
  31.            if(key1==0)
  32.            {
  33.              key4=1;
  34.                  delayms(20);
  35.                  n=1;
  36.                  key4=0;
  37.            }
  38.           }
  39.          if(key2==0)
  40.          {
  41.            delayms(20);
  42.            if(key2==0)
  43.            {
  44.              key4=1;
  45.                  delayms(20);
  46.                  n=2;
  47.                  key4=0;
  48.            }
  49.          }
  50.          if(key3==0)
  51.          {
  52.            delayms(20);
  53.            if(key3==0)
  54.            {
  55.              key4=1;
  56.                  delayms(20);
  57.                  n=3;
  58.                  key4=0;
  59.            }
  60.          }
  61.          
  62. }

  63. void main()
  64. {
  65. Int0Init();
  66. led1=0;
  67. led2=0;
  68. led3=0;
  69. key4=1;
  70. while(1)
  71. {
  72.    key_scan();
  73. }
  74. }

  75. void Int0()        interrupt 0                //外部中断0的中断函数
  76. {
  77.         switch(n)
  78.         {
  79.         case 1: led1=1;break;
  80.         case 2: led2=1;break;
  81.         case 3: led3=1;break;
  82.         }
  83.         delayms(10000);
  84.         led1=0;
  85.         led2=0;
  86.         led3=0;

  87. }
复制代码

所有资料51hei提供下载:
三路抢答器.zip (111.63 KB, 下载次数: 71)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表