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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

51單片機(jī)設(shè)計(jì)的8路搶答器(Proteus仿真+代碼注釋詳解)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
設(shè)計(jì)要求:1.利用數(shù)碼管進(jìn)行顯示搶答時(shí)間和答題時(shí)間倒計(jì)時(shí);利用中斷定時(shí)器進(jìn)行定時(shí)/計(jì)數(shù)
2.實(shí)現(xiàn)按鍵自鎖功能,只有當(dāng)主持人按鍵有效后搶答者按鍵才有效,當(dāng)任一搶答者按鍵后,其他搶答者按鍵無效
3.對(duì)優(yōu)先搶答者進(jìn)行LED發(fā)亮與數(shù)碼管顯示搶答者序號(hào)提示是對(duì)應(yīng)搶答者進(jìn)行搶答

設(shè)計(jì)者百度貼吧號(hào):wife101,耐性解答

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. /*-----------------------------------------------
  2.   名稱:七路搶答器
  3.   名稱:?jiǎn)蝹(gè)獨(dú)立按鍵控制
  4.   編寫:吳柱俊        百度賬號(hào):wife101  桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院
  5.   內(nèi)容: 1、試驗(yàn)?zāi)康模毫私獍存I的掃描原理
  6.          2、實(shí)現(xiàn)現(xiàn)象:同時(shí)按鍵搶答,先按的鍵有效,其他按鍵鎖死 主持人按開始后后重新開始搶答
  7.          3、硬件要求:按鍵 LED燈 ,數(shù)碼管顯示原理
  8.          原理:當(dāng)主持人按鍵開始后方可按鍵顯示,否則其他應(yīng)答者按鍵無效
  9.                  當(dāng)主持人按鍵開始后開始等待應(yīng)答者按鍵,給予搶答者時(shí)間為10秒,搶答者要在這10S內(nèi)做出搶答反應(yīng)
  10.                  當(dāng)有搶答者搶答后顯示第幾個(gè)搶答者為p0口數(shù)碼管顯示
  11.                  P2數(shù)碼管顯示為搶答時(shí)間
  12.                  當(dāng)有搶答者搶答按鍵后時(shí)間暫停

  13.                  關(guān)注我貼吧下一個(gè)搶答后給予應(yīng)答著10S時(shí)間應(yīng)答而不是暫停出應(yīng)答時(shí)間
  14. ------------------------------------------------*/
  15. #include<reg51.h>     //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
  16. #define uint unsigned int
  17. #define uchar unsigned char
  18. uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  19. //共地?cái)?shù)碼管段碼0到9
  20. uchar i=1,count=9,scount=0;
  21. uchar Flag=0;

  22. void int0();//定時(shí)/計(jì)數(shù)中斷初始化



  23. sbit key1=P1^0;//定義按鍵位置 獨(dú)立按鍵模式
  24. sbit key2=P1^1;
  25. sbit key3=P1^2;
  26. sbit key4=P1^3;
  27. sbit key5=P1^4;//定義按鍵位置 獨(dú)立按鍵模式
  28. sbit key6=P1^5;
  29. sbit key7=P1^6;
  30. sbit key8=P1^7;

  31. /*-----------------------------------------------
  32.                     主函數(shù)
  33. ------------------------------------------------*/
  34. main()
  35. {
  36. int0();//定時(shí)/計(jì)數(shù)中斷初始化
  37. P0=0x3f;//剛開始顯示0
  38. P2=0X3F;//剛開始顯示0
  39. while(1)
  40. {
  41. P0=DSY_CODE[scount];
  42. while(Flag)//執(zhí)行一次就停止了 先檢測(cè)到的相應(yīng) 復(fù)位后有效
  43.       {
  44.       if (!key1)    {scount=1;P3=0xFE;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];        }//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  45.           else if(!key2){scount=2;P3=0xFD;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  46.           else if(!key3){scount=3;P3=0xFB;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  47.           else if(!key4){scount=4;P3=0xF7;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  48.           else if(!key5){scount=5;P3=0xEF;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  49.           else if(!key6){scount=6;P3=0xDF;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷
  50.           else if(!key7){scount=7;P3=0xBF;Flag=0;EA=0;ET0=0;TR0=0;P0=DSY_CODE[scount];}//   第一路燈亮,令falg=0,退出循環(huán),使其他路應(yīng)答無效,停止中斷

  51.                      if(key8==0)                //主持人按鍵重新開始
  52.           {
  53.           P3=0XFF;           // 令所有燈滅
  54.           EA=1;                   //開中斷計(jì)數(shù)
  55.           ET0=1;
  56.           TR0=1;
  57.           Flag=1;        //另flag=1使指向while(flag)進(jìn)入搶答環(huán)節(jié)
  58.           count=9;
  59.                   scount=0;         
  60.           }
  61.       }

  62.            if(key8==0)                //主持人按鍵重新開始
  63.           {
  64.           P3=0XFF;           // 令所有燈滅
  65.           EA=1;                   //開中斷計(jì)數(shù)
  66.           ET0=1;
  67.           TR0=1;
  68.           Flag=1;        //另flag=1使指向while(flag)進(jìn)入搶答環(huán)節(jié)
  69.           count=9;
  70.                   scount=0;         
  71.           }

  72. }
  73. }


  74. void int0()//定時(shí)/計(jì)數(shù)中斷初始化
  75. {
  76. TMOD=0X01;//方式選擇
  77. //方式0 13位 8192,最大定時(shí)8.192ms;方式1 16位,65536,最大定時(shí)65.536ms

  78. TH0=(65536-50000)/256;        //整除得高位  如12/10=1        定時(shí)50ms
  79. TL0=(65535-50000)%256 ;        //取余得低位   如12%10=2  定時(shí)50ms
  80. //EA=1;
  81. //ET0=1;
  82. //TR0=1;
  83. }

  84. void int0_interrupt() interrupt 1
  85. {
  86. TH0=(65536-50000)/256;                //恢復(fù)定時(shí)器0初值
  87. TL0=(65536-50000)%256;
  88. i++;  //每來一次中斷對(duì)i進(jìn)行自加1
  89. if(i==20)//定時(shí)1s,50ms*20=1秒,定時(shí)器中斷20次
  90. {
  91. i=0;
  92. count--;   //當(dāng)定時(shí)夠1S,count賦值為1
  93. }
  94. P2=DSY_CODE[count%10];        //取低位
  95. if(count==0)   //當(dāng)count=60秒進(jìn)行自動(dòng)清零復(fù)位
  96. {
  97. EA=0;ET0=0;TR0=0;
  98. }
  99. }
復(fù)制代碼

所有資料51hei提供下載:
單片機(jī)控制的多路搶答器程序 仿真.rar (75.61 KB, 下載次數(shù): 109)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2019-5-5 22:10 | 只看該作者
好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

板凳
ID:138119 發(fā)表于 2019-5-6 02:48 | 只看該作者
不錯(cuò)不錯(cuò)!多學(xué)習(xí)~!
回復(fù)

使用道具 舉報(bào)

地板
ID:344089 發(fā)表于 2020-12-26 16:02 | 只看該作者
好資料,謝謝樓主分享,學(xué)到了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区av| hitomi一区二区三区精品 | 色综合久| 五月婷婷在线视频 | 一区二区免费在线观看 | 在线一区 | 国产传媒毛片精品视频第一次 | 99re6热在线精品视频播放 | 中文字幕在线观看www | 国产精品亚洲第一 | 色一情一乱一伦一区二区三区 | 日韩av在线一区二区三区 | 欧美毛片免费观看 | 久久人人网 | 自拍偷拍亚洲视频 | 国产精品免费一区二区三区四区 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 黄色一级免费看 | 久久99视频这里只有精品 | 男女羞羞免费视频 | 欧美性video 精品亚洲一区二区 | 少妇无套高潮一二三区 | 亚洲精品永久免费 | 亚洲二区视频 | 成人亚洲精品 | www.国产 | 国产精品不卡视频 | 亚洲免费一区 | 国产精品亚洲第一区在线暖暖韩国 | 粉嫩国产精品一区二区在线观看 | 亚洲高清视频在线观看 | 国产精品国产a级 | 一区二区免费 | 国产欧美久久一区二区三区 | 国产不卡在线播放 | 欧美极品在线播放 | 日韩高清国产一区在线 | 久久日韩精品 | 在线观看亚洲专区 | 日韩在线电影 | 欧美自拍网站 |