找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4025|回复: 4
收起左侧

51单片机抢答器仿真+程序 能实现8个人的抢答以及复位功能

[复制链接]
ID:582412 发表于 2019-7-11 16:12 | 显示全部楼层 |阅读模式
这是我花三天时间做的一个简单的基于51单片机的抢答器,能实现8个人的抢答以及复位功能。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code1[]={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F};
  5. sbit key1=P1^0;
  6. sbit key2=P1^1;
  7. sbit key3=P1^2;

  8. void delay(uint t)
  9. {
  10. uint j;
  11. for(;t>0;t--)
  12. for(j=19;j>0;j--);
  13. }
  14. void display(uchar i)
  15. {
  16. switch(i)
  17. {
  18.   case 0:P2=code1[0];break;
  19.   case 1:P2=code1[1];break;
  20.   case 2:P2=code1[2];break;
  21. }
  22. }

  23. void key()
  24. {
  25. uchar i;
  26. if(key1==1)
  27. {
  28.   delay(10);
  29.   if(key1==1)
  30.   {
  31.    delay(10);
  32.    i=0;
  33.    display(i);
  34.   }
  35. }
  36.   while(key1!=1);
  37.   delay(10);
  38.   if(key2==1)
  39. {
  40.   delay(10);
  41.   if(key2==1)
  42.   {
  43.    delay(10);
  44.    i=1;
  45.    display(i);
  46.   }
  47. }
  48.   while(key2!=1);
  49.   delay(10);
  50.   if(key3==1)
  51. {
  52.   delay(10);
  53.   if(key3==1)
  54.   {
  55.    delay(10);
  56.    i=2;
  57.    display(i);
  58.   }
  59. }
  60.   while(key3!=1);
  61.   delay(10);
  62.   while(1);
  63. }
  64. void main()
  65. {
  66. while(1)
  67. {
  68.   key();
  69. }
  70. }  
复制代码

所有资料51hei提供下载:
抢答器.zip (121.95 KB, 下载次数: 87)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:660917 发表于 2019-12-10 19:42 | 显示全部楼层
不错,程序可以用
回复

使用道具 举报

ID:696303 发表于 2020-3-2 16:15 | 显示全部楼层
楼主是用什么仿真的我用Multisim无法打开你的仿真
回复

使用道具 举报

ID:807168 发表于 2020-7-24 10:11 来自手机 | 显示全部楼层
这是关于人机交互吗,楼主
回复

使用道具 举报

ID:807168 发表于 2020-7-24 10:12 来自手机 | 显示全部楼层
这是关于人机交互吗,楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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