📄 004.asm
字号:
MOV 1FH, DPL ;传送 1FH,DPL
MOV 2AH, #248 ;传送 2AH,立即数248
RET ;子程序返回
Y13: CJNE A, #04H, Y14 ;比较-不等转移 寄存器A,立即数04H,
MOV DPTR, #Prog4 ;传送 DPTR,立即数Prog4
MOV 2BH, DPH ;传送 2BH,DPH
MOV 1FH, DPL ;传送 1FH,DPL
MOV 2AH, #110 ;传送 2AH,立即数110
RET ;子程序返回
Y14: CJNE A, #05H, Y15 ;比较-不等转移 寄存器A,立即数05H,
MOV DPTR, #Prog5 ;传送 DPTR,立即数Prog5
MOV 2BH, DPH ;传送 2BH,DPH
MOV 1FH, DPL ;传送 1FH,DPL
MOV 2AH, #71 ;传送 2AH,立即数71
RET ;子程序返回
Y15: MOV DPTR, #Prog6 ;传送 DPTR,立即数Prog6
MOV 2BH, DPH ;传送 2BH,DPH
MOV 1FH, DPL ;传送 1FH,DPL
MOV 2AH, #236 ;传送 2AH,立即数236
RET ;子程序返回
SPDISP: MOV A, 37H ;速度数码管显示=========================== 传送 寄存器A,37H
MOV B, #10 ;传送 B,立即数10
DIV AB ;无符号除法 AB
MOV 30H, B ;传送 30H,B
MOV 31H, A ;传送 31H,寄存器A
MOV DPTR, #Digital ;传送 DPTR,立即数Digital
MOV A, 30H ;传送 寄存器A,30H
MOVC A, @A+DPTR ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
MOV 30H, A ;传送 30H,寄存器A
MOV A, 31H ;传送 寄存器A,31H
MOVC A, @A+DPTR ;程序存储器-读 寄存器A,A+DPTR指向的单元的内容
MOV 31H, A ;传送 31H,寄存器A
MOV 32H, #08CH ;传送 32H,立即数08CH
MOV 33H, #092H ;传送 33H,立即数092H
SETB 2FH.0 ;位-置1 2FH.0
RET ;子程序返回
TIME0: PUSH ACC ;定时器0主程序============================= 入栈 ACC,
PUSH PSW ;入栈 PSW
MOV TH0, #0FFH ;传送 TH0,立即数0FFH
MOV TL0, #30H ;传送 TL0,立即数30H
MOV A, 27H ;传送 寄存器A,27H
JZ L0 ;寄存器为0转移 L0
MOV A, R6 ;传送 寄存器A,通用寄存器6
JZ S1 ;寄存器为0转移 S1
DJNZ 29H, L0 ;减一不为0转移 29H,L0
DEC R6 ;减1 通用寄存器6
MOV 29H, 1DH ;传送 29H,1DH
L0: JNB 2FH.0, S0 ;位为0转移到 2FH.0,S0
DJNZ 16H, S0 ;减一不为0转移 16H,S0
MOV 16H, 1CH ;传送 16H,1CH
DEC R4 ;减1 通用寄存器4
MOV A, R4 ;传送 寄存器A,通用寄存器4
JNZ S0 ;寄存器不为0转移 S0
MOV R4, 1EH ;传送 通用寄存器4,1EH
ACALL PROGDMX ;绝对调用 PROGDMX
JMP S0 ;间接转移到 S0
S0: MOV A, 21H ;传送 寄存器A,21H
JZ S5 ;寄存器为0转移 S5
DEC 21H ;减1 21H
DEC 20H ;减1 20H
MOV P1, 22H ;传送 接口1,22H
AJMP S8 ;绝对转移 S8
S1: MOV A, 21H ;传送 寄存器A,21H
JNZ S2 ;寄存器不为0转移 S2
AJMP S3 ;绝对转移 S3
S2: DEC 21H ;减1 21H
S3: DJNZ 29H, S5 ;减一不为0转移 29H,S5
DEC R5 ;减1 通用寄存器5
MOV 29H, 1DH ;传送 29H,1DH
MOV A, R5 ;传送 寄存器A,通用寄存器5
JZ S7 ;寄存器为0转移 S7,
S5: MOV A, 20H ;传送 寄存器A,20H
JZ S6 ;寄存器为0转移 S6
DEC 20H ;减1 20H
MOV P1, #00H ;传送 接口1,立即数00H
MOV A, 20H ;传送 寄存器A,20H
JZ S6 ;寄存器为0转移 S6
AJMP S8 ;绝对转移 S8
S6: MOV 21H, R7 ;传送 21H,通用寄存器7
MOV 20H, 17H ;传送 20H,17H
AJMP S8 ;绝对转移 S8
S7: MOV R6, 28H ;传送 通用寄存器6,28H
MOV R5, 28H ;传送 通用寄存器5,28H
AJMP S5 ;绝对转移 S5
S8: DJNZ 23H, S9 ;减一不为0转移 23H,S9
MOV 23H, #25 ;传送 23H,立即数25
ACALL LEDSCAN ;绝对调用 LEDSCAN
S9: POP PSW ;出栈 PSW
POP ACC ;出栈 ACC,
RETI ;中断返回
TIME1: PUSH ACC ;定时器1程序============================= 入栈 ACC,
PUSH PSW ;入栈 PSW,
MOV TH1, #0FFH ;传送 TH1,立即数0FFH
MOV TL1, #30H ;传送 TL1,立即数30H
MOV A, 27H ;传送 寄存器A,27H
JZ U0 ;寄存器为0转移 U0
MOV A, R6 ;传送 寄存器A,R6
JZ U8 ;寄存器为0转移 U8
DJNZ 29H, U0 ;减一不为0转移 29H,U0
DEC R6 ;减1 通用寄存器6
MOV 29H, 1DH ;传送 29H,1DH
U0: MOV A, 0BH ;传送 寄存器A,0BH
JZ U1 ;寄存器为0转移 U1
DEC 0BH ;减1 0BH
SETB P1.0 ;位-置1 接口1第0位
SETB P1.3 ;位-置1 接口1第3位
AJMP U2 ;绝对转移 U2
U1: CLR P1.0 ;清0 接口1第0位
CLR P1.3 ;清0 接口1第3位
U2: MOV A, 0CH ;传送 寄存器A,0CH
JZ U3 ;寄存器为0转移 U3
DEC 0CH ;减1 0CH
SETB P1.1 ;位-置1 接口1第1位
SETB P1.4 ;位-置1 接口1第4位
AJMP U4 ;绝对转移 U4
U3: CLR P1.1 ;清0 接口1第1位
CLR P1.4 ;清0 接口1第4位
U4: MOV A, 0DH ;传送 寄存器A,0DH
JZ U5 ;寄存器为0转移 U5
DEC 0DH ;减1 0DH
SETB P1.2 ;位-置1 接口1第2位
SETB P1.5 ;位-置1 接口1第5位
AJMP U6 ;绝对转移 U6
U5: CLR P1.2 ;清0 接口1第2位
CLR P1.5 ;清0 接口1第5位
U6: DEC 20H ;减1 20H
MOV A, 20H ;传送 寄存器A,20H
JZ U7 ;寄存器为0转移 U7
AJMP U13 ;绝对转移 U13
U7: MOV 20H, 17H ;传送 20H,17H
MOV 0BH, 08H ;传送 0BH,08H
MOV 0CH, 09H ;传送 0CH,09H
MOV 0DH, 0AH ;传送 0DH,0AH
AJMP U13 ;绝对转移 U13
U8: MOV A, 0BH ;传送 寄存器A,0BH
JZ U9 ;寄存器为0转移 U9
DEC 0BH ;减1 0BH
U9: MOV A, 0CH ;传送 寄存器A,0CH
JZ U10 ;寄存器为0转移 U10
DEC 0CH ;减1 0CH
U10: MOV A, 0DH ;传送 寄存器A,0DH
JZ U11 ;寄存器为0转移 U11
DEC 0DH ;减1 0DH
U11: DJNZ 29H, UU ;减一不为0转移 29H,UU
DEC R5 ;减1 通用寄存器5
MOV 29H, 1DH ;传送 29H,1DH
MOV A, R5 ;传送 寄存器A,通用寄存器5
JZ U12 ;寄存器为0转移 U12
UU: DEC 20H ;减1 20H
MOV P1, #00H ;传送 接口1,立即数00H
MOV A, 20H ;传送 寄存器A,20H
JZ U7 ;寄存器为0转移 U7
AJMP U13 ;绝对转移 U13
U12: MOV A, 28H ;传送 寄存器A,28H
MOV B, #3 ;传送 B,立即数3
MUL AB ;两数相乘 AB
MOV R5, A ;传送 通用寄存器5,A
MOV R6, 28H ;传送 通用寄存器6,28H
JMP UU ;间接转移到 UU
U13: JNB 2FH.1, U14 ;位为0转移到 2FH.1,U14
DJNZ 23H, U14 ;减一不为0转移 23H,U14
MOV 23H, #25 ;传送 23H,立即数25
ACALL LEDSCAN ;绝对调用 LEDSCAN
U14: POP PSW ;出栈 PSW
POP ACC ;出栈 ACC
RETI ;中断返回
MENU: PUSH ACC ;菜单选择中断程序============================== 入栈 ACC,
PUSH PSW ;入栈 PSW,
ACALL DELAY ;绝对调用 DELAY
JNB P3.2, $ ;位为0转移到 接口3第2位,到本行
ACALL DELAY ;绝对调用 DELAY
CLR 2FH.0 ;清0 2FH.0,
CLR 2FH.1 ;清0 2FH.1
SETB TR0 ;位-置1 TR0
CLR TR1 ;清0 TR1
MOV 36H, #01H ;传送 36H,立即数01H
INC 38H ;加1 38H
MOV A, #06H ;传送 寄存器A,立即数06H
CJNE A, 38H, K8 ;比较-不等转移 寄存器A,38H,
MOV 38H, #00H ;传送 38H,立即数00H
K8: MOV A, 38H ;传送 寄存器A,38H
CJNE A, #00H, K9 ;比较-不等转移 寄存器A,立即数00H,
MOV 22H, #00H ;传送 22H,立即数00H
AJMP K19 ;绝对转移 K19
K9: CJNE A, #01H, K15 ;比较-不等转移 寄存器A,立即数01H,
MOV R7, 2CH ;传送 通用寄存器7,2CH
ACALL ALDISP ;绝对调用 ALDISP
AJMP K19 ;绝对转移 K19
K15: CJNE A, #02H, K16 ;比较-不等转移 寄存器A,立即数02H,
ACALL FLDISP ;绝对调用 FLDISP
AJMP K19 ;绝对转移 K19
K16: CJNE A, #03H, K17 ;比较-不等转移 寄存器A,立即数03H,
ACALL PRDISP ;绝对调用 PRDISP
AJMP K19 ;绝对转移 K19
K17: CJNE A, #04H, K18 ;比较-不等转移 寄存器A,立即数04H,
ACALL SPDISP ;绝对调用 SPDISP
AJMP K19 ;绝对转移 K19
K18: CLR TR0 ;清0 TR0
SETB TR1 ;位-置1 TR1
SETB 2FH.1 ;位-置1 2FH.1
MOV 30H, #088H ;传送 30H,立即数088H
MOV 31H, #0C7H ;传送 31H,立即数0C7H
MOV 32H, #0C0H ;传送 32H,立即数0C0H
MOV 33H, #0C6H ;传送 33H,立即数0C6H
K19: POP PSW ;出栈 PSW
POP ACC ;出栈 ACC
RETI ;中断返回
RedUP: INC 08H ;加1 08H
MOV A, #100 ;传送 寄存器A,立即数100
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -