📄 main.lss
字号:
1e4: 51 50 subi r21, 0x01 ; 1
1e6: 57 ff sbrs r21, 7
1e8: f5 cf rjmp .-22 ; 0x1d4
}
clr_hc595_srclk();
1ea: c1 98 cbi 0x18, 1 ; 24
clr_hc595_rclk();
1ec: c0 98 cbi 0x18, 0 ; 24
set_hc595_rclk();
1ee: c0 9a sbi 0x18, 0 ; 24
clr_hc595_rclk();
1f0: c0 98 cbi 0x18, 0 ; 24
TCNT0=t0_tcnt;//定时10ms
1f2: 87 ef ldi r24, 0xF7 ; 247
1f4: 82 bf out 0x32, r24 ; 50
1f6: ff 91 pop r31
1f8: ef 91 pop r30
1fa: 9f 91 pop r25
1fc: 8f 91 pop r24
1fe: 6f 91 pop r22
200: 5f 91 pop r21
202: 4f 91 pop r20
204: 3f 91 pop r19
206: 2f 91 pop r18
208: 0f 90 pop r0
20a: 0f be out 0x3f, r0 ; 63
20c: 0f 90 pop r0
20e: 1f 90 pop r1
210: 18 95 reti
00000212 <ds1302_write>:
#include "main.h"
void ds1302_write(uchar reg,uchar data)
{
uchar i=0;
set_ds1302_io_ddr();
212: a1 9a sbi 0x14, 1 ; 20
asm("nop");
214: 00 00 nop
asm("nop");
216: 00 00 nop
clr_ds1302_rst();
218: a8 98 cbi 0x15, 0 ; 21
asm("nop");
21a: 00 00 nop
asm("nop");
21c: 00 00 nop
clr_ds1302_sclk();
21e: aa 98 cbi 0x15, 2 ; 21
asm("nop");
220: 00 00 nop
asm("nop");
222: 00 00 nop
set_ds1302_rst();
224: a8 9a sbi 0x15, 0 ; 21
asm("nop");
226: 00 00 nop
asm("nop");
228: 00 00 nop
for(i=8;i>0;i--)
22a: 98 e0 ldi r25, 0x08 ; 8
{
if(reg&0x01) set_ds1302_io();
22c: 80 ff sbrs r24, 0
22e: 02 c0 rjmp .+4 ; 0x234
230: a9 9a sbi 0x15, 1 ; 21
232: 01 c0 rjmp .+2 ; 0x236
else clr_ds1302_io();
234: a9 98 cbi 0x15, 1 ; 21
asm("nop");
236: 00 00 nop
asm("nop");
238: 00 00 nop
set_ds1302_sclk();
23a: aa 9a sbi 0x15, 2 ; 21
asm("nop");
23c: 00 00 nop
asm("nop");
23e: 00 00 nop
clr_ds1302_sclk();
240: aa 98 cbi 0x15, 2 ; 21
asm("nop");
242: 00 00 nop
asm("nop");
244: 00 00 nop
reg>>=1;
246: 86 95 lsr r24
248: 91 50 subi r25, 0x01 ; 1
24a: 81 f7 brne .-32 ; 0x22c
}
for(i=8;i>0;i--)
24c: 98 e0 ldi r25, 0x08 ; 8
{
if(data&0x01) set_ds1302_io();
24e: 60 ff sbrs r22, 0
250: 02 c0 rjmp .+4 ; 0x256
252: a9 9a sbi 0x15, 1 ; 21
254: 01 c0 rjmp .+2 ; 0x258
else clr_ds1302_io();
256: a9 98 cbi 0x15, 1 ; 21
asm("nop");
258: 00 00 nop
asm("nop");
25a: 00 00 nop
set_ds1302_sclk();
25c: aa 9a sbi 0x15, 2 ; 21
asm("nop");
25e: 00 00 nop
asm("nop");
260: 00 00 nop
clr_ds1302_sclk();
262: aa 98 cbi 0x15, 2 ; 21
asm("nop");
264: 00 00 nop
asm("nop");
266: 00 00 nop
data>>=1;
268: 66 95 lsr r22
26a: 91 50 subi r25, 0x01 ; 1
26c: 81 f7 brne .-32 ; 0x24e
}
clr_ds1302_rst();
26e: a8 98 cbi 0x15, 0 ; 21
asm("nop");
270: 00 00 nop
asm("nop");
272: 00 00 nop
clr_ds1302_io_ddr();
274: a1 98 cbi 0x14, 1 ; 20
asm("nop");
276: 00 00 nop
asm("nop");
278: 00 00 nop
27a: 08 95 ret
0000027c <ds1302_read>:
}
uchar ds1302_read(uchar reg)
{
uchar data=0;
27c: 90 e0 ldi r25, 0x00 ; 0
uchar i=0;
reg+=1;//读标志
27e: 8f 5f subi r24, 0xFF ; 255
set_ds1302_io_ddr();
280: a1 9a sbi 0x14, 1 ; 20
asm("nop");
282: 00 00 nop
asm("nop");
284: 00 00 nop
clr_ds1302_rst();
286: a8 98 cbi 0x15, 0 ; 21
asm("nop");
288: 00 00 nop
asm("nop");
28a: 00 00 nop
clr_ds1302_sclk();
28c: aa 98 cbi 0x15, 2 ; 21
asm("nop");
28e: 00 00 nop
asm("nop");
290: 00 00 nop
set_ds1302_rst();
292: a8 9a sbi 0x15, 0 ; 21
asm("nop");
294: 00 00 nop
asm("nop");
296: 00 00 nop
for(i=8;i>0;i--)
298: 28 e0 ldi r18, 0x08 ; 8
{
if(reg&0x01) set_ds1302_io();
29a: 80 ff sbrs r24, 0
29c: 02 c0 rjmp .+4 ; 0x2a2
29e: a9 9a sbi 0x15, 1 ; 21
2a0: 01 c0 rjmp .+2 ; 0x2a4
else clr_ds1302_io();
2a2: a9 98 cbi 0x15, 1 ; 21
asm("nop");
2a4: 00 00 nop
asm("nop");
2a6: 00 00 nop
set_ds1302_sclk();
2a8: aa 9a sbi 0x15, 2 ; 21
asm("nop");
2aa: 00 00 nop
asm("nop");
2ac: 00 00 nop
clr_ds1302_sclk();
2ae: aa 98 cbi 0x15, 2 ; 21
asm("nop");
2b0: 00 00 nop
asm("nop");
2b2: 00 00 nop
reg>>=1;
2b4: 86 95 lsr r24
2b6: 21 50 subi r18, 0x01 ; 1
2b8: 81 f7 brne .-32 ; 0x29a
}
clr_ds1302_io_ddr();
2ba: a1 98 cbi 0x14, 1 ; 20
asm("nop");
2bc: 00 00 nop
asm("nop");
2be: 00 00 nop
for(i=8;i>0;i--)
2c0: 28 e0 ldi r18, 0x08 ; 8
{
data>>=1;
2c2: 96 95 lsr r25
if(in_ds1302_io()) data|=0x80;
2c4: 99 99 sbic 0x13, 1 ; 19
2c6: 90 68 ori r25, 0x80 ; 128
asm("nop");
2c8: 00 00 nop
asm("nop");
2ca: 00 00 nop
set_ds1302_sclk();
2cc: aa 9a sbi 0x15, 2 ; 21
asm("nop");
2ce: 00 00 nop
asm("nop");
2d0: 00 00 nop
clr_ds1302_sclk();
2d2: aa 98 cbi 0x15, 2 ; 21
asm("nop");
2d4: 00 00 nop
asm("nop");
2d6: 00 00 nop
2d8: 21 50 subi r18, 0x01 ; 1
2da: 99 f7 brne .-26 ; 0x2c2
}
clr_ds1302_rst();
2dc: a8 98 cbi 0x15, 0 ; 21
asm("nop");
2de: 00 00 nop
asm("nop");
2e0: 00 00 nop
return(data);
}
2e2: 89 2f mov r24, r25
2e4: 99 27 eor r25, r25
2e6: 08 95 ret
000002e8 <check_ds1302>:
uchar check_ds1302(void)
{
ds1302_write(ds1302_control_reg,0x80);
2e8: 60 e8 ldi r22, 0x80 ; 128
2ea: 8e e8 ldi r24, 0x8E ; 142
2ec: 92 df rcall .-220 ; 0x212
if(ds1302_read(ds1302_control_reg)==0x80) return 1;
2ee: 8e e8 ldi r24, 0x8E ; 142
2f0: c5 df rcall .-118 ; 0x27c
2f2: 80 38 cpi r24, 0x80 ; 128
2f4: 19 f4 brne .+6 ; 0x2fc
2f6: 81 e0 ldi r24, 0x01 ; 1
2f8: 90 e0 ldi r25, 0x00 ; 0
2fa: 08 95 ret
return 0;
2fc: 80 e0 ldi r24, 0x00 ; 0
2fe: 90 e0 ldi r25, 0x00 ; 0
}
300: 08 95 ret
302: 08 95 ret
00000304 <ds1302_read_time>:
void ds1302_read_time(void)
{
year=ds1302_read(ds1302_year_reg); //年
304: 8c e8 ldi r24, 0x8C ; 140
306: ba df rcall .-140 ; 0x27c
308: 80 93 81 00 sts 0x0081, r24
month=ds1302_read(ds1302_month_reg);//月
30c: 88 e8 ldi r24, 0x88 ; 136
30e: b6 df rcall .-148 ; 0x27c
310: 80 93 80 00 sts 0x0080, r24
day=ds1302_read(ds1302_date_reg); //日
314: 86 e8 ldi r24, 0x86 ; 134
316: b2 df rcall .-156 ; 0x27c
318: 80 93 7f 00 sts 0x007F, r24
week=ds1302_read(ds1302_day_reg); //周
31c: 8a e8 ldi r24, 0x8A ; 138
31e: ae df rcall .-164 ; 0x27c
320: 80 93 7e 00 sts 0x007E, r24
hour=ds1302_read(ds1302_hr_reg); //时
324: 84 e8 ldi r24, 0x84 ; 132
326: aa df rcall .-172 ; 0x27c
328: 80 93 7d 00 sts 0x007D, r24
minute=ds1302_read(ds1302_min_reg); //分
32c: 82 e8 ldi r24, 0x82 ; 130
32e: a6 df rcall .-180 ; 0x27c
330: 80 93 7c 00 sts 0x007C, r24
second=ds1302_read(ds1302_sec_reg); //秒
334: 80 e8 ldi r24, 0x80 ; 128
336: a2 df rcall .-188 ; 0x27c
338: 80 93 7b 00 sts 0x007B, r24
33c: 08 95 ret
0000033e <ds1302_write_time>:
}
void ds1302_write_time(void)
{
ds1302_write(ds1302_control_reg,0x00); //关闭写保护
33e: 60 e0 ldi r22, 0x00 ; 0
340: 8e e8 ldi r24, 0x8E ; 142
342: 67 df rcall .-306 ; 0x212
ds1302_write(ds1302_sec_reg,0x80); //暂停
344: 60 e8 ldi r22, 0x80 ; 128
346: 86 2f mov r24, r22
348: 64 df rcall .-312 ; 0x212
ds1302_write(ds1302_charger_reg,0xa9); //涓流充电
34a: 69 ea ldi r22, 0xA9 ; 169
34c: 80 e9 ldi r24, 0x90 ; 144
34e: 61 df rcall .-318 ; 0x212
ds1302_write(ds1302_year_reg,year); //年
350: 60 91 81 00 lds r22, 0x0081
354: 8c e8 ldi r24, 0x8C ; 140
356: 5d df rcall .-326 ; 0x212
ds1302_write(ds1302_month_reg,month); //月
358: 60 91 80 00 lds r22, 0x0080
35c: 88 e8 ldi r24, 0x88 ; 136
35e: 59 df rcall .-334 ; 0x212
ds1302_write(ds1302_date_reg,day); //日
360: 60 91 7f 00 lds r22, 0x007F
364: 86 e8 ldi r24, 0x86 ; 134
366: 55 df rcall .-342 ; 0x212
ds1302_write(ds1302_day_reg,week); //周
368: 60 91 7e 00 lds r22, 0x007E
36c: 8a e8 ldi r24, 0x8A ; 138
36e: 51 df rcall .-350 ; 0x212
ds1302_write(ds1302_hr_reg,hour); //时
370: 60 91 7d 00 lds r22, 0x007D
374: 84 e8 ldi r24, 0x84 ; 132
376: 4d df rcall .-358 ; 0x212
ds1302_write(ds1302_min_reg,minute); //分
378: 60 91 7c 00 lds r22, 0x007C
37c: 82 e8 ldi r24, 0x82 ; 130
37e: 49 df rcall .-366 ; 0x212
ds1302_write(ds1302_sec_reg,second); //秒
380: 60 91 7b 00 lds r22, 0x007B
384: 80 e8 ldi r24, 0x80 ; 128
386: 45 df rcall .-374 ; 0x212
ds1302_write(ds1302_control_reg,0x80); //打开写保护
388: 60 e8 ldi r22, 0x80 ; 128
38a: 8e e8 ldi r24, 0x8E ; 142
38c: 42 df rcall .-380 ; 0x212
38e: 08 95 ret
00000390 <__vector_8>:
}
SIGNAL (SIG_OVERFLOW1)
{
390: 1f 92 push r1
392: 0f 92 push r0
394: 0f b6 in r0, 0x3f ; 63
396: 0f 92 push r0
398: 11 24 eor r1, r1
39a: 2f 93 push r18
39c: 3f 93 push r19
39e: 8f 93 push r24
3a0: 9f 93 push r25
TCNT1=t1_tcnt;
3a2: 8e ee ldi r24, 0xEE ; 238
3a4: 91 ef ldi r25, 0xF1 ; 241
3a6: 9d bd out 0x2d, r25 ; 45
3a8: 8c bd out 0x2c, r24 ; 44
half_second++;
3aa: 20 91 7a 00 lds r18, 0x007A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -