科技职业学院信息技术系 电子信息工程技术专业毕业设计
FULL: CJNE A,#14H,CHECK;下面系1s的情况,响并显示号数并清R0,重新计时 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H 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 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
32
科技职业学院信息技术系 电子信息工程技术专业毕业设计
MOV R3,#01H
CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT 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
33
科技职业学院信息技术系 电子信息工程技术专业毕业设计
MOV R3,#06H 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 ;=====显示程序=====
;入口参数:R5,R4,R3存入的分别为第一,二,三为数码所显示的位码
34
科技职业学院信息技术系 电子信息工程技术专业毕业设计
;出口参数:无
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 ;第一个为零,其他与上相同,因为十位如果为零显示熄灭 ;====加减时间延时(起到不会按下就加N个数)====== DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET
;=====延时(显示和去抖动用到)=====
35
科技职业学院信息技术系 电子信息工程技术专业毕业设计
DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET
;=====发声程序===== BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声 RET
;=====TO溢出中断(响铃程序)===== T0INT:MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT
CPL P3.6 ;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音
OUT:RETI
;=====T1溢出中断(计时程序)===== T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END
36
温州科技职业学院信息技术系 计算机应用技术(电子信息工程技术)专业毕业设计
附录二
仿真图
34