📄 语音静态显示led104.asm
字号:
SJMP WEI1
WEI15:MOV A,R2
MOV R0,A
LCALL LIGHT
RET ;返回调用程序
WEI1:MOV A,R2
MOV R0,A
WEI2:DEC R0 ;扫描进位
MOV A,@R0
XRL A,#0AH
JZ WEI3
WEI4: CJNE R0,#30H,WEI2
SJMP WEI15
WEI3: MOV @R0,#00H
DEC R0
INC @R0
INC R0
SJMP WEI4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG2: SETB P3.3
JNB P3.3,SAMSUNG2 ;防止按下数据输入键不放
MOV A,R2
MOV R0,A
EN: DEC R0 ;先对个位减1处理
DEC @R0
SJMP EN1
EN5:MOV A,R2
MOV R0,A
LCALL LIGHT
RET ;返回调用程序
EN1: MOV A,R2 ;;扫描借位
MOV R0,A
EN2: DEC R0
MOV A,@R0
XRL A,#0FFH
JZ EN3
EN4:CJNE R0,#30H,EN2
SJMP EN5
EN3: MOV @R0,#09H
DEC R0
DEC @R0
MOV A,@R0
XRL A,#0FFH
JZ EN11
EN16: INC R0
SJMP EN4
EN11: DEC R0 ;;扫描它的高位是否都为0位
MOV A,@R0
XRL A,#00H
JNZ EN16
CJNE R0,#30H,EN17
EN17: MOV A,R2
MOV R0,A
EN18: DEC R0
MOV @R0,#00H
CJNE R0,#30H,EN18
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG3: SETB P3.3
JNB P3.3,SAMSUNG3 ;防止按下位选择键输入键不放
YU: ;;;;;;;;;;;MOV R4,#03H ;使用到R6;;;;;;;;;;;;;;;;;
LAI2: MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
MOV R0,A
LCALL LIGHT ;显示上次输入的数据
LCALL TIME
MOV R1,#40H
LAI3: MOV @R1,#00001010B ;消影区
INC R1
CJNE R1,#048H,LAI3
MOV R1,#40H
LAI1: DEC R0
MOV A,@R0 ;倒序存放数据
MOV @R1,A
INC R1
CJNE R0,#030H, LAI1
MOV A,R3
ADD A,#3FH
MOV R1,A
MOV @R1,#0AH
LCALL LED
LCALL TIME
;;;;;;;;;;;;;;;;;;;;;
LG2: MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
MOV R0,A
LCALL LIGHT ;显示上次输入的数据
LCALL TIME
MOV R1,#40H
LG3: MOV @R1,#00001010B ;消影区
INC R1
CJNE R1,#048H,LG3
MOV R1,#40H
LG1: DEC R0
MOV A,@R0 ;倒序存放数据
MOV @R1,A
INC R1
CJNE R0,#030H, LG1
MOV A,R3
ADD A,#3FH
MOV R1,A
MOV @R1,#0AH
LCALL LED
LCALL TIME
;;;;;;;;;;;;;DJNZ R4,LAI2;;;;;;;;;;;;
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JUAN: SETB P3.3
JNB P3.3,JUAN ;防止按下数据输入键不放
;;;;;;;;;;;;;;;SJMP YU1;;;;;;;;;;;;
JUAN20:CLR C
MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
SUBB A,R3
MOV R0,A
INC @R0
SJMP JUAN1
JUAN15: MOV A,R2
MOV R0,A
LCALL LIGHT
RET ;返回调用程序
JUAN1:MOV A,R2
MOV R0,A
JUAN2:DEC R0 ;扫描进位
MOV A,@R0
XRL A,#0AH
JZ JUAN3
JUAN4:CJNE R0,#30H,JUAN2
SJMP JUAN15
JUAN3: MOV @R0,#00H
DEC R0
INC @R0
INC R0
SJMP JUAN4
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BOOK: SETB P3.3
JNB P3.3,BOOK ;防止按下数据输入键不放
;;;INC R3;;;;;;;;;;;;;;
;;;;;SJMP YU2;;;;;;;;;;;;;;;;;;
ROOM: CLR C
MOV A,R2 ;此时R2保存上次输入数据的的下一个地址
SUBB A,R3
MOV R0,A
DEC @R0
SJMP ROOM1
ROOM5: MOV A,R2
MOV R0,A
LCALL LIGHT
RET ;返回调用程序
ROOM1: MOV A,R2 ;;扫描借位
MOV R0,A
ROOM2: DEC R0
MOV A,@R0
XRL A,#0FFH
JZ ROOM3
ROOM4:CJNE R0,#30H,ROOM2
SJMP ROOM5
ROOM3: MOV @R0,#09H
DEC R0
DEC @R0
MOV A,@R0
XRL A,#0FFH
JZ ROOM11
ROOM16: INC R0
SJMP ROOM4
ROOM11: DEC R0 ;;扫描它的高位是否都为0位
MOV A,@R0
XRL A,#00H
JNZ ROOM16
CJNE R0,#30H,ROOM17
ROOM17: MOV A,R2
MOV R0,A
ROOM18: DEC R0
MOV @R0,#00H
CJNE R0,#30H,ROOM18
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG4:SETB P3.3
JNB P3.3,SAMSUNG4 ;防止按下数据输入键不放
MOV A,2FH
CJNE A,#00H,TONG
MOV 50H,#01H
MOV 51H,#0AH
MOV 52H,#08H
MOV 53H,#0AH
MOV 54H,#06H
MOV 55H,#00H
MOV 56H,#00H
MOV 57H,#02H
LXH1:MOV R6 ,#08H
MOV DPTR,#044CH
MOV R0,#50H
LXH2:MOV A,@R0
MOVC A,@A+DPTR
INC R0
LCALL SS
DJNZ R6,LXH2
INC 2FH
RET
TONG:MOV A,R2
MOV R0,A
LCALL LIGHT
MOV 2FH,#00H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAMSUNG5:
MOV R4,#02H
XH:MOV R5,#07H
MOV R6,#07H
XH1:MOV A,#00H
LCALL SS
DJNZ R5,XH1
XH2:MOV A,#7FH
LCALL SS
XH3:LCALL TIME
MOV A,#00H
LCALL SS
DJNZ R6,XH3
DJNZ R4,XH
RET
;;;;;;;;;;;;;;;;;;;;;;;;一位数码管数据传输子程序
SS:MOV R7,#08H
SS1:RLC A
MOV P1.0,C
CLR P1.1
SETB P1.1
DJNZ R7,SS1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME: MOV B,R5
PUSH B
MOV B,R6
PUSH B
MOV R5,#15 ;延时0.303S的子程序
TIME3:MOV R6,#200
TIME2:MOV R7,#125
TIME1:DJNZ R7,TIME1
DJNZ R6,TIME2
DJNZ R5,TIME3
POP B
MOV R6,B
POP B
MOV R5,B
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SPEAKL:SETB P1.5
CLR P1.5 ;其他键按下响
MOV R4,#02H
SPEAK1:LCALL TIME
DJNZ R4,SPEAK1
SETB P1.5
RET
SPEAKE:SETB P1.5
CLR P1.5 ;;数据输入键按下响
MOV R4,#04H
SPEAK2:LCALL TIME
DJNZ R4,SPEAK2
SETB P1.5
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -