📄 ydlcd.lst
字号:
00C6 00 123 NOP
00C7 C2A7 124 CLR LCD_EN
00C9 22 125 RET
126 ;***************************************************************
127 ;检测LCD控制器忙状态
128 ;读数据
129 ;RS=L,RW=H,E=H,输出:D0-D7=数据
130 ;P0.7=1,LCD忙,等待。P0.7=0,LCD闲,可以进行读写操作。
131 ;***************************************************************
00CA 132 CHECKBUSY:
00CA C0E0 133 PUSH ACC
00CC 7580FF 134 MOV P0,#0FFH
00CF C2A6 135 CLR LCD_RS
00D1 D2A5 136 SETB LCD_RW
00D3 D2A7 137 SETB LCD_EN
00D5 138 BUSYLOOP:
00D5 00 139 NOP
00D6 2087FC 140 JB P0.7,BUSYLOOP
00D9 C2A7 141 CLR LCD_EN
00DB D0E0 142 POP ACC
00DD 22 143 RET
144 ;***************************************************************
145 ; 发送字符串子程序
146 ;***************************************************************
00DE 147 WRITE:
00DE C0E0 148 PUSH ACC
00E0 149 WRITE1:
00E0 E4 150 CLR A
00E1 93 151 MOVC A,@A+DPTR
00E2 6005 152 JZ WRITE2
00E4 A3 153 INC DPTR
00E5 11B9 154 ACALL LCD_WDATA
00E7 80F7 155 JMP WRITE1
00E9 156 WRITE2:
00E9 D0E0 157 POP ACC
00EB 22 158 RET
159 ;***************************************************************
160 ;闪烁子程序
161 ;***************************************************************
00EC 162 FLASH:
00EC 7408 163 MOV A,#08H ;关闭显示
00EE 11A8 164 ACALL LCD_CMD
00F0 310F 165 ACALL DELAY4
00F2 740C 166 MOV A,#0CH ;开显示,关闭光标
00F4 11A8 167 ACALL LCD_CMD
00F6 310F 168 ACALL DELAY4
00F8 DCF2 169 DJNZ R4,FLASH
00FA 22 170 RET
171 ;***************************************************************
172 ;延时5MS子程序
173 ;LCD初始化使用
174 ;***************************************************************
00FB 175 DELAY5MS:
00FB 7E0A 176 MOV R6,#10
00FD 177 DL1:
00FD 7FF9 178 MOV R7,#249
00FF 179 DL2:
00FF DFFE 180 DJNZ R7,DL2
0101 DEFA 181 DJNZ R6,DL1
0103 22 182 RET
183 ;***************************************************************
A51 MACRO ASSEMBLER YDLCD 03/29/2009 20:16:54 PAGE 4
184 ;延时125MS子程序
185 ;字符串移动时使用
186 ;***************************************************************
0104 187 DELAY125MS:
0104 188 DL3:
0104 7EFA 189 MOV R6,#250
0106 190 DL4:
0106 7FF9 191 MOV R7,#249
0108 192 DL5:
0108 DFFE 193 DJNZ R7,DL5
010A DEFA 194 DJNZ R6,DL4
010C DDF6 195 DJNZ R5,DL3
010E 22 196 RET
197 ;***************************************************************
198 ;延时800MS子程序
199 ;闪烁时使用
200 ;***************************************************************
010F 201 DELAY4:
010F 7D28 202 MOV R5,#40
0111 203 DL6:
0111 7E64 204 MOV R6,#100
0113 205 DL7:
0113 7F64 206 MOV R7,#100
0115 207 DL8:
0115 DFFE 208 DJNZ R7,DL8
0117 DEFA 209 DJNZ R6,DL7
0119 DDF6 210 DJNZ R5,DL6
011B 22 211 RET
212 ;***************************************************************
213 END
A51 MACRO ASSEMBLER YDLCD 03/29/2009 20:16:54 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 00D5H A
CHECKBUSY. . . . . C ADDR 00CAH A
CLR_LCD. . . . . . C ADDR 00A3H A
DELAY125MS . . . . C ADDR 0104H A
DELAY4 . . . . . . C ADDR 010FH A
DELAY5MS . . . . . C ADDR 00FBH A
DL1. . . . . . . . C ADDR 00FDH A
DL2. . . . . . . . C ADDR 00FFH A
DL3. . . . . . . . C ADDR 0104H A
DL4. . . . . . . . C ADDR 0106H A
DL5. . . . . . . . C ADDR 0108H A
DL6. . . . . . . . C ADDR 0111H A
DL7. . . . . . . . C ADDR 0113H A
DL8. . . . . . . . C ADDR 0115H A
FLASH. . . . . . . C ADDR 00ECH A
LCD_CMD. . . . . . C ADDR 00A8H A
LCD_CMD_NC . . . . C ADDR 00AAH A
LCD_EN . . . . . . B ADDR 00A0H.7 A
LCD_INIT . . . . . C ADDR 007EH A
LCD_RS . . . . . . B ADDR 00A0H.6 A
LCD_RW . . . . . . B ADDR 00A0H.5 A
LCD_WDATA. . . . . C ADDR 00B9H A
LINE1. . . . . . . C ADDR 005FH A
LINE2. . . . . . . C ADDR 006EH A
LOOPA. . . . . . . C ADDR 004BH A
MAIN . . . . . . . C ADDR 0030H A
MAIN1. . . . . . . C ADDR 0035H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
SP . . . . . . . . D ADDR 0081H A
WRITE. . . . . . . C ADDR 00DEH A
WRITE1 . . . . . . C ADDR 00E0H A
WRITE2 . . . . . . C ADDR 00E9H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -