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

📄 ds1302.lst

📁 avr关于1302和18b20的程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 440               	/* #NOAPP */
 441 00d0 892F      		mov r24,r25
 442 00d2 9927      		clr r25
 443               	/* epilogue: frame size=0 */
 444 00d4 0895      		ret
 445               	/* epilogue end (size=1) */
 446               	/* function ds1302_read size 81 (80) */
 452               	.Lscope1:
 454               	.global	check_ds1302
 456               	check_ds1302:
 106:ds1302.c      **** uchar check_ds1302(void)
 107:ds1302.c      **** {
 458               	.LM93:
 459               	/* prologue: frame size=0 */
 460               	/* prologue end (size=0) */
 108:ds1302.c      ****     ds1302_write(ds1302_control_reg,0x80);
 462               	.LM94:
 463 00d6 60E8      		ldi r22,lo8(-128)
 464 00d8 8EE8      		ldi r24,lo8(-114)
 465 00da 92DF      		rcall ds1302_write
 109:ds1302.c      ****     if(ds1302_read(ds1302_control_reg)==0x80) return 1;
 467               	.LM95:
 468 00dc 8EE8      		ldi r24,lo8(-114)
 469 00de C5DF      		rcall ds1302_read
 470 00e0 8038      		cpi r24,lo8(-128)
 471 00e2 19F4      		brne .L35
 473               	.LM96:
 474 00e4 81E0      		ldi r24,lo8(1)
 475 00e6 90E0      		ldi r25,hi8(1)
 476 00e8 0895      		ret
 477               	.L35:
 110:ds1302.c      ****     return 0;
 479               	.LM97:
 480 00ea 80E0      		ldi r24,lo8(0)
 481 00ec 90E0      		ldi r25,hi8(0)
 111:ds1302.c      **** }
 483               	.LM98:
 484 00ee 0895      		ret
 485               	/* epilogue: frame size=0 */
 486 00f0 0895      		ret
 487               	/* epilogue end (size=1) */
 488               	/* function check_ds1302 size 14 (13) */
 490               	.Lscope2:
 492               	.global	ds1302_read_time
 494               	ds1302_read_time:
 112:ds1302.c      **** void ds1302_read_time(void)
 113:ds1302.c      **** {
 496               	.LM99:
 497               	/* prologue: frame size=0 */
 498               	/* prologue end (size=0) */
 114:ds1302.c      **** 	year=ds1302_read(ds1302_year_reg);	//年
 500               	.LM100:
 501 00f2 8CE8      		ldi r24,lo8(-116)
 502 00f4 BADF      		rcall ds1302_read
 503 00f6 8093 0000 		sts year,r24
 115:ds1302.c      **** 	month=ds1302_read(ds1302_month_reg);//月
 505               	.LM101:
 506 00fa 88E8      		ldi r24,lo8(-120)
 507 00fc B6DF      		rcall ds1302_read
 508 00fe 8093 0000 		sts month,r24
 116:ds1302.c      **** 	day=ds1302_read(ds1302_date_reg);	//日
 510               	.LM102:
 511 0102 86E8      		ldi r24,lo8(-122)
 512 0104 B2DF      		rcall ds1302_read
 513 0106 8093 0000 		sts day,r24
 117:ds1302.c      **** 	week=ds1302_read(ds1302_day_reg);	//周
 515               	.LM103:
 516 010a 8AE8      		ldi r24,lo8(-118)
 517 010c AEDF      		rcall ds1302_read
 518 010e 8093 0000 		sts week,r24
 118:ds1302.c      **** 	hour=ds1302_read(ds1302_hr_reg);	//时
 520               	.LM104:
 521 0112 84E8      		ldi r24,lo8(-124)
 522 0114 AADF      		rcall ds1302_read
 523 0116 8093 0000 		sts hour,r24
 119:ds1302.c      **** 	minute=ds1302_read(ds1302_min_reg);	//分
 525               	.LM105:
 526 011a 82E8      		ldi r24,lo8(-126)
 527 011c A6DF      		rcall ds1302_read
 528 011e 8093 0000 		sts minute,r24
 120:ds1302.c      **** 	second=ds1302_read(ds1302_sec_reg);	//秒
 530               	.LM106:
 531 0122 80E8      		ldi r24,lo8(-128)
 532 0124 A2DF      		rcall ds1302_read
 533 0126 8093 0000 		sts second,r24
 534               	/* epilogue: frame size=0 */
 535 012a 0895      		ret
 536               	/* epilogue end (size=1) */
 537               	/* function ds1302_read_time size 29 (28) */
 539               	.Lscope3:
 541               	.global	ds1302_write_time
 543               	ds1302_write_time:
 121:ds1302.c      **** }
 122:ds1302.c      **** void ds1302_write_time(void)
 123:ds1302.c      **** {
 545               	.LM107:
 546               	/* prologue: frame size=0 */
 547               	/* prologue end (size=0) */
 124:ds1302.c      **** 	ds1302_write(ds1302_control_reg,0x00);	//关闭写保护	
 549               	.LM108:
 550 012c 60E0      		ldi r22,lo8(0)
 551 012e 8EE8      		ldi r24,lo8(-114)
 552 0130 67DF      		rcall ds1302_write
 125:ds1302.c      **** 	ds1302_write(ds1302_sec_reg,0x80);		//暂停		
 554               	.LM109:
 555 0132 60E8      		ldi r22,lo8(-128)
 556 0134 862F      		mov r24,r22
 557 0136 64DF      		rcall ds1302_write
 126:ds1302.c      **** 	ds1302_write(ds1302_charger_reg,0xa9);	//涓流充电
 559               	.LM110:
 560 0138 69EA      		ldi r22,lo8(-87)
 561 013a 80E9      		ldi r24,lo8(-112)
 562 013c 61DF      		rcall ds1302_write
 127:ds1302.c      **** 	ds1302_write(ds1302_year_reg,year);		//年
 564               	.LM111:
 565 013e 6091 0000 		lds r22,year
 566 0142 8CE8      		ldi r24,lo8(-116)
 567 0144 5DDF      		rcall ds1302_write
 128:ds1302.c      **** 	ds1302_write(ds1302_month_reg,month);	//月
 569               	.LM112:
 570 0146 6091 0000 		lds r22,month
 571 014a 88E8      		ldi r24,lo8(-120)
 572 014c 59DF      		rcall ds1302_write
 129:ds1302.c      **** 	ds1302_write(ds1302_date_reg,day);		//日
 574               	.LM113:
 575 014e 6091 0000 		lds r22,day
 576 0152 86E8      		ldi r24,lo8(-122)
 577 0154 55DF      		rcall ds1302_write
 130:ds1302.c      **** 	ds1302_write(ds1302_day_reg,week);		//周
 579               	.LM114:
 580 0156 6091 0000 		lds r22,week
 581 015a 8AE8      		ldi r24,lo8(-118)
 582 015c 51DF      		rcall ds1302_write
 131:ds1302.c      **** 	ds1302_write(ds1302_hr_reg,hour);		//时
 584               	.LM115:
 585 015e 6091 0000 		lds r22,hour
 586 0162 84E8      		ldi r24,lo8(-124)
 587 0164 4DDF      		rcall ds1302_write
 132:ds1302.c      **** 	ds1302_write(ds1302_min_reg,minute);	//分
 589               	.LM116:
 590 0166 6091 0000 		lds r22,minute
 591 016a 82E8      		ldi r24,lo8(-126)
 592 016c 49DF      		rcall ds1302_write
 133:ds1302.c      **** 	ds1302_write(ds1302_sec_reg,second);	//秒	
 594               	.LM117:
 595 016e 6091 0000 		lds r22,second
 596 0172 80E8      		ldi r24,lo8(-128)
 597 0174 45DF      		rcall ds1302_write
 134:ds1302.c      **** 	ds1302_write(ds1302_control_reg,0x80);	//打开写保护
 599               	.LM118:
 600 0176 60E8      		ldi r22,lo8(-128)
 601 0178 8EE8      		ldi r24,lo8(-114)
 602 017a 42DF      		rcall ds1302_write
 603               	/* epilogue: frame size=0 */
 604 017c 0895      		ret
 605               	/* epilogue end (size=1) */
 606               	/* function ds1302_write_time size 41 (40) */
 608               	.Lscope4:
 610               	.global	__vector_8
 612               	__vector_8:
 135:ds1302.c      **** }
 136:ds1302.c      **** SIGNAL (SIG_OVERFLOW1)
 137:ds1302.c      **** {
 614               	.LM119:
 615               	/* prologue: frame size=0 */
 616 017e 1F92      		push __zero_reg__
 617 0180 0F92      		push __tmp_reg__
 618 0182 0FB6      		in __tmp_reg__,__SREG__
 619 0184 0F92      		push __tmp_reg__
 620 0186 1124      		clr __zero_reg__
 621 0188 2F93      		push r18
 622 018a 3F93      		push r19
 623 018c 8F93      		push r24
 624 018e 9F93      		push r25
 625               	/* prologue end (size=9) */
 138:ds1302.c      **** 		TCNT1=t1_tcnt;
 627               	.LM120:
 628 0190 8EEE      		ldi r24,lo8(-3602)
 629 0192 91EF      		ldi r25,hi8(-3602)
 630 0194 9DBD      		out (76)+1-0x20,r25
 631 0196 8CBD      		out 76-0x20,r24
 139:ds1302.c      **** 		half_second++;				
 633               	.LM121:
 634 0198 2091 0000 		lds r18,half_second
 635 019c 2F5F      		subi r18,lo8(-(1))
 636 019e 2093 0000 		sts half_second,r18
 140:ds1302.c      **** 		flash_var^=flash_control;
 638               	.LM122:
 639 01a2 8091 0000 		lds r24,flash_var
 640 01a6 9091 0000 		lds r25,flash_control
 641 01aa 8927      		eor r24,r25
 642 01ac 8093 0000 		sts flash_var,r24
 141:ds1302.c      **** 		if(2==half_second)
 644               	.LM123:
 645 01b0 2230      		cpi r18,lo8(2)
 646 01b2 09F0      		breq .+2
 647 01b4 48C0      		rjmp .L38
 142:ds1302.c      **** 		{
 143:ds1302.c      **** 			half_second=0;
 649               	.LM124:
 650 01b6 1092 0000 		sts half_second,__zero_reg__
 144:ds1302.c      **** 			second++;			
 652               	.LM125:
 653 01ba 8091 0000 		lds r24,second
 654 01be 8F5F      		subi r24,lo8(-(1))
 655 01c0 8093 0000 		sts second,r24
 145:ds1302.c      **** 			second_flag=1;
 657               	.LM126:
 658 01c4 81E0      		ldi r24,lo8(1)
 659 01c6 8093 0000 		sts second_flag,r24
 146:ds1302.c      **** 			if(flag&(1<<buzzer_flag)) flash_buzzer();
 661               	.LM127:
 662 01ca 3091 0000 		lds r19,flag
 663 01ce 31FF      		sbrs r19,1
 664 01d0 05C0      		rjmp .L40
 665 01d2 85B3      		in r24,53-0x20
 666 01d4 90E1      		ldi r25,lo8(16)
 667 01d6 8927      		eor r24,r25
 668 01d8 85BB      		out 53-0x20,r24
 669 01da 01C0      		rjmp .L41
 670               	.L40:
 147:ds1302.c      **** 			else set_buzzer();
 672               	.LM128:
 673 01dc AC9A      		sbi 53-0x20,4
 674               	.L41:
 148:ds1302.c      **** 			if((second&0x0f)>=0x0a)
 676               	.LM129:
 677 01de 2091 0000 		lds r18,second
 678 01e2 822F      		mov r24,r18
 679 01e4 9927      		clr r25
 680 01e6 8F70      		andi r24,lo8(15)
 681 01e8 9070      		andi r25,hi8(15)
 682 01ea 0A97      		sbiw r24,10
 683 01ec 64F1      		brlt .L38
 149:ds1302.c      **** 			{
 150:ds1302.c      **** 				second&=0xf0;
 685               	.LM130:
 686 01ee 822F      		mov r24,r18
 687 01f0 807F      		andi r24,lo8(-16)
 151:ds1302.c      **** 				second+=0x10;
 689               	.LM131:
 690 01f2 805F      		subi r24,lo8(-(16))
 691 01f4 8093 0000 		sts second,r24
 152:ds1302.c      **** 				if((second&0xf0)>=0x60)
 693               	.LM132:
 694 01f8 9927      		clr r25
 695 01fa 8036      		cpi r24,96
 696 01fc 9105      		cpc r25,__zero_reg__
 697 01fe 1CF1      		brlt .L38
 153:ds1302.c      **** 				{
 154:ds1302.c      **** 					second=0;
 699               	.LM133:
 700 0200 1092 0000 		sts second,__zero_reg__
 155:ds1302.c      **** 					minute++;					
 702               	.LM134:
 703 0204 2091 0000 		lds r18,minute
 704 0208 2F5F      		subi r18,lo8(-(1))
 705 020a 2093 0000 		sts minute,r18
 156:ds1302.c      **** 					flag&=~(1<<buzzer_flag);
 707               	.LM135:
 708 020e 3D7F      		andi r19,lo8(-3)
 709 0210 3093 0000 		sts flag,r19
 157:ds1302.c      **** 					if((minute&0x0f)>=0x0a)
 711               	.LM136:
 712 0214 822F      		mov r24,r18
 713 0216 9927      		clr r25
 714 0218 8F70      		andi r24,lo8(15)
 715 021a 9070      		andi r25,hi8(15)
 716 021c 0A97      		sbiw r24,10
 717 021e 9CF0      		brlt .L38
 158:ds1302.c      **** 					{
 159:ds1302.c      **** 						minute&=0xf0;
 719               	.LM137:
 720 0220 822F      		mov r24,r18
 721 0222 807F      		andi r24,lo8(-16)
 160:ds1302.c      **** 						minute+=0x10;
 723               	.LM138:
 724 0224 805F      		subi r24,lo8(-(16))
 725 0226 8093 0000 		sts minute,r24
 161:ds1302.c      **** 						if((minute&0xf0)>=0x60)
 727               	.LM139:
 728 022a 9927      		clr r25
 729 022c 8036      		cpi r24,96
 730 022e 9105      		cpc r25,__zero_reg__
 731 0230 54F0      		brlt .L38
 162:ds1302.c      **** 						{
 163:ds1302.c      **** 							minute=0;
 733               	.LM140:
 734 0232 1092 0000 		sts minute,__zero_reg__
 164:ds1302.c      **** 							hour++;
 736               	.LM141:
 737 0236 8091 0000 		lds r24,hour
 738 023a 8F5F      		subi r24,lo8(-(1))
 739 023c 8093 0000 		sts hour,r24
 165:ds1302.c      **** 							flag|=1<<hour_flag;
 741               	.LM142:
 742 0240 3160      		ori r19,lo8(1)
 743 0242 3093 0000 		sts flag,r19
 744               	.L38:
 745               	/* epilogue: frame size=0 */
 746 0246 9F91      		pop r25
 747 0248 8F91      		pop r24
 748 024a 3F91      		pop r19
 749 024c 2F91      		pop r18
 750 024e 0F90      		pop __tmp_reg__
 751 0250 0FBE      		out __SREG__,__tmp_reg__
 752 0252 0F90      		pop __tmp_reg__
 753 0254 1F90      		pop __zero_reg__
 754 0256 1895      		reti
 755               	/* epilogue end (size=9) */
 756               	/* function __vector_8 size 111 (93) */
 758               	.Lscope5:
 760               	.global	display_time
 762               	display_time:
 166:ds1302.c      **** 						}
 167:ds1302.c      **** 					}
 168:ds1302.c      **** 				}
 169:ds1302.c      **** 			}
 170:ds1302.c      **** 		}
 171:ds1302.c      **** }
 172:ds1302.c      **** void display_time(void)
 173:ds1302.c      **** {
 764               	.LM143:
 765               	/* prologue: frame size=0 */
 766               	/* prologue end (size=0) */
 174:ds1302.c      **** 	uchar temp=0;
 175:ds1302.c      **** 	
 176:ds1302.c      **** 	temp=(hour&0xf0)>>4;
 768               	.LM144:
 769 0258 2091 0000 		lds r18,hour
 770 025c 822F      		mov r24,r18
 771 025e 9927      		clr r25
 772 0260 54E0      		ldi r21,4
 773 0262 9695      	1:	lsr r25
 774 0264 8795      		ror r24
 775 0266 5A95      		dec r21
 776 0268 E1F7      		brne 1b
 777               	.LBB2:
 177:ds1302.c      **** 	display_buffer[0]=pgm_read_byte(display_code+temp);
 779               	.LM145:
 780 026a E82F      		mov r30,r24
 781 026c FF27      		clr r31
 782 026e E050      		subi r30,lo8(-(display_code))
 783 0270 F040      		sbci r31,hi8(-(display_code))
 784               	/* #APP */
 785 0272 8491      		lpm r24, Z
 786               		
 787               	/* #NOAPP */
 788               	.LBE2:
 789 0274 8093 0000 		sts display_buffer,r24
 178:ds1302.c      **** 	temp=hour&0x0f;
 791               	.LM146:
 792 0278 2F70      		andi r18,lo8(15)
 793               	.LBB3:
 179:ds1302.c      **** 	display_buffer[1]=pgm_read_byte(display_code+temp);
 795               	.LM147:
 796 027a E22F      		mov r30,r18
 797 027c FF27      		clr r31
 798 027e E050      		subi r30,lo8(-(display_code))
 799 0280 F040      		sbci r31,hi8(-(display_code))
 800               	/* #APP */
 801 0282 8491      		lpm r24, Z
 802               		
 803               	/* #NOAPP */
 804               	.LBE3:
 805 0284 8093 0000 		sts display_buffer+1,r24
 180:ds1302.c      **** 	
 181:ds1302.c      **** 	display_buffer[2]=0x40;//-
 807               	.LM148:
 808 0288 30E4      		ldi r19,lo8(64)
 809 028a 3093 0000 		sts display_buffer+2,r19
 182:ds1302.c      **** 	
 183:ds1302.c      **** 	temp=(minute&0xf0)>>4;
 811               	.LM149:
 812 028e 2091 0000 		lds r18,minute
 813 0292 822F      		mov r24,r18
 814 0294 9927      		clr r25
 815 0296 44E0      		ldi r20,4
 816 0298 9695      	1:	lsr r25
 817 029a 8795      		ror r24
 818 029c 4A95      		dec r20
 819 029e E1F7      		brne 1b

⌨️ 快捷键说明

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