📄 lcd1602-4bit.lst
字号:
144
145 ; 发送字符串子程序
146
147 ;***************************************************************
00A8 148 WR_STRING:
00A8 7810 149 MOV R0,#16
00AA 150 WR_S0:
00AA E4 151 CLR A
00AB 93 152 MOVC A,@A+DPTR
00AC A3 153 INC DPTR
00AD 1167 154 CALL LCD_WDATA
00AF 11E8 155 CALL DELAY ;加延时形成滚动效果
00B1 D8F7 156 DJNZ R0,WR_S0
00B3 22 157 RET
158 ;***************************************************************
159
160 ;LCD初始化设定子程序
161
162 ;***************************************************************
00B4 163 LCD_INIT:
00B4 11DF 164 ACALL DELAY5MS ;延时15MS
00B6 11DF 165 ACALL DELAY5MS ;等待LCD电源稳定
00B8 11DF 166 ACALL DELAY5MS
167
00BA 7428 168 MOV A,#28H ;16*2显示,5*7点阵,4位数据
00BC 114A 169 ACALL LCD_CMD_NC ;不进行LCD忙检测
00BE 11DF 170 ACALL DELAY5MS
171
00C0 7428 172 MOV A,#28H ;16*2显示,5*7点阵,4位数据
00C2 114A 173 ACALL LCD_CMD_NC ;不进行LCD忙检测
00C4 11DF 174 ACALL DELAY5MS
175
00C6 7428 176 MOV A,#28H ;16*2显示,5*7点阵,4位数据
00C8 114A 177 ACALL LCD_CMD_NC ;不进行LCD忙检测
00CA 11DF 178 ACALL DELAY5MS
179
00CC 7401 180 MOV A,#01H ;清除屏幕
00CE 1148 181 ACALL LCD_CMD ;进行LCD忙检测
182
00D0 7406 183 MOV A,#06H ;移动光标
00D2 1148 184 ACALL LCD_CMD ;进行LCD忙检测
185
00D4 740C 186 MOV A,#0CH ;显示开,关光标
00D6 1148 187 ACALL LCD_CMD ;进行LCD忙检测
188
00D8 11DF 189 ACALL DELAY5MS ;延时15ms
00DA 11DF 190 ACALL DELAY5MS
A51 MACRO ASSEMBLER LCD1602_4BIT 01/06/2007 11:24:02 PAGE 4
00DC 11DF 191 ACALL DELAY5MS
192
00DE 22 193 RET
194
195 ;***************************************************************
196
197 ; 延时5MS子程序
198 ; LCD初始化使用
199
200 ;***************************************************************
00DF 201 DELAY5MS:
00DF 7E0A 202 MOV R6,#10
00E1 203 DEL1:
00E1 7FF9 204 MOV R7,#249
00E3 205 DEL2:
00E3 DFFE 206 DJNZ R7,DEL2
00E5 DEFA 207 DJNZ R6,DEL1
00E7 22 208 RET
209
210 ;***************************************************************
211
212 ; 延时120MS子程序
213
214 ;***************************************************************
00E8 215 DELAY:
00E8 7FF0 216 MOV R7,#240
00EA 217 DEL3:
00EA 7EFA 218 MOV R6,#250
00EC 219 DEL4:
00EC DEFE 220 DJNZ R6,DEL4
00EE DFFA 221 DJNZ R7,DEL3
00F0 22 222 RET
223
224 ;***************************************************************
225
226 ; 延时5US子程序
227
228 ;***************************************************************
00F1 229 DELAYNOP:
00F1 00 230 NOP
00F2 00 231 NOP
00F3 00 232 NOP
00F4 00 233 NOP
00F5 00 234 NOP
235
00F6 22 236 RET
237 ;***************************************************************
00F7 238 CHAR1:
00F7 20202057 239 DB " WELCOME TO "
00FB 454C434F
00FF 4D452054
0103 4F202020
0107 240 CHAR2:
0107 20575757 241 DB " WWW.WILLAR.COM "
010B 2E57494C
010F 4C41522E
0113 434F4D20
242
243 ;***************************************************************
244
245 END
A51 MACRO ASSEMBLER LCD1602_4BIT 01/06/2007 11:24:02 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
BUSYLOOP . . . . . C ADDR 0091H A
CHANGE . . . . . . C ADDR 009AH A
CHAR1. . . . . . . C ADDR 00F7H A
CHAR2. . . . . . . C ADDR 0107H A
CHECKBUSY. . . . . C ADDR 0086H A
DEL1 . . . . . . . C ADDR 00E1H A
DEL2 . . . . . . . C ADDR 00E3H A
DEL3 . . . . . . . C ADDR 00EAH A
DEL4 . . . . . . . C ADDR 00ECH A
DELAY. . . . . . . C ADDR 00E8H A
DELAY5MS . . . . . C ADDR 00DFH A
DELAYNOP . . . . . C ADDR 00F1H A
HDATA. . . . . . . N NUMB 0040H A
LCD_CMD. . . . . . C ADDR 0048H A
LCD_CMD_NC . . . . C ADDR 004AH A
LCD_EN . . . . . . B ADDR 00A0H.2 A
LCD_INIT . . . . . C ADDR 00B4H A
LCD_RS . . . . . . B ADDR 00A0H.0 A
LCD_RW . . . . . . B ADDR 00A0H.1 A
LCD_WDATA. . . . . C ADDR 0067H A
LDATA. . . . . . . N NUMB 0041H A
MAIN . . . . . . . C ADDR 0030H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
SP . . . . . . . . D ADDR 0081H A
WR_S0. . . . . . . C ADDR 00AAH A
WR_STRING. . . . . C ADDR 00A8H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -