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

📄 adc_sram.lst

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 376 01aa F894      		cli
 377 01ac DEBF      		out __SP_H__,r29
 378 01ae 0FBE      		out __SREG__,__tmp_reg__
 379 01b0 CDBF      		out __SP_L__,r28
 380               	/* prologue end (size=10) */
 381 01b2 6983      		std Y+1,r22
 382 01b4 7A83      		std Y+2,r23
 383 01b6 8B83      		std Y+3,r24
 384 01b8 9C83      		std Y+4,r25
 385 01ba 4D83      		std Y+5,r20
  66:G:/HVCBASOFT/AD/adc_sram.c **** //变量定义
  67:G:/HVCBASOFT/AD/adc_sram.c **** //	uint8_t addr_l,addr_m,addr_h;
  68:G:/HVCBASOFT/AD/adc_sram.c **** //
  69:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTD,6);//ram片选拉低
 387               	.LM34:
 388 01bc 8091 3200 		lds r24,50
 389 01c0 8F7B      		andi r24,lo8(-65)
 390 01c2 8093 3200 		sts 50,r24
  70:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,5);//AD片选拉高
 392               	.LM35:
 393 01c6 8091 3200 		lds r24,50
 394 01ca 8062      		ori r24,lo8(32)
 395 01cc 8093 3200 		sts 50,r24
  71:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRA=0xFF;//a口输出
 397               	.LM36:
 398 01d0 8FEF      		ldi r24,lo8(-1)
 399 01d2 8093 3A00 		sts 58,r24
  72:G:/HVCBASOFT/AD/adc_sram.c **** //	addr_h=(address>>16);//高4位地址
  73:G:/HVCBASOFT/AD/adc_sram.c **** //	addr_h=(addr_h&0x0F);
  74:G:/HVCBASOFT/AD/adc_sram.c **** //	addr_m=(address>>8);//中间8位地址
  75:G:/HVCBASOFT/AD/adc_sram.c **** //	addr_l=address;//低8位地址
  76:G:/HVCBASOFT/AD/adc_sram.c **** //	PORTA=addr_l;//写ram地址
  77:G:/HVCBASOFT/AD/adc_sram.c **** //	PORTC=addr_m;
  78:G:/HVCBASOFT/AD/adc_sram.c **** //	PORTF&=0xF0;//低4位清零
  79:G:/HVCBASOFT/AD/adc_sram.c **** //	PORTF|=addr_h;
  80:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=address;//低8位地址
 401               	.LM37:
 402 01d6 8981      		ldd r24,Y+1
 403 01d8 8093 3B00 		sts 59,r24
  81:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTC=(address>>8);//中间8位地址
 405               	.LM38:
 406 01dc 8981      		ldd r24,Y+1
 407 01de 9A81      		ldd r25,Y+2
 408 01e0 AB81      		ldd r26,Y+3
 409 01e2 BC81      		ldd r27,Y+4
 410 01e4 892F      		mov r24,r25
 411 01e6 9A2F      		mov r25,r26
 412 01e8 AB2F      		mov r26,r27
 413 01ea BB27      		clr r27
 414 01ec 8093 3500 		sts 53,r24
  82:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTF&=0xF0;//低4位清零
 416               	.LM39:
 417 01f0 90EF      		ldi r25,lo8(-16)
 418 01f2 8091 6200 		lds r24,98
 419 01f6 8923      		and r24,r25
 420 01f8 8093 6200 		sts 98,r24
  83:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTF|=(address>>16)&0x0F;
 422               	.LM40:
 423 01fc 8981      		ldd r24,Y+1
 424 01fe 9A81      		ldd r25,Y+2
 425 0200 AB81      		ldd r26,Y+3
 426 0202 BC81      		ldd r27,Y+4
 427 0204 CD01      		movw r24,r26
 428 0206 AA27      		clr r26
 429 0208 BB27      		clr r27
 430 020a 982F      		mov r25,r24
 431 020c 9F70      		andi r25,lo8(15)
 432 020e 8091 6200 		lds r24,98
 433 0212 892B      		or r24,r25
 434 0214 8093 6200 		sts 98,r24
  84:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,2);//地址锁存
 436               	.LM41:
 437 0218 8091 6500 		lds r24,101
 438 021c 8B7F      		andi r24,lo8(-5)
 439 021e 8093 6500 		sts 101,r24
  85:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=data;//将数据放在总线上
 441               	.LM42:
 442 0222 8D81      		ldd r24,Y+5
 443 0224 8093 3B00 		sts 59,r24
  86:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,0);//写拉低
 445               	.LM43:
 446 0228 8091 6500 		lds r24,101
 447 022c 8E7F      		andi r24,lo8(-2)
 448 022e 8093 6500 		sts 101,r24
  87:G:/HVCBASOFT/AD/adc_sram.c **** 	delay_ms();//延时//////////////////
 450               	.LM44:
 451 0232 0E94 0000 		call delay_ms
  88:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,0);//写拉高
 453               	.LM45:
 454 0236 8091 6500 		lds r24,101
 455 023a 8160      		ori r24,lo8(1)
 456 023c 8093 6500 		sts 101,r24
  89:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,2);//去锁存
 458               	.LM46:
 459 0240 8091 6500 		lds r24,101
 460 0244 8460      		ori r24,lo8(4)
 461 0246 8093 6500 		sts 101,r24
  90:G:/HVCBASOFT/AD/adc_sram.c **** }
 463               	.LM47:
 464               	/* epilogue: frame size=5 */
 465 024a 2596      		adiw r28,5
 466 024c 0FB6      		in __tmp_reg__,__SREG__
 467 024e F894      		cli
 468 0250 DEBF      		out __SP_H__,r29
 469 0252 0FBE      		out __SREG__,__tmp_reg__
 470 0254 CDBF      		out __SP_L__,r28
 471 0256 DF91      		pop r29
 472 0258 CF91      		pop r28
 473 025a 0895      		ret
 474               	/* epilogue end (size=9) */
 475               	/* function SRAM_1M_8_WRITE size 95 (76) */
 477               	.Lscope4:
 481               	.global	SRAM_1M_8_READ
 483               	SRAM_1M_8_READ:
  91:G:/HVCBASOFT/AD/adc_sram.c **** //SRAM读操作
  92:G:/HVCBASOFT/AD/adc_sram.c **** uint8_t SRAM_1M_8_READ(uint32_t address)
  93:G:/HVCBASOFT/AD/adc_sram.c **** {
 485               	.LM48:
 486               	/* prologue: frame size=8 */
 487 025c CF93      		push r28
 488 025e DF93      		push r29
 489 0260 CDB7      		in r28,__SP_L__
 490 0262 DEB7      		in r29,__SP_H__
 491 0264 2897      		sbiw r28,8
 492 0266 0FB6      		in __tmp_reg__,__SREG__
 493 0268 F894      		cli
 494 026a DEBF      		out __SP_H__,r29
 495 026c 0FBE      		out __SREG__,__tmp_reg__
 496 026e CDBF      		out __SP_L__,r28
 497               	/* prologue end (size=10) */
 498 0270 6983      		std Y+1,r22
 499 0272 7A83      		std Y+2,r23
 500 0274 8B83      		std Y+3,r24
 501 0276 9C83      		std Y+4,r25
  94:G:/HVCBASOFT/AD/adc_sram.c **** 	uint8_t addr_l,addr_m,addr_h,temp;
  95:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTD,6);//ram片选拉低
 503               	.LM49:
 504               	.LBB3:
 505 0278 8091 3200 		lds r24,50
 506 027c 8F7B      		andi r24,lo8(-65)
 507 027e 8093 3200 		sts 50,r24
  96:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,5);//AD片选拉高
 509               	.LM50:
 510 0282 8091 3200 		lds r24,50
 511 0286 8062      		ori r24,lo8(32)
 512 0288 8093 3200 		sts 50,r24
  97:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRA=0xFF;//a口输出
 514               	.LM51:
 515 028c 8FEF      		ldi r24,lo8(-1)
 516 028e 8093 3A00 		sts 58,r24
  98:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_l=address;//低8位地址
 518               	.LM52:
 519 0292 8981      		ldd r24,Y+1
 520 0294 8D83      		std Y+5,r24
  99:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_m=(address>>8);//中间8位地址
 522               	.LM53:
 523 0296 8981      		ldd r24,Y+1
 524 0298 9A81      		ldd r25,Y+2
 525 029a AB81      		ldd r26,Y+3
 526 029c BC81      		ldd r27,Y+4
 527 029e 892F      		mov r24,r25
 528 02a0 9A2F      		mov r25,r26
 529 02a2 AB2F      		mov r26,r27
 530 02a4 BB27      		clr r27
 531 02a6 8E83      		std Y+6,r24
 100:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_h=(address>>16);//高4位地址
 533               	.LM54:
 534 02a8 8981      		ldd r24,Y+1
 535 02aa 9A81      		ldd r25,Y+2
 536 02ac AB81      		ldd r26,Y+3
 537 02ae BC81      		ldd r27,Y+4
 538 02b0 CD01      		movw r24,r26
 539 02b2 AA27      		clr r26
 540 02b4 BB27      		clr r27
 541 02b6 8F83      		std Y+7,r24
 101:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_h=(addr_h&0x0F);
 543               	.LM55:
 544 02b8 8F81      		ldd r24,Y+7
 545 02ba 8F70      		andi r24,lo8(15)
 546 02bc 8F83      		std Y+7,r24
 102:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=addr_l;//输出ram地址
 548               	.LM56:
 549 02be 8D81      		ldd r24,Y+5
 550 02c0 8093 3B00 		sts 59,r24
 103:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTC=addr_m;
 552               	.LM57:
 553 02c4 8E81      		ldd r24,Y+6
 554 02c6 8093 3500 		sts 53,r24
 104:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTF&=0xF0;//低4位清零
 556               	.LM58:
 557 02ca 90EF      		ldi r25,lo8(-16)
 558 02cc 8091 6200 		lds r24,98
 559 02d0 8923      		and r24,r25
 560 02d2 8093 6200 		sts 98,r24
 105:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTF|=addr_h;
 562               	.LM59:
 563 02d6 9091 6200 		lds r25,98
 564 02da 8F81      		ldd r24,Y+7
 565 02dc 892B      		or r24,r25
 566 02de 8093 6200 		sts 98,r24
 106:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,2);//地址锁存
 568               	.LM60:
 569 02e2 8091 6500 		lds r24,101
 570 02e6 8B7F      		andi r24,lo8(-5)
 571 02e8 8093 6500 		sts 101,r24
 107:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,1);//读拉低
 573               	.LM61:
 574 02ec 8091 6500 		lds r24,101
 575 02f0 8D7F      		andi r24,lo8(-3)
 576 02f2 8093 6500 		sts 101,r24
 108:G:/HVCBASOFT/AD/adc_sram.c **** 	delay_ms();//延时//////////////////
 578               	.LM62:
 579 02f6 0E94 0000 		call delay_ms
 109:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRA=0x00;//a口输入
 581               	.LM63:
 582 02fa 1092 3A00 		sts 58,__zero_reg__
 110:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=0xFF;//设置上拉
 584               	.LM64:
 585 02fe 8FEF      		ldi r24,lo8(-1)
 586 0300 8093 3B00 		sts 59,r24
 111:G:/HVCBASOFT/AD/adc_sram.c **** 	temp=PINA;//读取总线上的数据
 588               	.LM65:
 589 0304 8091 3900 		lds r24,57
 590 0308 8887      		std Y+8,r24
 112:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,1);//读拉高
 592               	.LM66:
 593 030a 8091 6500 		lds r24,101
 594 030e 8260      		ori r24,lo8(2)
 595 0310 8093 6500 		sts 101,r24
 113:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,2);//去锁存
 597               	.LM67:
 598 0314 8091 6500 		lds r24,101
 599 0318 8460      		ori r24,lo8(4)
 600 031a 8093 6500 		sts 101,r24
 114:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,6);//去掉片选信号
 602               	.LM68:
 603 031e 8091 3200 		lds r24,50
 604 0322 8064      		ori r24,lo8(64)
 605 0324 8093 3200 		sts 50,r24
 115:G:/HVCBASOFT/AD/adc_sram.c **** 	return temp;
 607               	.LM69:
 608 0328 8885      		ldd r24,Y+8
 609 032a 9927      		clr r25
 116:G:/HVCBASOFT/AD/adc_sram.c **** }
 611               	.LM70:
 612               	.LBE3:
 613               	/* epilogue: frame size=8 */
 614 032c 2896      		adiw r28,8
 615 032e 0FB6      		in __tmp_reg__,__SREG__
 616 0330 F894      		cli
 617 0332 DEBF      		out __SP_H__,r29
 618 0334 0FBE      		out __SREG__,__tmp_reg__
 619 0336 CDBF      		out __SP_L__,r28
 620 0338 DF91      		pop r29
 621 033a CF91      		pop r28
 622 033c 0895      		ret
 623               	/* epilogue end (size=9) */
 624               	/* function SRAM_1M_8_READ size 113 (94) */
 632               	.Lscope5:
 636               	.global	AD7891_WRITE
 638               	AD7891_WRITE:
 117:G:/HVCBASOFT/AD/adc_sram.c **** //AD写操作
 118:G:/HVCBASOFT/AD/adc_sram.c **** void AD7891_WRITE(uint16_t cmd)
 119:G:/HVCBASOFT/AD/adc_sram.c **** {
 640               	.LM71:
 641               	/* prologue: frame size=3 */
 642 033e CF93      		push r28
 643 0340 DF93      		push r29
 644 0342 CDB7      		in r28,__SP_L__
 645 0344 DEB7      		in r29,__SP_H__
 646 0346 2397      		sbiw r28,3
 647 0348 0FB6      		in __tmp_reg__,__SREG__
 648 034a F894      		cli
 649 034c DEBF      		out __SP_H__,r29
 650 034e 0FBE      		out __SREG__,__tmp_reg__
 651 0350 CDBF      		out __SP_L__,r28
 652               	/* prologue end (size=10) */
 653 0352 8983      		std Y+1,r24
 654 0354 9A83      		std Y+2,r25
 120:G:/HVCBASOFT/AD/adc_sram.c **** //CS:PD5;WR:PG0;RD:PG1
 121:G:/HVCBASOFT/AD/adc_sram.c **** //DATA0~DATA7:PORTA
 122:G:/HVCBASOFT/AD/adc_sram.c **** //ADCD8~ADCD11:PB4~PB7
 123:G:/HVCBASOFT/AD/adc_sram.c **** 	uint8_t addr_h;
 124:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRA=0xFF;//a口输出
 656               	.LM72:
 657               	.LBB4:
 658 0356 8FEF      		ldi r24,lo8(-1)
 659 0358 8093 3A00 		sts 58,r24
 125:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRB|=0xF0;//端口B高4位输出
 661               	.LM73:
 662 035c 8091 3700 		lds r24,55
 663 0360 806F      		ori r24,lo8(-16)
 664 0362 8093 3700 		sts 55,r24
 126:G:/HVCBASOFT/AD/adc_sram.c **** //	addr_l=cmd;
 127:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_h=(cmd>>8);
 666               	.LM74:
 667 0366 8981      		ldd r24,Y+1
 668 0368 9A81      		ldd r25,Y+2
 669 036a 892F      		mov r24,r25
 670 036c 9927      		clr r25
 671 036e 8B83      		std Y+3,r24
 128:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_h=(addr_h<<4);//低4位移动到高位
 673               	.LM75:
 674 0370 8B81      		ldd r24,Y+3
 675 0372 8295      		swap r24
 676 0374 807F      		andi r24,0xf0
 677 0376 8B83      		std Y+3,r24
 129:G:/HVCBASOFT/AD/adc_sram.c **** 	addr_h&=0xF0;//取高4位
 679               	.LM76:
 680 0378 90EF      		ldi r25,lo8(-16)
 681 037a 8B81      		ldd r24,Y+3
 682 037c 8923      		and r24,r25
 683 037e 8B83      		std Y+3,r24
 130:G:/HVCBASOFT/AD/adc_sram.c **** //片选
 131:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTD,5);//ad片选拉低
 685               	.LM77:
 686 0380 8091 3200 		lds r24,50
 687 0384 8F7D      		andi r24,lo8(-33)
 688 0386 8093 3200 		sts 50,r24
 132:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,6);//ram片选拉高
 690               	.LM78:

⌨️ 快捷键说明

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