|
ORG 0000H
JMP BEGIN
ORG 0030H
TABLE: ; 共陰極數(shù)碼管顯示代碼表
DB 3FH,06H,5BH,4FH,66H ;12345
DB 6DH,7DH,07H,7FH ;6789
DELAY: MOV R5,#20
LOOP4: MOV R6,#50H ;延時(shí)20X20ms
LOOP5: MOV R7,#100
DJNZ R7,$
DJNZ R6,LOOP5
DJNZ R5,LOOP4
RET
;---------------------------------------
BEGIN: MOV P2,#0FFH ;P2口置高電平,準(zhǔn)備接收信號(hào)
MOV R4,#0
MOV A,R4 ;R4位標(biāo)志值送A寄存器
AGAIN: MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
LOOP1: MOV A,P3 ; 接收p3口的搶答信號(hào)
CPL A
JZ LOOP1
LOOP2: RRC A ;有人搶答信號(hào)則逐次移動(dòng)判斷哪一位搶答
INC R4
JNC LOOP2
;********************
MOV A,R4
MOVC A,@A+DPTR ;找到相應(yīng)位顯示代碼
MOV P1,A
LEDDIS:
MOV A,#0FFH
CLR C
LEDDIS1:
RLC A
DJNZ R4,LEDDIS1
MOV P0,A
LOOP3: JNB P2.2,BEGIN ;若主持人按下復(fù)位信號(hào)鍵,則轉(zhuǎn)向主程序
CPL P2.0 ;若沒(méi)按復(fù)位信號(hào)鍵,則通過(guò)p2.2口給出高低信號(hào)驅(qū)動(dòng)蜂鳴器
LCALL DELAY ;調(diào)用延時(shí)子程序
SJMP LOOP3 ;p2.2口反復(fù)間隔0.4s變化,驅(qū)動(dòng)蜂鳴器
END
|
|