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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2830|回復: 2
收起左側

單片機四路搶答器(基于普中科技單片機)

[復制鏈接]
ID:661934 發表于 2019-12-11 22:45 | 顯示全部樓層 |閱讀模式
  這是我們單片機的一次設計程序,這個程序是基于普中科技的單片機開發板,能實現一個四路搶答器的功能,本人親自在開發板上燒錄,能正常運作,所以發出來讓大家給我提些建議,因為本人現在的編程水平有限,所以讓大家幫我改進改進。

單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char  
  3. #define uint unsigned int
  4. #define WHO P0

  5. sbit player1=P1^0;
  6. sbit player2=P1^1;
  7. sbit player3=P1^2;
  8. sbit player4=P1^3;
  9. sbit Ensure=P3^7;
  10. sbit beep=P1^6;
  11. sbit LSA=P3^2;
  12. sbit LSB=P3^3;
  13. sbit LSC=P3^4;

  14. uchar state=0;
  15. uchar ssec=0;
  16. uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  17. uchar OUT[]={0x71,0x77,0x38,0x38};

  18. void delay(uint time)
  19. {
  20.     uint x,y ;
  21.     for(x=time;x>0;x--)
  22.             for(y=130;y>0;y--);
  23. }

  24. void Delay2(uint i)
  25. {
  26. while(i--);
  27. }

  28. void Show(uchar content[])
  29. {
  30. uchar i;
  31. for(i=0;i<4;i++)
  32. {
  33. switch(i)  //位選,選擇點亮的數碼管,
  34. {
  35. case(0):
  36. LSA=0;LSB=0;LSC=0; break;//顯示第0位
  37. case(1):
  38. LSA=1;LSB=0;LSC=0; break;//顯示第1位
  39. case(2):
  40. LSA=0;LSB=1;LSC=0; break;//顯示第2位
  41. case(3):
  42. LSA=1;LSB=1;LSC=0; break;//顯示第3位
  43. }
  44. P2=content[i];//發送段碼
  45. Delay2(100); //間隔一段時間掃描
  46. P2=0x00;//消隱
  47. }
  48. }

  49. void InitTimer0(void)
  50. {
  51.     TMOD = 0x01;
  52.     TH0 = 0x0D8;
  53.     TL0 = 0x0F0;
  54.     EA = 1;
  55.     ET0 = 1;
  56.     TR0 = 1;
  57. }

  58. void main()
  59. {
  60. Ensure=1;
  61. while(1)
  62. {
  63. if(player1==0) //玩家1進入搶答狀態
  64.         {
  65.             delay(10); //延時,按鍵消抖
  66.             if(player1==0) //再次判斷是否進入搶答狀態
  67.             {
  68. if(state==0)  //前方無人搶答狀態
  69. {
  70. InitTimer0();
  71. state=1;  //將搶答狀態置為1,防止其他玩家搶答
  72. while(!player1)  //搶答成功,蜂鳴器發聲
  73. {
  74. beep=~beep;
  75. delay(1);
  76.                 }
  77. WHO=table[1]; //數碼管顯示搶答成功的玩家編號
  78. }
  79.             }
  80.         }
  81. if(player2==0)   //以下結構類似于玩家1
  82.         {
  83.             delay(10);
  84.             if(player2==0)
  85.             {
  86.           if(state==0)
  87. {
  88. InitTimer0();
  89.     state=1;
  90. while(!player2)
  91. {
  92. beep=~beep;
  93. delay(1);
  94.                 }
  95.                 WHO=table[2];
  96. }
  97.             }
  98.         }
  99. if(player3==0)
  100.         {
  101.             delay(10);
  102.             if(player3==0)
  103.             {
  104.                 if(state==0)
  105. {
  106.     InitTimer0();
  107. state=1;
  108. while(!player3)
  109. {
  110. beep=~beep;
  111. delay(1);
  112.                 }
  113. WHO=table[3];
  114.              }
  115. }
  116.         }
  117. if(player4==0)
  118.         {
  119.             delay(10);
  120.             if(player4==0)
  121.             {
  122. if(state==0)
  123. {
  124.                 InitTimer0();
  125.     state=1;
  126. while(!player4)
  127. {
  128. beep=~beep;
  129. delay(1);
  130.                 }
  131.                 WHO=table[4];
  132. }
  133.             }
  134.         }
  135.     }
  136. }

  137. void Timer0() interrupt 1
  138. {
  139. TH0=(65536-45872)/255; //給定時器賦初值,定時50ms
  140. TL0=(65536-45872)%255;
  141. ssec++;
  142. if(Ensure)
  143. {
  144. if(ssec>=100)  //5s
  145. {
  146. EA=0;
  147. while(1)
  148. Show(OUT);
  149. }
  150. }
  151. else
  152. {
  153. delay(10);
  154. if(Ensure==0)
  155. {
  156. while(!Ensure);
  157. Ensure=0;
  158. if(ssec>=100)
  159. {
  160. EA=0;
  161. }
  162. }
  163. }
  164. }
復制代碼

所有資料51hei提供下載:
四路搶答器.docx (24.28 KB, 下載次數: 26)


回復

使用道具 舉報

ID:447162 發表于 2020-6-22 07:49 | 顯示全部樓層
有仿真圖嗎
回復

使用道具 舉報

ID:447162 發表于 2020-6-22 07:50 | 顯示全部樓層
有仿真圖嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲www啪成人一区二区麻豆 | 日韩一区二区三区视频 | 综合色导航 | 蜜桃毛片 | 久久精品欧美一区二区三区不卡 | 午夜精品一区二区三区免费视频 | 中文字幕一区二区三区精彩视频 | 亚洲黄色片免费观看 | 日韩精品在线看 | 黄色片在线免费看 | 久久躁日日躁aaaaxxxx | 一级免费看| 欧美在线小视频 | 一道本不卡 | 在线黄色网 | 黄色日本视频 | 黄色一级毛片免费看 | 精品国产一区二区三区免费 | 欧州一区二区三区 | 成年人网站在线观看视频 | 久久久久99 | 亚洲精彩免费视频 | 亚洲三区视频 | 人人干人人舔 | 日韩中文字幕视频在线观看 | 免费人成激情视频在线观看冫 | 亚洲一区二区不卡在线观看 | 999精品网| 国产精品极品美女在线观看免费 | 欧美乱码精品一区二区三区 | 91在线资源 | 国产激情三区 | 亚洲一区在线免费观看 | 亚洲视频中文 | 色狠狠一区 | 亚洲色图网址 | 九九热国产精品视频 | av激情在线 | 天天成人综合网 | 日韩av一区在线观看 | 一级一级毛片免费看 |