📄 cx65m16.lst
字号:
1 .file "CX65M16.c"
2 .arch atmega16
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
86 .global delay_1ms
88 delay_1ms:
1:CX65M16.c **** #include <avr/pgmspace.h>
2:CX65M16.c **** #include "CX65M16.h"
3:CX65M16.c ****
4:CX65M16.c **** void delay_1ms(void)
5:CX65M16.c **** {
90 .LM1:
91 /* prologue: frame size=0 */
92 /* prologue end (size=0) */
6:CX65M16.c **** {
7:CX65M16.c **** unsigned int i;
94 .LM2:
95 0000 87E2 ldi r24,lo8(1575)
96 0002 96E0 ldi r25,hi8(1575)
97 .L5:
99 .LM3:
100 0004 0497 sbiw r24,4
101 0006 97FF sbrs r25,7
102 0008 FDCF rjmp .L5
103 /* epilogue: frame size=0 */
104 000a 0895 ret
105 /* epilogue end (size=1) */
106 /* function delay_1ms size 6 (5) */
111 .Lscope0:
114 .global delay
116 delay:
8:CX65M16.c **** ;
9:CX65M16.c **** for (i=1;i<1580;i++)
10:CX65M16.c **** ;
11:CX65M16.c **** }
118 .LM4:
119 /* prologue: frame size=0 */
120 000c 0F93 push r16
121 000e 1F93 push r17
122 0010 CF93 push r28
123 0012 DF93 push r29
124 /* prologue end (size=4) */
125 0014 8C01 movw r16,r24
12:CX65M16.c **** }
127 .LM5:
128 0016 C0E0 ldi r28,lo8(0)
129 0018 D0E0 ldi r29,hi8(0)
13:CX65M16.c **** }
131 .LM6:
132 001a C817 cp r28,r24
133 001c D907 cpc r29,r25
134 001e 30F4 brsh .L33
135 .L31:
14:CX65M16.c **** }
137 .LM7:
138 0020 0E94 0000 call delay_1ms
140 .LM8:
141 0024 2196 adiw r28,1
142 0026 C017 cp r28,r16
143 0028 D107 cpc r29,r17
144 002a D0F3 brlo .L31
145 .L33:
146 /* epilogue: frame size=0 */
147 002c DF91 pop r29
148 002e CF91 pop r28
149 0030 1F91 pop r17
150 0032 0F91 pop r16
151 0034 0895 ret
152 /* epilogue end (size=5) */
153 /* function delay size 21 (12) */
158 .Lscope1:
162 .global LCD_Send
164 LCD_Send:
15:CX65M16.c **** }
16:CX65M16.c **** void delay(unsigned int n)
17:CX65M16.c **** {
18:CX65M16.c **** unsigned int i=0;
19:CX65M16.c **** for(i=0;i<n;i++)
20:CX65M16.c **** delay_1ms();
21:CX65M16.c **** }
22:CX65M16.c ****
23:CX65M16.c ****
24:CX65M16.c **** void LCD_Initialize(void)
25:CX65M16.c **** {
26:CX65M16.c **** prog_char a[] = {0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE, 0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x
27:CX65M16.c **** 0x7F, 0x3F, 0xEE, 0x04, 0x43, 0x06 };
28:CX65M16.c **** prog_char b[] = {0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF, 0x0A, 0x00, 0x05, 0x00, 0x
29:CX65M16.c **** 0x07, 0x00, 0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80, 0xEF, 0xB0, 0x49, 0x02 ,
30:CX65M16.c **** 0xEF, 0x00, 0x7F, 0x01, 0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83};
31:CX65M16.c **** unsigned int i;
32:CX65M16.c **** DDRB=0XFF;
33:CX65M16.c **** PORTB|= (1<<LCD_CS );
34:CX65M16.c **** PORTB&=~(1<<LCD_RESET );
35:CX65M16.c **** PORTB|= (1<<LCD_CS );
36:CX65M16.c **** PORTB|= (1<<LCD_DATA );
37:CX65M16.c **** PORTB&=~(1<<LCD_SCK );
38:CX65M16.c **** PORTB|= (1<<LCD_RS );
39:CX65M16.c **** PORTB|= (1<<LCD_RESET);
40:CX65M16.c **** for(i=0;i<4;i++)
41:CX65M16.c **** LCD_Send(0xFD,0);
42:CX65M16.c **** delay(50);
43:CX65M16.c **** for(i=0;i<20;i++)
44:CX65M16.c **** LCD_Send(a[i],0);
45:CX65M16.c **** delay(7);
46:CX65M16.c **** for(i=0;i<40;i++)
47:CX65M16.c **** LCD_Send(b[i],0);
48:CX65M16.c **** delay(50);
49:CX65M16.c **** LCD_Send(0x80,0);
50:CX65M16.c **** LCD_Send(0x01,0);
51:CX65M16.c **** LCD_Send(0xEF,0);
52:CX65M16.c **** LCD_Send(0x90,0);
53:CX65M16.c **** LCD_Send(0x00,0);
166 .LM9:
167 /* prologue: frame size=0 */
168 /* prologue end (size=0) */
169 0036 982F mov r25,r24
54:CX65M16.c ****
171 .LM10:
172 0038 8FEB ldi r24,lo8(-65)
173 003a 87BB out 55-0x20,r24
55:CX65M16.c ****
175 .LM11:
176 003c 80E5 ldi r24,lo8(80)
177 003e 8DB9 out 45-0x20,r24
56:CX65M16.c ****
179 .LM12:
180 0040 81E0 ldi r24,lo8(1)
181 0042 8EB9 out 46-0x20,r24
57:CX65M16.c ****
183 .LM13:
184 0044 672B or r22,r23
185 0046 11F4 brne .L35
58:CX65M16.c ****
187 .LM14:
188 0048 C29A sbi 56-0x20,2
189 004a 01C0 rjmp .L36
190 .L35:
59:CX65M16.c ****
60:CX65M16.c **** LCD_Send(0x00,0);
192 .LM15:
193 004c C298 cbi 56-0x20,2
194 .L36:
61:CX65M16.c ****
196 .LM16:
197 004e C498 cbi 56-0x20,4
62:CX65M16.c **** }
199 .LM17:
200 0050 9FB9 out 47-0x20,r25
201 .L37:
63:CX65M16.c ****
203 .LM18:
204 0052 779B sbis 46-0x20,7
205 0054 FECF rjmp .L37
206 /* epilogue: frame size=0 */
207 0056 0895 ret
208 /* epilogue end (size=1) */
209 /* function LCD_Send size 17 (16) */
211 .Lscope2:
212 .data
213 .LC0:
214 0000 EF .byte -17
215 0001 00 .byte 0
216 0002 EE .byte -18
217 0003 04 .byte 4
218 0004 1B .byte 27
219 0005 04 .byte 4
220 0006 FE .byte -2
221 0007 FE .byte -2
222 0008 FE .byte -2
223 0009 FE .byte -2
224 000a EF .byte -17
225 000b 90 .byte -112
226 000c 4A .byte 74
227 000d 04 .byte 4
228 000e 7F .byte 127
229 000f 3F .byte 63
230 0010 EE .byte -18
231 0011 04 .byte 4
232 0012 43 .byte 67
233 0013 06 .byte 6
234 .LC1:
235 0014 EF .byte -17
236 0015 90 .byte -112
237 0016 09 .byte 9
238 0017 83 .byte -125
239 0018 08 .byte 8
240 0019 00 .byte 0
241 001a 0B .byte 11
242 001b AF .byte -81
243 001c 0A .byte 10
244 001d 00 .byte 0
245 001e 05 .byte 5
246 001f 00 .byte 0
247 0020 06 .byte 6
248 0021 00 .byte 0
249 0022 07 .byte 7
250 0023 00 .byte 0
251 0024 EF .byte -17
252 0025 00 .byte 0
253 0026 EE .byte -18
254 0027 0C .byte 12
255 0028 EF .byte -17
256 0029 90 .byte -112
257 002a 00 .byte 0
258 002b 80 .byte -128
259 002c EF .byte -17
260 002d B0 .byte -80
261 002e 49 .byte 73
262 002f 02 .byte 2
263 0030 EF .byte -17
264 0031 00 .byte 0
265 0032 7F .byte 127
266 0033 01 .byte 1
267 0034 E1 .byte -31
268 0035 81 .byte -127
269 0036 E2 .byte -30
270 0037 02 .byte 2
271 0038 E2 .byte -30
272 0039 76 .byte 118
273 003a E1 .byte -31
274 003b 83 .byte -125
275 .text
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -