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

📄 ds1302.lst

📁 M8+1302+18b20+8位数码管的sch和gcc源程序 数码管显示
💻 LST
📖 第 1 页 / 共 4 页
字号:
 460               	/* #NOAPP */
 461 00d0 892F      		mov r24,r25
 462 00d2 9927      		clr r25
 463               	/* epilogue: frame size=0 */
 464 00d4 0895      		ret
 465               	/* epilogue end (size=1) */
 466               	/* function ds1302_read size 81 (80) */
 472               	.Lscope1:
 474               	.global	check_ds1302
 476               	check_ds1302:
 106:ds1302.c      **** uchar check_ds1302(void)
 107:ds1302.c      **** {
 478               	.LM93:
 479               	/* prologue: frame size=0 */
 480               	/* prologue end (size=0) */
 108:ds1302.c      ****     ds1302_write(ds1302_control_reg,0x80);
 482               	.LM94:
 483 00d6 60E8      		ldi r22,lo8(-128)
 484 00d8 8EE8      		ldi r24,lo8(-114)
 485 00da 92DF      		rcall ds1302_write
 109:ds1302.c      ****     if(ds1302_read(ds1302_control_reg)==0x80) return 1;
 487               	.LM95:
 488 00dc 8EE8      		ldi r24,lo8(-114)
 489 00de C5DF      		rcall ds1302_read
 490 00e0 8038      		cpi r24,lo8(-128)
 491 00e2 19F4      		brne .L35
 493               	.LM96:
 494 00e4 81E0      		ldi r24,lo8(1)
 495 00e6 90E0      		ldi r25,hi8(1)
 496 00e8 0895      		ret
 497               	.L35:
 110:ds1302.c      ****     return 0;
 499               	.LM97:
 500 00ea 80E0      		ldi r24,lo8(0)
 501 00ec 90E0      		ldi r25,hi8(0)
 111:ds1302.c      **** }
 503               	.LM98:
 504 00ee 0895      		ret
 505               	/* epilogue: frame size=0 */
 506               	/* epilogue: noreturn */
 507               	/* epilogue end (size=0) */
 508               	/* function check_ds1302 size 13 (13) */
 510               	.Lscope2:
 512               	.global	ds1302_read_time
 514               	ds1302_read_time:
 112:ds1302.c      **** void ds1302_read_time(void)
 113:ds1302.c      **** {
 516               	.LM99:
 517               	/* prologue: frame size=0 */
 518               	/* prologue end (size=0) */
 114:ds1302.c      **** 	year=ds1302_read(ds1302_year_reg);	//年
 520               	.LM100:
 521 00f0 8CE8      		ldi r24,lo8(-116)
 522 00f2 BBDF      		rcall ds1302_read
 523 00f4 8093 0000 		sts year,r24
 115:ds1302.c      **** 	month=ds1302_read(ds1302_month_reg);//月
 525               	.LM101:
 526 00f8 88E8      		ldi r24,lo8(-120)
 527 00fa B7DF      		rcall ds1302_read
 528 00fc 8093 0000 		sts month,r24
 116:ds1302.c      **** 	day=ds1302_read(ds1302_date_reg);	//日
 530               	.LM102:
 531 0100 86E8      		ldi r24,lo8(-122)
 532 0102 B3DF      		rcall ds1302_read
 533 0104 8093 0000 		sts day,r24
 117:ds1302.c      **** 	week=ds1302_read(ds1302_day_reg);	//周
 535               	.LM103:
 536 0108 8AE8      		ldi r24,lo8(-118)
 537 010a AFDF      		rcall ds1302_read
 538 010c 8093 0000 		sts week,r24
 118:ds1302.c      **** 	hour=ds1302_read(ds1302_hr_reg);	//时
 540               	.LM104:
 541 0110 84E8      		ldi r24,lo8(-124)
 542 0112 ABDF      		rcall ds1302_read
 543 0114 8093 0000 		sts hour,r24
 119:ds1302.c      **** 	minute=ds1302_read(ds1302_min_reg);	//分
 545               	.LM105:
 546 0118 82E8      		ldi r24,lo8(-126)
 547 011a A7DF      		rcall ds1302_read
 548 011c 8093 0000 		sts minute,r24
 120:ds1302.c      **** 	second=ds1302_read(ds1302_sec_reg);	//秒
 550               	.LM106:
 551 0120 80E8      		ldi r24,lo8(-128)
 552 0122 A3DF      		rcall ds1302_read
 553 0124 8093 0000 		sts second,r24
 554               	/* epilogue: frame size=0 */
 555 0128 0895      		ret
 556               	/* epilogue end (size=1) */
 557               	/* function ds1302_read_time size 29 (28) */
 559               	.Lscope3:
 561               	.global	ds1302_write_time
 563               	ds1302_write_time:
 121:ds1302.c      **** }
 122:ds1302.c      **** void ds1302_write_time(void)
 123:ds1302.c      **** {
 565               	.LM107:
 566               	/* prologue: frame size=0 */
 567               	/* prologue end (size=0) */
 124:ds1302.c      **** 	ds1302_write(ds1302_control_reg,0x00);	//关闭写保护	
 569               	.LM108:
 570 012a 60E0      		ldi r22,lo8(0)
 571 012c 8EE8      		ldi r24,lo8(-114)
 572 012e 68DF      		rcall ds1302_write
 125:ds1302.c      **** 	ds1302_write(ds1302_sec_reg,0x80);		//暂停		
 574               	.LM109:
 575 0130 60E8      		ldi r22,lo8(-128)
 576 0132 862F      		mov r24,r22
 577 0134 65DF      		rcall ds1302_write
 126:ds1302.c      **** 	ds1302_write(ds1302_charger_reg,0xa9);	//涓流充电
 579               	.LM110:
 580 0136 69EA      		ldi r22,lo8(-87)
 581 0138 80E9      		ldi r24,lo8(-112)
 582 013a 62DF      		rcall ds1302_write
 127:ds1302.c      **** 	ds1302_write(ds1302_year_reg,year);		//年
 584               	.LM111:
 585 013c 6091 0000 		lds r22,year
 586 0140 8CE8      		ldi r24,lo8(-116)
 587 0142 5EDF      		rcall ds1302_write
 128:ds1302.c      **** 	ds1302_write(ds1302_month_reg,month);	//月
 589               	.LM112:
 590 0144 6091 0000 		lds r22,month
 591 0148 88E8      		ldi r24,lo8(-120)
 592 014a 5ADF      		rcall ds1302_write
 129:ds1302.c      **** 	ds1302_write(ds1302_date_reg,day);		//日
 594               	.LM113:
 595 014c 6091 0000 		lds r22,day
 596 0150 86E8      		ldi r24,lo8(-122)
 597 0152 56DF      		rcall ds1302_write
 130:ds1302.c      **** 	ds1302_write(ds1302_day_reg,week);		//周
 599               	.LM114:
 600 0154 6091 0000 		lds r22,week
 601 0158 8AE8      		ldi r24,lo8(-118)
 602 015a 52DF      		rcall ds1302_write
 131:ds1302.c      **** 	ds1302_write(ds1302_hr_reg,hour);		//时
 604               	.LM115:
 605 015c 6091 0000 		lds r22,hour
 606 0160 84E8      		ldi r24,lo8(-124)
 607 0162 4EDF      		rcall ds1302_write
 132:ds1302.c      **** 	ds1302_write(ds1302_min_reg,minute);	//分
 609               	.LM116:
 610 0164 6091 0000 		lds r22,minute
 611 0168 82E8      		ldi r24,lo8(-126)
 612 016a 4ADF      		rcall ds1302_write
 133:ds1302.c      **** 	ds1302_write(ds1302_sec_reg,second);	//秒	
 614               	.LM117:
 615 016c 6091 0000 		lds r22,second
 616 0170 80E8      		ldi r24,lo8(-128)
 617 0172 46DF      		rcall ds1302_write
 134:ds1302.c      **** 	ds1302_write(ds1302_control_reg,0x80);	//打开写保护
 619               	.LM118:
 620 0174 60E8      		ldi r22,lo8(-128)
 621 0176 8EE8      		ldi r24,lo8(-114)
 622 0178 43DF      		rcall ds1302_write
 623               	/* epilogue: frame size=0 */
 624 017a 0895      		ret
 625               	/* epilogue end (size=1) */
 626               	/* function ds1302_write_time size 41 (40) */
 628               	.Lscope4:
 630               	.global	__vector_8
 632               	__vector_8:
 135:ds1302.c      **** }
 136:ds1302.c      **** SIGNAL (SIG_OVERFLOW1)
 137:ds1302.c      **** {
 634               	.LM119:
 635               	/* prologue: frame size=0 */
 636 017c 1F92      		push __zero_reg__
 637 017e 0F92      		push __tmp_reg__
 638 0180 0FB6      		in __tmp_reg__,__SREG__
 639 0182 0F92      		push __tmp_reg__
 640 0184 1124      		clr __zero_reg__
 641 0186 2F93      		push r18
 642 0188 3F93      		push r19
 643 018a 8F93      		push r24
 644 018c 9F93      		push r25
 645               	/* prologue end (size=9) */
 138:ds1302.c      **** 		TCNT1=t1_tcnt;
 647               	.LM120:
 648 018e 8EEE      		ldi r24,lo8(-3602)
 649 0190 91EF      		ldi r25,hi8(-3602)
 650 0192 9DBD      		out (76)+1-0x20,r25
 651 0194 8CBD      		out 76-0x20,r24
 139:ds1302.c      **** 		half_second++;				
 653               	.LM121:
 654 0196 2091 0000 		lds r18,half_second
 655 019a 2F5F      		subi r18,lo8(-(1))
 656 019c 2093 0000 		sts half_second,r18
 140:ds1302.c      **** 		flash_var^=flash_control;
 658               	.LM122:
 659 01a0 8091 0000 		lds r24,flash_var
 660 01a4 9091 0000 		lds r25,flash_control
 661 01a8 8927      		eor r24,r25
 662 01aa 8093 0000 		sts flash_var,r24
 141:ds1302.c      **** 		if(2==half_second)
 664               	.LM123:
 665 01ae 2230      		cpi r18,lo8(2)
 666 01b0 09F0      		breq .+2
 667 01b2 48C0      		rjmp .L38
 142:ds1302.c      **** 		{
 143:ds1302.c      **** 			half_second=0;
 669               	.LM124:
 670 01b4 1092 0000 		sts half_second,__zero_reg__
 144:ds1302.c      **** 			second++;			
 672               	.LM125:
 673 01b8 8091 0000 		lds r24,second
 674 01bc 8F5F      		subi r24,lo8(-(1))
 675 01be 8093 0000 		sts second,r24
 145:ds1302.c      **** 			second_flag=1;
 677               	.LM126:
 678 01c2 81E0      		ldi r24,lo8(1)
 679 01c4 8093 0000 		sts second_flag,r24
 146:ds1302.c      **** 			if(flag&(1<<buzzer_flag)) flash_buzzer();
 681               	.LM127:
 682 01c8 3091 0000 		lds r19,flag
 683 01cc 31FF      		sbrs r19,1
 684 01ce 05C0      		rjmp .L40
 685 01d0 85B3      		in r24,53-0x20
 686 01d2 90E1      		ldi r25,lo8(16)
 687 01d4 8927      		eor r24,r25
 688 01d6 85BB      		out 53-0x20,r24
 689 01d8 01C0      		rjmp .L41
 690               	.L40:
 147:ds1302.c      **** 			else set_buzzer();
 692               	.LM128:
 693 01da AC9A      		sbi 53-0x20,4
 694               	.L41:
 148:ds1302.c      **** 			if((second&0x0f)>=0x0a)
 696               	.LM129:
 697 01dc 2091 0000 		lds r18,second
 698 01e0 822F      		mov r24,r18
 699 01e2 9927      		clr r25
 700 01e4 8F70      		andi r24,lo8(15)
 701 01e6 9070      		andi r25,hi8(15)
 702 01e8 0A97      		sbiw r24,10
 703 01ea 64F1      		brlt .L38
 149:ds1302.c      **** 			{
 150:ds1302.c      **** 				second&=0xf0;
 705               	.LM130:
 706 01ec 822F      		mov r24,r18
 707 01ee 807F      		andi r24,lo8(-16)
 151:ds1302.c      **** 				second+=0x10;
 709               	.LM131:
 710 01f0 805F      		subi r24,lo8(-(16))
 711 01f2 8093 0000 		sts second,r24
 152:ds1302.c      **** 				if((second&0xf0)>=0x60)
 713               	.LM132:
 714 01f6 9927      		clr r25
 715 01f8 8036      		cpi r24,96
 716 01fa 9105      		cpc r25,__zero_reg__
 717 01fc 1CF1      		brlt .L38
 153:ds1302.c      **** 				{
 154:ds1302.c      **** 					second=0;
 719               	.LM133:
 720 01fe 1092 0000 		sts second,__zero_reg__
 155:ds1302.c      **** 					minute++;					
 722               	.LM134:
 723 0202 2091 0000 		lds r18,minute
 724 0206 2F5F      		subi r18,lo8(-(1))
 725 0208 2093 0000 		sts minute,r18
 156:ds1302.c      **** 					flag&=~(1<<buzzer_flag);
 727               	.LM135:
 728 020c 3D7F      		andi r19,lo8(-3)
 729 020e 3093 0000 		sts flag,r19
 157:ds1302.c      **** 					if((minute&0x0f)>=0x0a)
 731               	.LM136:
 732 0212 822F      		mov r24,r18
 733 0214 9927      		clr r25
 734 0216 8F70      		andi r24,lo8(15)
 735 0218 9070      		andi r25,hi8(15)
 736 021a 0A97      		sbiw r24,10
 737 021c 9CF0      		brlt .L38
 158:ds1302.c      **** 					{
 159:ds1302.c      **** 						minute&=0xf0;
 739               	.LM137:
 740 021e 822F      		mov r24,r18
 741 0220 807F      		andi r24,lo8(-16)
 160:ds1302.c      **** 						minute+=0x10;
 743               	.LM138:
 744 0222 805F      		subi r24,lo8(-(16))
 745 0224 8093 0000 		sts minute,r24
 161:ds1302.c      **** 						if((minute&0xf0)>=0x60)
 747               	.LM139:
 748 0228 9927      		clr r25
 749 022a 8036      		cpi r24,96
 750 022c 9105      		cpc r25,__zero_reg__
 751 022e 54F0      		brlt .L38
 162:ds1302.c      **** 						{
 163:ds1302.c      **** 							minute=0;
 753               	.LM140:
 754 0230 1092 0000 		sts minute,__zero_reg__
 164:ds1302.c      **** 							hour++;
 756               	.LM141:
 757 0234 8091 0000 		lds r24,hour
 758 0238 8F5F      		subi r24,lo8(-(1))
 759 023a 8093 0000 		sts hour,r24
 165:ds1302.c      **** 							flag|=1<<hour_flag;
 761               	.LM142:
 762 023e 3160      		ori r19,lo8(1)
 763 0240 3093 0000 		sts flag,r19
 764               	.L38:
 765               	/* epilogue: frame size=0 */
 766 0244 9F91      		pop r25
 767 0246 8F91      		pop r24
 768 0248 3F91      		pop r19
 769 024a 2F91      		pop r18
 770 024c 0F90      		pop __tmp_reg__
 771 024e 0FBE      		out __SREG__,__tmp_reg__
 772 0250 0F90      		pop __tmp_reg__
 773 0252 1F90      		pop __zero_reg__
 774 0254 1895      		reti
 775               	/* epilogue end (size=9) */
 776               	/* function __vector_8 size 111 (93) */
 778               	.Lscope5:
 780               	.global	display_time
 782               	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      **** {
 784               	.LM143:
 785               	/* prologue: frame size=0 */
 786               	/* prologue end (size=0) */
 174:ds1302.c      **** 	uchar temp=0;
 175:ds1302.c      **** 	
 176:ds1302.c      **** 	temp=(hour&0xf0)>>4;
 788               	.LM144:
 789 0256 2091 0000 		lds r18,hour
 790 025a 822F      		mov r24,r18
 791 025c 9927      		clr r25
 792 025e 54E0      		ldi r21,4
 793 0260 9695      	1:	lsr r25
 794 0262 8795      		ror r24
 795 0264 5A95      		dec r21
 796 0266 E1F7      		brne 1b
 797               	.LBB2:
 177:ds1302.c      **** 	display_buffer[0]=pgm_read_byte(display_code+temp);
 799               	.LM145:
 800 0268 E82F      		mov r30,r24
 801 026a FF27      		clr r31
 802 026c E050      		subi r30,lo8(-(display_code))
 803 026e F040      		sbci r31,hi8(-(display_code))
 804               	/* #APP */
 805 0270 8491      		lpm r24, Z
 806               		
 807               	/* #NOAPP */
 808               	.LBE2:
 809 0272 8093 0000 		sts display_buffer,r24
 178:ds1302.c      **** 	temp=hour&0x0f;
 811               	.LM146:
 812 0276 2F70      		andi r18,lo8(15)
 813               	.LBB3:
 179:ds1302.c      **** 	display_buffer[1]=pgm_read_byte(display_code+temp);
 815               	.LM147:
 816 0278 E22F      		mov r30,r18
 817 027a FF27      		clr r31
 818 027c E050      		subi r30,lo8(-(display_code))
 819 027e F040      		sbci r31,hi8(-(display_code))
 820               	/* #APP */
 821 0280 8491      		lpm r24, Z
 822               		
 823               	/* #NOAPP */
 824               	.LBE3:
 825 0282 8093 0000 		sts display_buffer+1,r24
 180:ds1302.c      **** 	
 181:ds1302.c      **** 	display_buffer[2]=0x40;//-
 827               	.LM148:
 828 0286 30E4      		ldi r19,lo8(64)
 829 0288 3093 0000 		sts display_buffer+2,r19
 182:ds1302.c      **** 	
 183:ds1302.c      **** 	temp=(minute&0xf0)>>4;
 831               	.LM149:
 832 028c 2091 0000 		lds r18,minute
 833 0290 822F      		mov r24,r18
 834 0292 9927      		clr r25
 835 0294 44E0      		ldi r20,4
 836 0296 9695      	1:	lsr r25
 837 0298 8795      		ror r24
 838 029a 4A95      		dec r20
 839 029c E1F7      		brne 1b

⌨️ 快捷键说明

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