📄 lcd1602.lst
字号:
0031 2500 R ADD A,i
0033 F582 MOV DPL,A
0035 E4 CLR A
0036 3500 R ADDC A,ptr
0038 F583 MOV DPH,A
003A E4 CLR A
003B 93 MOVC A,@A+DPTR
003C FB MOV R3,A
003D AD00 R MOV R5,y
003F 120000 R LCALL _DispOneChar
; SOURCE LINE # 66
0042 E500 R MOV A,x
0044 B41006 CJNE A,#010H,?C0008
; SOURCE LINE # 67
0047 E4 CLR A
0048 F500 R MOV x,A
004A 630001 R XRL y,#01H
; SOURCE LINE # 68
; SOURCE LINE # 69
004D ?C0008:
004D 0500 R INC i
004F 80D3 SJMP ?C0006
; SOURCE LINE # 70
0051 ?C0010:
0051 22 RET
; FUNCTION _ePutstr (END)
; FUNCTION _Display (BEGIN)
; SOURCE LINE # 75
0000 8F00 R MOV dd,R7
; SOURCE LINE # 79
0002 E4 CLR A
0003 F500 R MOV i,A
0005 ?C0011:
; SOURCE LINE # 80
0005 AB00 R MOV R3,dd
0007 0500 R INC dd
0009 7D01 MOV R5,#01H
000B AF00 R MOV R7,i
000D 120000 R LCALL _DispOneChar
; SOURCE LINE # 81
0010 53007F R ANL dd,#07FH
; SOURCE LINE # 82
0013 E500 R MOV A,dd
0015 C3 CLR C
0016 9420 SUBB A,#020H
0018 5003 JNC ?C0013
001A 750020 R MOV dd,#020H
; SOURCE LINE # 83
001D ?C0013:
C51 COMPILER V8.02 LCD1602 07/13/2006 21:12:22 PAGE 7
001D 0500 R INC i
001F E500 R MOV A,i
0021 C3 CLR C
0022 9410 SUBB A,#010H
0024 40DF JC ?C0011
; SOURCE LINE # 84
0026 ?C0015:
0026 22 RET
; FUNCTION _Display (END)
; FUNCTION _LocateXY (BEGIN)
; SOURCE LINE # 89
;---- Variable 'posy' assigned to Register 'R5' ----
;---- Variable 'posx' assigned to Register 'R7' ----
; SOURCE LINE # 93
0000 EF MOV A,R7
0001 540F ANL A,#0FH
0003 FF MOV R7,A
;---- Variable 'temp' assigned to Register 'R7' ----
; SOURCE LINE # 94
0004 530501 ANL AR5,#01H
; SOURCE LINE # 95
0007 ED MOV A,R5
0008 6003 JZ ?C0016
000A 430740 ORL AR7,#040H
000D ?C0016:
; SOURCE LINE # 96
000D 430780 ORL AR7,#080H
; SOURCE LINE # 97
0010 E4 CLR A
0011 FD MOV R5,A
0012 020000 R LJMP _LcdWriteCommand
; FUNCTION _LocateXY (END)
; FUNCTION _DispOneChar (BEGIN)
; SOURCE LINE # 103
0000 8B00 R MOV Wdata,R3
;---- Variable 'y' assigned to Register 'R5' ----
;---- Variable 'x' assigned to Register 'R7' ----
; SOURCE LINE # 105
0002 120000 R LCALL _LocateXY
; SOURCE LINE # 106
0005 AF00 R MOV R7,Wdata
0007 020000 R LJMP _LcdWriteData
; FUNCTION _DispOneChar (END)
; FUNCTION LcdReset (BEGIN)
; SOURCE LINE # 112
; SOURCE LINE # 114
0000 120000 R LCALL L?0036
; SOURCE LINE # 115
0003 120000 R LCALL Delay5Ms
; SOURCE LINE # 116
0006 120000 R LCALL L?0036
; SOURCE LINE # 117
0009 120000 R LCALL Delay5Ms
; SOURCE LINE # 118
000C 120000 R LCALL L?0037
; SOURCE LINE # 119
000F 120000 R LCALL Delay5Ms
; SOURCE LINE # 121
0012 7D01 MOV R5,#01H
C51 COMPILER V8.02 LCD1602 07/13/2006 21:12:22 PAGE 8
0014 7F38 MOV R7,#038H
0016 120000 R LCALL _LcdWriteCommand
; SOURCE LINE # 122
0019 7D01 MOV R5,#01H
001B 7F08 MOV R7,#08H
001D 120000 R LCALL _LcdWriteCommand
; SOURCE LINE # 123
0020 7D01 MOV R5,#01H
0022 7F01 MOV R7,#01H
0024 120000 R LCALL _LcdWriteCommand
; SOURCE LINE # 124
0027 7D01 MOV R5,#01H
0029 7F06 MOV R7,#06H
002B 120000 R LCALL _LcdWriteCommand
; SOURCE LINE # 125
002E 7D01 MOV R5,#01H
0030 7F0C MOV R7,#0CH
0032 020000 R LJMP _LcdWriteCommand
; FUNCTION LcdReset (END)
; FUNCTION L?0036 (BEGIN)
0000 L?0037:
0000 E4 CLR A
0001 FD MOV R5,A
0002 7F38 MOV R7,#038H
; FUNCTION _LcdWriteCommand (BEGIN)
; SOURCE LINE # 131
0004 8F00 R MOV CMD,R7
;---- Variable 'AttribC' assigned to Register 'R5' ----
; SOURCE LINE # 133
0006 ED MOV A,R5
0007 6003 JZ ?C0020
0009 120000 R LCALL WaitForEnable
000C ?C0020:
; SOURCE LINE # 135
000C C2B3 CLR LCD_RS
000E C2B4 CLR LCD_RW
0010 00 NOP
; SOURCE LINE # 137
0011 850080 R MOV P0,CMD
0014 00 NOP
; SOURCE LINE # 139
0015 D2B5 SETB LCD_E
0017 00 NOP
0018 00 NOP
0019 C2B5 CLR LCD_E
; SOURCE LINE # 140
001B 22 RET
; FUNCTION _LcdWriteCommand (END)
; FUNCTION _LcdWriteData (BEGIN)
; SOURCE LINE # 145
0000 8F00 R MOV dataW,R7
; SOURCE LINE # 147
0002 120000 R LCALL WaitForEnable
; SOURCE LINE # 149
0005 D2B3 SETB LCD_RS
0007 C2B4 CLR LCD_RW
0009 00 NOP
; SOURCE LINE # 151
000A 850080 R MOV P0,dataW
000D 00 NOP
C51 COMPILER V8.02 LCD1602 07/13/2006 21:12:22 PAGE 9
; SOURCE LINE # 153
000E D2B5 SETB LCD_E
0010 00 NOP
0011 00 NOP
0012 C2B5 CLR LCD_E
; SOURCE LINE # 155
0014 22 RET
; FUNCTION _LcdWriteData (END)
; FUNCTION WaitForEnable (BEGIN)
; SOURCE LINE # 161
; SOURCE LINE # 163
0000 7580FF MOV P0,#0FFH
; SOURCE LINE # 165
0003 C2B3 CLR LCD_RS
0005 D2B4 SETB LCD_RW
0007 00 NOP
0008 D2B5 SETB LCD_E
000A 00 NOP
000B 00 NOP
000C ?C0023:
; SOURCE LINE # 167
000C E580 MOV A,P0
000E 20E7FB JB ACC.7,?C0023
0011 ?C0024:
; SOURCE LINE # 169
0011 C2B5 CLR LCD_E
; SOURCE LINE # 170
0013 22 RET
; FUNCTION WaitForEnable (END)
; FUNCTION Delay5Ms (BEGIN)
; SOURCE LINE # 174
; SOURCE LINE # 175
; SOURCE LINE # 176
;---- Variable 'i' assigned to Register 'R6/R7' ----
0000 7FB0 MOV R7,#0B0H
0002 7E15 MOV R6,#015H
0004 ?C0026:
; SOURCE LINE # 177
0004 EF MOV A,R7
0005 1F DEC R7
0006 AC06 MOV R4,AR6
0008 7001 JNZ ?C0034
000A 1E DEC R6
000B ?C0034:
000B 4C ORL A,R4
000C 70F6 JNZ ?C0026
; SOURCE LINE # 178
000E ?C0028:
000E 22 RET
; FUNCTION Delay5Ms (END)
; FUNCTION Delay400Ms (BEGIN)
; SOURCE LINE # 181
;---- Variable 'j' assigned to Register 'R6/R7' ----
;---- Variable 'i' assigned to Register 'R5' ----
; SOURCE LINE # 182
; SOURCE LINE # 183
0000 7D05 MOV R5,#05H
0002 ?C0029:
; SOURCE LINE # 185
C51 COMPILER V8.02 LCD1602 07/13/2006 21:12:22 PAGE 10
0002 AC05 MOV R4,AR5
0004 1D DEC R5
0005 EC MOV A,R4
0006 6010 JZ ?C0033
; SOURCE LINE # 186
; SOURCE LINE # 187
0008 7E1C MOV R6,#01CH
000A 7F65 MOV R7,#065H
000C ?C0031:
; SOURCE LINE # 188
000C EF MOV A,R7
000D 1F DEC R7
000E AA06 MOV R2,AR6
0010 7001 JNZ ?C0035
0012 1E DEC R6
0013 ?C0035:
0013 4A ORL A,R2
0014 60EC JZ ?C0029
0016 80F4 SJMP ?C0031
; SOURCE LINE # 189
; SOURCE LINE # 190
0018 ?C0033:
0018 22 RET
; FUNCTION Delay400Ms (END)
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 351 ----
CONSTANT SIZE = 33 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -