;==========================================================================
;====Power Disassembler for MCS-51 and 6502================================
;==========================================================================
; Writen by:
;==========================================================================
;===========Disassemble information========================================
;==========================================================================
; File Name: C:\STC89C51\PROJ51\LCD1602\LCD035.hex
; IC Body: MCS-51
; Date: 2020/6/9
;==========================================================================
ORG 000H
;==========================================================================
;标号==============指令================================地址===机器码=======
;==========================================================================
Q0000: LJMP Q000E ;0000 02 00 0E
;==========================================================================; FUNCTION _W_LCD_Com
Q0003: CLR P2.0 ;0003 C2 A0 LCD_RS
LCALL Q0293 ;0005 12 02 93
CLR P2.2 ;0008 C2 A2 LCD_EN
RET ;000A 22
;========================================================================== 的中断入口地址
Q000B: LJMP Q0173 ;000B 02 01 73 ;timer0 interrupt
;==========================================================================
Q000E: MOV R0,#7FH ;000E 78 7F
CLR A ;0010 E4
Q0011: MOV @R0,A ;0011 F6
DJNZ R0,Q0011 ;0012 D8 FD
MOV SP,#20H ;0014 75 81 20 ; assign stack at beginning
LJMP Q0055 ;0017 02 00 55
;==========================================================================
Q001A: LJMP Q009A ;001A 02 00 9A ; FUNCTION main (BEGIN)
;==========================================================================
Q001D: CLR A ;001D E4 STARTUP.A51
MOVC A,@A+DPTR ;001E 93
INC DPTR ;001F A3
MOV R0,A ;0020 F8
Q0021: CLR A ;0021 E4
MOVC A,@A+DPTR ;0022 93
INC DPTR ;0023 A3
JC Q0029 ;0024 40 03
MOV @R0,A ;0026 F6
SJMP Q002A ;0027 80 01
Q0029: MOVX @R0,A ;0029 F2
Q002A: INC R0 ;002A 08
DJNZ R7,Q0021 ;002B DF F4
SJMP Q0058 ;002D 80 29
Q002F: CLR A ;002F E4
MOVC A,@A+DPTR ;0030 93
INC DPTR ;0031 A3
MOV R0,A ;0032 F8
ANL A,#07H ;0033 54 07
ADD A,#0CH ;0035 24 0C
XCH A,R0 ;0037 C8
CLR C ;0038 C3
RLC A ;0039 33
SWAP A ;003A C4
ANL A,#0FH ;003B 54 0F
ORL A,#20H ;003D 44 20
XCH A,R0 ;003F C8
MOVC A,@A+PC ;0040 83
JC Q0047 ;0041 40 04
CPL A ;0043 F4
ANL A,@R0 ;0044 56
SJMP Q0048 ;0045 80 01
Q0047: ORL A,@R0 ;0047 46
Q0048: MOV @R0,A ;0048 F6
DJNZ R7,Q002F ;0049 DF E4
SJMP Q0058 ;004B 80 0B
AJMP Q0002 ;004D 01 02
INC A ;004F 04
INC R0 ;0050 08
JBC 24H.0,Q0094 ;0051 10 20 40
SJMP QFFE6 ;0054 80 90
Q0055: MOV DPTR,#02FFH ;0055 90 02 FF
Q0058: CLR A ;0058 E4
MOV R6,#01H ;0059 7E 01
MOVC A,@A+DPTR ;005B 93
JZ Q001A ;005C 60 BC
INC DPTR ;005E A3
MOV R7,A ;005F FF
ANL A,#3FH ;0060 54 3F
JNB ACC.5,Q006E ;0062 30 E5 09
ANL A,#1FH ;0065 54 1F
MOV R6,A ;0067 FE
CLR A ;0068 E4
MOVC A,@A+DPTR ;0069 93
INC DPTR ;006A A3
JZ Q006E ;006B 60 01
INC R6 ;006D 0E
Q006E: XCH A,R7 ;006E CF
ANL A,#0C0H ;006F 54 C0
ADD A,ACC ;0071 25 E0
JZ Q001D ;0073 60 A8
JC Q002F ;0075 40 B8
CLR A ;0077 E4
MOVC A,@A+DPTR ;0078 93
INC DPTR ;0079 A3
MOV R2,A ;007A FA
CLR A ;007B E4
MOVC A,@A+DPTR ;007C 93
INC DPTR ;007D A3
MOV R0,A ;007E F8
Q007F: CLR A ;007F E4
MOVC A,@A+DPTR ;0080 93
INC DPTR ;0081 A3
XCH A,R0 ;0082 C8
XCH A,DPL ;0083 C5 82
XCH A,R0 ;0085 C8
XCH A,R2 ;0086 CA
XCH A,DPH ;0087 C5 83
XCH A,R2 ;0089 CA
MOVX @DPTR,A ;008A F0
INC DPTR ;008B A3
XCH A,R0 ;008C C8
XCH A,DPL ;008D C5 82
XCH A,R0 ;008F C8
XCH A,R2 ;0090 CA
XCH A,DPH ;0091 C5 83
XCH A,R2 ;0093 CA
Q0094: DJNZ R7,Q007F ;0094 DF E9
DJNZ R6,Q007F ;0096 DE E7
SJMP Q0058 ;0098 80 BE
;========================================================================== ; FUNCTION main (BEGIN)
Q009A: LCALL Q01CB ;009A 12 01 CB
Q009D: JNB 20H.1,Q00D4 ;009D 30 01 34
CLR 20H.1 ;00A0 C2 01 CLR new_s
INC 12H ;00A2 05 12 INC sec
MOV A,12H ;00A4 E5 12
MOV B,#3CH ;00A6 75 F0 3C
LCALL Q0258 ;00A9 12 02 58
MOV 12H,B ;00AC 85 F0 12
MOV A,12H ;00AF E5 12
JNZ Q00D1 ;00B1 70 1E
INC 14H ;00B3 05 14
MOV A,14H ;00B5 E5 14
MOV B,#3CH ;00B7 75 F0 3C
LCALL Q0258 ;00BA 12 02 58
MOV 14H,B ;00BD 85 F0 14
MOV A,14H ;00C0 E5 14
JNZ Q00D1 ;00C2 70 0D
INC 13H ;00C4 05 13
MOV A,13H ;00C6 E5 13
MOV B,#18H ;00C8 75 F0 18
LCALL Q0258 ;00CB 12 02 58
MOV 13H,B ;00CE 85 F0 13
Q00D1: LCALL Q0114 ;00D1 12 01 14
Q00D4: LCALL Q0216 ;00D4 12 02 16
MOV A,R7 ;00D7 EF
DEC A ;00D8 14
JZ Q00E9 ;00D9 60 0E
DEC A ;00DB 14
JZ Q00FB ;00DC 60 1D
DEC A ;00DE 14
JZ Q0110 ;00DF 60 2F
ADD A,#03H ;00E1 24 03
JNZ Q009D ;00E3 70 B8
SETB 20H.0 ;00E5 D2 00
SJMP Q009D ;00E7 80 B4
;==========================================================================
Q00E9: JNB 20H.0,Q00FB ;00E9 30 00 0F
INC 14H ;00EC 05 14
MOV A,14H ;00EE E5 14
MOV B,#3CH ;00F0 75 F0 3C
LCALL Q0258 ;00F3 12 02 58
MOV 14H,B ;00F6 85 F0 14
SJMP Q010B ;00F9 80 10
Q00FB: JNB 20H.0,Q0110 ;00FB 30 00 12
INC 13H ;00FE 05 13
MOV A,13H ;0100 E5 13
MOV B,#18H ;0102 75 F0 18
LCALL Q0258 ;0105 12 02 58
MOV 13H,B ;0108 85 F0 13
Q010B: LCALL Q0114 ;010B 12 01 14
SJMP Q009D ;010E 80 8D
Q0110: CLR 20H.0 ;0110 C2 00
SJMP Q009D ;0112 80 89
;========================================================================== ; FUNCTION W_BUFF
Q0114: MOV A,12H ;0114 E5 12
MOV B,#0AH ;0116 75 F0 0A
LCALL Q0258 ;0119 12 02 58
MOV R7,B ;011C AF F0
MOV A,R7 ;011E EF
ADD A,#30H ;011F 24 30
MOV 0FH,A ;0121 F5 0F
MOV A,12H ;0123 E5 12
MOV B,#0AH ;0125 75 F0 0A
LCALL Q0258 ;0128 12 02 58
ADD A,#30H ;012B 24 30
MOV 0EH,A ;012D F5 0E
MOV A,14H ;012F E5 14
MOV B,#0AH ;0131 75 F0 0A
LCALL Q0258 ;0134 12 02 58
MOV R7,B ;0137 AF F0
MOV A,R7 ;0139 EF
ADD A,#30H ;013A 24 30
MOV 0CH,A ;013C F5 0C
MOV A,14H ;013E E5 14
MOV B,#0AH ;0140 75 F0 0A
LCALL Q0258 ;0143 12 02 58
ADD A,#30H ;0146 24 30
MOV 0BH,A ;0148 F5 0B
MOV A,13H ;014A E5 13
MOV B,#0AH ;014C 75 F0 0A
LCALL Q0258 ;014F 12 02 58
MOV R7,B ;0152 AF F0
MOV A,R7 ;0154 EF
ADD A,#30H ;0155 24 30
MOV 09H,A ;0157 F5 09
MOV A,13H ;0159 E5 13
MOV B,#0AH ;015B 75 F0 0A
LCALL Q0258 ;015E 12 02 58
ADD A,#30H ;0161 24 30
MOV 08H,A ;0163 F5 08
MOV R7,#0C7H ;0165 7F C7
LCALL Q0003 ;0167 12 00 03 _W_LCD_Com
MOV R3,#00H ;016A 7B 00
MOV R2,#00H ;016C 7A 00
MOV R1,#08H ;016E 79 08
LJMP Q02B9 ;0170 02 02 B9
;========================================================================== ; FUNCTION timer0
Q0173: PUSH ACC ;0173 C0 E0
PUSH B ;0175 C0 F0
PUSH DPH ;0177 C0 83
PUSH DPL ;0179 C0 82
PUSH PSW ;017B C0 D0
MOV PSW,#00H ;017D 75 D0 00
PUSH 00H ;0180 C0 00
PUSH 01H ;0182 C0 01
PUSH 02H ;0184 C0 02
PUSH 03H ;0186 C0 03
PUSH 04H ;0188 C0 04
PUSH 05H ;018A C0 05
PUSH 06H ;018C C0 06
PUSH 07H ;018E C0 07
MOV TH0,#4CH ;0190 75 8C 4C
MOV TL0,#00H ;0193 75 8A 00
INC 11H ;0196 05 11
MOV A,11H ;0198 E5 11
MOV B,#14H ;019A 75 F0 14
LCALL Q0258 ;019D 12 02 58
MOV 11H,B ;01A0 85 F0 11
MOV A,11H ;01A3 E5 11
JNZ Q01AB ;01A5 70 04
SETB 20H.1 ;01A7 D2 01
CPL P2.4 ;01A9 B2 A4
Q01AB: JNB 20H.0,Q01B0 ;01AB 30 00 02
CLR P2.4 ;01AE C2 A4
Q01B0: POP 07H ;01B0 D0 07
POP 06H ;01B2 D0 06
POP 05H ;01B4 D0 05
POP 04H ;01B6 D0 04
POP 03H ;01B8 D0 03
POP 02H ;01BA D0 02
POP 01H ;01BC D0 01
POP 00H ;01BE D0 00
POP PSW ;01C0 D0 D0
POP DPL ;01C2 D0 82
POP DPH ;01C4 D0 83
POP B ;01C6 D0 F0
POP ACC ;01C8 D0 E0
RETI ;01CA 32
;========================================================================== ; FUNCTION Init
Q01CB: CLR P2.1 ;01CB C2 A1
MOV R7,#38H ;01CD 7F 38
LCALL Q0003 ;01CF 12 00 03 _W_LCD_Com
MOV R7,#32H ;01D2 7F 32
MOV R6,#00H ;01D4 7E 00
LCALL Q029B ;01D6 12 02 9B _delay
MOV R7,#0CH ;01D9 7F 0C
LCALL Q0003 ;01DB 12 00 03 _W_LCD_Com
MOV R7,#06H ;01DE 7F 06
LCALL Q0003 ;01E0 12 00 03 _W_LCD_Com
MOV R7,#01H ;01E3 7F 01
LCALL Q0003 ;01E5 12 00 03 _W_LCD_Com
MOV R7,#80H ;01E8 7F 80
LCALL Q0003 ;01EA 12 00 03 _W_LCD_Com
MOV R3,#0FFH ;01ED 7B FF
MOV R2,#02H ;01EF 7A 02
MOV R1,#0DEH ;01F1 79 DE
LCALL Q02B9 ;01F3 12 02 B9 _W_LCD_STR
MOV R7,#0C0H ;01F6 7F C0
LCALL Q0003 ;01F8 12 00 03
MOV R3,#0FFH ;01FB 7B FF
MOV R2,#02H ;01FD 7A 02
MOV R1,#0EEH ;01FF 79 EE
LCALL Q02B9 ;0201 12 02 B9 _W_LCD_STR
ORL TMOD,#01H ;0204 43 89 01
MOV TH0,#4CH ;0207 75 8C 4C
CLR A ;020A E4
MOV TL0,A ;020B F5 8A
SETB TR0 ;020D D2 8C
SETB PT0 ;020F D2 B9
SETB ET0 ;0211 D2 A9
SETB EA ;0213 D2 AF
RET ;0215 22
;========================================================================== ; FUNCTION read_key
Q0216: MOV P3,#0FFH ;0216 75 B0 FF
MOV R3,P3 ;0219 AB B0
MOV A,R3 ;021B EB
CPL A ;021C F4
JZ Q0255 ;021D 60 36
MOV R7,#64H ;021F 7F 64
MOV R6,#00H ;0221 7E 00
LCALL Q029B ;0223 12 02 9B _W_LCD_STR
MOV R7,P3 ;0226 AF B0
MOV A,R3 ;0228 EB
XRL A,R7 ;0229 6F
JZ Q022F ;022A 60 03
MOV R7,#0FFH ;022C 7F FF
RET ;022E 22
;==========================================================================
Q022F: MOV A,R7 ;022F EF
CPL A ;0230 F4
JZ Q0237 ;0231 60 04
MOV R7,P3 ;0233 AF B0
SJMP Q022F ;0235 80 F8
Q0237: CJNE R3,#7FH,Q023D ;0237 BB 7F 03
MOV R7,#00H ;023A 7F 00
RET ;023C 22
;==========================================================================
Q023D: CJNE R3,#0BFH,Q0243 ;023D BB BF 03
MOV R7,#01H ;0240 7F 01
RET ;0242 22
;==========================================================================
Q0243: CJNE R3,#0DFH,Q0249 ;0243 BB DF 03
MOV R7,#02H ;0246 7F 02
RET ;0248 22
;==========================================================================
Q0249: CJNE R3,#0EFH,Q024F ;0249 BB EF 03
MOV R7,#03H ;024C 7F 03
RET ;024E 22
;==========================================================================
Q024F: CJNE R3,#0F7H,Q0255 ;024F BB F7 03
MOV R7,#04H ;0252 7F 04
RET ;0254 22
;==========================================================================
Q0255: MOV R7,#0FFH ;0255 7F FF
RET ;0257 22
;========================================================================== 运算符 %
Q0258: CLR F0 ;0258 C2 D5
JNB F7H,Q0264 ;025A 30 F7 07
CPL F0 ;025D B2 D5
XRL B,#0FFH ;025F 63 F0 FF
INC B ;0262 05 F0
Q0264: JNB ACC.7,Q0273 ;0264 30 E7 0C
CPL F0 ;0267 B2 D5
CPL A ;0269 F4
INC A ;026A 04
DIV AB ;026B 84
XRL B,#0FFH ;026C 63 F0 FF
INC B ;026F 05 F0
SJMP Q0274 ;0271 80 01
Q0273: DIV AB ;0273 84
Q0274: JNB F0,Q0279 ;0274 30 D5 02
CPL A ;0277 F4
INC A ;0278 04
Q0279: RET ;0279 22
;==========================================================================
Q027A: CJNE R3,#01H,Q0283 ;027A BB 01 06
MOV DPL,R1 ;027D 89 82
MOV DPH,R2 ;027F 8A 83
MOVX A,@DPTR ;0281 E0
RET ;0282 22
;==========================================================================
Q0283: JNC Q0287 ;0283 50 02
MOV A,@R1 ;0285 E7
RET ;0286 22
;==========================================================================
Q0287: CJNE R3,#0FEH,Q028C ;0287 BB FE 02
MOVX A,@R1 ;028A E3
RET ;028B 22
;==========================================================================
Q028C: MOV DPL,R1 ;028C 89 82
MOV DPH,R2 ;028E 8A 83
CLR A ;0290 E4
MOVC A,@A+DPTR ;0291 93
RET ;0292 22
;==========================================================================
Q0293: MOV P0,R7 ;0293 8F 80 ; FUNCTION _delay
SETB P2.2 ;0295 D2 A2
MOV R7,#05H ;0297 7F 05
MOV R6,#00H ;0299 7E 00
Q029B: SETB C ;029B D3
MOV A,R7 ;029C EF
SUBB A,#00H ;029D 94 00
MOV A,R6 ;029F EE
SUBB A,#00H ;02A0 94 00
JC Q02B8 ;02A2 40 14
MOV R5,#64H ;02A4 7D 64
MOV R4,#00H ;02A6 7C 00
Q02A8: MOV A,R5 ;02A8 ED
DEC R5 ;02A9 1D
JNZ Q02AD ;02AA 70 01
DEC R4 ;02AC 1C
Q02AD: MOV A,R5 ;02AD ED
ORL A,R4 ;02AE 4C
JNZ Q02A8 ;02AF 70 F7
MOV A,R7 ;02B1 EF
DEC R7 ;02B2 1F
JNZ Q029B ;02B3 70 E6
DEC R6 ;02B5 1E
SJMP Q029B ;02B6 80 E3
Q02B8: RET ;02B8 22
;========================================================================== ; FUNCTION _W_LCD_STR
Q02B9: MOV 15H,R3 ;02B9 8B 15
MOV 16H,R2 ;02BB 8A 16
MOV 17H,R1 ;02BD 89 17
Q02BF: MOV R3,15H ;02BF AB 15
MOV R2,16H ;02C1 AA 16
MOV R1,17H ;02C3 A9 17
LCALL Q027A ;02C5 12 02 7A
JZ Q02DD ;02C8 60 13
INC 17H ;02CA 05 17
MOV A,17H ;02CC E5 17
JNZ Q02D2 ;02CE 70 02
INC 16H ;02D0 05 16
Q02D2: DEC A ;02D2 14
MOV R1,A ;02D3 F9
LCALL Q027A ;02D4 12 02 7A
MOV R7,A ;02D7 FF
LCALL Q0316 ;02D8 12 03 16
SJMP Q02BF ;02DB 80 E2
Q02DD: RET ;02DD 22
;========================================================================== 变量
Q02DE: DB 44H, 65H, 73H, 69H, 67H, 6EH, 65H, 64H ;Designed
Q02E6: DB 20H, 62H, 79H, 20H, 63H, 6CH, 77H, 00H ;.by.clw.
Q02EE: DB 20H, 54H, 69H, 6DH, 65H, 3AH, 20H, 30H ;.Time:.0
Q02F6: DB 30H, 3AH, 30H, 30H, 3AH, 30H, 30H, 20H ;0:00:00.
Q02FE: DB 00H,0C1H, 00H, 01H, 12H, 32H, 01H, 14H ;.....2..
Q0306: DB 3BH, 01H, 13H, 17H, 09H, 08H, 32H, 33H ;;.....23
Q030E: DB 3AH, 35H, 39H, 3AH, 35H, 30H, 00H, 00H ;:59:50..
;========================================================================== ; FUNCTION _W_LCD_Dat
Q0316: SETB P2.0 ;0316 D2 A0
LCALL Q0293 ;0318 12 02 93
CLR P2.2 ;031B C2 A2
RET ;031D 22
;==========================================================================
END