找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

八位競賽搶答器程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:413212 發(fā)表于 2018-10-21 19:36 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
系統(tǒng)程序
P1.0為開始搶答,P1.7為停止,P1.1-P1.6為六路搶答輸入,數(shù)碼管段選P0口,為選P2口,蜂鳴器輸出為P3.6口。
OK EQU 20H;   搶答開始標(biāo)志位
RING EQU 22H;  響鈴標(biāo)志位
ORG  0000H
AJMP MAIN
ORG  0003H
AJMP INT0SUB
ORG  000BH
AJMP  TOINT
ORG  0013H
AJMP  INT1SUB
ORG  001BH
AJMP  T1INT
ORG  0040H
MAIN: MOV R1, #0FH;  初始搶答時間為15S
MOV R2,#0AH;  初始答題時間為10S
MOV TMOD,#11H;  設(shè)置為定時器/模式1
MOV TH0,#0F0H
MOV TL0, #0FFH;  越高發(fā)聲頻率越高,越尖
MOV TH1,#3CH
MOV  TL1,#0B0H;  50ms   為一次溢出中斷
SETB  EA
SETB  ET0
SETB  ET1
SETB  EX0
SETB  EX1; 允許四個中斷,T0/T1/INT0/INT1
CLR OK
CLR RING
SETB TR1
SETB TR0;
查詢程序
START: MOV   R5,#0BH
MOV   R4,#0BH
MOV   R3,   #0BH
ACALL  DISPLAY;  未開始搶答時候顯示FFF
JB  P3.1,NEXT
ACALL   DELAY
JB  P3.1,NEXT;如果“開始鍵”按下就向下執(zhí)行,                                                             否則跳到非法搶答查詢
ACALL BARK; 按鍵發(fā)聲
MOV A,R1
MOV R6,A; 送R1到R6,因?yàn)镽1中保存了搶答時間
SETB OK;搶答標(biāo)志,用于COUNT子程序中判斷是否查詢搶                                          答
MOV R3,0AH;搶答只顯示時,滅號數(shù)
ALMP  COUNT;
NEXT: JNB  P1.0,F(xiàn)ALSE1
JNB  P1.1,F(xiàn)ALSE2
JNB  P1.2,F(xiàn)ALSE3
JNB  P1.3,F(xiàn)ALSE4
JNB  P1.4,F(xiàn)ALSE5
JNB  P1.5,F(xiàn)ALSE6
JNB  P1.6,F(xiàn)ALSE7
JNB  P1.7,F(xiàn)ALSE8
正常搶答處理程序:
TRUE1:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#01H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE2:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#02H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE3:ACALL  BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#03H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP COUNT
TURE4:ACALL  BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#04H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE5:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#05H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE6:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#06H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE7:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R7,A;   搶答時間R2送R6
MOV  R3,#02H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
TURE8:ACALL   BARK;  按鍵發(fā)聲
MOV  A,R2
MOV  R6,A;   搶答時間R2送R6
MOV  R3,#08H
CLR  OK;   因?yàn)榇痤}的計(jì)時不再查詢搶答,所以就鎖了搶答
AJMP   COUNT
MOV A,R2
MOV R6,A
MOV R3,#03#
CLR OK
AJMP COUNT
顯示程序:
MOV A,R5
MOVC A,@A+DPTR
MOV P2,#01H
MOV P0,A
ACALL DELAY
MOV DPTR,#DAT2
MOV A,R4
MOVC A,@A+DPTR
MOV P2,#02H
MOV P0,A
ACALL DELAY
MOV A,R3
MOVC A,@A+DPTR
MOV P2,#04H
MOV P0,A
ACALL DELAY
RET
DELAY1:MOV 35H,#08H
LOOPO: ACALL DISPLAY
DJNZ 35H,LOOPO
RET
發(fā)聲程序:
BARK: SETB RING
ACALL DELAY1
ACALL DELAY1
CLR RING; 按鍵發(fā)聲
RET
END

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-10-22 05:06 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表