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

📄 main.lst

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 LST
📖 第 1 页 / 共 5 页
字号:
  84:./ds1302.h    **** 	clr_ds1302_rst(); 		/*置0*/
 348               	.LM23:
 349 0120 8091 3500 		lds r24,53
 350 0124 877F      		andi r24,lo8(-9)
 351 0126 8093 3500 		sts 53,r24
  85:./ds1302.h    **** 	clr_ds1302_sclk(); 		/*置0,在RST置1时,SCLK必须为0*/
 353               	.LM24:
 354 012a 8091 3500 		lds r24,53
 355 012e 8F7E      		andi r24,lo8(-17)
 356 0130 8093 3500 		sts 53,r24
  86:./ds1302.h    **** 	set_ds1302_rst(); 		/*置1,启动数据传送*/
 358               	.LM25:
 359 0134 8091 3500 		lds r24,53
 360 0138 8860      		ori r24,lo8(8)
 361 013a 8093 3500 		sts 53,r24
  87:./ds1302.h    **** 	for(i=8;i>0;i--) 		/*写地址*/
 363               	.LM26:
 364 013e 88E0      		ldi r24,lo8(8)
 365 0140 8B83      		std Y+3,r24
 366               	.L16:
 368               	.LM27:
 369 0142 8B81      		ldd r24,Y+3
 370 0144 8823      		tst r24
 371 0146 11F1      		breq .L17
  88:./ds1302.h    **** 	{     
  89:./ds1302.h    **** 		
  90:./ds1302.h    **** 		if((reg&0x01)==0x01) 
 373               	.LM28:
 374 0148 8981      		ldd r24,Y+1
 375 014a 9927      		clr r25
 376 014c 8170      		andi r24,lo8(1)
 377 014e 9070      		andi r25,hi8(1)
 378 0150 0097      		sbiw r24,0
 379 0152 31F0      		breq .L19
  91:./ds1302.h    **** 			set_ds1302_io(); 
 381               	.LM29:
 382 0154 8091 3500 		lds r24,53
 383 0158 8062      		ori r24,lo8(32)
 384 015a 8093 3500 		sts 53,r24
 385 015e 05C0      		rjmp .L20
 386               	.L19:
  92:./ds1302.h    **** 		else 
  93:./ds1302.h    **** 			clr_ds1302_io(); 
 388               	.LM30:
 389 0160 8091 3500 		lds r24,53
 390 0164 8F7D      		andi r24,lo8(-33)
 391 0166 8093 3500 		sts 53,r24
 392               	.L20:
  94:./ds1302.h    **** 		set_ds1302_sclk(); /*时钟*/
 394               	.LM31:
 395 016a 8091 3500 		lds r24,53
 396 016e 8061      		ori r24,lo8(16)
 397 0170 8093 3500 		sts 53,r24
  95:./ds1302.h    **** 		clr_ds1302_sclk(); 
 399               	.LM32:
 400 0174 8091 3500 		lds r24,53
 401 0178 8F7E      		andi r24,lo8(-17)
 402 017a 8093 3500 		sts 53,r24
  96:./ds1302.h    **** 		reg>>=1; 
 404               	.LM33:
 405 017e 8981      		ldd r24,Y+1
 406 0180 8695      		lsr r24
 407 0182 8983      		std Y+1,r24
 409               	.LM34:
 410 0184 8B81      		ldd r24,Y+3
 411 0186 8150      		subi r24,lo8(-(-1))
 412 0188 8B83      		std Y+3,r24
 413 018a DBCF      		rjmp .L16
 414               	.L17:
  97:./ds1302.h    **** 	} 
  98:./ds1302.h    **** 	for(i=8;i>0;i--) 		/*写数据*/
 416               	.LM35:
 417 018c 88E0      		ldi r24,lo8(8)
 418 018e 8B83      		std Y+3,r24
 419               	.L21:
 420 0190 8B81      		ldd r24,Y+3
 421 0192 8823      		tst r24
 422 0194 29F1      		breq .L22
  99:./ds1302.h    **** 	{     
 100:./ds1302.h    **** 		clr_ds1302_sclk(); 
 424               	.LM36:
 425 0196 8091 3500 		lds r24,53
 426 019a 8F7E      		andi r24,lo8(-17)
 427 019c 8093 3500 		sts 53,r24
 101:./ds1302.h    **** 		delay_nus(500); 
 429               	.LM37:
 430 01a0 84EF      		ldi r24,lo8(500)
 431 01a2 91E0      		ldi r25,hi8(500)
 432 01a4 35DF      		rcall delay_nus
 102:./ds1302.h    **** 		if((data&0x01)==0x01) 
 434               	.LM38:
 435 01a6 8A81      		ldd r24,Y+2
 436 01a8 9927      		clr r25
 437 01aa 8170      		andi r24,lo8(1)
 438 01ac 9070      		andi r25,hi8(1)
 439 01ae 0097      		sbiw r24,0
 440 01b0 31F0      		breq .L24
 103:./ds1302.h    **** 			set_ds1302_io(); 
 442               	.LM39:
 443 01b2 8091 3500 		lds r24,53
 444 01b6 8062      		ori r24,lo8(32)
 445 01b8 8093 3500 		sts 53,r24
 446 01bc 05C0      		rjmp .L25
 447               	.L24:
 104:./ds1302.h    **** 		else 
 105:./ds1302.h    **** 			clr_ds1302_io(); 
 449               	.LM40:
 450 01be 8091 3500 		lds r24,53
 451 01c2 8F7D      		andi r24,lo8(-33)
 452 01c4 8093 3500 		sts 53,r24
 453               	.L25:
 106:./ds1302.h    **** 		set_ds1302_sclk(); /*时钟*/
 455               	.LM41:
 456 01c8 8091 3500 		lds r24,53
 457 01cc 8061      		ori r24,lo8(16)
 458 01ce 8093 3500 		sts 53,r24
 107:./ds1302.h    **** 		
 108:./ds1302.h    **** 		data>>=1; 
 460               	.LM42:
 461 01d2 8A81      		ldd r24,Y+2
 462 01d4 8695      		lsr r24
 463 01d6 8A83      		std Y+2,r24
 465               	.LM43:
 466 01d8 8B81      		ldd r24,Y+3
 467 01da 8150      		subi r24,lo8(-(-1))
 468 01dc 8B83      		std Y+3,r24
 469 01de D8CF      		rjmp .L21
 470               	.L22:
 109:./ds1302.h    **** 	} 
 110:./ds1302.h    **** 	clr_ds1302_rst(); 		/*置0,结束本次数据传送,I/O引脚变为高阻态*/
 472               	.LM44:
 473 01e0 8091 3500 		lds r24,53
 474 01e4 877F      		andi r24,lo8(-9)
 475 01e6 8093 3500 		sts 53,r24
 111:./ds1302.h    **** 	clr_ds1302_io_ddr(); 	/*设为输入*/
 477               	.LM45:
 478 01ea 8091 3400 		lds r24,52
 479 01ee 8F7D      		andi r24,lo8(-33)
 480 01f0 8093 3400 		sts 52,r24
 481               	/* epilogue: frame size=3 */
 482 01f4 2396      		adiw r28,3
 483 01f6 0FB6      		in __tmp_reg__,__SREG__
 484 01f8 F894      		cli
 485 01fa DEBF      		out __SP_H__,r29
 486 01fc 0FBE      		out __SREG__,__tmp_reg__
 487 01fe CDBF      		out __SP_L__,r28
 488 0200 DF91      		pop r29
 489 0202 CF91      		pop r28
 490 0204 0895      		ret
 491               	/* epilogue end (size=9) */
 492               	/* function ds1302_write size 143 (124) */
 497               	.Lscope5:
 500               	.global	ds1302_read
 502               	ds1302_read:
 112:./ds1302.h    **** } 
 113:./ds1302.h    **** /******************************************************************/
 114:./ds1302.h    **** uchar ds1302_read(uchar reg) 
 115:./ds1302.h    **** { 
 504               	.LM46:
 505               	/* prologue: frame size=3 */
 506 0206 CF93      		push r28
 507 0208 DF93      		push r29
 508 020a CDB7      		in r28,__SP_L__
 509 020c DEB7      		in r29,__SP_H__
 510 020e 2397      		sbiw r28,3
 511 0210 0FB6      		in __tmp_reg__,__SREG__
 512 0212 F894      		cli
 513 0214 DEBF      		out __SP_H__,r29
 514 0216 0FBE      		out __SREG__,__tmp_reg__
 515 0218 CDBF      		out __SP_L__,r28
 516               	/* prologue end (size=10) */
 517 021a 8983      		std Y+1,r24
 116:./ds1302.h    **** 	uchar data=0; 
 519               	.LM47:
 520 021c 1A82      		std Y+2,__zero_reg__
 117:./ds1302.h    **** 	char i=0; 
 522               	.LM48:
 523 021e 1B82      		std Y+3,__zero_reg__
 118:./ds1302.h    **** 	reg+=1;		//读标志 
 525               	.LM49:
 526 0220 8981      		ldd r24,Y+1
 527 0222 8F5F      		subi r24,lo8(-(1))
 528 0224 8983      		std Y+1,r24
 119:./ds1302.h    **** 	set_ds1302_rst_ddr();
 530               	.LM50:
 531 0226 8091 3400 		lds r24,52
 532 022a 8860      		ori r24,lo8(8)
 533 022c 8093 3400 		sts 52,r24
 120:./ds1302.h    **** 	set_ds1302_sclk_ddr();
 535               	.LM51:
 536 0230 8091 3400 		lds r24,52
 537 0234 8061      		ori r24,lo8(16)
 538 0236 8093 3400 		sts 52,r24
 121:./ds1302.h    **** 	set_ds1302_io_ddr(); 		/*设为输出*/
 540               	.LM52:
 541 023a 8091 3400 		lds r24,52
 542 023e 8062      		ori r24,lo8(32)
 543 0240 8093 3400 		sts 52,r24
 122:./ds1302.h    **** 	
 123:./ds1302.h    **** 	clr_ds1302_rst(); 
 545               	.LM53:
 546 0244 8091 3500 		lds r24,53
 547 0248 877F      		andi r24,lo8(-9)
 548 024a 8093 3500 		sts 53,r24
 124:./ds1302.h    **** 	clr_ds1302_sclk(); 
 550               	.LM54:
 551 024e 8091 3500 		lds r24,53
 552 0252 8F7E      		andi r24,lo8(-17)
 553 0254 8093 3500 		sts 53,r24
 125:./ds1302.h    **** 	set_ds1302_rst(); 
 555               	.LM55:
 556 0258 8091 3500 		lds r24,53
 557 025c 8860      		ori r24,lo8(8)
 558 025e 8093 3500 		sts 53,r24
 126:./ds1302.h    **** 	for(i=8;i>0;i--) 
 560               	.LM56:
 561 0262 88E0      		ldi r24,lo8(8)
 562 0264 8B83      		std Y+3,r24
 563               	.L27:
 565               	.LM57:
 566 0266 8B81      		ldd r24,Y+3
 567 0268 8823      		tst r24
 568 026a 11F1      		breq .L28
 127:./ds1302.h    **** 	{ 
 128:./ds1302.h    **** 		clr_ds1302_sclk(); 
 570               	.LM58:
 571 026c 8091 3500 		lds r24,53
 572 0270 8F7E      		andi r24,lo8(-17)
 573 0272 8093 3500 		sts 53,r24
 129:./ds1302.h    **** 		if((reg&0x01)==0x01) 
 575               	.LM59:
 576 0276 8981      		ldd r24,Y+1
 577 0278 9927      		clr r25
 578 027a 8170      		andi r24,lo8(1)
 579 027c 9070      		andi r25,hi8(1)
 580 027e 0097      		sbiw r24,0
 581 0280 31F0      		breq .L30
 130:./ds1302.h    **** 			set_ds1302_io(); 
 583               	.LM60:
 584 0282 8091 3500 		lds r24,53
 585 0286 8062      		ori r24,lo8(32)
 586 0288 8093 3500 		sts 53,r24
 587 028c 05C0      		rjmp .L31
 588               	.L30:
 131:./ds1302.h    **** 		else 
 132:./ds1302.h    **** 			clr_ds1302_io(); 
 590               	.LM61:
 591 028e 8091 3500 		lds r24,53
 592 0292 8F7D      		andi r24,lo8(-33)
 593 0294 8093 3500 		sts 53,r24
 594               	.L31:
 133:./ds1302.h    **** 		set_ds1302_sclk(); 
 596               	.LM62:
 597 0298 8091 3500 		lds r24,53
 598 029c 8061      		ori r24,lo8(16)
 599 029e 8093 3500 		sts 53,r24
 134:./ds1302.h    **** 		
 135:./ds1302.h    **** 		reg>>=1; 
 601               	.LM63:
 602 02a2 8981      		ldd r24,Y+1
 603 02a4 8695      		lsr r24
 604 02a6 8983      		std Y+1,r24
 606               	.LM64:
 607 02a8 8B81      		ldd r24,Y+3
 608 02aa 8150      		subi r24,lo8(-(-1))
 609 02ac 8B83      		std Y+3,r24
 610 02ae DBCF      		rjmp .L27
 611               	.L28:
 136:./ds1302.h    **** 	} 
 137:./ds1302.h    **** 	clr_ds1302_io_ddr(); //PA1 in
 613               	.LM65:
 614 02b0 8091 3400 		lds r24,52
 615 02b4 8F7D      		andi r24,lo8(-33)
 616 02b6 8093 3400 		sts 52,r24
 138:./ds1302.h    **** 	for(i=8;i>0;i--) 
 618               	.LM66:
 619 02ba 88E0      		ldi r24,lo8(8)
 620 02bc 8B83      		std Y+3,r24
 621               	.L32:
 622 02be 8B81      		ldd r24,Y+3
 623 02c0 8823      		tst r24
 624 02c2 39F1      		breq .L33
 139:./ds1302.h    **** 	{   
 140:./ds1302.h    **** 		if((PINC&0X20)==0X20)  
 626               	.LM67:
 627 02c4 8091 3300 		lds r24,51
 628 02c8 9927      		clr r25
 629 02ca 9695      		lsr r25
 630 02cc 8795      		ror r24
 631 02ce 9295      		swap r25
 632 02d0 8295      		swap r24
 633 02d2 8F70      		andi r24,0x0f
 634 02d4 8927      		eor r24,r25
 635 02d6 9F70      		andi r25,0x0f
 636 02d8 8927      		eor r24,r25
 637 02da 8170      		andi r24,lo8(1)
 638 02dc 9070      		andi r25,hi8(1)
 639 02de 0097      		sbiw r24,0
 640 02e0 21F0      		breq .L35
 141:./ds1302.h    **** 			data|=0x80;
 642               	.LM68:
 643 02e2 8A81      		ldd r24,Y+2
 644 02e4 8068      		ori r24,lo8(-128)
 645 02e6 8A83      		std Y+2,r24
 646 02e8 03C0      		rjmp .L36
 647               	.L35:
 142:./ds1302.h    **** 		else 
 143:./ds1302.h    **** 			data&=0x7f;
 649               	.LM69:
 650 02ea 8A81      		ldd r24,Y+2
 651 02ec 8F77      		andi r24,lo8(127)
 652 02ee 8A83      		std Y+2,r24
 653               	.L36:
 144:./ds1302.h    **** 		set_ds1302_sclk(); 
 655               	.LM70:
 656 02f0 8091 3500 		lds r24,53
 657 02f4 8061      		ori r24,lo8(16)
 658 02f6 8093 3500 		sts 53,r24
 145:./ds1302.h    **** 		clr_ds1302_sclk(); 
 660               	.LM71:
 661 02fa 8091 3500 		lds r24,53
 662 02fe 8F7E      		andi r24,lo8(-17)
 663 0300 8093 3500 		sts 53,r24

⌨️ 快捷键说明

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