📄 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:
94 .global ds1302_write
96 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 **** {
98 .LM1:
99 /* prologue: frame size=0 */
100 /* prologue end (size=0) */
5:ds1302.c **** uchar i=0;
6:ds1302.c **** set_ds1302_io_ddr();
102 .LM2:
103 0000 A19A sbi 52-0x20,1
7:ds1302.c **** asm("nop");
105 .LM3:
106 /* #APP */
107 0002 0000 nop
8:ds1302.c **** asm("nop");
109 .LM4:
110 0004 0000 nop
9:ds1302.c **** clr_ds1302_rst();
112 .LM5:
113 /* #NOAPP */
114 0006 A898 cbi 53-0x20,0
10:ds1302.c **** asm("nop");
116 .LM6:
117 /* #APP */
118 0008 0000 nop
11:ds1302.c **** asm("nop");
120 .LM7:
121 000a 0000 nop
12:ds1302.c **** clr_ds1302_sclk();
123 .LM8:
124 /* #NOAPP */
125 000c AA98 cbi 53-0x20,2
13:ds1302.c **** asm("nop");
127 .LM9:
128 /* #APP */
129 000e 0000 nop
14:ds1302.c **** asm("nop");
131 .LM10:
132 0010 0000 nop
15:ds1302.c **** set_ds1302_rst();
134 .LM11:
135 /* #NOAPP */
136 0012 A89A sbi 53-0x20,0
16:ds1302.c **** asm("nop");
138 .LM12:
139 /* #APP */
140 0014 0000 nop
17:ds1302.c **** asm("nop");
142 .LM13:
143 0016 0000 nop
18:ds1302.c **** for(i=8;i>0;i--)
145 .LM14:
146 /* #NOAPP */
147 0018 98E0 ldi r25,lo8(8)
148 .L7:
19:ds1302.c **** {
20:ds1302.c **** if(reg&0x01) set_ds1302_io();
150 .LM15:
151 001a 80FF sbrs r24,0
152 001c 02C0 rjmp .L5
153 001e A99A sbi 53-0x20,1
154 0020 01C0 rjmp .L6
155 .L5:
21:ds1302.c **** else clr_ds1302_io();
157 .LM16:
158 0022 A998 cbi 53-0x20,1
159 .L6:
22:ds1302.c **** asm("nop");
161 .LM17:
162 /* #APP */
163 0024 0000 nop
23:ds1302.c **** asm("nop");
165 .LM18:
166 0026 0000 nop
24:ds1302.c **** set_ds1302_sclk();
168 .LM19:
169 /* #NOAPP */
170 0028 AA9A sbi 53-0x20,2
25:ds1302.c **** asm("nop");
172 .LM20:
173 /* #APP */
174 002a 0000 nop
26:ds1302.c **** asm("nop");
176 .LM21:
177 002c 0000 nop
27:ds1302.c **** clr_ds1302_sclk();
179 .LM22:
180 /* #NOAPP */
181 002e AA98 cbi 53-0x20,2
28:ds1302.c **** asm("nop");
183 .LM23:
184 /* #APP */
185 0030 0000 nop
29:ds1302.c **** asm("nop");
187 .LM24:
188 0032 0000 nop
30:ds1302.c **** reg>>=1;
190 .LM25:
191 /* #NOAPP */
192 0034 8695 lsr r24
194 .LM26:
195 0036 9150 subi r25,lo8(-(-1))
196 0038 81F7 brne .L7
31:ds1302.c **** }
32:ds1302.c **** for(i=8;i>0;i--)
198 .LM27:
199 003a 98E0 ldi r25,lo8(8)
200 .L13:
33:ds1302.c **** {
34:ds1302.c **** if(data&0x01) set_ds1302_io();
202 .LM28:
203 003c 60FF sbrs r22,0
204 003e 02C0 rjmp .L11
205 0040 A99A sbi 53-0x20,1
206 0042 01C0 rjmp .L12
207 .L11:
35:ds1302.c **** else clr_ds1302_io();
209 .LM29:
210 0044 A998 cbi 53-0x20,1
211 .L12:
36:ds1302.c **** asm("nop");
213 .LM30:
214 /* #APP */
215 0046 0000 nop
37:ds1302.c **** asm("nop");
217 .LM31:
218 0048 0000 nop
38:ds1302.c **** set_ds1302_sclk();
220 .LM32:
221 /* #NOAPP */
222 004a AA9A sbi 53-0x20,2
39:ds1302.c **** asm("nop");
224 .LM33:
225 /* #APP */
226 004c 0000 nop
40:ds1302.c **** asm("nop");
228 .LM34:
229 004e 0000 nop
41:ds1302.c **** clr_ds1302_sclk();
231 .LM35:
232 /* #NOAPP */
233 0050 AA98 cbi 53-0x20,2
42:ds1302.c **** asm("nop");
235 .LM36:
236 /* #APP */
237 0052 0000 nop
43:ds1302.c **** asm("nop");
239 .LM37:
240 0054 0000 nop
44:ds1302.c **** data>>=1;
242 .LM38:
243 /* #NOAPP */
244 0056 6695 lsr r22
246 .LM39:
247 0058 9150 subi r25,lo8(-(-1))
248 005a 81F7 brne .L13
45:ds1302.c **** }
46:ds1302.c **** clr_ds1302_rst();
250 .LM40:
251 005c A898 cbi 53-0x20,0
47:ds1302.c **** asm("nop");
253 .LM41:
254 /* #APP */
255 005e 0000 nop
48:ds1302.c **** asm("nop");
257 .LM42:
258 0060 0000 nop
49:ds1302.c **** clr_ds1302_io_ddr();
260 .LM43:
261 /* #NOAPP */
262 0062 A198 cbi 52-0x20,1
50:ds1302.c **** asm("nop");
264 .LM44:
265 /* #APP */
266 0064 0000 nop
51:ds1302.c **** asm("nop");
268 .LM45:
269 0066 0000 nop
270 /* #NOAPP */
271 /* epilogue: frame size=0 */
272 0068 0895 ret
273 /* epilogue end (size=1) */
274 /* function ds1302_write size 79 (78) */
279 .Lscope0:
282 .global ds1302_read
284 ds1302_read:
52:ds1302.c **** }
53:ds1302.c **** uchar ds1302_read(uchar reg)
54:ds1302.c **** {
286 .LM46:
287 /* prologue: frame size=0 */
288 /* prologue end (size=0) */
55:ds1302.c **** uchar data=0;
290 .LM47:
291 006a 90E0 ldi r25,lo8(0)
56:ds1302.c **** uchar i=0;
57:ds1302.c **** reg+=1;//读标志
293 .LM48:
294 006c 8F5F subi r24,lo8(-(1))
58:ds1302.c **** set_ds1302_io_ddr();
296 .LM49:
297 006e A19A sbi 52-0x20,1
59:ds1302.c **** asm("nop");
299 .LM50:
300 /* #APP */
301 0070 0000 nop
60:ds1302.c **** asm("nop");
303 .LM51:
304 0072 0000 nop
61:ds1302.c **** clr_ds1302_rst();
306 .LM52:
307 /* #NOAPP */
308 0074 A898 cbi 53-0x20,0
62:ds1302.c **** asm("nop");
310 .LM53:
311 /* #APP */
312 0076 0000 nop
63:ds1302.c **** asm("nop");
314 .LM54:
315 0078 0000 nop
64:ds1302.c **** clr_ds1302_sclk();
317 .LM55:
318 /* #NOAPP */
319 007a AA98 cbi 53-0x20,2
65:ds1302.c **** asm("nop");
321 .LM56:
322 /* #APP */
323 007c 0000 nop
66:ds1302.c **** asm("nop");
325 .LM57:
326 007e 0000 nop
67:ds1302.c **** set_ds1302_rst();
328 .LM58:
329 /* #NOAPP */
330 0080 A89A sbi 53-0x20,0
68:ds1302.c **** asm("nop");
332 .LM59:
333 /* #APP */
334 0082 0000 nop
69:ds1302.c **** asm("nop");
336 .LM60:
337 0084 0000 nop
70:ds1302.c **** for(i=8;i>0;i--)
339 .LM61:
340 /* #NOAPP */
341 0086 28E0 ldi r18,lo8(8)
342 .L24:
71:ds1302.c **** {
72:ds1302.c ****
73:ds1302.c **** if(reg&0x01) set_ds1302_io();
344 .LM62:
345 0088 80FF sbrs r24,0
346 008a 02C0 rjmp .L22
347 008c A99A sbi 53-0x20,1
348 008e 01C0 rjmp .L23
349 .L22:
74:ds1302.c **** else clr_ds1302_io();
351 .LM63:
352 0090 A998 cbi 53-0x20,1
353 .L23:
75:ds1302.c **** asm("nop");
355 .LM64:
356 /* #APP */
357 0092 0000 nop
76:ds1302.c **** asm("nop");
359 .LM65:
360 0094 0000 nop
77:ds1302.c **** set_ds1302_sclk();
362 .LM66:
363 /* #NOAPP */
364 0096 AA9A sbi 53-0x20,2
78:ds1302.c **** asm("nop");
366 .LM67:
367 /* #APP */
368 0098 0000 nop
79:ds1302.c **** asm("nop");
370 .LM68:
371 009a 0000 nop
80:ds1302.c **** clr_ds1302_sclk();
373 .LM69:
374 /* #NOAPP */
375 009c AA98 cbi 53-0x20,2
81:ds1302.c **** asm("nop");
377 .LM70:
378 /* #APP */
379 009e 0000 nop
82:ds1302.c **** asm("nop");
381 .LM71:
382 00a0 0000 nop
83:ds1302.c **** reg>>=1;
384 .LM72:
385 /* #NOAPP */
386 00a2 8695 lsr r24
388 .LM73:
389 00a4 2150 subi r18,lo8(-(-1))
390 00a6 81F7 brne .L24
84:ds1302.c **** }
85:ds1302.c **** clr_ds1302_io_ddr();
392 .LM74:
393 00a8 A198 cbi 52-0x20,1
86:ds1302.c **** asm("nop");
395 .LM75:
396 /* #APP */
397 00aa 0000 nop
87:ds1302.c **** asm("nop");
399 .LM76:
400 00ac 0000 nop
88:ds1302.c **** for(i=8;i>0;i--)
402 .LM77:
403 /* #NOAPP */
404 00ae 28E0 ldi r18,lo8(8)
405 .L29:
89:ds1302.c **** {
90:ds1302.c **** data>>=1;
407 .LM78:
408 00b0 9695 lsr r25
91:ds1302.c **** if(in_ds1302_io()) data|=0x80;
410 .LM79:
411 00b2 9999 sbic 51-0x20,1
412 00b4 9068 ori r25,lo8(-128)
413 .L28:
92:ds1302.c **** asm("nop");
415 .LM80:
416 /* #APP */
417 00b6 0000 nop
93:ds1302.c **** asm("nop");
419 .LM81:
420 00b8 0000 nop
94:ds1302.c **** set_ds1302_sclk();
422 .LM82:
423 /* #NOAPP */
424 00ba AA9A sbi 53-0x20,2
95:ds1302.c **** asm("nop");
426 .LM83:
427 /* #APP */
428 00bc 0000 nop
96:ds1302.c **** asm("nop");
430 .LM84:
431 00be 0000 nop
97:ds1302.c **** clr_ds1302_sclk();
433 .LM85:
434 /* #NOAPP */
435 00c0 AA98 cbi 53-0x20,2
98:ds1302.c **** asm("nop");
437 .LM86:
438 /* #APP */
439 00c2 0000 nop
99:ds1302.c **** asm("nop");
441 .LM87:
442 00c4 0000 nop
444 .LM88:
445 /* #NOAPP */
446 00c6 2150 subi r18,lo8(-(-1))
447 00c8 99F7 brne .L29
100:ds1302.c **** }
101:ds1302.c **** clr_ds1302_rst();
449 .LM89:
450 00ca A898 cbi 53-0x20,0
102:ds1302.c **** asm("nop");
452 .LM90:
453 /* #APP */
454 00cc 0000 nop
103:ds1302.c **** asm("nop");
456 .LM91:
457 00ce 0000 nop
104:ds1302.c **** return(data);
105:ds1302.c **** }
459 .LM92:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -