久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8867|回復(fù): 1
收起左側(cè)

基于51單片機(jī)的八路搶答器設(shè)計(jì)

[復(fù)制鏈接]
ID:360519 發(fā)表于 2018-6-27 19:44 | 顯示全部樓層 |閱讀模式
基本功能
1、同時(shí)供 8 名選手或 8個(gè)代表隊(duì)參加比賽,分別用 8個(gè)按鈕 K1 ~ K8 表示。
2、設(shè)置一個(gè)系統(tǒng)搶答控制開關(guān) K0,該開關(guān)由主持人控制。
3、搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號,揚(yáng)聲器發(fā)出聲響提示,并在七段數(shù)碼管上顯示選手號碼。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。
4、搶答器具有定時(shí)搶答功能且一次搶答的時(shí)間由主持人設(shè)定(如 10秒)。當(dāng) 主持人啟動(dòng) "開始"鍵后,定時(shí)器進(jìn)行減計(jì)時(shí)。
5、參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。在這段時(shí)間如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示FFF
源代碼如下
  1. #include<reg51.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;
  4. sbit K0=P3^0;//        開始搶答按鍵
  5. sbit beep=P3^7;//        蜂鳴器
  6. sbit D0=P3^1;//        指示燈
  7. sbit K1=P1^0;//1 號選手搶答按鍵
  8. sbit K2=P1^1;//2 號選手搶答按鍵
  9. sbit K3=P1^2;//3 號選手搶答按鍵
  10. sbit K4=P1^3;//4 號選手搶答按鍵
  11. sbit K5=P1^4;//5 號選手搶答按鍵
  12. sbit K6=P1^5;//6 號選手搶答按鍵
  13. sbit K7=P1^6;//7 號選手搶答按鍵
  14. sbit K8=P1^7;//8 號選手搶答按鍵
  15. sbit S1=P3^2;// 答 題 計(jì) 時(shí) 鍵
  16. sbit S2=P3^3;//        開始搶答時(shí)間調(diào)整鍵
  17. sbit S3=P3^4;//        答題計(jì)時(shí)時(shí)間調(diào)整鍵
  18. char s;
  19. uchar num=0;
  20. char time1;//        搶答時(shí)間
  21. char time2;//        答題限時(shí)時(shí)間
  22. uint m,n;//T0,T1        定時(shí)器定一秒時(shí)
  23. bit flag1,flag2,flag3,flag4;        // 標(biāo)志位
  24. bit aa,bb;//        時(shí)間調(diào)整標(biāo)志位
  25. // 延時(shí)子函數(shù)
  26. void delay(uint z)
  27. {
  28. uint x,y; for(x=z;x>0;x--)
  29. for(y=120;y>0;y--);
  30. }

  31. uchar code table1[]={
  32.           // 共陰數(shù)碼管段碼值
  33.        0x3f,0x06,0x5b,0x4f,
  34.        0x66,0x6d,0x7d,0x07,
  35.        0x7f,0x6f,0x77,0x7c,
  36.            0x39,0x5e,0x79,0x71
  37.            };
  38. uchar code table2[]={
  39.                                   // 共陰數(shù)碼管位碼值
  40.                   0xfe,0xfd, 0xfb,0xf7
  41.                                   };
  42. // 初始化子函數(shù)
  43. void init()
  44. {
  45. TMOD=0x11;
  46. TH0=(65536-2000)/256;
  47. TL0=(65536-2000)%256;
  48. TH1=(65536-2000)/256;
  49. TL1=(65536-2000)%256;
  50. ET0=1;
  51. ET1=1;
  52. EA=1;
  53. P0=0x00;
  54. time1=10;
  55. time2=10;
  56. flag2=1;
  57. }
  58. // 開始鍵掃描子函數(shù)
  59. void key1()
  60. {
  61.    uchar i=100;
  62.    if(K0==0)
  63.    {
  64.      delay(10);
  65.          if(K0==0)
  66.      {
  67.       while(K0==0&&i)
  68.       {
  69.        i--;
  70.        delay(10);
  71.       }
  72.        TR0=1;
  73.            s=time1;
  74.            m=0;
  75.        flag1=1;
  76.            flag2=1;
  77.            flag3=1;
  78.            num=0;
  79.            beep=1;
  80.            D0=1;
  81.        flag4=0;        // 清除違規(guī)標(biāo)志位
  82.        aa=0;
  83.            bb=0;
  84.           }
  85.    }
  86. }
  87. // 選手搶答按鍵掃描子函數(shù)
  88. void key()
  89. {
  90.   uchar i=100;
  91.   if(K1==0)
  92.   {
  93.    delay(10);
  94.    if(K1==0)
  95.    {
  96.     while(K1==0&&i)
  97.     {
  98.      i--;
  99.      delay(10);
  100.     }
  101.     num=1;        // 數(shù)碼管顯示        1 號 "1"
  102. TR0=0;        // 關(guān)閉定時(shí)器        0, 時(shí)間停止
  103.     TR1=1;        // 打開定時(shí)器        1, 使揚(yáng)聲器響一聲
  104.     flag2=0;        // 關(guān)閉開始鍵標(biāo)志位        , 使再按其他七個(gè)鍵不會(huì)響應(yīng)
  105.    }
  106.   }
  107.   if(K2==0)        // 下面七個(gè)鍵的處理同上
  108.   {
  109.     delay(10);
  110.         if(K2==0)
  111.         {
  112.      while(K2==0&&i)
  113.      {
  114.       i--;
  115.       delay(10);
  116.      }
  117.      num=2;
  118.          TR0=0;
  119.          TR1=1;
  120.      flag2=0; // 重 要
  121.     }
  122.   }
  123.    if(K3==0)
  124.    {
  125.     delay(10);
  126.         if(K3==0)
  127.     {
  128.      while(K3==0&&i)
  129.      {
  130.       i--;
  131.       delay(10);
  132.      }
  133.      num=3;
  134.          TR0=0;
  135.          TR1=1;
  136.      flag2=0;
  137.     }
  138.    }
  139.    if(K4==0)
  140.    {
  141.     delay(10);
  142.         if(K4==0)
  143.     {
  144.      while(K4==0&&i)
  145.      {
  146.       i--;
  147.       delay(10);
  148.      }
  149.          num=4;
  150.          TR0=0;
  151.          TR1=1;
  152.      flag2=0;
  153.     }
  154.    }
  155.    if(K5==0)
  156.    {
  157.     delay(10);
  158.         if(K5==0)
  159.     {
  160.      while(K5==0&&i)
  161.      {
  162.       i--;
  163.       delay(10);
  164.      }
  165.      num=5;
  166.          TR0=0;
  167.          TR1=1;
  168.      flag2=0;
  169.     }
  170.    }
  171.    if(K6==0)
  172.    {
  173.     delay(10);
  174.         if(K6==0)
  175.     {
  176.      while(K6==0&&i)
  177.      {
  178.       i--;
  179.       delay(10);
  180.      }
  181.      num=6;
  182.          TR0=0;
  183.          TR1=1;
  184.      flag2=0;
  185.     }
  186.    }
  187.    if(K7==0)
  188.    {
  189.     delay(10);
  190.         if(K7==0)
  191.     {
  192.      while(K7==0&&i)
  193.      {
  194.       i--;
  195.       delay(10);
  196.      }
  197.      num=7;
  198.          TR0=0;
  199.          TR1=1;
  200.      flag2=0;
  201.     }
  202.    }
  203.    if(K8==0)
  204.    {
  205.     delay(10);
  206.         if(K8==0)
  207.     {
  208.      while(K8==0&&i)
  209.      {
  210.       i--;
  211.       delay(10);
  212.      }
  213.      num=8;
  214.          TR0=0;
  215.          TR1=1;
  216.      flag2=0;
  217.     }
  218.    }
  219. }
  220. // 數(shù)碼管顯示子函數(shù)
  221. void display()
  222. {
  223. if(flag1==1)        // 開始鍵按下 , 開始計(jì)時(shí)搶答
  224. {
  225. if(num!=0)        // 如果有人搶答 , 則顯示相應(yīng)的幾號
  226. {
  227.   P0=table1[num];        // 顯示幾號搶到了
  228.   P2=table2[0]; delay(2); P0=0;
  229.   P2=0xff;
復(fù)制代碼
限于篇幅,全部程序請從附件下載

單片機(jī)課設(shè)程序.docx

21.11 KB, 下載次數(shù): 79, 下載積分: 黑幣 -5

八路搶答器源代碼

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:507935 發(fā)表于 2019-4-9 15:28 | 顯示全部樓層
看看怎么用呀
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人高清视频 | 小草久久久久久久久爱六 | 国产成人精品一区二区在线 | 自拍视频一区二区三区 | 午夜小视频免费观看 | 日韩国产免费观看 | 找个黄色片 | 999精品视频 | 91av视频在线观看 | 日日夜夜草 | 一区二区电影 | 亚洲精品在线91 | 欧美福利影院 | 久久一区二区免费视频 | 81精品国产乱码久久久久久 | 亚洲性人人天天夜夜摸 | av在线三级| h视频在线看 | 午夜免费视频观看 | 嫩草视频在线 | 美日韩免费视频 | 婷婷色国产偷v国产偷v小说 | 成人精品国产免费网站 | 久久久国产一区 | 91免费高清视频 | 96久久久久久 | 精品亚洲一区二区 | 欧美亚洲国产日韩 | 五月天婷婷综合 | 黄网站在线播放 | 亚洲一卡二卡 | 日韩欧美大片在线观看 | 97日日碰人人模人人澡分享吧 | 福利精品 | 成人不卡一区二区 | 亚洲高清在线观看 | 国产精品爱久久久久久久 | 成人免费视频 | 免费观看一级毛片 | 91精品国产综合久久福利软件 | 91资源在线观看 |