📄 main.lst
字号:
132 000e 1F93 push r17
133 0010 CF93 push r28
134 0012 DF93 push r29
135 /* prologue end (size=4) */
136 0014 EC01 movw r28,r24
137 0016 8B01 movw r16,r22
138 .LBB6:
139 .LBB7:
141 .Ltext4:
143 .LM7:
144 0018 85E3 ldi r24,lo8(53)
145 .LBB8:
146 .LBB9:
148 .LM8:
149 /* #APP */
150 001a 8A95 1: dec r24
151 001c F1F7 brne 1b
152 /* #NOAPP */
153 .LBE9:
154 .LBE8:
155 .LBE7:
156 .LBE6:
158 .Ltext5:
64:./LCD1602.h **** unsigned command_temp,data_temp,temp;
65:./LCD1602.h **** command_temp=command;
66:./LCD1602.h **** data_temp=data;
67:./LCD1602.h **** _delay_us(20);
68:./LCD1602.h **** if(command==0)
160 .LM9:
161 001e 2097 sbiw r28,0
162 0020 B1F4 brne .L19
69:./LCD1602.h **** {
70:./LCD1602.h **** LCD_RS_PORT|=LCD_RS; //RS=1
164 .LM10:
165 0022 A99A sbi 53-0x20,1
71:./LCD1602.h **** temp=data_temp;
72:./LCD1602.h **** data_temp=data_temp>>4;
167 .LM11:
168 0024 9B01 movw r18,r22
169 0026 94E0 ldi r25,4
170 0028 3695 1: lsr r19
171 002a 2795 ror r18
172 002c 9A95 dec r25
173 002e E1F7 brne 1b
73:./LCD1602.h **** LCD_DATA_PORT&=~LCD_DATA;
175 .LM12:
176 0030 82B3 in r24,50-0x20
177 0032 807F andi r24,lo8(-16)
178 0034 82BB out 50-0x20,r24
74:./LCD1602.h **** LCD_DATA_PORT|=data_temp&LCD_DATA;
180 .LM13:
181 0036 922F mov r25,r18
182 0038 9F70 andi r25,lo8(15)
183 003a 82B3 in r24,50-0x20
184 003c 892B or r24,r25
185 003e 82BB out 50-0x20,r24
75:./LCD1602.h **** LCD_en_write();
187 .LM14:
188 0040 0E94 0000 call LCD_en_write
76:./LCD1602.h **** LCD_DATA_PORT&=~LCD_DATA;
190 .LM15:
191 0044 82B3 in r24,50-0x20
192 0046 807F andi r24,lo8(-16)
193 0048 82BB out 50-0x20,r24
77:./LCD1602.h **** LCD_DATA_PORT|=temp&LCD_DATA; //
195 .LM16:
196 004a 902F mov r25,r16
197 004c 15C0 rjmp .L21
198 .L19:
78:./LCD1602.h **** LCD_en_write();
79:./LCD1602.h **** }
80:./LCD1602.h **** else
81:./LCD1602.h **** {
82:./LCD1602.h **** LCD_RS_PORT&=~LCD_RS; //RS=0
200 .LM17:
201 004e A998 cbi 53-0x20,1
83:./LCD1602.h **** temp=command_temp;
84:./LCD1602.h **** command_temp=command_temp>>4;
203 .LM18:
204 0050 9E01 movw r18,r28
205 0052 84E0 ldi r24,4
206 0054 3695 1: lsr r19
207 0056 2795 ror r18
208 0058 8A95 dec r24
209 005a E1F7 brne 1b
85:./LCD1602.h **** LCD_DATA_PORT&=~LCD_DATA;
211 .LM19:
212 005c 82B3 in r24,50-0x20
213 005e 807F andi r24,lo8(-16)
214 0060 82BB out 50-0x20,r24
86:./LCD1602.h **** LCD_DATA_PORT|=command_temp&LCD_DATA;
216 .LM20:
217 0062 922F mov r25,r18
218 0064 9F70 andi r25,lo8(15)
219 0066 82B3 in r24,50-0x20
220 0068 892B or r24,r25
221 006a 82BB out 50-0x20,r24
87:./LCD1602.h **** LCD_en_write();
223 .LM21:
224 006c 0E94 0000 call LCD_en_write
88:./LCD1602.h **** LCD_DATA_PORT&=~LCD_DATA;
226 .LM22:
227 0070 82B3 in r24,50-0x20
228 0072 807F andi r24,lo8(-16)
229 0074 82BB out 50-0x20,r24
89:./LCD1602.h **** LCD_DATA_PORT|=temp&LCD_DATA;
231 .LM23:
232 0076 9C2F mov r25,r28
233 .L21:
234 0078 9F70 andi r25,lo8(15)
235 007a 82B3 in r24,50-0x20
236 007c 892B or r24,r25
237 007e 82BB out 50-0x20,r24
90:./LCD1602.h **** LCD_en_write();
239 .LM24:
240 0080 0E94 0000 call LCD_en_write
241 /* epilogue: frame size=0 */
242 0084 DF91 pop r29
243 0086 CF91 pop r28
244 0088 1F91 pop r17
245 008a 0F91 pop r16
246 008c 0895 ret
247 /* epilogue end (size=5) */
248 /* function LCD_write_char size 67 (58) */
257 .Lscope1:
261 .global LCD_set_xy
263 LCD_set_xy:
265 .LM25:
266 /* prologue: frame size=0 */
267 /* prologue end (size=0) */
268 008e 982F mov r25,r24
270 .LM26:
271 0090 6623 tst r22
272 0092 19F4 brne .L23
274 .LM27:
275 0094 892F mov r24,r25
276 0096 8058 subi r24,lo8(-(-128))
277 0098 02C0 rjmp .L24
278 .L23:
280 .LM28:
281 009a 892F mov r24,r25
282 009c 8054 subi r24,lo8(-(-64))
283 .L24:
285 .LM29:
286 009e 60E0 ldi r22,lo8(0)
287 00a0 70E0 ldi r23,hi8(0)
288 00a2 9927 clr r25
289 00a4 0E94 0000 call LCD_write_char
290 /* epilogue: frame size=0 */
291 00a8 0895 ret
292 /* epilogue end (size=1) */
293 /* function LCD_set_xy size 14 (13) */
298 .Lscope2:
300 .global LCD_init
302 LCD_init:
304 .LM30:
305 /* prologue: frame size=0 */
306 00aa CF93 push r28
307 00ac DF93 push r29
308 /* prologue end (size=2) */
309 00ae E0E0 ldi r30,lo8(0)
310 00b0 F0E0 ldi r31,hi8(0)
311 00b2 C9E0 ldi r28,lo8(9)
312 00b4 D0E0 ldi r29,hi8(9)
313 .L37:
314 .LBB10:
315 .LBB11:
316 .LBB12:
317 .LBB13:
319 .Ltext6:
321 .LM31:
322 00b6 CF01 movw r24,r30
323 /* #APP */
324 00b8 0197 1: sbiw r24,1
325 00ba F1F7 brne 1b
326 /* #NOAPP */
327 .LBE13:
328 .LBE12:
329 .LBE11:
330 .LBE10:
332 .Ltext7:
334 .LM32:
335 00bc 2197 sbiw r28,1
336 00be D7FF sbrs r29,7
337 00c0 FACF rjmp .L37
338 00c2 C3E1 ldi r28,lo8(19)
339 00c4 D0E0 ldi r29,hi8(19)
340 .L49:
342 .LM33:
343 00c6 60E0 ldi r22,lo8(0)
344 00c8 70E0 ldi r23,hi8(0)
345 00ca 88E2 ldi r24,lo8(40)
346 00cc 90E0 ldi r25,hi8(40)
347 00ce 0E94 0000 call LCD_write_char
348 .LBB14:
349 .LBB15:
351 .Ltext8:
146:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** _delay_loop_1(__ticks);
147:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** }
148:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****
149:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****
150:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** /**
151:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** \ingroup avr_delay
152:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****
153:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** Perform a delay of \c __ms milliseconds, using _delay_loop_2().
154:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****
155:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** The macro F_CPU is supposed to be defined to a
156:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** constant defining the CPU clock frequency (in Hertz).
157:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h ****
158:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** The maximal possible delay is 262.14 ms / F_CPU in MHz.
159:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** */
160:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** static __inline__ void
161:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** _delay_ms(double __ms)
162:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** {
163:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** uint16_t __ticks;
164:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** double __tmp = ((F_CPU) / 4e3) * __ms;
165:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** if (__tmp < 1.0)
166:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** __ticks = 1;
167:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** else if (__tmp > 65535)
168:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** __ticks = 0; /* i.e. 65536 */
169:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** else
170:C:/WinAVR/bin/../lib/gcc/avr/3.4.3/../../../../avr/include/avr/delay.h **** __ticks = (uint16_t)__tmp;
353 .LM34:
354 00d2 80E3 ldi r24,lo8(30000)
355 00d4 95E7 ldi r25,hi8(30000)
356 .LBB16:
357 .LBB17:
359 .LM35:
360 /* #APP */
361 00d6 0197 1: sbiw r24,1
362 00d8 F1F7 brne 1b
363 /* #NOAPP */
364 .LBE17:
365 .LBE16:
366 .LBE15:
367 .LBE14:
369 .Ltext9:
371 .LM36:
372 00da 2197 sbiw r28,1
373 00dc D7FF sbrs r29,7
374 00de F3CF rjmp .L49
376 .LM37:
377 00e0 60E0 ldi r22,lo8(0)
378 00e2 70E0 ldi r23,hi8(0)
379 00e4 8CE0 ldi r24,lo8(12)
380 00e6 90E0 ldi r25,hi8(12)
381 00e8 0E94 0000 call LCD_write_char
382 .LBB18:
383 .LBB19:
385 .Ltext10:
387 .LM38:
388 00ec 80E1 ldi r24,lo8(10000)
389 00ee 97E2 ldi r25,hi8(10000)
390 .LBB20:
391 .LBB21:
393 .LM39:
394 /* #APP */
395 00f0 0197 1: sbiw r24,1
396 00f2 F1F7 brne 1b
397 /* #NOAPP */
398 .LBE21:
399 .LBE20:
400 .LBE19:
401 .LBE18:
403 .Ltext11:
405 .LM40:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -