📄 lm9864a.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Thu Feb 19 11:52:09 2009
1 processor 16F877A
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text3,local,class=CODE,delta=2
5 psect text8,local,class=CODE,delta=2
6 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
7 0000
8 0000
9 0000
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17
18 psect text3
19 ;LM9864a.c: 38: unsigned char lcd_read(void)
20 ;LM9864a.c: 39: {
21 01BC _lcd_read
22 ; _temp assigned to ?a_lcd_read+0
23 0000 _lcd_read$temp set ?a_lcd_read
24 ;LM9864a.c: 40: unsigned char temp;
25 01BC 30FF movlw -1
26 01BD 0183 clrf 3 ;select bank 0
27 01BE 0088 movwf 8 ;volatile
28 ;LM9864a.c: 42: RS = 0;
29 01BF 1007 bcf 7,0
30 ;LM9864a.c: 43: RW = 1;
31 01C0 1487 bsf 7,1
32 ;LM9864a.c: 44: E=1;
33 01C1 1507 bsf 7,2
34 ;LM9864a.c: 45: TRISD = 0xff;
35 01C2 1683 bsf 3,5
36 01C3 0088 movwf 8 ;volatile
37 ;LM9864a.c: 46: temp = PORTD;
38 01C4 1283 bcf 3,5
39 01C5 0808 movf 8,w ;volatile
40 01C6 00AF movwf ?a_lcd_read
41 ;LM9864a.c: 47: E = 0;
42 01C7 1107 bcf 7,2
43 ;LM9864a.c: 48: TRISD = 0x00;
44 01C8 1683 bsf 3,5
45 01C9 0188 clrf 8 ;volatile
46 ;LM9864a.c: 49: return temp;
47 01CA 1283 bcf 3,5
48 01CB 082F movf ?a_lcd_read,w
49 ;LM9864a.c: 50: }
50 01CC 0008 return
51 ;LM9864a.c: 51: void command_write(unsigned cha
+ r flag,unsigned char send_data)
52 ;LM9864a.c: 52: {
53 ; param _send_data assigned to ?_command_
+ write+0
54 0000 _command_write$send_data set ?_command_write
55 01CD _command_write
56 ; _flag assigned to ?a_command_write+0
57 0000 _command_write$flag set ?a_command_write
58 ;_flag stored from w
59 01CD 0183 clrf 3 ;select bank 0
60 01CE 00AE movwf ?a_command_write
61 ;LM9864a.c: 53: if (flag == 0x00) RS = 0;
62 01CF 08AE movf ?a_command_write
63 01D0 1D03 btfss 3,2
64 01D1 29D4 goto l14
65 01D2 1007 bcf 7,0
66 ;LM9864a.c: 54: else RS = 1;
67 01D3 29D5 goto l15
68 01D4 l14
69 01D4 1407 bsf 7,0
70 01D5 l15
71 ;LM9864a.c: 55: RW = 0;
72 01D5 1087 bcf 7,1
73 ;LM9864a.c: 56: PORTD = send_data;
74 01D6 082D movf ?_command_write,w
75 01D7 0088 movwf 8 ;volatile
76 ;LM9864a.c: 57: E = 1;
77 01D8 1507 bsf 7,2
78 ;LM9864a.c: 58: E = 0;
79 01D9 1107 bcf 7,2
80 ;LM9864a.c: 59: while (lcd_read() & 0x80);
81 01DA l16
82 01DA 21BC fcall _lcd_read
83 01DB 00F0 movwf btemp
84 01DC 1FF0 btfss btemp,7
85 01DD 0008 return
86 01DE 29DA goto l16
87 01DF _lcd_delay
88 ; _number assigned to ?a_lcd_delay+0
89 0000 _lcd_delay$number set ?a_lcd_delay
90 ; _i assigned to ?a_lcd_delay+1
91 0000 _lcd_delay$i set ?a_lcd_delay+1
92 ;_number stored from w
93 01DF 0183 clrf 3 ;select bank 0
94 01E0 00AA movwf ?a_lcd_delay
95 ;LM9864a.c: 26: unsigned char i;
96 01E1 01AB clrf ?a_lcd_delay+1
97 01E2 29E4 goto l10
98 01E3 l7
99 ;LM9864a.c: 28: {
100 ;LM9864a.c: 29: }
101 01E3 0AAB incf ?a_lcd_delay+1
102 01E4 l10
103 01E4 082A movf ?a_lcd_delay,w
104 01E5 022B subwf ?a_lcd_delay+1,w
105 01E6 1803 btfsc 3,0
106 01E7 0008 return
107 01E8 29E3 goto l7
108 ;LM9864a.c: 31: void lcd_rst(void)
109 ;LM9864a.c: 32: {
110 01E9 _lcd_rst
111 ;LM9864a.c: 33: RST = 0;
112 01E9 0183 clrf 3 ;select bank 0
113 01EA 1187 bcf 7,3
114 ;LM9864a.c: 34: lcd_delay(0xff);
115 01EB 30FF movlw -1
116 01EC 21DF fcall _lcd_delay
117 ;LM9864a.c: 35: RST = 1;
118 01ED 1587 bsf 7,3
119 ;LM9864a.c: 36: lcd_delay(0xff);
120 01EE 30FF movlw -1
121 01EF 29DF ljmp _lcd_delay
122 ;stdlib.h: 122: extern int atexit(void (*)(void
+ ));
123 ;stdlib.h: 126: extern void qsort(void *, size_
+ t, size_t, int (*)(const void *, const void *))
+ ;
124 ;stdlib.h: 127: extern void * bsearch(const voi
+ d *, void *, size_t, size_t, int(*)(const void
+ *, const void *));
125 01F0 _system_inti
126 ;LM9864a.c: 19: INTCON = 0x00;
127 01F0 018B clrf 11 ;volatile
128 ;LM9864a.c: 20: TRISC = 0xf0;
129 01F1 30F0 movlw -16
130 01F2 1683 bsf 3,5
131 01F3 1303 bcf 3,6 ;carry unused
132 01F4 0087 movwf 7 ;volatile
133 ;LM9864a.c: 21: TRISD = 0x00;
134 01F5 0188 clrf 8 ;volatile
135 ;LM9864a.c: 22: (GIE = 0);
136 01F6 138B bcf 11,7
137 ;LM9864a.c: 23: }
138 01F7 1283 bcf 3,5
139 01F8 0008 return
140 ;LM9864a.c: 61: void lcd_init(void)
141 ;LM9864a.c: 62: {
142 01F9 _lcd_init
143 ;LM9864a.c: 63: system_inti();
144 01F9 21F0 fcall _system_inti
145 ;LM9864a.c: 64: lcd_rst();
146 01FA 21E9 120A 118A fcall _lcd_rst
147 ;LM9864a.c: 65: command_write(0x00,0xe2);
148 01FD 30E2 movlw -30
149 01FE 00AD movwf ?_command_write
150 01FF 3000 movlw 0
151 0200 21CD fcall _command_write
152 ;LM9864a.c: 66: lcd_delay(0x02);
153 0201 3002 movlw 2
154 0202 21DF fcall _lcd_delay
155 ;LM9864a.c: 67: command_write(0x00,0xa2);
156 0203 30A2 movlw -94
157 0204 00AD movwf ?_command_write
158 0205 3000 movlw 0
159 0206 21CD fcall _command_write
160 ;LM9864a.c: 68: lcd_delay(0x02);
161 0207 3002 movlw 2
162 0208 21DF fcall _lcd_delay
163 ;LM9864a.c: 69: command_write(0x00,0xa0);
164 0209 30A0 movlw -96
165 020A 00AD movwf ?_command_write
166 020B 3000 movlw 0
167 020C 21CD fcall _command_write
168 ;LM9864a.c: 70: lcd_delay(0x02);
169 020D 3002 movlw 2
170 020E 21DF fcall _lcd_delay
171 ;LM9864a.c: 71: command_write(0x00,0xc0);
172 020F 30C0 movlw -64
173 0210 00AD movwf ?_command_write
174 0211 3000 movlw 0
175 0212 21CD fcall _command_write
176 ;LM9864a.c: 72: lcd_delay(0x02);
177 0213 3002 movlw 2
178 0214 21DF fcall _lcd_delay
179 ;LM9864a.c: 73: command_write(0x00,0x2f);
180 0215 302F movlw 47
181 0216 00AD movwf ?_command_write
182 0217 3000 movlw 0
183 0218 21CD fcall _command_write
184 ;LM9864a.c: 74: lcd_delay(0x02);
185 0219 3002 movlw 2
186 021A 21DF fcall _lcd_delay
187 ;LM9864a.c: 75: command_write(0x00,0x81);
188 021B 3081 movlw -127
189 021C 00AD movwf ?_command_write
190 021D 3000 movlw 0
191 021E 21CD fcall _command_write
192 ;LM9864a.c: 76: lcd_delay(0x02);
193 021F 3002 movlw 2
194 0220 21DF fcall _lcd_delay
195 ;LM9864a.c: 77: command_write(0x00,0x2f);
196 0221 302F movlw 47
197 0222 00AD movwf ?_command_write
198 0223 3000 movlw 0
199 0224 21CD fcall _command_write
200 ;LM9864a.c: 78: lcd_delay(0x02);
201 0225 3002 movlw 2
202 0226 21DF fcall _lcd_delay
203 ;LM9864a.c: 79: command_write(0x00,0x40);
204 0227 3040 movlw 64
205 0228 00AD movwf ?_command_write
206 0229 3000 movlw 0
207 022A 21CD fcall _command_write
208 ;LM9864a.c: 80: lcd_delay(0x02);
209 022B 3002 movlw 2
210 022C 21DF fcall _lcd_delay
211 ;LM9864a.c: 81: command_write(0x00,0xe0);
212 022D 30E0 movlw -32
213 022E 00AD movwf ?_command_write
214 022F 3000 movlw 0
215 0230 21CD fcall _command_write
216 ;LM9864a.c: 82: lcd_delay(0x02);
217 0231 3002 movlw 2
218 0232 21DF fcall _lcd_delay
219 ;LM9864a.c: 83: command_write(0x00,0xaf);
220 0233 30AF movlw -81
221 0234 00AD movwf ?_command_write
222 0235 3000 movlw 0
223 0236 21CD fcall _command_write
224 ;LM9864a.c: 84: lcd_delay(0x02);
225 0237 3002 movlw 2
226 0238 29DF ljmp _lcd_delay
227 ;LM9864a.c: 86: void lcd_write_data(unsigned ch
+ ar lcd_data)
228 ;LM9864a.c: 87: {
229 0239 _lcd_write_data
230 ; _lcd_data assigned to ?a_lcd_write_data+0
231 0000 _lcd_write_data$lcd_data set ?a_lcd_write_data
232 ; _j assigned to ?a_lcd_write_data+1
233 0000 _lcd_write_data$j set ?a_lcd_write_data+1
234 ; _i assigned to ?a_lcd_write_data+2
235 0000 _lcd_write_data$i set ?a_lcd_write_data+2
236 ;_lcd_data stored from w
237 0239 0183 clrf 3 ;select bank 0
238 023A 00AA movwf ?a_lcd_write_data
239 ;LM9864a.c: 88: unsigned char i,j;
240 023B 01AC clrf ?a_lcd_write_data+2
241 023C l21
242 ;LM9864a.c: 90: {
243 ;LM9864a.c: 91: command_write(0x00,0xb0|i);
244 023C 082C movf ?a_lcd_write_data+2,w
245 023D 38B0 iorlw -80
246 023E 00AD movwf ?_command_write
247 023F 3000 movlw 0
248 0240 21CD fcall _command_write
249 ;LM9864a.c: 92: command_write(0x00,0x01);
250 0241 01AD clrf ?_command_write
251 0242 0AAD incf ?_command_write
252 0243 3000 movlw 0
253 0244 21CD fcall _command_write
254 ;LM9864a.c: 93: command_write(0x00,0x00);
255 0245 01AD clrf ?_command_write
256 0246 3000 movlw 0
257 0247 21CD fcall _command_write
258 ;LM9864a.c: 94: for(j=0;j<98;j++)
259 0248 01AB clrf ?a_lcd_write_data+1
260 0249 l24
261 ;LM9864a.c: 95: {
262 ;LM9864a.c: 96: command_write(0xff,lcd_data);
263 0249 082A movf ?a_lcd_write_data,w
264 024A 00AD movwf ?_command_write
265 024B 30FF movlw -1
266 024C 21CD fcall _command_write
267 ;LM9864a.c: 97: }
268 024D 0AAB incf ?a_lcd_write_data+1
269 024E 3062 movlw 98
270 024F 022B subwf ?a_lcd_write_data+1,w
271 0250 1C03 btfss 3,0
272 0251 2A49 goto l24
273 ;LM9864a.c: 98: }
274 0252 0AAC incf ?a_lcd_write_data+2
275 0253 3008 movlw 8
276 0254 022C subwf ?a_lcd_write_data+2,w
277 0255 1803 btfsc 3,0
278 0256 0008 return
279 0257 2A3C goto l21
280 ;LM9864a.c: 100: void main(void)
281 ;LM9864a.c: 101: {
282 0258 _main
283 ; _d assigned to ?a_main+0
284 0000 _main$d set ?a_main
285 ; _c assigned to ?a_main+1
286 0000 _main$c set ?a_main+1
287 ; _b assigned to ?a_main+2
288 0000 _main$b set ?a_main+2
289 ; _a assigned to ?a_main+6
290 0000 _main$a set ?a_main+6
291 ;LM9864a.c: 102: double a,b;
292 0258 21F9 120A 118A fcall _lcd_init
293 ;LM9864a.c: 106: lcd_write_data(0x0f);
294 025B 300F movlw 15
295 025C 2239 fcall _lcd_write_data
296 ;LM9864a.c: 107: a = 0.532;
297 025D 3027 movlw 39
298 025E 00A6 movwf ?a_main+6
299 025F 3031 movlw 49
300 0260 00A7 movwf ?a_main+7
301 0261 3008 movlw 8
302 0262 00A8 movwf ?a_main+8
303 0263 303F movlw 63
304 0264 00A9 movwf ?a_main+9
305 ;LM9864a.c: 108: b = acos(a);
306 0265 0826 movf ?a_main+6,w
307 0266 00AA movwf ?_acos
308 0267 0827 movf ?a_main+7,w
309 0268 00AB movwf ?_acos+1
310 0269 0828 movf ?a_main+8,w
311 026A 00AC movwf ?_acos+2
312 026B 0829 movf ?a_main+9,w
313 026C 00AD movwf ?_acos+3
314 026D 120A 118A 20EB fcall _acos
315 0270 0870 movf btemp,w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -