标题: 51单片机抢答器仿真+程序 能实现8个人的抢答以及复位功能 [打印本页]

作者: mazhibing    时间: 2019-7-11 16:12
标题: 51单片机抢答器仿真+程序 能实现8个人的抢答以及复位功能
这是我花三天时间做的一个简单的基于51单片机的抢答器,能实现8个人的抢答以及复位功能。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  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, 下载次数: 88)



作者: 1804408545    时间: 2019-12-10 19:42
不错,程序可以用
作者: 特别讨厌取名    时间: 2020-3-2 16:15
楼主是用什么仿真的我用Multisim无法打开你的仿真

作者: wahaha.    时间: 2020-7-24 10:11
这是关于人机交互吗,楼主
作者: wahaha.    时间: 2020-7-24 10:12
这是关于人机交互吗,楼主




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1