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

📄 main.lss

📁 M8+1302+18b20+8位数码管的sch和gcc源程序 数码管显示
💻 LSS
📖 第 1 页 / 共 5 页
字号:
	if(8==display_count) display_count=0;
     1cc:	88 30       	cpi	r24, 0x08	; 8
     1ce:	11 f4       	brne	.+4      	; 0x1d4 <__vector_9+0x62>
     1d0:	50 93 79 00 	sts	0x0079, r21
//送位选
	for(i=0;i<8;i++)
	{
		if(data_bit&0x80) set_hc595_ser();
     1d4:	47 ff       	sbrs	r20, 7
     1d6:	02 c0       	rjmp	.+4      	; 0x1dc <__vector_9+0x6a>
     1d8:	c2 9a       	sbi	0x18, 2	; 24
     1da:	01 c0       	rjmp	.+2      	; 0x1de <__vector_9+0x6c>
		else clr_hc595_ser();
     1dc:	c2 98       	cbi	0x18, 2	; 24
		clr_hc595_srclk();
     1de:	c1 98       	cbi	0x18, 1	; 24
		set_hc595_srclk();	
     1e0:	c1 9a       	sbi	0x18, 1	; 24
		data_bit<<=1;
     1e2:	44 0f       	add	r20, r20
     1e4:	5f 5f       	subi	r21, 0xFF	; 255
     1e6:	58 30       	cpi	r21, 0x08	; 8
     1e8:	a8 f3       	brcs	.-22     	; 0x1d4 <__vector_9+0x62>
     1ea:	57 e0       	ldi	r21, 0x07	; 7
	}
//送段码
	for(i=0;i<8;i++)
	{
		if(data_seg&0x80) set_hc595_ser();
     1ec:	e7 ff       	sbrs	r30, 7
     1ee:	02 c0       	rjmp	.+4      	; 0x1f4 <__vector_9+0x82>
     1f0:	c2 9a       	sbi	0x18, 2	; 24
     1f2:	01 c0       	rjmp	.+2      	; 0x1f6 <__vector_9+0x84>
		else clr_hc595_ser();		
     1f4:	c2 98       	cbi	0x18, 2	; 24
		clr_hc595_srclk();
     1f6:	c1 98       	cbi	0x18, 1	; 24
		set_hc595_srclk();
     1f8:	c1 9a       	sbi	0x18, 1	; 24
		data_seg<<=1;
     1fa:	ee 0f       	add	r30, r30
     1fc:	51 50       	subi	r21, 0x01	; 1
     1fe:	57 ff       	sbrs	r21, 7
     200:	f5 cf       	rjmp	.-22     	; 0x1ec <__vector_9+0x7a>
	}
	clr_hc595_srclk();
     202:	c1 98       	cbi	0x18, 1	; 24
	clr_hc595_rclk();
     204:	c0 98       	cbi	0x18, 0	; 24
	set_hc595_rclk();
     206:	c0 9a       	sbi	0x18, 0	; 24
	clr_hc595_rclk();
     208:	c0 98       	cbi	0x18, 0	; 24
	TCNT0=t0_tcnt;//定时10ms
     20a:	87 ef       	ldi	r24, 0xF7	; 247
     20c:	82 bf       	out	0x32, r24	; 50
     20e:	ff 91       	pop	r31
     210:	ef 91       	pop	r30
     212:	9f 91       	pop	r25
     214:	8f 91       	pop	r24
     216:	6f 91       	pop	r22
     218:	5f 91       	pop	r21
     21a:	4f 91       	pop	r20
     21c:	3f 91       	pop	r19
     21e:	2f 91       	pop	r18
     220:	0f 90       	pop	r0
     222:	0f be       	out	0x3f, r0	; 63
     224:	0f 90       	pop	r0
     226:	1f 90       	pop	r1
     228:	18 95       	reti

0000022a <ds1302_write>:
#include "main.h"
void ds1302_write(uchar reg,uchar data)
{
	uchar i=0;
	set_ds1302_io_ddr();
     22a:	a1 9a       	sbi	0x14, 1	; 20
	asm("nop");
     22c:	00 00       	nop
	asm("nop");
     22e:	00 00       	nop
	clr_ds1302_rst();
     230:	a8 98       	cbi	0x15, 0	; 21
	asm("nop");
     232:	00 00       	nop
	asm("nop");
     234:	00 00       	nop
	clr_ds1302_sclk();
     236:	aa 98       	cbi	0x15, 2	; 21
	asm("nop");
     238:	00 00       	nop
	asm("nop");
     23a:	00 00       	nop
	set_ds1302_rst();
     23c:	a8 9a       	sbi	0x15, 0	; 21
	asm("nop");
     23e:	00 00       	nop
	asm("nop");
     240:	00 00       	nop
	for(i=8;i>0;i--)
     242:	98 e0       	ldi	r25, 0x08	; 8
	{		
		if(reg&0x01) set_ds1302_io();
     244:	80 ff       	sbrs	r24, 0
     246:	02 c0       	rjmp	.+4      	; 0x24c <ds1302_write+0x22>
     248:	a9 9a       	sbi	0x15, 1	; 21
     24a:	01 c0       	rjmp	.+2      	; 0x24e <ds1302_write+0x24>
		else clr_ds1302_io();
     24c:	a9 98       	cbi	0x15, 1	; 21
		asm("nop");
     24e:	00 00       	nop
		asm("nop");
     250:	00 00       	nop
		set_ds1302_sclk();	
     252:	aa 9a       	sbi	0x15, 2	; 21
		asm("nop");
     254:	00 00       	nop
		asm("nop");
     256:	00 00       	nop
		clr_ds1302_sclk();
     258:	aa 98       	cbi	0x15, 2	; 21
		asm("nop");
     25a:	00 00       	nop
		asm("nop");
     25c:	00 00       	nop
		reg>>=1;
     25e:	86 95       	lsr	r24
     260:	91 50       	subi	r25, 0x01	; 1
     262:	81 f7       	brne	.-32     	; 0x244 <ds1302_write+0x1a>
	}
	for(i=8;i>0;i--)
     264:	98 e0       	ldi	r25, 0x08	; 8
	{		
		if(data&0x01) set_ds1302_io();
     266:	60 ff       	sbrs	r22, 0
     268:	02 c0       	rjmp	.+4      	; 0x26e <ds1302_write+0x44>
     26a:	a9 9a       	sbi	0x15, 1	; 21
     26c:	01 c0       	rjmp	.+2      	; 0x270 <ds1302_write+0x46>
		else clr_ds1302_io();
     26e:	a9 98       	cbi	0x15, 1	; 21
		asm("nop");
     270:	00 00       	nop
		asm("nop");
     272:	00 00       	nop
		set_ds1302_sclk();
     274:	aa 9a       	sbi	0x15, 2	; 21
		asm("nop");
     276:	00 00       	nop
		asm("nop");
     278:	00 00       	nop
		clr_ds1302_sclk();
     27a:	aa 98       	cbi	0x15, 2	; 21
		asm("nop");
     27c:	00 00       	nop
		asm("nop");
     27e:	00 00       	nop
		data>>=1;
     280:	66 95       	lsr	r22
     282:	91 50       	subi	r25, 0x01	; 1
     284:	81 f7       	brne	.-32     	; 0x266 <ds1302_write+0x3c>
	}
	clr_ds1302_rst();
     286:	a8 98       	cbi	0x15, 0	; 21
	asm("nop");
     288:	00 00       	nop
	asm("nop");
     28a:	00 00       	nop
	clr_ds1302_io_ddr();
     28c:	a1 98       	cbi	0x14, 1	; 20
	asm("nop");
     28e:	00 00       	nop
	asm("nop");
     290:	00 00       	nop
     292:	08 95       	ret

00000294 <ds1302_read>:
}
uchar ds1302_read(uchar reg)
{
	uchar data=0;
     294:	90 e0       	ldi	r25, 0x00	; 0
	uchar i=0;
	reg+=1;//读标志
     296:	8f 5f       	subi	r24, 0xFF	; 255
	set_ds1302_io_ddr();	
     298:	a1 9a       	sbi	0x14, 1	; 20
	asm("nop");
     29a:	00 00       	nop
	asm("nop");
     29c:	00 00       	nop
	clr_ds1302_rst();
     29e:	a8 98       	cbi	0x15, 0	; 21
	asm("nop");
     2a0:	00 00       	nop
	asm("nop");
     2a2:	00 00       	nop
	clr_ds1302_sclk();
     2a4:	aa 98       	cbi	0x15, 2	; 21
	asm("nop");
     2a6:	00 00       	nop
	asm("nop");
     2a8:	00 00       	nop
	set_ds1302_rst();
     2aa:	a8 9a       	sbi	0x15, 0	; 21
	asm("nop");
     2ac:	00 00       	nop
	asm("nop");
     2ae:	00 00       	nop
	for(i=8;i>0;i--)
     2b0:	28 e0       	ldi	r18, 0x08	; 8
	{
		
		if(reg&0x01) set_ds1302_io();
     2b2:	80 ff       	sbrs	r24, 0
     2b4:	02 c0       	rjmp	.+4      	; 0x2ba <ds1302_read+0x26>
     2b6:	a9 9a       	sbi	0x15, 1	; 21
     2b8:	01 c0       	rjmp	.+2      	; 0x2bc <ds1302_read+0x28>
		else clr_ds1302_io();
     2ba:	a9 98       	cbi	0x15, 1	; 21
		asm("nop");
     2bc:	00 00       	nop
		asm("nop");
     2be:	00 00       	nop
		set_ds1302_sclk();
     2c0:	aa 9a       	sbi	0x15, 2	; 21
		asm("nop");
     2c2:	00 00       	nop
		asm("nop");
     2c4:	00 00       	nop
		clr_ds1302_sclk();
     2c6:	aa 98       	cbi	0x15, 2	; 21
		asm("nop");
     2c8:	00 00       	nop
		asm("nop");
     2ca:	00 00       	nop
		reg>>=1;
     2cc:	86 95       	lsr	r24
     2ce:	21 50       	subi	r18, 0x01	; 1
     2d0:	81 f7       	brne	.-32     	; 0x2b2 <ds1302_read+0x1e>
	}
	clr_ds1302_io_ddr();
     2d2:	a1 98       	cbi	0x14, 1	; 20
	asm("nop");
     2d4:	00 00       	nop
	asm("nop");
     2d6:	00 00       	nop
	for(i=8;i>0;i--)
     2d8:	28 e0       	ldi	r18, 0x08	; 8
	{	
		data>>=1;
     2da:	96 95       	lsr	r25
		if(in_ds1302_io()) data|=0x80;
     2dc:	99 99       	sbic	0x13, 1	; 19
     2de:	90 68       	ori	r25, 0x80	; 128
		asm("nop");
     2e0:	00 00       	nop
		asm("nop");
     2e2:	00 00       	nop
		set_ds1302_sclk();
     2e4:	aa 9a       	sbi	0x15, 2	; 21
		asm("nop");
     2e6:	00 00       	nop
		asm("nop");
     2e8:	00 00       	nop
		clr_ds1302_sclk();
     2ea:	aa 98       	cbi	0x15, 2	; 21
		asm("nop");
     2ec:	00 00       	nop
		asm("nop");
     2ee:	00 00       	nop
     2f0:	21 50       	subi	r18, 0x01	; 1
     2f2:	99 f7       	brne	.-26     	; 0x2da <ds1302_read+0x46>
	}
	clr_ds1302_rst();
     2f4:	a8 98       	cbi	0x15, 0	; 21
	asm("nop");
     2f6:	00 00       	nop
	asm("nop");
     2f8:	00 00       	nop
	return(data);
}
     2fa:	89 2f       	mov	r24, r25
     2fc:	99 27       	eor	r25, r25
     2fe:	08 95       	ret

00000300 <check_ds1302>:
uchar check_ds1302(void)
{
    ds1302_write(ds1302_control_reg,0x80);
     300:	60 e8       	ldi	r22, 0x80	; 128
     302:	8e e8       	ldi	r24, 0x8E	; 142
     304:	92 df       	rcall	.-220    	; 0x22a <ds1302_write>
    if(ds1302_read(ds1302_control_reg)==0x80) return 1;
     306:	8e e8       	ldi	r24, 0x8E	; 142
     308:	c5 df       	rcall	.-118    	; 0x294 <ds1302_read>
     30a:	80 38       	cpi	r24, 0x80	; 128
     30c:	19 f4       	brne	.+6      	; 0x314 <check_ds1302+0x14>
     30e:	81 e0       	ldi	r24, 0x01	; 1
     310:	90 e0       	ldi	r25, 0x00	; 0
     312:	08 95       	ret
    return 0;
     314:	80 e0       	ldi	r24, 0x00	; 0
     316:	90 e0       	ldi	r25, 0x00	; 0
}
     318:	08 95       	ret

0000031a <ds1302_read_time>:
void ds1302_read_time(void)
{
	year=ds1302_read(ds1302_year_reg);	//年
     31a:	8c e8       	ldi	r24, 0x8C	; 140
     31c:	bb df       	rcall	.-138    	; 0x294 <ds1302_read>
     31e:	80 93 81 00 	sts	0x0081, r24
	month=ds1302_read(ds1302_month_reg);//月
     322:	88 e8       	ldi	r24, 0x88	; 136
     324:	b7 df       	rcall	.-146    	; 0x294 <ds1302_read>
     326:	80 93 80 00 	sts	0x0080, r24
	day=ds1302_read(ds1302_date_reg);	//日
     32a:	86 e8       	ldi	r24, 0x86	; 134
     32c:	b3 df       	rcall	.-154    	; 0x294 <ds1302_read>
     32e:	80 93 7f 00 	sts	0x007F, r24
	week=ds1302_read(ds1302_day_reg);	//周
     332:	8a e8       	ldi	r24, 0x8A	; 138
     334:	af df       	rcall	.-162    	; 0x294 <ds1302_read>
     336:	80 93 7e 00 	sts	0x007E, r24
	hour=ds1302_read(ds1302_hr_reg);	//时
     33a:	84 e8       	ldi	r24, 0x84	; 132
     33c:	ab df       	rcall	.-170    	; 0x294 <ds1302_read>
     33e:	80 93 7d 00 	sts	0x007D, r24
	minute=ds1302_read(ds1302_min_reg);	//分
     342:	82 e8       	ldi	r24, 0x82	; 130
     344:	a7 df       	rcall	.-178    	; 0x294 <ds1302_read>
     346:	80 93 7c 00 	sts	0x007C, r24
	second=ds1302_read(ds1302_sec_reg);	//秒
     34a:	80 e8       	ldi	r24, 0x80	; 128
     34c:	a3 df       	rcall	.-186    	; 0x294 <ds1302_read>
     34e:	80 93 7b 00 	sts	0x007B, r24
     352:	08 95       	ret

00000354 <ds1302_write_time>:
}
void ds1302_write_time(void)
{
	ds1302_write(ds1302_control_reg,0x00);	//关闭写保护	
     354:	60 e0       	ldi	r22, 0x00	; 0
     356:	8e e8       	ldi	r24, 0x8E	; 142
     358:	68 df       	rcall	.-304    	; 0x22a <ds1302_write>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -