1.功能介紹
多功能八路搶答器是基于51單片機(jī)來(lái)設(shè)計(jì)的,除了可以實(shí)現(xiàn)最基本功能——8路搶答外,還具有自動(dòng)處理犯規(guī)選手,搶答時(shí)間調(diào)整,還可以進(jìn)行答題,計(jì)分,并且可以查詢或修改分?jǐn)?shù)。
2.硬件設(shè)計(jì)
(1)硬件框圖
該搶答器的硬件由五個(gè)部分組成,包括單片機(jī)、按鍵電路、數(shù)碼管顯示電路、指示燈電路和聲音提示電路。硬件框圖如下
(2)硬件原理圖
由于每個(gè)部分的硬件電路都比較簡(jiǎn)單,就不做介紹了,大家直接看圖。
3.軟件設(shè)計(jì)
(1)軟件流程圖
(2)程序源碼
由于本例程代碼比較多,這里就只貼出部分代碼,有興趣的小伙伴可以下載源碼去看看
void main()
{ uint j;//用來(lái)構(gòu)成循環(huán)
TMOD=0x11;//T0設(shè)置為16位定時(shí)方式
TH0=0x3c;
TL0=0xb0;//50ms
IE= 0x82; //允許T0中斷
TR0=0; //關(guān)閉定時(shí)開(kāi)關(guān)
while(1)
{ while(1)
{ LED01=1;LED02=1;LED03=1;LED04=1;LED05=1;LED06=1;LED07=1;LED08=1;//監(jiān)視燈初始化為滅
if(KS1==0) {ks1=1;break;}//開(kāi)始搶答倒計(jì)時(shí)
if(KS2==0) {ks2=1;break;}//開(kāi)始答題倒計(jì)時(shí)
if(ADD1==0) {delaynms(20); if(ADD1==0) dtime++;if(dtime>=1000) dtime=0;}//答題時(shí)間調(diào)整
if(MIN1==0) {delaynms(20); if(MIN1==0) dtime--;if(dtime<0) dtime=999;}
if(ADD10==0) {delaynms(20); if(ADD10==0) dtime=dtime+10;if(dtime>=1000) dtime=0;}
if(MIN10==0) {delaynms(20); if(MIN10==0) dtime=dtime-10;if(dtime<0) dtime=999;}
shumasm(LED[qdtime_2],dtime);//數(shù)碼管動(dòng)態(tài)掃描4位
if(B_score==0)
{ delaynms(20);
if(B_score==0)
while(1)
{ if(B_score==0)
{ delaynms(20);if(B_score==0) break;}//再次按下B_score退出分?jǐn)?shù)調(diào)節(jié)
shumasm(LED_num[num],score[num]); //數(shù)碼管動(dòng)態(tài)掃描4位,顯示選手編號(hào)和對(duì)應(yīng)分?jǐn)?shù)
if(next==0)
{ delaynms(20);if(next==0) num++; if(num==9) num=0;}//顯示下一位選手編號(hào)和對(duì)應(yīng)分?jǐn)?shù)
if(last==0)
{ delaynms(20);if(last==0) num--; if(num<0) num=8;}//顯示上一位選手編號(hào)和對(duì)應(yīng)分?jǐn)?shù)
if(REST==0) {delaynms(20); if(REST==0) score[num]=0; }//將當(dāng)前選手分?jǐn)?shù)清零
if(ADD1==0) {delaynms(20); if(ADD1==0) score[num]++;if(score[num]>=1000) score[num]=0;}//調(diào)節(jié)數(shù)碼管上對(duì)應(yīng)選手分?jǐn)?shù),分?jǐn)?shù)范圍0-999
if(MIN1==0) {delaynms(20); if(MIN1==0) score[num]--;if(score[num]<0) score[num]=999;}
if(ADD10==0) {delaynms(20); if(ADD10==0) score[num]=score[num]+10;if(score[num]>=1000) score[num]=0;}
if(MIN10==0) {delaynms(20); if(MIN10==0) score[num]=score[num]-10;if(score[num]<0) score[num]=999;}
}
}
}
....
}
.....
}
}
-
搶答器
+關(guān)注
關(guān)注
16文章
243瀏覽量
34464 -
原理圖
+關(guān)注
關(guān)注
1297文章
6338瀏覽量
233797 -
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634629 -
51單片機(jī)
+關(guān)注
關(guān)注
274文章
5702瀏覽量
123490 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1882瀏覽量
91062
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論