本四路搶答器主要是由AT89C2051單片機和一個共陽數碼管組成。本搶答器主要是運用單片機的有條轉移類指令(JNB bit,rel)和動態死機指令$(使程序停在此處,待命。也可稱為待機),使其達到搶答的效果。只要有一個人搶先按下其中一個搶答按鈕,其余3人再按均無作用,即單片機此時正處于動態死機狀態,只有主持人按下復位按鈕后,才能使單片機復位,才能進行下一輪的搶答。按下搶答鍵后,數碼管顯示相應的數字,同時蜂鳴器發出“滴”的響聲 。 匯編源程序如下:
ORG 0000H
CLR P3.7
MOV P1,#0C0H
L1:JNB P3.2,L2
JNB P3.3,L3
JNB P3.4,L4
JNB P3.5,L5
JMP L1
L2:MOV P1,#0F9H
ACALL DELAY1
ACALL DELAY2
SETB P3.0
JMP $
L3:MOV P1,#0A4H
ACALL DELAY1
ACALL DELAY2
SETB P3.0
JMP $
L4:MOV P1,#0B0H
ACALL DELAY1
ACALL DELAY2
SETB P3.0
JMP $
L5:MOV P1,#99H
ACALL DELAY1
ACALL DELAY2
SETB P3.0
JMP $
DELAY1:CLR P3.0
RET
DELAY2:MOV R0,#50
L6:MOV R1,#100
L7:MOV R2,#100
DJNZ R2,$
DJNZ R1,L7
DJNZ R0,L6
RET
END
注:晶振12MHZ。P3.7口為數碼管的電源端,P3.0口為蜂鳴器的接口。P1口為數碼管的段位選通端。本四路搶答器開機默認顯示“0”。 本程序已通過實踐驗證!!!
|