淄博职业学院毕业设计
DEC R6;一秒标志减1 AJMP CHECK LARGER: MOV A,R0
CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查\停/显示\ DEC R6;计时一秒R6自动减1 MOV R0,#00H
CHECK: JNB P1.7,QUIT;如按下停止键退出 ACALL DISPLAY
JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查
询继续倒数
AJMP RECOUNT ACCOUT:JNB P1.1,TRUE1[5] JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNT
QUIT: CLR OK;如果按下了\停止键\执行的程序 CLR RING AJMP START 正常抢答处理程序:
TRUE1: ACALL BARK;按键发声
MOV A,R2
MOV R6,A;抢答时间R2送R6 MOV R3,#01H
CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT
33
淄博职业学院毕业设计
TRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNT TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNT TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNT TRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNT TRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H
34
淄博职业学院毕业设计
CLR OK AJMP COUNT 犯规抢答程序:
ERROR: MOV R0,#00H
MOV TH1,#3CH MOV TL1,#0B0H
MOV 34H,R3;犯规号数暂存与(34H)
HERE: MOV A,R0
CJNE A,#0AH,FLASH;0.5s向下运行->灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH
MOV R5,#0AH;三灯全灭 AJMP CHECK1
FLASH: CJNE A,#14H,CHECK1;下面系1s的情况,响并显示号数并
清R0,重新计
SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH
MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1: JNB P1.7,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START
35
淄博职业学院毕业设计
显示程序:
DISPLAY:MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出
/P2低三位做位选码输出,
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
DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;\灭\灭\
DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 发声程序
BARK: SETB RING ACALL DELAY1 ACALL DELAY1
36
相关推荐: