资源描述
2
系统模块详细设计与调试
1 在主程序中要分别对8254和8255初始化编程。
具体如下:
8254控制字:
MOV DX,PORT_8253
MOV AL,00110101B ;写入控制字,0通道,方式2
OUT DX,AL
MOV DX,PORT_0
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL
MOV DX,PORT_8253
MOV AL,01110111B ;1通道,方式3
OUT DX,AL
MOV DX,PORT_1
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL
8255控制字:
MOV DX,PORT_8255 ;8255初始化
MOV AL,80H
OUT DX,AL
程序清单与注释:
PORT_A EQU 288H
PORT_B EQU 289H
PORT_C EQU 28AH
PORT_8255 EQU 28BH
PORT_0 EQU 280H
PORT_1 EQU 281H
PORT_2 EQU 282H
PORT_8253 EQU 283H
DATA SEGMENT
; 0 1 2 3 4 5 6 7
TABLE1 DB 77H,7BH,7DH,7EH,0B7H,0BBH,0BDH,0BEH
; 8 9 A B C D E F
DB 0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEH
HZ_SEC02 DW 0A3B0H
HZ_SEC01 DW 0A3B0H
HZ_MIN02 DW 0A3B0H
HZ_MIN01 DW 0A3B0H
HZ_HOU02 DW 0A3B0H
HZ_HOU01 DW 0A3B0H
HZ_TIM DW 0A1C3H ;符号":"
HZ_SYM DW 0A1C3H
HZ_YEAR02 DW 0A3B0H
HZ_YEAR01 DW 0A3B0H
HZ_MON02 DW 0A3B1H
HZ_MON01 DW 0A3B0H
HZ_DAY02 DW 0A3B1H
HZ_DAY01 DW 0A3B0H
HZ_DATE DW 0A3AFH
HZ_WEEK DW 0A3B6H
HZ_WEEK01 DW 0D0C7H ;字体"星"
HZ_WEEK02 DW 0C6DAH ;字体"期"
HZ_X DW 0A1EFH ;符号"★"
HZ_W DW 0CDF2H ;字体"万"
HZ_N DW 0C4EAH ;字体"年"
HZ_R DW 0C8D5H ;字体"日"
HZ_L DW 0C0FAH ;字体"历"
HZ_ADR DB ?
DATA ENDS
STACK1 SEGMENT STACK
DW 50 DUP (0)
TOP_STAC LABEL WORD
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,STACK1
MOV SS,AX
LEA SP,TOP_STAC
MOV AX,DATA
MOV DS,AX
MOV DX,PORT_8255 ;8255初始化
MOV AL,80H
OUT DX,AL
CALL CLEAR ;LCD清除
CALL FUCTION_A ;日期显示
;8253的编程
MOV DX,PORT_8253
MOV AL,00110101B ;写入控制字,0通道,方式2
OUT DX,AL
MOV DX,PORT_0
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL
MOV DX,PORT_8253
MOV AL,01110111B;1通道,方式3
OUT DX,AL
MOV DX,PORT_1
MOV AL,00H
OUT DX,AL
MOV AL,10H
OUT DX,AL
MAIN:
LP:
MOV DX,PORT_C
TEST DX,10H ;检测B口是否有1秒脉冲
JNZ LP
TEST DX,00H
JNZ LP
INC HZ_SEC02 ;秒的个位加一
;判断是否有键按下
MOV DX,PORT_8255
MOV AL,10001010B;A口输出B口输入C口低四位输出,高四位输入
OUT DX,AL
MOV DX,PORT_A ;A口为行,向所有的行输出0
MOV AL,00H
OUT DX,AL
MOV DX,PORT_B
RET_TO_1:
MOV AL,0FEH
MOV CL,AL
NEXT_ROW_1:
MOV DX,PORT_A
OUT DX,AL
MOV DX,PORT_B
IN AL,DX
AND AL,0FH
CMP AL,0FH ;判断是否有键按下
JNE JP_1
CMP CL,0EFH
JE FUC
ROL CL,01
MOV AL,CL
JMP NEXT_ROW_1
JP_1: CALL JP
FUC: CALL FUCTION_00 ;时间的进位
CALL FUCTION_01 ;日期的进位
CALL FUCTION_02 ;星期的进位
CALL FUCTION_A ;日期显示
JMP MAIN
FUCTION_00 PROC
CMP HZ_SEC02,0A3BAH;判断是否为十,是跳转到秒进位子程序JE TIM_NEXT_01
RET
TIM_NEXT_01:
INC HZ_SEC01 ;秒的十位加一
MOV HZ_SEC02,0A3B0H ;个位置零
CMP HZ_SEC01,0A3B6H ;判断是否为六,是跳转
JE TIM_NEXT_02
RET
TIM_NEXT_02:
INC HZ_MIN02 ;分的个位加一
MOV HZ_SEC01,0A3B0H
CMP HZ_MIN02,0A3BAH ;判断是否为十,是跳转
JE TIM_NEXT_03
RET
TIM_NEXT_03:
INC HZ_MIN01 ;分的十位加一
MOV HZ_MIN02,0A3B0H
CMP HZ_MIN01,0A3B6H ;判断是否大于六,是跳转
JE TIM_NEXT_04
RET
TIM_NEXT_04:
INC HZ_HOU02 ;时的十位加一
MOV HZ_MIN01,0A3B0H
CMP HZ_HOU01,0A3B2H ;判断是否为二,是跳转
JE TIM_NEXT_05
JMP TIM_NEXT_07
TIM_NEXT_05:
CMP HZ_HOU02,0A3B4H ;判断时的个位是否为四,是跳转JE TIM_NEXT_06
JMP TIM_NEXT_07
TIM_NEXT_06:
MOV HZ_HOU01,0A3B0H
MOV HZ_HOU02,0A3B0H
INC HZ_DAY02 ;日期加一
INC HZ_WEEK ;星期加一
RET
TIM_NEXT_07:
CMP HZ_HOU02,0A3BAH ;判断时的个位是否为十,是跳转JE TIM_NEXT_08
RET
TIM_NEXT_08:
INC HZ_HOU01 ;(个位为十)十位加一,个位置零
MOV HZ_HOU02,0A3B0H
RET
FUCTION_00 ENDP
FUCTION_01 PROC
CALL CMP_MON
CALL MON_COUNT
CALL YEAR_WALK
RET
FUCTION_01 ENDP
CMP_MON PROC
CMP HZ_MON01,0A3B0H ;判断是否是个位的月份
JE MON01_EQU_0
JMP MON01_EQU_1
MON01_EQU_0:
CMP HZ_MON02,0A3B1H ;一月
JE GO_TO_31
CMP HZ_MON02,0A3B2H ;二月
JE GO_TO_2MON
CMP HZ_MON02,0A3B3H ;三月
JE GO_TO_31
CMP HZ_MON02,0A3B4H ;四月
JE GO_TO_30
CMP HZ_MON02,0A3B5H ;五月
JE GO_TO_31
CMP HZ_MON02,0A3B6H ;六月
JE GO_TO_30
CMP HZ_MON02,0A3B7H ;七月
JE GO_TO_31
CMP HZ_MON02,0A3B8H ;八月
JE GO_TO_31
CMP HZ_MON02,0A3B9H ;九月
JE GO_TO_30
MON01_EQU_1:
CMP HZ_MON02,0A3B0H ;十月
JE GO_TO_31
CMP HZ_MON02,0A3B1H ;十一月
JE GO_TO_30
CMP HZ_MON02,0A3B2H ;十二月
JE GO_TO_31
GO_TO_31:
CALL COUNT_31 ;31天的子程序
JMP TO_END
GO_TO_30:
CALL COUNT_30 ;30天的子程序
JMP TO_END
GO_TO_2MON:
CALL MON_2_COUNT ;二月的子程序
JMP TO_END
TO_END:
RET
CMP_MON ENDP
COUNT_28 PROC
CMP HZ_DAY01,0A3B2H ;判断天十位是否为2,是跳转
JE NEXT_28_01
JMP NEXT_28_03
NEXT_28_01:
CMP HZ_DAY02,0A3B9H ;判断天个位是否为9,是跳转JE NEXT_28_02
JMP NEXT_28_03
NEXT_28_02:
MOV HZ_DAY01,0A3B0H
MOV HZ_DAY02,0A3B1H
INC HZ_MON02 ;月加一
NEXT_28_03:
CMP HZ_DAY02,0A3BAH
JE NEXT_28_04
RET
NEXT_28_04:
MOV HZ_DAY02,0A3B0H
INC HZ_DAY01
RET
COUNT_28 ENDP
COUNT_29 PROC
CMP HZ_DAY01,0A3B2H ;判断天十位是否为2,是跳转JE NEXT_29_01
JMP NEXT_29_03
NEXT_29_01:
CMP HZ_DAY02,0A3BAH ;判断天个位是否为A,是跳转JE NEXT_29_02
JMP NEXT_29_03
NEXT_29_02:
MOV HZ_DAY01,0A3B0H
MOV HZ_DAY02,0A3B1H
INC HZ_MON02 ;月加一
NEXT_29_03:
CMP HZ_DAY02,0A3BAH
JE NEXT_29_04
RET
NEXT_29_04:
MOV HZ_DAY02,0A3B0H
INC HZ_DAY01
RET
COUNT_29 ENDP
COUNT_30 PROC
CMP HZ_DAY01,0A3B3H;判断天十位是否为3,是跳转JE NEXT_30_01
JMP NEXT_30_03
NEXT_30_01:
CMP HZ_DAY02,0A3B1H ;判断天个位是否为1,是跳转
JE NEXT_30_02
JMP NEXT_30_03
NEXT_30_02:
MOV HZ_DAY01,0A3B0H
MOV HZ_DAY02,0A3B1H
INC HZ_MON02 ;月加一
NEXT_30_03:
CMP HZ_DAY02,0A3BAH
JE NEXT_30_04
RET
NEXT_30_04:
MOV HZ_DAY02,0A3B0H
INC HZ_DAY01
RET
COUNT_30 ENDP
COUNT_31 PROC
CMP HZ_DAY01,0A3B3H ;判断天十位是否为3,是跳转
JE NEXT_31_01
JMP NEXT_31_03
NEXT_31_01:
CMP HZ_DAY02,0A3B2H;判断天个位是否为2,是跳转
JE NEXT_31_02
JMP NEXT_31_03
NEXT_31_02:
MOV HZ_DAY01,0A3B0H ;置天数为01
MOV HZ_DAY02,0A3B1H
INC HZ_MON02 ;月份加一 RET
NEXT_31_03:
CMP HZ_DAY02,0A3BAH ;个位是否为十,是跳转
JE NEXT_31_04
RET
NEXT_31_04:
MOV HZ_DAY02,0A3B0H ;个位置零,十位加一
INC HZ_DAY01
RET
COUNT_31 ENDP
MON_2_COUNT PROC
MOV AX, HZ_YEAR01 ;判断是否是闰年
AND AX,01H
MOV CX,0AH
MUL CX
MOV BX,HZ_YEAR02
AND BX,01H
ADD AX,BX
MOV DX,00H
MOV BX,04H
DIV BX
CMP DX,0
JE GO_TO_29
JMP GO_TO_28
GO_TO_29:
CALL COUNT_29 ;29天的子程序
GO_TO_28:
CALL COUNT_28
MON_2_COUNT ENDP
YEAR_PANDUAN PROC
MOV AX, HZ_YEAR01
MOV CX,0AH
MUL CX
ADD AX,HZ_YEAR02
MOV DX,00H
MOV BX,04H
DIV BX
CMP DX,0
RET
YEAR_PANDUAN ENDP
MON_COUNT PROC
CMP HZ_MON01,0A3B1H ;判断月的十位是否为一
JE MON_NEXT_01
JMP MON_NEXT_03
MON_NEXT_01:
CMP HZ_MON02,0A3B3H
JE MON_NEXT_02
JMP MON_NEXT_03
MON_NEXT_02:
MOV HZ_MON01,0A3B0H
MOV HZ_MON02,0A3B1H
INC HZ_YEAR02
RET
MON_NEXT_03:
CMP HZ_MON02,0A3BAH
JE MON_NEXT_04
RET
MON_NEXT_04:
MOV HZ_MON02,0A3B0H
INC HZ_MON01
RET
MON_COUNT ENDP
YEAR_WALK PROC
CMP HZ_YEAR02,0A3BAH
JE YEAR_NEXT_01
RET
YEAR_NEXT_01:
MOV HZ_YEAR02,0A3B0H
INC HZ_YEAR01
RET
YEAR_WALK ENDP
FUCTION_02 PROC
CMP HZ_WEEK,0A3B8H ;是否大于7,大于跳转
JE WEEK_NEXT01
JMP WEEK_END
WEEK_NEXT01:
MOV HZ_WEEK,0A3B1H ;置一
JMP WEEK_END
WEEK_END:
RET
FUCTION_02 ENDP
FUCTION_A PROC
;万年历显示80H~87H LEA BX,HZ_X
MOV BYTE PTR HZ_ADR,81H
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,86H
CALL LCD_DISP
LEA BX,HZ_W
MOV BYTE PTR HZ_ADR,82H
CALL LCD_DISP
LEA BX,HZ_N
MOV BYTE PTR HZ_ADR,83H
CALL LCD_DISP
LEA BX,HZ_R
MOV BYTE PTR HZ_ADR,84H
CALL LCD_DISP
LEA BX,HZ_L
MOV BYTE PTR HZ_ADR,85H
CALL LCD_DISP
;日期显示,第二行90H~97H
LEA BX,HZ_DATE
MOV BYTE PTR HZ_ADR,92H
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,95H
CALL LCD_DISP
LEA BX,HZ_DAY02
MOV BYTE PTR HZ_ADR,97H
CALL LCD_DISP
LEA BX,HZ_DAY01
MOV BYTE PTR HZ_ADR,96H
CALL LCD_DISP
LEA BX,HZ_MON02
MOV BYTE PTR HZ_ADR,94H
CALL LCD_DISP
LEA BX,HZ_MON01
MOV BYTE PTR HZ_ADR,93H
CALL LCD_DISP
LEA BX,HZ_YEAR02
MOV BYTE PTR HZ_ADR,91H
CALL LCD_DISP
LEA BX,HZ_YEAR01
MOV BYTE PTR HZ_ADR,90H
CALL LCD_DISP
;时间显示,第三行88~8F
LEA BX,HZ_TIM
MOV BYTE PTR HZ_ADR,8AH
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,8DH
CALL LCD_DISP
LEA BX,HZ_SEC02
MOV BYTE PTR HZ_ADR,8FH
CALL LCD_DISP
LEA BX,HZ_SEC01
MOV BYTE PTR HZ_ADR,8EH
CALL LCD_DISP
LEA BX,HZ_MIN02
MOV BYTE PTR HZ_ADR,8CH
CALL LCD_DISP
LEA BX,HZ_MIN01
MOV BYTE PTR HZ_ADR,8BH
CALL LCD_DISP
LEA BX,HZ_HOU02
MOV BYTE PTR HZ_ADR,89H
CALL LCD_DISP
LEA BX,HZ_HOU01
MOV BYTE PTR HZ_ADR,88H
CALL LCD_DISP
;星期显示,第四行98~9F
LEA BX,HZ_WEEK01
MOV BYTE PTR HZ_ADR,9AH
CALL LCD_DISP
LEA BX,HZ_WEEK02
MOV BYTE PTR HZ_ADR,9BH
CALL LCD_DISP
LEA BX,HZ_WEEK
MOV BYTE PTR HZ_ADR,9CH
CALL LCD_DISP
RET
FUCTION_A ENDP
CLEAR PROC
MOV AL,0CH
MOV DX,PORT_A
OUT DX,AL
CALL CMD_SETUP
RET
CLEAR ENDP
LCD_DISP PROC
PUSH CX
MOV AL,HZ_ADR
MOV DX,PORT_A
OUT DX,AL
CALL CMD_SETUP
MOV AX,[BX]
PUSH AX
MOV AL,AH
MOV DX,PORT_A
OUT DX,AL
CALL DATA_SETUP
CALL DELAY
POP AX
MOV DX,PORT_A
OUT DX,AL
CALL DATA_SETUP
CALL DELAY
POP CX
RET
LCD_DISP ENDP
CMD_SETUP PROC
MOV DX,PORT_C
NOP
MOV AL,00000000B ;PC6置0,pc4置0 (LCD I端=0,W端=0)
OUT DX,AL
CALL DELAY
NOP
MOV AL,01000000B ;PC6置1 (LCD E端=1)
OUT DX,AL
NOP
CALL DELAY
MOV AL,00000000B ;PC6置0,(LCD E端置0)
OUT DX,AL
CALL DELAY
RET
CMD_SETUP ENDP
DATA_SETUP PROC
MOV DX,PORT_C ;PORT_A?
MOV AL,00010000B ;PC5置0,PC4=1 (LCD I端=1)
OUT DX,AL
NOP
CALL DELAY
MOV AL,01010000B ;PC6置1 (LCD E端=1)
OUT DX,AL
NOP
CALL DELAY
MOV AL,00010000B ;PC6置0,(LCD E端=0)
OUT DX,AL
NOP
CALL DELAY
RET
DATA_SETUP ENDP
DELAY PROC
PUSH CX
PUSH DX
MOV CX,0FFFFH
X1:
LOOP X1
POP DX
POP CX
RET
DELAY ENDP
DELAY_SEC PROC NEAR ;软延时
MOV BX,250
L1:MOV CX,0
L2:LOOP L2
DEC BX
JNE L1
RET
;L1: MOV DX,PORT_A
; IN AL,DX
; AND AL,80H
; CMP AL,00H 判断是否为低电平,不是则循环 ; JE L2
; JMP L1 ;L2: RET
DELAY_SEC ENDP
JP PROC
JP_START:
MOV DX,PORT_8255
MOV AL,10001010B;A口输出B口输入C口低四位输出,高四位输入
OUT DX,AL
;万年历显示80H~87H
LEA BX,HZ_X
MOV BYTE PTR HZ_ADR,81H
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,86H
CALL LCD_DISP
LEA BX,HZ_W
MOV BYTE PTR HZ_ADR,82H
CALL LCD_DISP
LEA BX,HZ_N
MOV BYTE PTR HZ_ADR,83H
CALL LCD_DISP
LEA BX,HZ_R
MOV BYTE PTR HZ_ADR,84H
CALL LCD_DISP
LEA BX,HZ_L
MOV BYTE PTR HZ_ADR,85H
CALL LCD_DISP
;日期显示
LEA BX,HZ_DATE
MOV BYTE PTR HZ_ADR,92H
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,95H
CALL LCD_DISP
LEA BX,HZ_DAY02
MOV BYTE PTR HZ_ADR,97H
CALL LCD_DISP
LEA BX,HZ_DAY01
MOV BYTE PTR HZ_ADR,96H
CALL LCD_DISP
LEA BX,HZ_MON02
MOV BYTE PTR HZ_ADR,94H
CALL LCD_DISP
LEA BX,HZ_MON01
MOV BYTE PTR HZ_ADR,93H
CALL LCD_DISP
LEA BX,HZ_YEAR02
MOV BYTE PTR HZ_ADR,91H
CALL LCD_DISP
LEA BX,HZ_YEAR01
MOV BYTE PTR HZ_ADR,90H
CALL LCD_DISP
;显示初始时钟
CALL CLEAR
LEA BX,HZ_SYM
MOV BYTE PTR HZ_ADR,8AH
CALL LCD_DISP
MOV BYTE PTR HZ_ADR,8DH
CALL LCD_DISP
LEA BX,HZ_HOU01
MOV BYTE PTR HZ_ADR,88H
CALL LCD_DISP
LEA BX,HZ_HOU02
MOV BYTE PTR HZ_ADR,89H
CALL LCD_DISP
LEA BX,HZ_MIN01
MOV BYTE PTR HZ_ADR,8BH
CALL LCD_DISP
LEA BX,HZ_MIN02
MOV BYTE PTR HZ_ADR,8CH
CALL LCD_DISP
LEA BX,HZ_SEC01
MOV BYTE PTR HZ_ADR,8EH
CALL LCD_DISP
LEA BX,HZ_SEC02
MOV BYTE PTR HZ_ADR,8FH
CALL LCD_DISP
;星期显示
LEA BX,HZ_WEEK01
MOV BYTE PTR HZ_ADR,9AH
CALL LCD_DISP
LEA BX,HZ_WEEK02
MOV BYTE PTR HZ_ADR,9BH
CALL LCD_DISP
LEA BX,HZ_WEEK
MOV BYTE PTR HZ_ADR,9CH
CALL LCD_DISP ;显示完成
MOV DX,PORT_A ;A口为行,向所有的行输出0
MOV AL,00H
OUT DX,AL
MOV DX,PORT_B
RET_TO:
MOV AL,0FEH
MOV CL,AL
NEXT_ROW:
MOV DX,PORT_A
OUT DX,AL
MOV DX,PORT_B
IN AL,DX
AND AL,0FH
CMP AL,0FH ;判断是否有键按下 JNE ENCODE
CMP CL,0EFH ;判断是否(四行)每一行都检测完,都检查完,返回主程序
JE RET_TO
ROL CL,01
MOV AL,CL
JMP NEXT_ROW
ENCODE:
MOV BX,000FH
IN AL,DX
NEXT_TRY:
CMP AL,TABLE1[BX]
JE DONE
DEC BX
JNS NEXT_TRY
MOV AH,01
JMP EXIT
DONE: ;完成加减功能
CMP BX,0000H ;按键0
JE HOU_A
CMP BX,0004H ;按键4
JE HOU_M
CMP BX,0001H ;按键1
JE MIN_A
CMP BX,0005H ;按键5
JE MIN_M
CMP BX,0002H ;按键2
JE SEC_A
CMP BX,0006H ;按键6
JE SEC_M
CMP BX,000AH ;按键A
JE DAY_A
CMP BX,000EH ;按键E
JE DAY_M
CMP BX,0009H ;按键9
JE MON_A
CMP BX,000DH ;按键D
JE MON_M
CMP BX,0008H ;按键8
JE YEAR_A
CMP BX,000CH ;按键C
JE YEAR_M
CMP BX,000BH ;按键B
JE TZ_START
CMP BX,000FH ;按键F
JE TZ_END
CMP BX,0003H ;按键3
JE WEEK_A
CMP BX,0007H ;按键7
JE WEEK_M
JMP EXIT
TZ_START: ;有B按键按下,则停止时间跳动,等待下一个按键按下
JMP RET_TO
TZ_END: ;有F按键按下,则停止等待按键,返回时间跳动
JMP EXIT_END
HOU_A:
INC HZ_HOU02 ;时加
;JMP START
JMP CMP_HOU_A
HOU_M:
DEC HZ_HOU02 ;时减
;JMP START
JMP CMP_HOU_M
MIN_A:
INC HZ_MIN02 ;分加
JMP CMP_MIN_A
MIN_M:
DEC HZ_MIN02 ;分减
JMP CMP_MIN_M
SEC_A:
INC HZ_SEC02 ;秒加
;JMP START
JMP CMP_SEC_A
SEC_M:
DEC HZ_SEC02 ;秒减
JMP CMP_SEC_M
DAY_A:
INC HZ_DAY02 ;天加
JMP CMP_DAY_A
DAY_M:
DEC HZ_DAY02 ;天减
JMP CMP_DAY_M
MON_A:
INC HZ_MON02 ;月加
JMP CMP_MON_A
MON_M:
DEC HZ_MON02 ;月减
JMP CMP_MON_M
YEAR_A:
INC HZ_YEAR02 ;年加
JMP CMP_YEAR_A
YEAR_M:
DEC HZ_YEAR02 ;年减
JMP CMP_YEAR_M
WEEK_A:
INC HZ_WEEK ;星期加
JMP CMP_WEEK_A
WEEK_M:
DEC HZ_WEEK ;星期减
JMP CMP_WEEK_M
CMP_HOU_A:
CMP HZ_HOU01,0A3B2H ;判断时十位是否为2,是跳转
JE HOU_NEXT_01
CMP HZ_HOU02,0A3BAH ;判断时个位是否为10,是跳转
JE HOU_NEXT_03
JMP EXIT
HOU_NEXT_01:
CMP HZ_HOU02,0A3B4H ;判断(十位为2)时个位是否为5,跳转
JE HOU_NEXT_02
JMP EXIT
HOU_NEXT_02:
MOV HZ_HOU01,0A3B0H ;时置零
MOV HZ_HOU02,0A3B0H
JMP EXIT
HOU_NEXT_03:
MOV HZ_HOU02,0A3B0H ;(十位不为2)时个位置零,十位加一
INC HZ_HOU01
JMP EXIT
CMP_HOU_M:
CMP HZ_HOU02,0
展开阅读全文