📄 12864lcd.lst
字号:
A51 MACRO ASSEMBLER 12864LCD 03/10/2007 14:55:02 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN .\12864LCD.obj
ASSEMBLER INVOKED BY: d:\Keil 8\C51\BIN\A51.EXE E:\12864LCD.asm SET(SMALL) DEBUG PRINT(.\12864LCD.lst) OBJECT(.\12864LCD
.obj) EP
LOC OBJ LINE SOURCE
1 ;******************OCM4x8C并口******************
2 ;最小系统的P1口接JD5A,P0口接JD6A
0080 3 RS EQU P0.0
0081 4 RW EQU P0.1
0082 5 E EQU P0.2
0083 6 PSB EQU P0.3
0084 7 RST EQU P0.4
8
0030 9 LCD_X EQU 30H
0031 10 LCD_Y EQU 31H
0032 11 COUNT EQU 32H
0033 12 COUNT1 EQU 33H
0034 13 COUNT2 EQU 34H
0035 14 COUNT3 EQU 35H
0036 15 LCD_DATA EQU 36H
0037 16 LCD_DATA1 EQU 37H
0038 17 LCD_DATA2 EQU 38H
0039 18 STORE EQU 39H
19 ;***********************************************
0000 20 ORG 0000H
0000 020100 21 LJMP MAIN
0100 22 ORG 0100H
0100 00 23 MAIN: NOP
0101 00 24 NOP
0102 75815F 25 MOV SP,#5FH
0105 D284 26 SETB RST
0107 00 27 NOP
0108 D283 28 SETB PSB
29 ;********************初始化**********************
010A 7434 30 LGS0: MOV A,#34H ;34H--扩充指令操作
010C 120232 31 LCALL SEND_I
010F 7430 32 MOV A,#30H ;30H--基本指令操作
0111 120232 33 LCALL SEND_I
0114 7401 34 MOV A,#01H ;清除显示
0116 120232 35 LCALL SEND_I
0119 7406 36 MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
011B 120232 37 LCALL SEND_I
011E 740C 38 MOV A,#0CH ;开显示,关光标,不闪烁
0120 120232 39 LCALL SEND_I
40 ;***********************************************
0123 900281 41 LGS1: MOV DPTR,#TAB1 ;显示汉字和字符
0126 753240 42 MOV COUNT,#40H
0129 7480 43 MOV A,#80H
012B 120232 44 LCALL SEND_I
012E E4 45 LGS11: CLR A
012F 93 46 MOVC A,@A+DPTR
0130 120222 47 LCALL SEND_D
0133 A3 48 INC DPTR
0134 D532F7 49 DJNZ COUNT,LGS11
0137 120262 50 LCALL DELAY3
51 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
013A 7401 52 LGS2: MOV A,#01H
013C 120232 53 LCALL SEND_I
54
013F 7537CC 55 MOV LCD_DATA1,#0CCH ;显示点阵
0142 7538CC 56 MOV LCD_DATA2,#0CCH
0145 1201CE 57 LCALL LAT_DISP
A51 MACRO ASSEMBLER 12864LCD 03/10/2007 14:55:02 PAGE 2
0148 120262 58 LCALL DELAY3
59 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
014B 7434 60 LGS3: MOV A,#34H
014D 120232 61 LCALL SEND_I
0150 7430 62 MOV A,#30H
0152 120232 63 LCALL SEND_I
64
0155 9002C2 65 MOV DPTR,#TAB3 ;显示汉字和字符
0158 753240 66 MOV COUNT,#40H
015B 7480 67 MOV A,#80H
015D 120232 68 LCALL SEND_I
0160 E4 69 LGS31: CLR A
0161 93 70 MOVC A,@A+DPTR
0162 120222 71 LCALL SEND_D
0165 A3 72 INC DPTR
0166 D532F7 73 DJNZ COUNT,LGS31
0169 120262 74 LCALL DELAY3
75 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
016C 7401 76 LGS4: MOV A,#01H
016E 120232 77 LCALL SEND_I
78
0171 7537FF 79 MOV LCD_DATA1,#0FFH ;显示点阵
0174 753800 80 MOV LCD_DATA2,#00H
0177 1201CE 81 LCALL LAT_DISP
017A 120262 82 LCALL DELAY3
83 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
017D 900302 84 LGS5: MOV DPTR,#TAB5 ;显示图形
0180 120193 85 LCALL PHO_DISP
0183 120262 86 LCALL DELAY3
87 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
0186 7434 88 MOV A,#34H
0188 120232 89 LCALL SEND_I
018B 7430 90 MOV A,#30H
018D 120232 91 LCALL SEND_I
0190 020123 92 LJMP LGS1
93 ;***********************************************
0193 753502 94 PHO_DISP: MOV COUNT3,#02H ;全屏显示图形子程序
0196 753080 95 MOV LCD_X,#80H
0199 753180 96 PHO_DISP1: MOV LCD_Y,#80H
019C 753420 97 MOV COUNT2,#20H
019F 753310 98 PHO_DISP2: MOV COUNT1,#10H
01A2 12020D 99 LCALL WR_ZB
01A5 E4 100 PHO_DISP3: CLR A
01A6 93 101 MOVC A,@A+DPTR
01A7 120222 102 LCALL SEND_D
01AA A3 103 INC DPTR
01AB D533F7 104 DJNZ COUNT1,PHO_DISP3
01AE 0531 105 INC LCD_Y
01B0 D534EC 106 DJNZ COUNT2,PHO_DISP2
01B3 753088 107 MOV LCD_X,#88H
01B6 D535E0 108 DJNZ COUNT3,PHO_DISP1
109
01B9 7436 110 MOV A,#36H
01BB 120232 111 LCALL SEND_I
01BE 7430 112 MOV A,#30H
01C0 120232 113 LCALL SEND_I
01C3 22 114 RET
115 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01C4 753700 116 CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序
01C7 753800 117 MOV LCD_DATA2,#00H
01CA 1201CE 118 LCALL LAT_DISP
01CD 22 119 RET
120 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
01CE 753502 121 LAT_DISP: MOV COUNT3,#02H ;显示点阵子程序
01D1 753080 122 MOV LCD_X,#80H
01D4 753180 123 LAT_DISP1: MOV LCD_Y,#80H
A51 MACRO ASSEMBLER 12864LCD 03/10/2007 14:55:02 PAGE 3
01D7 C2D5 124 CLR F0
01D9 753420 125 MOV COUNT2,#20H
01DC 753310 126 LAT_DISP2: MOV COUNT1,#10H
01DF 12020D 127 LCALL WR_ZB
01E2 20D505 128 LAT_DISP3: JB F0,LAT_DISP32
01E5 853736 129 MOV LCD_DATA,LCD_DATA1
01E8 21ED 130 AJMP LAT_DISP31
01EA 853836 131 LAT_DISP32: MOV LCD_DATA,LCD_DATA2
01ED E536 132 LAT_DISP31: MOV A,LCD_DATA
01EF 120222 133 LCALL SEND_D
01F2 D533F8 134 DJNZ COUNT1,LAT_DISP31
01F5 0531 135 INC LCD_Y
01F7 B2D5 136 CPL F0
01F9 D534E0 137 DJNZ COUNT2,LAT_DISP2
01FC 753088 138 MOV LCD_X,#88H
01FF D535D2 139 DJNZ COUNT3,LAT_DISP1
140
0202 7436 141 MOV A,#36H
0204 120232 142 LCALL SEND_I
0207 7430 143 MOV A,#30H
0209 120232 144 LCALL SEND_I
020C 22 145 RET
146 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
020D 7434 147 WR_ZB: MOV A,#34H
020F 120232 148 LCALL SEND_I
0212 E531 149 MOV A,LCD_Y
0214 120232 150 LCALL SEND_I
0217 E530 151 MOV A,LCD_X
0219 120232 152 LCALL SEND_I
021C 7430 153 MOV A,#30H
021E 120232 154 LCALL SEND_I
0221 22 155 RET
156 ;***********************************************
0222 120253 157 SEND_D: LCALL CHK_BUSY ;写数据子程序
0225 D280 158 SETB RS
0227 C281 159 CLR RW
0229 F590 160 MOV P1,A
022B D282 161 SETB E
022D 00 162 NOP
022E 00 163 NOP
022F C282 164 CLR E
0231 22 165 RET
166
0232 120253 167 SEND_I: LCALL CHK_BUSY ;写指令子程序
0235 C280 168 CLR RS
0237 C281 169 CLR RW
0239 F590 170 MOV P1,A
023B D282 171 SETB E
023D 00 172 NOP
023E 00 173 NOP
023F C282 174 CLR E
0241 22 175 RET
176
0242 120253 177 READ_D: LCALL CHK_BUSY ;读数据子程序
0245 D280 178 SETB RS
0247 D281 179 SETB RW
0249 D282 180 SETB E
024B 00 181 NOP
024C E590 182 MOV A,P1
024E C282 183 CLR E
0250 F539 184 MOV STORE,A
0252 22 185 RET
186
0253 7590FF 187 CHK_BUSY: MOV P1,#0FFH ;测忙碌子程序
0256 C280 188 CLR RS
0258 D281 189 SETB RW
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -