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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7023|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

單片機做的8位搶答器程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:392863 發(fā)表于 2018-9-3 14:56 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
      1、利用各種器件設(shè)計一個八路智力競賽搶答器

      2、并用PROTEL或EWB畫原理圖與印制板電路圖。3、總結(jié)檢驗電路設(shè)計的結(jié)果2)設(shè)計要求

      1、搶答器同時供八名選手或八個代表隊比賽,分別用八個按鈕S0~S7表示。2、設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)s,該開關(guān)由主持入控制。

      3、搶答器具有鎖存于顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并且優(yōu)先搶答選手的編號一直保持到主持人講系統(tǒng)清零為止。

      4、搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定。當主持人啟動開始鍵后,定時器進行減計時,同時揚聲器發(fā)出知暫的聲響,聲響持續(xù)的時間在3秒左右,與此同時,指示燈會亮,提示搶答開始。

      5、參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清零為止。

      6、如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。



單片機源程序:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define  max 20
  5. uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};
  6. sbit d1=P2^4;//**************段選
  7. sbit d2=P2^5;
  8. sbit x1=P2^6;
  9. sbit x2=P2^7;
  10. sbit k1=P1^0;//*********************八位選手開關(guān)
  11. sbit k2=P1^1;
  12. sbit k3=P1^2;
  13. sbit k4=P1^3;
  14. sbit k5=P1^4;
  15. sbit k6=P1^5;
  16. sbit k7=P1^6;
  17. sbit k8=P1^7;
  18. sbit zk1=P2^0;//*****************************主持人開關(guān)zk1              zk2
  19. sbit zk2=P2^1;
  20. sbit buz=P2^2;//*******************蜂鳴器
  21. uchar num,aa;
  22. uchar f,flag;
  23. void jianpan();
  24. void init(void)
  25. {
  26. TMOD=0X01;//***************T0,模式1,定時
  27. TL0=0XB0; //********************定時50ms
  28.    TH0=0X3C;
  29.    ET0=1;    //**************開中斷
  30.    EA=1;
  31.    num=max;//置倒計時計數(shù)初值
  32. }

  33. void delay(uint xms)
  34. {
  35.    uint x,y;
  36.    for(x=xms;x>0;x--)
  37.     for(y=110;y>0;y--);

  38. }
  39. /**********************************************
  40. 倒計時  選手號顯示函數(shù)
  41. **********************************************/
  42. void display()
  43. {d1=0;         //控制開始置數(shù)
  44. P0=tab[num/10];//倒計時控制取最高位
  45. delay(5);
  46. d1=1;          //停止置數(shù)操作

  47. d2=0;
  48. P0=tab[num%10];//倒計時取最低位
  49. delay(5);
  50. d2=1;

  51. x1=0;         //控制開始置數(shù)
  52. P0=tab[flag/10];//選手號控制
  53. delay(5);
  54. x1=1;         //停止置數(shù)操作
  55. x2=0;
  56. P0=tab[flag%10];
  57. delay(5);
  58. x2=1;
  59. }
  60. /**********************************************************主函數(shù)部分
  61. **********************************************************/void main()
  62. {            
  63. init();
  64. while(1)
  65. { jianpan();display();}              }

  66. /***************************************
  67. 中斷控制倒計時
  68. *************************************/
  69. void timer0(void) interrupt 1
  70. {
  71.    TL0=0XB0; //******重裝初值,定時50ms
  72.    TH0=0X3C;
  73.    aa++;
  74.    if(aa==20)//**********************************1秒到了
  75.     {
  76.      aa=0;//**************************************計數(shù)清零
  77. num--;
  78. if(num==0)//倒計時為0時迅速變?yōu)槌踔低瑫r關(guān)中斷停止倒計時
  79. {   num=max;
  80. TR0=0;   }

  81. buz=0;//***************要求蜂鳴器響
  82. delay(20);//**************************蜂鳴器響,特別注意時間為一秒buz=1;
  83.                
  84.      }  
  85. }
  86. /**************************************************
  87. 按鍵控制   程序的核心部分
  88. ****************************************************/
  89. void jianpan()
  90. {
  91. if(zk1==0&flag=0)
  92. {
  93. delay(5);//消除數(shù)碼管抖動操作
  94. flag=0;//數(shù)碼管顯示0
  95. display();
  96. TR0=1;//ZK1鍵按下,開中斷以此控制:只有當此鍵按下時才搶答
  97. }
  98. if(zk2==0&&TR0==0)//注意這里要求TR0=0;
  99. {
  100. delay(5);//消除抖動
  101. if(zk2==0&&TR0==0)
  102. if(flag==0)
  103. {num--;buz=0;delay(20);buz=1;}
  104. if(num==0)
  105. num=max;                           
  106. if(flag!=0)//ZK2鍵清零操作
  107. {
  108. flag=0;
  109. num=max;//倒計時顯示最大值
  110. TR0=0;//注意此時關(guān)中斷,不再進行倒計時
  111. buz=0;
  112. delay(20);
  113. buz=1;   
  114. }
  115. while(!zk2)//倒計時中ZK2 鍵不可影響
  116. display();
  117.                             }

  118. /**********************************************************TR0控制搶答先后順序
  119. *********************************************************/

  120. if(k1==0&&TR0==1)//注意此時TR0=1才執(zhí)行以下按鍵操作
  121. {            
  122. buz=0;
  123. delay(20);
  124. buz=1;
  125. delay(5);
  126. flag=1;
  127. TR0=0;//此鍵按下關(guān)中斷,其他選手按鍵不再受影響                           
  128. display();
  129. }
  130. /*************************************
  131. 以下原理相同
  132. *************************************/
  133. if(k2==0&&TR0==1)
  134. {
  135. buz=0;delay(20);buz=1;
  136. delay(5);
  137. flag=2;
  138. TR0=0;            
  139. display();
  140. }

  141. if(k3==0&&TR0==1)
  142. {            
  143. buz=0;delay(20);buz=1;
  144. delay(5);
  145. flag=3;
  146. TR0=0;
  147. display();
  148. }
  149. if(k4==0&&TR0==1)
  150. {            
  151. buz=0;delay(20);buz=1;
  152. delay(5);
  153. flag=4;
  154. TR0=0;                           
  155. display();   }
  156. if(k5==0&&TR0==1)
  157. {
  158. delay(5);
  159. flag=5;                    
  160. TR0=0;
  161. display();                                                           
  162. }
  163. if(k6==0&&TR0==1)
  164. {            
  165. buz=0;delay(20);buz=1;
  166.                                 
  167. delay(5);
  168.                      
  169. flag=1;
  170.                      
  171. TR0=0;
  172. display();          }

  173.                            
  174. if(k7==0&&TR0==1)
  175. {
  176. buz=0;delay(20);
  177. buz=1;
  178. delay(5);
  179. flag=7;
  180. TR0=0;
  181. display();
  182. }

  183. if(k8==0&&TR0==1)
  184. {
  185. buz=0;delay(20);
  186. buz=1;
  187. delay(5);
  188. flag=8;
  189. TR0=0;                                                                                         
  190. display();  
  191. }
  192.             
  193. }
復(fù)制代碼


代碼.docx

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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-9-3 17:24 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報

板凳
ID:451125 發(fā)表于 2018-12-20 21:25 | 只看該作者
你好兄弟能不能發(fā)下原理圖啊
回復(fù)

使用道具 舉報

地板
ID:653096 發(fā)表于 2019-11-30 17:01 | 只看該作者
有沒有仿真圖
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 视频一区二区中文字幕 | 天天色综 | 国产日韩欧美二区 | 久久久久久国 | 亚洲福利网站 | 日韩一区二区精品 | 亚洲最大av | 欧洲视频一区二区 | 毛片韩国 | 成人精品区| 热久久久 | 日韩在线观看精品 | 一区二区三区欧美在线 | 成人欧美一区二区三区 | 欧美视频免费 | 国产精品日韩一区二区 | 色综合99 | 91看片网 | 久久成人综合 | 国产日韩欧美在线 | 免费黄色的视频 | 久久久av | 亚洲另类视频 | 夜夜爽99久久国产综合精品女不卡 | 中文字幕亚洲一区 | 久久精品黄色 | 亚洲色图婷婷 | 亚洲顶级毛片 | 久久久精品日本 | 亚洲综合一区二区三区 | 成人免费视频网站在线看 | 欧美高清视频一区 | 涩涩鲁亚洲精品一区二区 | 99精品视频在线 | 亚洲欧美日韩久久久 | 国产在线一区二区 | 玖玖色在线视频 | 久久精品在线 | 人人草人人干 | 欧美精品在线观看 | 精品欧美一区二区三区免费观看 |