📄 lcd.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888 Tue Oct 2 19:10:15 2007
Licensed to: ONE TWO
1 processor 16F877A
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text1,local,class=CODE,delta=2
6 psect text2,local,class=CODE,delta=2
7 psect text5,local,class=CODE,delta=2
8 psect text8,local,class=CODE,delta=2
9 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20
21 psect __Z88888RS_
22 0190
23 0190
24
25 psect text0
26 02FC _lcd_light
27 ;lcd.c: 36: RA3 = 0;
28 02FC 0183 clrf 3 ;select bank 0
29 02FD 1185 bcf 5,3
30 ;lcd.c: 37: }
31 02FE 0183 clrf 3 ;select bank 0
32 02FF 0008 return
33
34 psect text1
35 02F8 _lcd_dark
36 ;lcd.c: 41: RA3 = 1;
37 02F8 0183 clrf 3 ;select bank 0
38 02F9 1585 bsf 5,3
39 ;lcd.c: 42: }
40 02FA 0183 clrf 3 ;select bank 0
41 02FB 0008 return
42
43 psect text2
44 03D4 _lcd_write
45 ;lcd.c: 49: PORTC = (PORTC & 0x0F) | (c &0xF0);
46 ; _c assigned to ?a_lcd_write+0
47 0000 _lcd_write$c set ?a_lcd_write
48 ;_c stored from w
49 03D4 0183 clrf 3 ;select bank 0
50 03D5 00CE movwf ?a_lcd_write
51 03D6 39F0 andlw -16
52 03D7 00F0 movwf btemp
53 03D8 0807 movf 7,w ;volatile
54 03D9 390F andlw 15
55 03DA 0470 iorwf btemp,w
56 03DB 0087 movwf 7 ;volatile
57 ;lcd.c: 50: ((RA2 = 1),(RA2=0));
58 03DC 1505 bsf 5,2
59 03DD 1105 bcf 5,2
60 ;lcd.c: 51: PORTC = (PORTC & 0x0F) | (c<<4);
61 03DE 0E4E swapf ?a_lcd_write,w
62 03DF 39F0 andlw 240
63 03E0 00F0 movwf btemp
64 03E1 0807 movf 7,w ;volatile
65 03E2 390F andlw 15
66 03E3 0470 iorwf btemp,w
67 03E4 0087 movwf 7 ;volatile
68 ;lcd.c: 52: ((RA2 = 1),(RA2=0));
69 03E5 1505 bsf 5,2
70 03E6 1105 bcf 5,2
71 ;lcd.c: 53: { unsigned char _dcnt; _dcnt = (40)
+ /((12*1000L)/(4*1000L))|1; while(--_dcnt != 0)
+ continue; };
72 ; __dcnt assigned to ?a_lcd_write+1
73 0000 _lcd_write$_dcnt set ?a_lcd_write+1
74 03E7 300D movlw 13
75 03E8 00CF movwf ?a_lcd_write+1
76 03E9 l4
77 03E9 1283 bcf 3,5
78 03EA 1303 bcf 3,6 ;carry unused
79 03EB 0BCF decfsz ?a_lcd_write+1
80 03EC 2BE9 goto l4
81 ;lcd.c: 54: }
82 03ED 0008 return
83 ;lcd.c: 58: void lcd_clear(void)
84 ;lcd.c: 59: {
85 03EE _lcd_clear
86 ;lcd.c: 60: RA1 = 0;
87 03EE 0183 clrf 3 ;select bank 0
88 03EF 1085 bcf 5,1
89 ;lcd.c: 61: lcd_write(0x1);
90 03F0 3001 movlw 1
91 03F1 23D4 fcall _lcd_write
92 ;lcd.c: 62: DelayMs(2);
93 03F2 3002 movlw 2
94 03F3 120A 118A 2B00 ljmp _DelayMs
95 03F6 _lcd_puts
96 ;lcd.c: 69: RA1 = 1;
97 03F6 0183 clrf 3 ;select bank 0
98 03F7 1485 bsf 5,1
99 ;lcd.c: 70: while(*s)
100 03F8 2C07 goto l9
101 03F9 l10
102 ;lcd.c: 71: {
103 ;lcd.c: 72: lcd_write(*s++);
104 03F9 1283 bcf 3,5
105 03FA 1303 bcf 3,6 ;carry unused
106 03FB 084D movf ?_lcd_puts+1,w
107 03FC 00D4 movwf code_ptr+1
108 03FD 084C movf ?_lcd_puts,w
109 03FE 0ACC incf ?_lcd_puts
110 03FF 1903 btfsc 3,2
111 0400 0ACD incf ?_lcd_puts+1
112 0401 120A 118A 204C fcall string_table
+ 120A 118A
113 0406 23D4 fcall _lcd_write
114 ;lcd.c: 73: }
115 0407 l9
116 0407 1283 bcf 3,5
117 0408 1303 bcf 3,6 ;carry unused
118 0409 084D movf ?_lcd_puts+1,w
119 040A 00D4 movwf code_ptr+1
120 040B 084C movf ?_lcd_puts,w
121 040C 120A 118A 204C fcall string_table
+ 120A 118A
122 0411 3800 iorlw 0
123 0412 1D03 btfss 3,2
124 0413 2BF9 goto l10
125 ;lcd.c: 74: }
126 0414 0183 clrf 3 ;select bank 0
127 0415 0008 return
128 ;lcd.c: 91: void lcd_goto(unsigned char pos)
129 ;lcd.c: 92: {
130 0416 _lcd_goto
131 ;lcd.c: 93: RA1 = 0;
132 0416 0183 clrf 3 ;select bank 0
133 0417 1085 bcf 5,1
134 ;lcd.c: 94: lcd_write(((pos)&0x7F)|0x80);
135 ; _pos assigned to ?a_lcd_goto+0
136 0000 _lcd_goto$pos set ?a_lcd_goto
137 ;_pos stored from w
138 0418 00CC movwf ?a_lcd_goto
139 0419 397F andlw 127
140 041A 3880 iorlw -128
141 041B 2BD4 ljmp _lcd_write
142 ;lcd.c: 117: void lcd_init(void)
143 ;lcd.c: 118: {
144 041C _lcd_init
145 ;lcd.c: 120: TRISA1 = 0;
146 041C 1683 bsf 3,5
147 041D 1303 bcf 3,6 ;carry unused
148 041E 1085 bcf 5,1
149 ;lcd.c: 121: TRISA2 = 0;
150 041F 1105 bcf 5,2
151 ;lcd.c: 122: TRISA3 = 0;
152 0420 1185 bcf 5,3
153 ;lcd.c: 123: RA1 = 0;
154 0421 1283 bcf 3,5
155 0422 1085 bcf 5,1
156 ;lcd.c: 124: RA2 = 0;
157 0423 1105 bcf 5,2
158 ;lcd.c: 125: RA3 = 0;
159 0424 1185 bcf 5,3
160 ;lcd.c: 126: RA1 = 0;
161 0425 1085 bcf 5,1
162 ;lcd.c: 127: lcd_write(0b00000010);
163 0426 3002 movlw 2
164 0427 23D4 fcall _lcd_write
165 ;lcd.c: 128: DelayMs(10);
166 0428 300A movlw 10
167 0429 120A 118A 2300 fcall _DelayMs
+ 120A 118A
168 ;lcd.c: 129: lcd_write(0b00111111);
169 042E 303F movlw 63
170 042F 23D4 fcall _lcd_write
171 ;lcd.c: 130: DelayMs(10);
172 0430 300A movlw 10
173 0431 120A 118A 2300 fcall _DelayMs
+ 120A 118A
174 ;lcd.c: 131: lcd_write(0b00111111);
175 0436 303F movlw 63
176 0437 23D4 fcall _lcd_write
177 ;lcd.c: 132: DelayMs(10);
178 0438 300A movlw 10
179 0439 120A 118A 2300 fcall _DelayMs
+ 120A 118A
180 ;lcd.c: 133: lcd_write(0b00101000);
181 043E 3028 movlw 40
182 043F 23D4 fcall _lcd_write
183 ;lcd.c: 134: DelayMs(10);
184 0440 300A movlw 10
185 0441 120A 118A 2300 fcall _DelayMs
+ 120A 118A
186 ;lcd.c: 135: lcd_write(0b00001100);
187 0446 300C movlw 12
188 0447 23D4 fcall _lcd_write
189 ;lcd.c: 136: DelayMs(10);
190 0448 300A movlw 10
191 0449 120A 118A 2300 fcall _DelayMs
+ 120A 118A
192 ;lcd.c: 137: lcd_write(0b00000001);
193 044E 3001 movlw 1
194 044F 23D4 fcall _lcd_write
195 ;lcd.c: 138: DelayMs(10);
196 0450 300A movlw 10
197 0451 120A 118A 2300 fcall _DelayMs
+ 120A 118A
198 ;lcd.c: 139: lcd_write(0b00000110);
199 0456 3006 movlw 6
200 0457 23D4 fcall _lcd_write
201 ;lcd.c: 140: DelayMs(10);
202 0458 300A movlw 10
203 0459 120A 118A 2B00 ljmp _DelayMs
204
205 psect text5
206 ;lcd.c: 79: void lcd_putch(char c)
207 ;lcd.c: 80: {
208 0327 _lcd_putch
209 ;lcd.c: 81: RA1 = 1;
210 0327 0183 clrf 3 ;select bank 0
211 0328 1485 bsf 5,1
212 ;lcd.c: 82: PORTC = (PORTC & 0x0F) | (c &0xF0);
213 ; _c assigned to ?a_lcd_putch+0
214 0000 _lcd_putch$c set ?a_lcd_putch
215 ;_c stored from w
216 0329 00CC movwf ?a_lcd_putch
217 032A 39F0 andlw -16
218 032B 00F0 movwf btemp
219 032C 0807 movf 7,w ;volatile
220 032D 390F andlw 15
221 032E 0470 iorwf btemp,w
222 032F 0087 movwf 7 ;volatile
223 ;lcd.c: 83: ((RA2 = 1),(RA2=0));
224 0330 1505 bsf 5,2
225 0331 1105 bcf 5,2
226 ;lcd.c: 84: PORTC = (PORTC & 0x0F) | (c<<4);
227 0332 0E4C swapf ?a_lcd_putch,w
228 0333 39F0 andlw 240
229 0334 00F0 movwf btemp
230 0335 0807 movf 7,w ;volatile
231 0336 390F andlw 15
232 0337 0470 iorwf btemp,w
233 0338 0087 movwf 7 ;volatile
234 ;lcd.c: 85: ((RA2 = 1),(RA2=0));
235 0339 1505 bsf 5,2
236 033A 1105 bcf 5,2
237 ;lcd.c: 86: { unsigned char _dcnt; _dcnt = (40)
+ /((12*1000L)/(4*1000L))|1; while(--_dcnt != 0)
+ continue; };
238 ; __dcnt assigned to ?a_lcd_putch+1
239 0000 _lcd_putch$_dcnt set ?a_lcd_putch+1
240 033B 300D movlw 13
241 033C 00CD movwf ?a_lcd_putch+1
242 033D l13
243 033D 1283 bcf 3,5
244 033E 1303 bcf 3,6 ;carry unused
245 033F 0BCD decfsz ?a_lcd_putch+1
246 0340 2B3D goto l13
247 ;lcd.c: 87: }
248 0341 0008 return
249
250 psect text8
251 0000
252 0000
253 0000
254 0000
255 0000
256 0000
257 0000
258 0000
259 0000
260 0000
261 0000
262 0000
263 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -