淄博职业学院毕业设计
SETB ET1 SETB EX0 SETB EX1 CLR OK CLR RING SETB TR1 SETB TR0 非法抢答处理程序:
FALSE1: ACALL BARK MOV R3,#01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR 抢答时间调整程序:
;=====INT0(抢答时间R1调整程序)=====
29
淄博职业学院毕业设计
INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH INC0: 重新加起。 ADD0: DEC0: ACALL DISPLAY
JNB P3.2,INC0;P3.2为+1s键,如按下跳到INCO JNB P3.3,DEC0;P3.3为-1s键,如按下跳到DECO JNB P1.7,BACK0;P1.7为确定键,如按下跳到BACKO AJMP INT0SUB MOV A,R1
CJNE A,#63H,ADD0;如果不是99,R1加1,如果加到99了,R1就置0,MOV R1,#00H ACALL DELAY1 AJMP INT0SUB INC R1
ACALL DELAY1 AJMP INT0SUB MOV A,R1
JZ SETR1;如果R1为0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUB
SETR1: MOV R1,#63H
ACALL DELAY1 AJMP INT0SUB
30
淄博职业学院毕业设计
BACK0: RETI
回答时间调整程序:
;=====INT1(回答时间R2调整程序)===== INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P1.7,BACK1 AJMP INT1SUB INC1: MOV A,R2
CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB ADD1: INC R2 ACALL DELAY1 AJMP INT1SUB DEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUB SETR2: MOV R2,#63H
31
淄博职业学院毕业设计
ACALL DELAY1 AJMP INT1SUB BACK1: RETI 倒计时程序:
COUNT: MOV R0,#0000
MOV TH1,#3CH MOV TL1,#0B0H
RECOUNT:MOV A,R6;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6
MOV B,#0AH
DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H
JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0
CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECK
FULL: CJNE A,#14H,CHECK;下面系1s的情况,响并显示号数并清R0,重新计时
SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H
32
相关推荐: