⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lss

📁 avr关于1302和18b20的程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     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 + -