📄 ds1302.lst
字号:
1 .file "ds1302.c"
2 .arch atmega8
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:
74 .global ds1302_write
76 ds1302_write:
1:ds1302.c **** #define ds1302_c
2:ds1302.c **** #include "main.h"
3:ds1302.c **** void ds1302_write(uchar reg,uchar data)
4:ds1302.c **** {
78 .LM1:
79 /* prologue: frame size=0 */
80 /* prologue end (size=0) */
5:ds1302.c **** uchar i=0;
6:ds1302.c **** set_ds1302_io_ddr();
82 .LM2:
83 0000 A19A sbi 52-0x20,1
7:ds1302.c **** asm("nop");
85 .LM3:
86 /* #APP */
87 0002 0000 nop
8:ds1302.c **** asm("nop");
89 .LM4:
90 0004 0000 nop
9:ds1302.c **** clr_ds1302_rst();
92 .LM5:
93 /* #NOAPP */
94 0006 A898 cbi 53-0x20,0
10:ds1302.c **** asm("nop");
96 .LM6:
97 /* #APP */
98 0008 0000 nop
11:ds1302.c **** asm("nop");
100 .LM7:
101 000a 0000 nop
12:ds1302.c **** clr_ds1302_sclk();
103 .LM8:
104 /* #NOAPP */
105 000c AA98 cbi 53-0x20,2
13:ds1302.c **** asm("nop");
107 .LM9:
108 /* #APP */
109 000e 0000 nop
14:ds1302.c **** asm("nop");
111 .LM10:
112 0010 0000 nop
15:ds1302.c **** set_ds1302_rst();
114 .LM11:
115 /* #NOAPP */
116 0012 A89A sbi 53-0x20,0
16:ds1302.c **** asm("nop");
118 .LM12:
119 /* #APP */
120 0014 0000 nop
17:ds1302.c **** asm("nop");
122 .LM13:
123 0016 0000 nop
18:ds1302.c **** for(i=8;i>0;i--)
125 .LM14:
126 /* #NOAPP */
127 0018 98E0 ldi r25,lo8(8)
128 .L7:
19:ds1302.c **** {
20:ds1302.c **** if(reg&0x01) set_ds1302_io();
130 .LM15:
131 001a 80FF sbrs r24,0
132 001c 02C0 rjmp .L5
133 001e A99A sbi 53-0x20,1
134 0020 01C0 rjmp .L6
135 .L5:
21:ds1302.c **** else clr_ds1302_io();
137 .LM16:
138 0022 A998 cbi 53-0x20,1
139 .L6:
22:ds1302.c **** asm("nop");
141 .LM17:
142 /* #APP */
143 0024 0000 nop
23:ds1302.c **** asm("nop");
145 .LM18:
146 0026 0000 nop
24:ds1302.c **** set_ds1302_sclk();
148 .LM19:
149 /* #NOAPP */
150 0028 AA9A sbi 53-0x20,2
25:ds1302.c **** asm("nop");
152 .LM20:
153 /* #APP */
154 002a 0000 nop
26:ds1302.c **** asm("nop");
156 .LM21:
157 002c 0000 nop
27:ds1302.c **** clr_ds1302_sclk();
159 .LM22:
160 /* #NOAPP */
161 002e AA98 cbi 53-0x20,2
28:ds1302.c **** asm("nop");
163 .LM23:
164 /* #APP */
165 0030 0000 nop
29:ds1302.c **** asm("nop");
167 .LM24:
168 0032 0000 nop
30:ds1302.c **** reg>>=1;
170 .LM25:
171 /* #NOAPP */
172 0034 8695 lsr r24
174 .LM26:
175 0036 9150 subi r25,lo8(-(-1))
176 0038 81F7 brne .L7
31:ds1302.c **** }
32:ds1302.c **** for(i=8;i>0;i--)
178 .LM27:
179 003a 98E0 ldi r25,lo8(8)
180 .L13:
33:ds1302.c **** {
34:ds1302.c **** if(data&0x01) set_ds1302_io();
182 .LM28:
183 003c 60FF sbrs r22,0
184 003e 02C0 rjmp .L11
185 0040 A99A sbi 53-0x20,1
186 0042 01C0 rjmp .L12
187 .L11:
35:ds1302.c **** else clr_ds1302_io();
189 .LM29:
190 0044 A998 cbi 53-0x20,1
191 .L12:
36:ds1302.c **** asm("nop");
193 .LM30:
194 /* #APP */
195 0046 0000 nop
37:ds1302.c **** asm("nop");
197 .LM31:
198 0048 0000 nop
38:ds1302.c **** set_ds1302_sclk();
200 .LM32:
201 /* #NOAPP */
202 004a AA9A sbi 53-0x20,2
39:ds1302.c **** asm("nop");
204 .LM33:
205 /* #APP */
206 004c 0000 nop
40:ds1302.c **** asm("nop");
208 .LM34:
209 004e 0000 nop
41:ds1302.c **** clr_ds1302_sclk();
211 .LM35:
212 /* #NOAPP */
213 0050 AA98 cbi 53-0x20,2
42:ds1302.c **** asm("nop");
215 .LM36:
216 /* #APP */
217 0052 0000 nop
43:ds1302.c **** asm("nop");
219 .LM37:
220 0054 0000 nop
44:ds1302.c **** data>>=1;
222 .LM38:
223 /* #NOAPP */
224 0056 6695 lsr r22
226 .LM39:
227 0058 9150 subi r25,lo8(-(-1))
228 005a 81F7 brne .L13
45:ds1302.c **** }
46:ds1302.c **** clr_ds1302_rst();
230 .LM40:
231 005c A898 cbi 53-0x20,0
47:ds1302.c **** asm("nop");
233 .LM41:
234 /* #APP */
235 005e 0000 nop
48:ds1302.c **** asm("nop");
237 .LM42:
238 0060 0000 nop
49:ds1302.c **** clr_ds1302_io_ddr();
240 .LM43:
241 /* #NOAPP */
242 0062 A198 cbi 52-0x20,1
50:ds1302.c **** asm("nop");
244 .LM44:
245 /* #APP */
246 0064 0000 nop
51:ds1302.c **** asm("nop");
248 .LM45:
249 0066 0000 nop
250 /* #NOAPP */
251 /* epilogue: frame size=0 */
252 0068 0895 ret
253 /* epilogue end (size=1) */
254 /* function ds1302_write size 79 (78) */
259 .Lscope0:
262 .global ds1302_read
264 ds1302_read:
52:ds1302.c **** }
53:ds1302.c **** uchar ds1302_read(uchar reg)
54:ds1302.c **** {
266 .LM46:
267 /* prologue: frame size=0 */
268 /* prologue end (size=0) */
55:ds1302.c **** uchar data=0;
270 .LM47:
271 006a 90E0 ldi r25,lo8(0)
56:ds1302.c **** uchar i=0;
57:ds1302.c **** reg+=1;//读标志
273 .LM48:
274 006c 8F5F subi r24,lo8(-(1))
58:ds1302.c **** set_ds1302_io_ddr();
276 .LM49:
277 006e A19A sbi 52-0x20,1
59:ds1302.c **** asm("nop");
279 .LM50:
280 /* #APP */
281 0070 0000 nop
60:ds1302.c **** asm("nop");
283 .LM51:
284 0072 0000 nop
61:ds1302.c **** clr_ds1302_rst();
286 .LM52:
287 /* #NOAPP */
288 0074 A898 cbi 53-0x20,0
62:ds1302.c **** asm("nop");
290 .LM53:
291 /* #APP */
292 0076 0000 nop
63:ds1302.c **** asm("nop");
294 .LM54:
295 0078 0000 nop
64:ds1302.c **** clr_ds1302_sclk();
297 .LM55:
298 /* #NOAPP */
299 007a AA98 cbi 53-0x20,2
65:ds1302.c **** asm("nop");
301 .LM56:
302 /* #APP */
303 007c 0000 nop
66:ds1302.c **** asm("nop");
305 .LM57:
306 007e 0000 nop
67:ds1302.c **** set_ds1302_rst();
308 .LM58:
309 /* #NOAPP */
310 0080 A89A sbi 53-0x20,0
68:ds1302.c **** asm("nop");
312 .LM59:
313 /* #APP */
314 0082 0000 nop
69:ds1302.c **** asm("nop");
316 .LM60:
317 0084 0000 nop
70:ds1302.c **** for(i=8;i>0;i--)
319 .LM61:
320 /* #NOAPP */
321 0086 28E0 ldi r18,lo8(8)
322 .L24:
71:ds1302.c **** {
72:ds1302.c ****
73:ds1302.c **** if(reg&0x01) set_ds1302_io();
324 .LM62:
325 0088 80FF sbrs r24,0
326 008a 02C0 rjmp .L22
327 008c A99A sbi 53-0x20,1
328 008e 01C0 rjmp .L23
329 .L22:
74:ds1302.c **** else clr_ds1302_io();
331 .LM63:
332 0090 A998 cbi 53-0x20,1
333 .L23:
75:ds1302.c **** asm("nop");
335 .LM64:
336 /* #APP */
337 0092 0000 nop
76:ds1302.c **** asm("nop");
339 .LM65:
340 0094 0000 nop
77:ds1302.c **** set_ds1302_sclk();
342 .LM66:
343 /* #NOAPP */
344 0096 AA9A sbi 53-0x20,2
78:ds1302.c **** asm("nop");
346 .LM67:
347 /* #APP */
348 0098 0000 nop
79:ds1302.c **** asm("nop");
350 .LM68:
351 009a 0000 nop
80:ds1302.c **** clr_ds1302_sclk();
353 .LM69:
354 /* #NOAPP */
355 009c AA98 cbi 53-0x20,2
81:ds1302.c **** asm("nop");
357 .LM70:
358 /* #APP */
359 009e 0000 nop
82:ds1302.c **** asm("nop");
361 .LM71:
362 00a0 0000 nop
83:ds1302.c **** reg>>=1;
364 .LM72:
365 /* #NOAPP */
366 00a2 8695 lsr r24
368 .LM73:
369 00a4 2150 subi r18,lo8(-(-1))
370 00a6 81F7 brne .L24
84:ds1302.c **** }
85:ds1302.c **** clr_ds1302_io_ddr();
372 .LM74:
373 00a8 A198 cbi 52-0x20,1
86:ds1302.c **** asm("nop");
375 .LM75:
376 /* #APP */
377 00aa 0000 nop
87:ds1302.c **** asm("nop");
379 .LM76:
380 00ac 0000 nop
88:ds1302.c **** for(i=8;i>0;i--)
382 .LM77:
383 /* #NOAPP */
384 00ae 28E0 ldi r18,lo8(8)
385 .L29:
89:ds1302.c **** {
90:ds1302.c **** data>>=1;
387 .LM78:
388 00b0 9695 lsr r25
91:ds1302.c **** if(in_ds1302_io()) data|=0x80;
390 .LM79:
391 00b2 9999 sbic 51-0x20,1
392 00b4 9068 ori r25,lo8(-128)
393 .L28:
92:ds1302.c **** asm("nop");
395 .LM80:
396 /* #APP */
397 00b6 0000 nop
93:ds1302.c **** asm("nop");
399 .LM81:
400 00b8 0000 nop
94:ds1302.c **** set_ds1302_sclk();
402 .LM82:
403 /* #NOAPP */
404 00ba AA9A sbi 53-0x20,2
95:ds1302.c **** asm("nop");
406 .LM83:
407 /* #APP */
408 00bc 0000 nop
96:ds1302.c **** asm("nop");
410 .LM84:
411 00be 0000 nop
97:ds1302.c **** clr_ds1302_sclk();
413 .LM85:
414 /* #NOAPP */
415 00c0 AA98 cbi 53-0x20,2
98:ds1302.c **** asm("nop");
417 .LM86:
418 /* #APP */
419 00c2 0000 nop
99:ds1302.c **** asm("nop");
421 .LM87:
422 00c4 0000 nop
424 .LM88:
425 /* #NOAPP */
426 00c6 2150 subi r18,lo8(-(-1))
427 00c8 99F7 brne .L29
100:ds1302.c **** }
101:ds1302.c **** clr_ds1302_rst();
429 .LM89:
430 00ca A898 cbi 53-0x20,0
102:ds1302.c **** asm("nop");
432 .LM90:
433 /* #APP */
434 00cc 0000 nop
103:ds1302.c **** asm("nop");
436 .LM91:
437 00ce 0000 nop
104:ds1302.c **** return(data);
105:ds1302.c **** }
439 .LM92:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -