📄 lcd.lst
字号:
A51 MACRO ASSEMBLER LCD 01/04/2006 14:35:09 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN LCD.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE LCD.ASM SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;================================================================
2 ; 文件名称: LCD.ASM
3 ; 功能描述: 图形点阵液晶, 128*64, 显示"唐都科教仪器公司欢迎您"
4 ;================================================================
5
0090 6 RW BIT P1.0
0091 7 RS BIT P1.1
0092 8 CS2 BIT P1.2
0093 9 CS1 BIT P1.3
0094 10 E BIT P1.4
0095 11 LED BIT P1.5
12
0030 13 XADD DATA 30H
0031 14 YADD DATA 31H
15
0000 16 ORG 0000H
0000 020100 17 LJMP START
0100 18 ORG 0100H
0100 C295 19 START: CLR LED ;关闭背景灯
0102 7C3F 20 MOV R4, #3FH
0104 12021F 21 LCALL SENDMCMD ;打开显示
0107 12023D 22 LCALL SENDSCMD
010A 7CC0 23 MOV R4, #0C0H
010C 12021F 24 LCALL SENDMCMD ;设置起始行
010F 12023D 25 LCALL SENDSCMD
0112 1202C3 26 LCALL CLEAR ;清屏
0115 7530BA 27 MOV XADD, #0BAH ;显示汉字"唐"
0118 753140 28 MOV YADD, #40H
011B 9002F0 29 MOV DPTR, #TANG
011E 1201C1 30 LCALL WRITEHZM
31
0121 7530BA 32 MOV XADD, #0BAH ;显示汉字"都"
0124 753150 33 MOV YADD, #50H
0127 900310 34 MOV DPTR, #DU
012A 1201C1 35 LCALL WRITEHZM
36
012D 7530BA 37 MOV XADD, #0BAH ;显示汉字"科"
0130 753160 38 MOV YADD, #60H
0133 900330 39 MOV DPTR, #KE
0136 1201C1 40 LCALL WRITEHZM
41
0139 7530BA 42 MOV XADD, #0BAH ;显示汉字"教"
013C 753170 43 MOV YADD, #70H
013F 900350 44 MOV DPTR, #JIAO
0142 1201C1 45 LCALL WRITEHZM
46
0145 7530BA 47 MOV XADD, #0BAH ;显示汉字"仪"
0148 753140 48 MOV YADD, #40H
014B 900370 49 MOV DPTR, #YI
014E 1201F0 50 LCALL WRITEHZS
51
0151 7530BA 52 MOV XADD, #0BAH ;显示汉字"器"
0154 753150 53 MOV YADD, #50H
0157 900390 54 MOV DPTR, #QI
015A 1201F0 55 LCALL WRITEHZS
56
015D 7530BA 57 MOV XADD, #0BAH ;显示汉字"公"
0160 753160 58 MOV YADD, #60H
A51 MACRO ASSEMBLER LCD 01/04/2006 14:35:09 PAGE 2
0163 9003B0 59 MOV DPTR, #GONG
0166 1201F0 60 LCALL WRITEHZS
61
0169 7530BA 62 MOV XADD, #0BAH ;显示汉字"司"
016C 753170 63 MOV YADD, #70H
016F 9003D0 64 MOV DPTR, #SI
0172 1201F0 65 LCALL WRITEHZS
66
0175 7530BC 67 MOV XADD, #0BCH ;显示汉字"欢"
0178 753160 68 MOV YADD, #60H
017B 9003F0 69 MOV DPTR, #HUAN
017E 1201C1 70 LCALL WRITEHZM
71
0181 7530BC 72 MOV XADD, #0BCH ;显示汉字"迎"
0184 753170 73 MOV YADD, #70H
0187 900410 74 MOV DPTR, #YING
018A 1201C1 75 LCALL WRITEHZM
76
018D 7530BC 77 MOV XADD, #0BCH ;显示汉字"您"
0190 753140 78 MOV YADD, #40H
0193 900430 79 MOV DPTR, #NIN
0196 1201F0 80 LCALL WRITEHZS
81
0199 7530BC 82 MOV XADD, #0BCH ;显示"感叹号"
019C 753150 83 MOV YADD, #50H
019F 900450 84 MOV DPTR, #GANTAN
01A2 1201F0 85 LCALL WRITEHZS
86
01A5 7CC0 87 MLP0: MOV R4, #0C0H ;滚屏显示
01A7 0C 88 MLP1: INC R4
01A8 12021F 89 LCALL SENDMCMD
01AB 12023D 90 LCALL SENDSCMD
01AE 78FF 91 MOV R0, #0FFH
01B0 1202E7 92 MLP2: LCALL DELAY
01B3 D8FB 93 DJNZ R0, MLP2
01B5 78FF 94 MOV R0, #0FFH
01B7 1202E7 95 MLP3: LCALL DELAY
01BA D8FB 96 DJNZ R0, MLP3
01BC BCFFE8 97 CJNE R4, #0FFH, MLP1
01BF 21A5 98 AJMP MLP0
99 ;写汉字到控制器1
100 ;入口参数: XADD YADD 以及汉字表首地址
01C1 101 WRITEHZM:
01C1 AC30 102 MOV R4, XADD
01C3 12021F 103 LCALL SENDMCMD
01C6 AC31 104 MOV R4, YADD
01C8 12021F 105 LCALL SENDMCMD
01CB 7B00 106 MOV R3, #00H
01CD 7810 107 MOV R0, #10H ;写头16字节
01CF EB 108 WMLP1: MOV A, R3
01D0 93 109 MOVC A, @A+DPTR
01D1 FC 110 MOV R4, A
01D2 12025B 111 LCALL SENDMDATA
01D5 0B 112 INC R3
01D6 D8F7 113 DJNZ R0, WMLP1
01D8 0530 114 INC XADD
01DA AC30 115 MOV R4, XADD
01DC 12021F 116 LCALL SENDMCMD
01DF AC31 117 MOV R4, YADD
01E1 12021F 118 LCALL SENDMCMD
01E4 7810 119 MOV R0, #10H ;写后16字节
01E6 EB 120 WMLP2: MOV A, R3
01E7 93 121 MOVC A, @A+DPTR
01E8 FC 122 MOV R4, A
01E9 12025B 123 LCALL SENDMDATA
01EC 0B 124 INC R3
A51 MACRO ASSEMBLER LCD 01/04/2006 14:35:09 PAGE 3
01ED D8F7 125 DJNZ R0, WMLP2
01EF 22 126 RET
127 ;写汉字到控制器2
128 ;入口参数: XADD YADD 以及汉字表首地址
01F0 129 WRITEHZS:
01F0 AC30 130 MOV R4, XADD
01F2 12023D 131 LCALL SENDSCMD
01F5 AC31 132 MOV R4, YADD
01F7 12023D 133 LCALL SENDSCMD
01FA 7B00 134 MOV R3, #00H
01FC 7810 135 MOV R0, #10H
01FE EB 136 WSLP1: MOV A, R3
01FF 93 137 MOVC A, @A+DPTR
0200 FC 138 MOV R4, A
0201 120279 139 LCALL SENDSDATA
0204 0B 140 INC R3
0205 D8F7 141 DJNZ R0, WSLP1
0207 0530 142 INC XADD
0209 AC30 143 MOV R4, XADD
020B 12023D 144 LCALL SENDSCMD
020E AC31 145 MOV R4, YADD
0210 12023D 146 LCALL SENDSCMD
0213 7810 147 MOV R0, #10H
0215 EB 148 WSLP2: MOV A, R3
0216 93 149 MOVC A, @A+DPTR
0217 FC 150 MOV R4, A
0218 120279 151 LCALL SENDSDATA
021B 0B 152 INC R3
021C D8F7 153 DJNZ R0, WSLP2
021E 22 154 RET
155
156 ;入口参数: R4, 命令字节
021F 157 SENDMCMD: ;向控制器1发送命令
021F C0E0 158 PUSH ACC
0221 7D01 159 MOV R5, #01H
0223 1202E7 160 LCALL DELAY
0226 C291 161 CLR RS
0228 C290 162 CLR RW
022A C293 163 CLR CS1
022C EC 164 MOV A, R4
022D F580 165 MOV P0, A
022F C294 166 CLR E
0231 00 167 NOP
0232 D294 168 SETB E
0234 00 169 NOP
0235 C294 170 CLR E
0237 00 171 NOP
0238 D293 172 SETB CS1
023A D0E0 173 POP ACC
023C 22 174 RET
175 ;入口参数: R4, 命令字节
023D 176 SENDSCMD: ;向控制器2发送命令
023D C0E0 177 PUSH ACC
023F 7D02 178 MOV R5, #02H
0241 1202E7 179 LCALL DELAY
0244 C291 180 CLR RS
0246 C290 181 CLR RW
0248 C292 182 CLR CS2
024A EC 183 MOV A, R4
024B F580 184 MOV P0, A
024D C294 185 CLR E
024F 00 186 NOP
0250 D294 187 SETB E
0252 00 188 NOP
0253 C294 189 CLR E
0255 00 190 NOP
A51 MACRO ASSEMBLER LCD 01/04/2006 14:35:09 PAGE 4
0256 D292 191 SETB CS2
0258 D0E0 192 POP ACC
025A 22 193 RET
194 ;入口参数: R4, 数据字节
025B 195 SENDMDATA: ;向控制器1发送数据
025B C0E0 196 PUSH ACC
025D 7D01 197 MOV R5, #01H
025F 1202E7 198 LCALL DELAY
0262 D291 199 SETB RS
0264 C290 200 CLR RW
0266 C293 201 CLR CS1
0268 EC 202 MOV A, R4
0269 F580 203 MOV P0, A
026B C294 204 CLR E
026D 00 205 NOP
026E D294 206 SETB E
0270 00 207 NOP
0271 C294 208 CLR E
0273 00 209 NOP
0274 D293 210 SETB CS1
0276 D0E0 211 POP ACC
0278 22 212 RET
213 ;入口参数: R4, 数据字节
0279 214 SENDSDATA: ;向控制器2发送数据
0279 C0E0 215 PUSH ACC
027B 7D02 216 MOV R5, #02H
027D 1202E7 217 LCALL DELAY
0280 D291 218 SETB RS
0282 C290 219 CLR RW
0284 C292 220 CLR CS2
0286 EC 221 MOV A, R4
0287 F580 222 MOV P0, A
0289 C294 223 CLR E
028B 00 224 NOP
028C D294 225 SETB E
028E 00 226 NOP
028F C294 227 CLR E
0291 00 228 NOP
0292 D292 229 SETB CS2
0294 D0E0 230 POP ACC
0296 22 231 RET
232
233 ;状态查询
234 ;入口参数: R5; R5=1, 表示为控制器1, R5=2为控制器2
0297 C0E0 235 QUERY: PUSH ACC
0299 7FA0 236 MOV R7, #0A0H
029B C291 237 CLR RS
029D D290 238 SETB RW
029F BD0104 239 CJNE R5, #01, QLP1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -