找回密码
 立即注册

QQ登录

只需一步,快速开始

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

抢答器仿真及单片机程序

[复制链接]
跳转到指定楼层
楼主


  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code1[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
  5. sbit key1=P3^0;
  6. sbit key2=P3^1;
  7. sbit key3=P3^2;
  8. sbit key4=P3^3;
  9. sbit key5=P3^4;
  10. sbit key6=P3^5;
  11. sbit key7=P3^6;
  12. sbit key8=P3^7;
  13. sbit keep=P2^0;
  14. sbit key9=P2^2;
  15. void delay(uint t) //延时程序
  16. {
  17. uint j;
  18. for(;t>0;t--)
  19. for(j=121;j>0;j--);
  20. }
  21. void display(uchar i)//数码管显示
  22. {
  23. switch(i)
  24. {
  25.   case 0:P1=code1[0];break;
  26.   case 1:P1=code1[1];break;
  27.   case 2:P1=code1[2];break;
  28.   case 3:P1=code1[3];break;
  29.   case 4:P1=code1[4];break;
  30.   case 5:P1=code1[5];break;
  31.   case 6:P1=code1[6];break;
  32.   case 7:P1=code1[7];break;
  33.   case 8:P1=code1[8];break;
  34.   default:break;
  35. }
  36. }

  37. void key() //键盘扫描,判断哪个人抢答
  38. {
  39. uchar n;
  40.   n=0;       
  41.   display(n);
  42.     keep=1;
  43.          if(key1==0)
  44.          {
  45.           delay(5);
  46.           if(key1==0)
  47.                   {
  48.                     n=1;
  49.                     display(n);
  50.                         while(1)
  51.                         {
  52.                         keep=0;                         //开启蜂鸣器
  53.                         delay(500);
  54.                         keep=1;
  55.                         delay(500);
  56.                          if(key9==0)
  57.                         {
  58.                          delay(5);
  59.                          if(key9==0)
  60.                          {
  61.                             keep=1;
  62.                             n=0;       
  63.                 display(n);
  64.                           while(1)return;
  65.                          }
  66.                          while(!key9);
  67.                      delay(5);
  68.                          while(1);   
  69.                         }
  70.                         }
  71.                   }                  
  72.                   while(!key1);
  73.                   delay(5);
  74.                  
  75.          }
  76.          if(key2==0)
  77.          {
  78.                   delay(5);
  79.                   if(key2==0)
  80.                   {
  81.                            n=2;
  82.                            display(n);
  83.                            while(1)
  84.                            {
  85.                            keep=0;                         //开启蜂鸣器
  86.                            delay(500);
  87.                            keep=1;
  88.                            delay(500);
  89.                             if(key9==0)
  90.                                 {
  91.                                  delay(5);
  92.                                  if(key9==0)
  93.                                  {
  94.                                     keep=1;
  95.                                     n=0;       
  96.                         display(n);
  97.                                      while(1)return;
  98.                                  }
  99.                                          while(!key9);
  100.                                      delay(5);
  101.                                          while(1);   
  102.                                         }
  103.                                 }
  104.                           }         
  105.                           while(!key2);
  106.                           delay(5);
  107.          }          
  108.          if(key3==0)
  109.          {
  110.                   delay(5);
  111.                   if(key3==0)
  112.                   {
  113.                            n=3;
  114.                            display(n);
  115.                             while(1)
  116.                         {
  117.                         keep=0;                         //开启蜂鸣器
  118.                         delay(500);
  119.                         keep=1;
  120.                         delay(500);
  121.                          if(key9==0)
  122.                         {
  123.                          delay(5);
  124.                          if(key9==0)
  125.                          {
  126.                             keep=1;
  127.                             n=0;       
  128.                 display(n);
  129.                           while(1)return;
  130.                          }
  131.                          while(!key9);
  132.                      delay(5);
  133.                          while(1);   
  134.                         }
  135.                         }
  136.                   }                                       
  137.                   while(!key3);
  138.                   delay(5);         
  139.          }
  140.          if(key4==0)
  141.          {
  142.                   delay(5);
  143.                   if(key4==0)
  144.                   {
  145.                            n=4;
  146.                            display(n);
  147.                            while(1)
  148.                         {
  149.                         keep=0;                         //开启蜂鸣器
  150.                         delay(500);
  151.                         keep=1;
  152.                         delay(500);
  153.                          if(key9==0)
  154.                         {
  155.                          delay(5);
  156.                          if(key9==0)
  157.                          {
  158.                             keep=1;
  159.                             n=0;       
  160.                 display(n);
  161.                           while(1)return;
  162.                          }
  163.                          while(!key9);
  164.                      delay(5);
  165.                          while(1);   
  166.                         }
  167.                         }
  168.                   }                                       
  169.                   while(!key4);
  170.                   delay(5);         
  171.          }               
  172.          if(key5==0)
  173.          {
  174.                   delay(5);
  175.                   if(key5==0)
  176.                   {
  177.                            n=5;
  178.                            display(n);
  179.                            while(1)
  180.                         {
  181.                         keep=0;                         //开启蜂鸣器
  182.                         delay(500);
  183.                         keep=1;
  184.                         delay(500);
  185.                          if(key9==0)
  186.                         {
  187.                          delay(5);
  188.                          if(key9==0)
  189.                          {
  190.                             keep=1;
  191.                             n=0;       
  192.                 display(n);
  193.                           while(1)return;
  194.                          }
  195.                          while(!key9);
  196.                      delay(5);
  197.                          while(1);   
  198.                         }
  199.                         }
  200.                   }                                       
  201.                   while(!key5);
  202.                   delay(5);         
  203.          }
  204.          if(key6==0)
  205.          {
  206.                   delay(5);
  207.                   if(key6==0)
  208.                   {
  209.                            n=6;
  210.                            display(n);
  211.                            while(1)
  212.                         {
  213.                         keep=0;                         //开启蜂鸣器
  214.                         delay(500);
  215.                         keep=1;
  216.                         delay(500);
  217.                          if(key9==0)
  218.                         {
  219.                          delay(5);
  220.                          if(key9==0)
  221.                          {
  222.                             keep=1;
  223.                             n=0;       
  224.                 display(n);
  225.                           while(1)return;
  226.                          }
  227.                          while(!key9);
  228.                      delay(5);
  229.                          while(1);   
  230.                         }
  231.                         }
  232.                   }                                       
  233.                   while(!key6);
  234.                   delay(5);
  235.          }       
  236.           if(key7==0)
  237.          {
  238.                   delay(5);
  239.                   if(key7==0)
  240.                   {
  241.                            n=7;
  242.                            display(n);
  243.                            while(1)
  244.                         {
  245.                         keep=0;                         //开启蜂鸣器
  246.                         delay(500);
  247.                         keep=1;
  248.                         delay(500);
  249.                          if(key9==0)
  250.                         {
  251.                          delay(5);
  252.                          if(key9==0)
  253.                          {
  254.                             keep=1;
  255.                             n=0;       
  256.                 display(n);
  257.                           while(1)return;
  258.                          }
  259.                          while(!key9);
  260.                      delay(5);
  261.                          while(1);   
  262.                         }
  263.                         }
  264.                   }                                       
  265.                   while(!key7);
  266.                   delay(5);         
  267.          }       
  268.          if(key8==0)
  269.          {
  270.                   delay(5);
  271.                   if(key8==0)
  272.                   {
  273.                            n=8;
  274.                            display(n);
  275.                            while(1)
  276.                         {
  277.                         keep=0;                         //开启蜂鸣器
  278.                         delay(500);
  279.                         keep=1;
  280.                         delay(500);
  281.                          if(key9==0)
  282.                         {
  283.                          delay(5);
  284.                          if(key9==0)
  285.                          {
  286.                             keep=1;
  287.                             n=0;       
  288.                 display(n);
  289.                           while(1)return;
  290.                          }
  291.                          while(!key9);
  292.                      delay(5);
  293.                          while(1);   
  294.                         }
  295.                         }
  296.                   }                                       
  297.                   while(!key8);
  298.                   delay(5);         
  299.          }       
  300. }
  301. void main()
  302. {
  303.    while(1)
  304.    {
  305.            key();
  306.    }
  307. }  
复制代码

下载:
抢答器.rar (106.42 KB, 下载次数: 15)

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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