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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己做的8位競賽搶答器仿真與代碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
可能有些小毛病仿真沒毛病,就是自己的那個(gè)開發(fā)版出不來,大家拿去研究研究

仿真原理圖如下 需要用8.0以上的版本(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源代碼如下:
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char       
  4. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//變量定義
  5. sbit BEEP=P3^1;
  6. sbit start_stop=P3^2;
  7. sbit reset=P3^3;
  8. sbit key1=P1^0;
  9. sbit key2=P1^1;
  10. sbit key3=P1^2;
  11. sbit key4=P1^3;
  12. sbit key5=P1^4;
  13. sbit key6=P1^5;
  14. sbit key7=P1^6;
  15. sbit key8=P1^7;
  16. sbit state=P3^0;
  17. bit start_stop_flag=0;
  18. bit key1_flag=0;
  19. bit key2_flag=0;
  20. bit key3_flag=0;
  21. bit key4_flag=0;
  22. bit key5_flag=0;
  23. bit key6_flag=0;
  24. bit key7_flag=0;
  25. bit key8_flag=0;
  26. bit reset_flag=0;
  27. bit action=0;
  28. uchar second=20;
  29. uchar timer0_count=0;
  30. uchar number=0;
  31. uchar number_display=0;
  32. uint flag=1;                                  //延時(shí)函數(shù)
  33. void delay(uint z)
  34. {
  35.       uint x,y;
  36. for(x=z;x>0;x--)
  37.       for(y=120;y>0;y--);
  38. }                                              //蜂鳴器發(fā)聲延時(shí)
  39. void DelayMS(uint x)
  40. {
  41. uchar t;  
  42. while(x--)   
  43. for(t=0;t<100;t++);
  44.   }                                       //數(shù)碼管顯示驅(qū)動函數(shù)   
  45. void display(uchar number,uchar second)  
  46. {        
  47. uchar second_first,second_second;        
  48. second_first = second /  10;        
  49. second_second = second %  10;      
  50. P0 =0x00;         
  51. P2 = 0xfe;         
  52. P0 = table[number];        
  53. delay(2);  
  54. P0 =0x00;      
  55. P2 = 0xfd;        
  56. P0 = 0x40;        
  57. delay(2);      
  58. P0 =0x00;         
  59. P2 = 0xfb;         
  60. P0 = table[second_first];        
  61. delay(2);      
  62. P0 =0x00;         
  63. P2 = 0xf7;
  64. P0 = table[second_second];        
  65. delay(2);      
  66. P0 =0x00;  }                                       //蜂鳴器響應(yīng)按周期t發(fā)音
  67. void Play(uchar t)
  68. {  uchar i;  for(i=0;i<1;i++)  
  69.    {   BEEP=~BEEP;   
  70.        DelayMS(t);  }  BEEP=0;  
  71. }                                                  //開始鍵掃描函數(shù)   
  72. void start_stop_keyscan()  
  73. {         
  74. if(start_stop == 0)        
  75. {              
  76. delay(8);              
  77. if((start_stop == 0)&&(!start_stop_flag))        
  78. {                    
  79. start_stop_flag =  1;                  
  80. action       =  1;                  
  81. TR0 =  1;                  
  82. state = 0;            
  83. }      
  84. }
  85. else        
  86. {              
  87. start_stop_flag = 0;
  88.   }
  89.     }                                                 //八位搶答鍵掃描函數(shù)  
  90. uchar key_scan8()  
  91. {         
  92. if(key1 == 0)        
  93. {              
  94. delay(8);              
  95. if((key1 == 0)&&(!key1_flag))            
  96. {         
  97. key1_flag =  1;                    
  98. number                =  1;                  
  99. number_display = number;            
  100. }      
  101. }   
  102. else   
  103. {            
  104. key1_flag = 0;            
  105. number                 = 0;   
  106. }    if(key2 == 0)   
  107. {            
  108. delay(8);            
  109. if((key2 == 0)&&(!key2_flag))           
  110. {                     
  111. key2_flag =  1;
  112. number                = 2;
  113. number_display = number;         
  114. }   
  115. }   
  116. else   
  117. {            
  118. key2_flag = 0;            
  119. number                 = 0;
  120.    }   
  121. if(key3 == 0)   
  122. {            
  123. delay(8);            
  124. if((key3 == 0)&&(!key3_flag))           
  125. {                     
  126. key3_flag =  1;                     
  127. number                = 3;                    
  128. number_display = number;                    
  129. }   
  130. }   
  131. else   
  132. {            
  133. key3_flag = 0;            
  134. number                 = 0;   
  135. }   
  136. if(key4 == 0)   
  137. {            
  138. delay(8);            
  139. if((key4 == 0)&&(!key4_flag))
  140. {                     
  141. key4_flag =  1;                     
  142. number                = 4;                    
  143. number_display = number;           
  144. }   
  145. }   
  146. else   
  147. {            
  148. key4_flag = 0;            
  149. number                 = 0;   
  150. }   
  151. if(key5 == 0)   
  152. {            
  153. delay(8);            
  154. if((key5 == 0)&&(!key5_flag))           
  155. {                     
  156. key5_flag =  1;                     
  157. number                = 5;     
  158. number_display = number;           
  159. }      
  160. }   
  161. else   
  162. {            
  163. key5_flag = 0;            
  164. number                 = 0;   
  165. }   
  166. if(key6 == 0)   
  167. {            
  168. delay(8);
  169. if((key6 == 0)&&(!key6_flag))           
  170. {                     
  171. key6_flag =  1;                     
  172. number                = 6;                    
  173. number_display = number;         
  174. }   
  175. }   
  176. else   
  177. {            
  178. key6_flag = 0;     
  179. number                 = 0;   
  180. }   
  181. if(key7 == 0)   
  182. {            
  183. delay(8);            
  184. if((key7 == 0)&&(!key7_flag))           
  185. {                     
  186. key7_flag =  1;                     
  187. number                = 7;                    
  188. number_display = number;           
  189. }   
  190. }   
  191. else   
  192. {            
  193. key7_flag = 0;            
  194. number                 = 0;   
  195. }   
  196. if(key8 == 0)   
  197. {
  198. delay(8);
  199.        if((key8 == 0)&&(!key8_flag))            
  200. {                  
  201. key8_flag =  1;                  
  202. number                = 8;                  
  203. number_display = number;         
  204. }   
  205. }   else      
  206. {            
  207. key8_flag = 0;         
  208. number                 = 0;      
  209. }   if(number_display  != 0)  
  210. {         
  211. return  1;  
  212. }  
  213. else  
  214. {           
  215. return 0;  
  216. }  
  217. }  //復(fù)位鍵掃描函數(shù)  
  218. void reset_keyscan()  
  219. {        
  220. if(reset == 0)        
  221. {              
  222. delay(8);
  223. if((reset==0)&&(!reset_flag))
  224.              {                    
  225. reset_flag =  1;                  
  226. number_display = 0;                  
  227. state =  1;            
  228. }        
  229. }        
  230. else        
  231. {              
  232. reset_flag = 0;        
  233. }  
  234. }  //主函數(shù)  
  235. void main()  
  236. {      
  237. TMOD=0x01;         
  238. TH0=(65536-50000)/256;        
  239. TL0=(65536-50000)%256;        
  240. EA= 1;        
  241. ET0= 1;        
  242. TR0=0;        
  243. while( 1)        
  244. {         
  245. if(number_display!=0)              
  246. Play(number_display/2);                                 //蜂鳴器發(fā)聲               
  247. start_stop_keyscan();            
  248. reset_keyscan();
  249. while(action)            
  250. {                 
  251. while(!key_scan8())                    
  252. {                        
  253. display(number_display,second);                     
  254. if(second == 0)                        
  255. ……………………

  256. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
8位競賽搶答器課程設(shè)計(jì).zip (56.9 KB, 下載次數(shù): 137)


評分

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

查看全部評分

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

使用道具 舉報(bào)

沙發(fā)
ID:359337 發(fā)表于 2018-6-27 11:11 | 只看該作者
很好很好
回復(fù)

使用道具 舉報(bào)

板凳
ID:364880 發(fā)表于 2018-7-6 12:16 | 只看該作者
沒流程圖啊
回復(fù)

使用道具 舉報(bào)

地板
ID:138664 發(fā)表于 2018-7-12 23:58 | 只看該作者
用8.6報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

5#
ID:413212 發(fā)表于 2018-10-21 18:43 | 只看該作者
流程圖有嗎?
回復(fù)

使用道具 舉報(bào)

6#
ID:575686 發(fā)表于 2019-7-1 19:25 | 只看該作者
請問這個(gè)要怎么復(fù)位啊
回復(fù)

使用道具 舉報(bào)

7#
ID:577047 發(fā)表于 2019-7-3 12:18 | 只看該作者
好東西
回復(fù)

使用道具 舉報(bào)

8#
ID:682860 發(fā)表于 2020-1-7 14:03 | 只看該作者
這個(gè)有流程圖嗎
回復(fù)

使用道具 舉報(bào)

9#
ID:682004 發(fā)表于 2020-1-7 15:09 | 只看該作者
自己在protues上走了一遍程序,還可以,不錯(cuò)
回復(fù)

使用道具 舉報(bào)

10#
ID:682955 發(fā)表于 2020-1-7 15:22 | 只看該作者
可以的,正要做這個(gè)
回復(fù)

使用道具 舉報(bào)

11#
ID:66199 發(fā)表于 2020-1-7 19:03 | 只看該作者
好東西
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: av在线播放一区二区 | 91精品一区二区三区久久久久 | 亚洲国产精品成人无久久精品 | 日本一道本视频 | 日本欧美在线 | 国产剧情一区 | www.887色视频免费 | 成人福利视频 | 日韩精品一区二区三区四区 | 国产精品综合视频 | 欧美一极视频 | 国产精品久久久久久久久久尿 | 欧美日韩一区二区在线观看 | 福利视频网站 | 91精品国产色综合久久 | 日日干夜夜操 | 亚洲a人 | 97超碰人人草 | 精品一区二区三区在线观看国产 | 99热热99| 日韩一级免费 | 国产精品美女久久久 | 免费电影av| 国产一级片免费在线观看 | 亚洲不卡视频 | 亚洲天堂av网 | 国产精品影视在线观看 | 黄网站在线播放 | 91在线观看免费 | 国产欧美久久一区二区三区 | 亚洲一区二区视频 | 九九亚洲 | 人人干超碰 | 女同av亚洲女人天堂 | 亚洲精品视频在线 | 久久精品97 | 国产精品久久久久无码av | 中文字幕亚洲精品 | 亚洲国产精品va在线看黑人 | 中文字幕精品视频在线观看 | 日韩在线免费视频 |