MOV DX,ADDRESS_A MOV AL,SECOND_L OUT DX,AL
MOV DX,ADDRESS_A ;清零 MOV AL,CLEAR_1 OUT DX,AL
MOV DX,ADDRESS_B MOV AL,CLEAR_2
OUT DX,AL
XOR AX,AX
MOV AL,MINUTE ; MOV BL,10 DIV BL XOR BX,BX MOV BL,AL
MOV AL,LED_CODE+[BX] ; OUT DX,AL
MOV DX,ADDRESS_A MOV AL,MINUTE_H OUT DX,AL
MOV DX,ADDRESS_A ; MOV AL,CLEAR_1 OUT DX,AL
MOV DX,ADDRESS_B MOV AL,CLEAR_2
OUT DX,AL MOV BL,AH
MOV AL,LED_CODE+[BX] ; OUT DX,AL
MOV DX,ADDRESS_A MOV AL,MINUTE_L OUT DX,AL
MOV DX,ADDRESS_A ; MOV AL,CLEAR_1 OUT DX,AL
MOV DX,ADDRESS_B MOV AL,CLEAR_2
OUT DX,AL
XOR AX,AX ; MOV AL,O_CLOCK MOV BL,10 DIV BL XOR BX,BX MOV BL,AL
分钟显示高位 清零 低位 清零 时钟显示 20
MOV AL,LED_CODE+[BX] ;高位 OUT DX,AL
MOV DX,ADDRESS_A MOV AL,O_CLOCK_H OUT DX,AL
MOV DX,ADDRESS_A ;清零 MOV AL,CLEAR_1 OUT DX,AL
MOV DX,ADDRESS_B MOV AL,CLEAR_2
OUT DX,AL MOV BL,AH
MOV AL,LED_CODE+[BX] ; OUT DX,AL
MOV DX,ADDRESS_A MOV AL,O_CLOCK_L OUT DX,AL
MOV DX,ADDRESS_A ; MOV AL,CLEAR_1 OUT DX,AL
MOV DX,ADDRESS_B MOV AL,CLEAR_2
OUT DX,AL POP DX POP AX POP BX POPF RET
DISPLAY_TIME ENDP
ININT8255 FAR PROC ;8255 PUSH DX PUSH AX PUSHF
MOV DX,ADDRESS_CONTROL MOV AL,WORD_CONTROL8255 OUT DX,AL POPF POP AX POP DX RET
ININT8255 ENDP
ININT8253 FAR PROC ;8253 PUSH DX PUSH AX
低位 清零 芯片的初始化 芯片的初始化21
PUSHF
MOV DX,0406H MOV AL,34H OUT DX,AL MOV DX,0400H MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL POPF POP AX POP DX RET ININT8253 ENDP
INTERRUPT FAR PROC ; PUSHF PUSH AX
MOV AL,NUM_BUTTON CMP AL,0
JNBE NEXT4 MOV AL,TIME_COUNT INC AL
MOV TIME_COUNT,AL MOV AL,SECOND INC AL
MOV SECOND,AL CMP AL,60 JC NEXT1 MOV AL,0
MOV SECOND,AL MOV AL,MINUTE INC AL
MOV MINUTE,AL NEXT1: MOV AL,MINUTE CMP AL,60 JC NEXT4 MOV AL,0
MOV MINUTE,AL MOV AL,O_CLOCK INC AL
MOV O_CLOCK,AL NEXT2: MOV AL,O_CLOCK CMP AL,24 JC NEXT4
中断服务子程序22
MOV AL,0
MOV O_CLOCK,AL MOV AL,DAY INC AL
MOV DAY,AL NEXT3: MOV AL,DAY CMP AL,8 JC NEXT4 MOV AL,1 MOV DAY,AL NEXT4: POP AX POPF IRET
INTERRUPT ENDP DELAY10MS FAR PROC PUSHF PUSH CX PUSH BX MOV BX,10 LP1:MOV CX,10 LP2:LOOP LP2 DEC BX JNZ LP1 POP BX POP CX POPF RET
DELAY10MS ENDP CODE ENDS END
23