📄 lcd1602a.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-49394 Wed Jul 11 13:54:48 2007
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z49394RS_,global,delta=1
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect const2,local,class=CONST,delta=2
7 psect const3,local,class=CONST,delta=2
8 psect const4,local,class=CONST,delta=2
9 psect text4,local,class=CODE,delta=2
10 psect text10,local,class=CODE,delta=2
11 psect text11,local,class=CODE,delta=2
12 psect text12,local,class=CODE,delta=2
13 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24
25 psect __Z49394RS_
26 0190
27 0190
28
29 psect const1
30 0037 0782 addwf 2
31 0038 _dis0
32 0038 3457 retlw 87
33 0039 3465 retlw 101
34 003A 346C retlw 108
35 003B 3463 retlw 99
36 003C 346F retlw 111
37 003D 346D retlw 109
38 003E 3465 retlw 101
39 003F 3400 retlw 0
40
41 psect const2
42 0019 0782 addwf 2
43 001A _dis1
44 001A 3477 retlw 119
45 001B 3477 retlw 119
46 001C 3477 retlw 119
47 001D 342E retlw 46
48 001E 3435 retlw 53
49 001F 3432 retlw 50
50 0020 3437 retlw 55
51 0021 3464 retlw 100
52 0022 347A retlw 122
53 0023 342E retlw 46
54 0024 3463 retlw 99
55 0025 346F retlw 111
56 0026 346D retlw 109
57 0027 3421 retlw 33
58 0028 3400 retlw 0
59
60 psect const3
61 0029 0782 addwf 2
62 002A _dis2
63 002A 3470 retlw 112
64 002B 3465 retlw 101
65 002C 346E retlw 110
66 002D 3467 retlw 103
67 002E 347A retlw 122
68 002F 3468 retlw 104
69 0030 3461 retlw 97
70 0031 346E retlw 110
71 0032 3467 retlw 103
72 0033 346A retlw 106
73 0034 3475 retlw 117
74 0035 346E retlw 110
75 0036 3400 retlw 0
76
77 psect const4
78 0008 0782 addwf 2
79 0009 _dis3
80 0009 3474 retlw 116
81 000A 3465 retlw 101
82 000B 346C retlw 108
83 000C 343A retlw 58
84 000D 3431 retlw 49
85 000E 3433 retlw 51
86 000F 3437 retlw 55
87 0010 3439 retlw 57
88 0011 3435 retlw 53
89 0012 3439 retlw 57
90 0013 3435 retlw 53
91 0014 3433 retlw 51
92 0015 3430 retlw 48
93 0016 3434 retlw 52
94 0017 3437 retlw 55
95 0018 3400 retlw 0
96
97 psect text4
98 0636 _LCD_wait_Ready
99 ;lcd1602a.c: 105: TRISC |= 0x80;
100 0636 1683 bsf 3,5
101 0637 1303 bcf 3,6 ;carry unused
102 0638 1787 bsf 7,7 ;volatile
103 ;lcd1602a.c: 106: RA2=1;
104 0639 1283 bcf 3,5
105 063A 1505 bsf 5,2
106 ;lcd1602a.c: 107: RA1=0;
107 063B 1085 bcf 5,1
108 ;lcd1602a.c: 108: RA3=1;
109 063C 1585 bsf 5,3
110 ;lcd1602a.c: 109: while (!( PORTC&0x80 ) == 0);
111 063D l6
112 063D 1B87 btfsc 7,7 ;volatile
113 063E 2E3D goto l6
114 ;lcd1602a.c: 110: TRISC= 0x00;
115 063F 1683 bsf 3,5
116 0640 0187 clrf 7 ;volatile
117 ;lcd1602a.c: 111: }
118 0641 1283 bcf 3,5
119 0642 0008 return
120
121 psect text10
122 ;lcd1602a.c: 227: void delay_1us(void)
123 ;lcd1602a.c: 228: {
124 0633 _delay_1us
125 ;lcd1602a.c: 229: asm("nop");
126 0633 0000 nop ;#
127 ;lcd1602a.c: 230: }
128 0634 0183 clrf 3 ;select bank 0
129 0635 0008 return
130
131 psect text11
132 0678 _delay_nus
133 ; _i assigned to ?a_delay_nus+0
134 0000 _delay_nus$i set ?a_delay_nus
135 ;lcd1602a.c: 234: unsigned int i=0;
136 0678 0183 clrf 3 ;select bank 0
137 0679 01A4 clrf ?a_delay_nus
138 067A 01A5 clrf ?a_delay_nus+1
139 ;lcd1602a.c: 235: for (i=0;i<n;i++)
140 067B 01A4 clrf ?a_delay_nus
141 067C 01A5 clrf ?a_delay_nus+1
142 067D 2E83 goto l46
143 067E l43
144 ;lcd1602a.c: 236: delay_1us();
145 ;lcd1602a.c: 229: asm("nop");
146 067E 0000 nop ;#
147 ;lcd1602a.c: 230: }
148 067F 0183 clrf 3 ;select bank 0
149 0680 0AA4 incf ?a_delay_nus
150 0681 1903 btfsc 3,2
151 0682 0AA5 incf ?a_delay_nus+1
152 0683 l46
153 0683 0823 movf ?_delay_nus+1,w
154 0684 0225 subwf ?a_delay_nus+1,w
155 0685 1D03 btfss 3,2
156 0686 2E89 goto u105
157 0687 0822 movf ?_delay_nus,w
158 0688 0224 subwf ?a_delay_nus,w
159 0689 u105
160 0689 1803 btfsc 3,0
161 068A 0008 return
162 068B 2E7E goto l43
163 068C _LCD_write_cmd
164 ; _cmd_temp assigned to ?a_LCD_write_cmd+0
165 0000 _LCD_write_cmd$cmd_temp set ?a_LCD_write_cmd
166 ;lcd1602a.c: 62: cmd_temp = command;
167 068C 0183 clrf 3 ;select bank 0
168 068D 0825 movf ?_LCD_write_cmd,w
169 068E 00A7 movwf ?a_LCD_write_cmd
170 068F 0826 movf ?_LCD_write_cmd+1,w
171 0690 00A8 movwf ?a_LCD_write_cmd+1
172 ;lcd1602a.c: 63: PORTC=PORTC&0x0f;
173 0691 300F movlw 15
174 0692 0587 andwf 7 ;volatile
175 ;lcd1602a.c: 64: PORTC=command&0xf0;
176 0693 0825 movf ?_LCD_write_cmd,w
177 0694 39F0 andlw -16
178 0695 0087 movwf 7 ;volatile
179 ;lcd1602a.c: 65: RA1=0;
180 0696 1085 bcf 5,1
181 ;lcd1602a.c: 66: RA2=0;
182 0697 1105 bcf 5,2
183 ;lcd1602a.c: 67: LCD_en_write();
184 0698 2754 120A 118A fcall _LCD_en_write
185 ;lcd1602a.c: 68: command=cmd_temp<<4;
186 069B 0828 movf ?a_LCD_write_cmd+1,w
187 069C 00F1 movwf btemp+1
188 069D 0827 movf ?a_LCD_write_cmd,w
189 069E 00F0 movwf btemp
190 069F 0EF0 swapf btemp
191 06A0 0EF1 swapf btemp+1
192 06A1 30F0 movlw 240
193 06A2 05F1 andwf btemp+1
194 06A3 0870 movf btemp,w
195 06A4 390F andlw 15
196 06A5 04F1 iorwf btemp+1
197 06A6 30F0 movlw 240
198 06A7 05F0 andwf btemp
199 06A8 0870 movf btemp,w
200 06A9 00A5 movwf ?_LCD_write_cmd
201 06AA 0871 movf btemp+1,w
202 06AB 00A6 movwf ?_LCD_write_cmd+1
203 ;lcd1602a.c: 69: PORTC=PORTC&0x0f;
204 06AC 300F movlw 15
205 06AD 0587 andwf 7 ;volatile
206 ;lcd1602a.c: 70: PORTC=command&0xf0;
207 06AE 0825 movf ?_LCD_write_cmd,w
208 06AF 39F0 andlw -16
209 06B0 0087 movwf 7 ;volatile
210 ;lcd1602a.c: 71: RA1=0;
211 06B1 1085 bcf 5,1
212 ;lcd1602a.c: 72: RA2=0;
213 06B2 1105 bcf 5,2
214 ;lcd1602a.c: 73: LCD_en_write();
215 06B3 2F54 ljmp _LCD_en_write
216 06B4 _LCD_set_xy
217 ; _x assigned to ?a_LCD_set_xy+0
218 0000 _LCD_set_xy$x set ?a_LCD_set_xy
219 ; _address assigned to ?a_LCD_set_xy+1
220 0000 _LCD_set_xy$address set ?a_LCD_set_xy+1
221 ;_x stored from w
222 06B4 0183 clrf 3 ;select bank 0
223 06B5 00A3 movwf ?a_LCD_set_xy
224 ;lcd1602a.c: 125: unsigned char address;
225 06B6 08A2 movf ?_LCD_set_xy
226 06B7 1D03 btfss 3,2
227 06B8 2EBC goto l10
228 06B9 0823 movf ?a_LCD_set_xy,w
229 06BA 3E80 addlw -128
230 06BB 2EBE goto L1
231 ;lcd1602a.c: 127: else
232 06BC l10
233 ;lcd1602a.c: 128: address = 0xc0 + x;
234 06BC 0823 movf ?a_LCD_set_xy,w
235 06BD 3EC0 addlw -64
236 06BE L1
237 06BE 00A4 movwf ?a_LCD_set_xy+1
238 ;lcd1602a.c: 129: LCD_write_cmd( address );
239 06BF 00A5 movwf ?_LCD_write_cmd
240 06C0 01A6 clrf ?_LCD_write_cmd+1
241 06C1 2E8C ljmp _LCD_write_cmd
242 06C2 _LCD_write_data
243 ; _data_temp assigned to ?a_LCD_write_data+0
244 0000 _LCD_write_data$data_temp set ?a_LCD_write_data
245 ;lcd1602a.c: 86: unsigned data_temp;
246 06C2 0183 clrf 3 ;select bank 0
247 06C3 0822 movf ?_LCD_write_data,w
248 06C4 00A4 movwf ?a_LCD_write_data
249 06C5 0823 movf ?_LCD_write_data+1,w
250 06C6 00A5 movwf ?a_LCD_write_data+1
251 ;lcd1602a.c: 90: PORTC=PORTC&0x0f;
252 06C7 300F movlw 15
253 06C8 0587 andwf 7 ;volatile
254 ;lcd1602a.c: 91: PORTC = data&0xf0;
255 06C9 0822 movf ?_LCD_write_data,w
256 06CA 39F0 andlw -16
257 06CB 0087 movwf 7 ;volatile
258 ;lcd1602a.c: 92: RA1=1;
259 06CC 1485 bsf 5,1
260 ;lcd1602a.c: 93: RA2=0;
261 06CD 1105 bcf 5,2
262 ;lcd1602a.c: 94: LCD_en_write();
263 06CE 2754 120A 118A fcall _LCD_en_write
264 ;lcd1602a.c: 95: data =data_temp<<4;
265 06D1 0825 movf ?a_LCD_write_data+1,w
266 06D2 00F1 movwf btemp+1
267 06D3 0824 movf ?a_LCD_write_data,w
268 06D4 00F0 movwf btemp
269 06D5 0EF0 swapf btemp
270 06D6 0EF1 swapf btemp+1
271 06D7 30F0 movlw 240
272 06D8 05F1 andwf btemp+1
273 06D9 0870 movf btemp,w
274 06DA 390F andlw 15
275 06DB 04F1 iorwf btemp+1
276 06DC 30F0 movlw 240
277 06DD 05F0 andwf btemp
278 06DE 0870 movf btemp,w
279 06DF 00A2 movwf ?_LCD_write_data
280 06E0 0871 movf btemp+1,w
281 06E1 00A3 movwf ?_LCD_write_data+1
282 ;lcd1602a.c: 96: PORTC=PORTC&0x0f;
283 06E2 300F movlw 15
284 06E3 0587 andwf 7 ;volatile
285 ;lcd1602a.c: 97: PORTC = data&0xf0;
286 06E4 0822 movf ?_LCD_write_data,w
287 06E5 39F0 andlw -16
288 06E6 0087 movwf 7 ;volatile
289 ;lcd1602a.c: 98: RA1=1;
290 06E7 1485 bsf 5,1
291 ;lcd1602a.c: 99: RA2=0;
292 06E8 1105 bcf 5,2
293 ;lcd1602a.c: 100: LCD_en_write();
294 06E9 2F54 ljmp _LCD_en_write
295 06EA _LCD_write_string
296 ; _X assigned to ?a_LCD_write_string+0
297 0000 _LCD_write_string$X set ?a_LCD_write_string
298 ;_X stored from w
299 06EA 0183 clrf 3 ;select bank 0
300 06EB 00A0 movwf ?a_LCD_write_string
301 ;lcd1602a.c: 142: LCD_set_xy( X, Y );
302 06EC 0820 movf ?_LCD_write_string,w
303 06ED 00A2 movwf ?_LCD_set_xy
304 06EE 0820 movf ?a_LCD_write_string,w
305 06EF 26B4 120A 118A fcall _LCD_set_xy
306 ;lcd1602a.c: 144: while (*s)
307 06F2 2EFD goto l13
308 06F3 l14
309 ;lcd1602a.c: 145: {
310 06F3 0821 movf ?_LCD_write_string+1,w
311 06F4 0084 movwf 4
312 06F5 1383 bcf 3,7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -