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

📄 adc_sram.lst

📁 基于AVR单片机 Atmel Mega128的AD采集程序。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 691 038a 8091 3200 		lds r24,50
 692 038e 8064      		ori r24,lo8(64)
 693 0390 8093 3200 		sts 50,r24
 133:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=cmd;
 695               	.LM79:
 696 0394 8981      		ldd r24,Y+1
 697 0396 8093 3B00 		sts 59,r24
 134:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTB&=0x0F;//高4位清零
 699               	.LM80:
 700 039a 8091 3800 		lds r24,56
 701 039e 8F70      		andi r24,lo8(15)
 702 03a0 8093 3800 		sts 56,r24
 135:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTB|=addr_h;
 704               	.LM81:
 705 03a4 9091 3800 		lds r25,56
 706 03a8 8B81      		ldd r24,Y+3
 707 03aa 892B      		or r24,r25
 708 03ac 8093 3800 		sts 56,r24
 136:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,0);//写拉低
 710               	.LM82:
 711 03b0 8091 6500 		lds r24,101
 712 03b4 8E7F      		andi r24,lo8(-2)
 713 03b6 8093 6500 		sts 101,r24
 137:G:/HVCBASOFT/AD/adc_sram.c **** 	delay_ms();
 715               	.LM83:
 716 03ba 0E94 0000 		call delay_ms
 138:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,0);//写拉高
 718               	.LM84:
 719 03be 8091 6500 		lds r24,101
 720 03c2 8160      		ori r24,lo8(1)
 721 03c4 8093 6500 		sts 101,r24
 139:G:/HVCBASOFT/AD/adc_sram.c **** }
 723               	.LM85:
 724               	.LBE4:
 725               	/* epilogue: frame size=3 */
 726 03c8 2396      		adiw r28,3
 727 03ca 0FB6      		in __tmp_reg__,__SREG__
 728 03cc F894      		cli
 729 03ce DEBF      		out __SP_H__,r29
 730 03d0 0FBE      		out __SREG__,__tmp_reg__
 731 03d2 CDBF      		out __SP_L__,r28
 732 03d4 DF91      		pop r29
 733 03d6 CF91      		pop r28
 734 03d8 0895      		ret
 735               	/* epilogue end (size=9) */
 736               	/* function AD7891_WRITE size 78 (59) */
 741               	.Lscope6:
 744               	.global	AD7891_READ
 746               	AD7891_READ:
 140:G:/HVCBASOFT/AD/adc_sram.c **** 
 141:G:/HVCBASOFT/AD/adc_sram.c **** //AD读操作,返回一16位整数
 142:G:/HVCBASOFT/AD/adc_sram.c **** uint16_t AD7891_READ(void)
 143:G:/HVCBASOFT/AD/adc_sram.c **** {
 748               	.LM86:
 749               	/* prologue: frame size=4 */
 750 03da CF93      		push r28
 751 03dc DF93      		push r29
 752 03de CDB7      		in r28,__SP_L__
 753 03e0 DEB7      		in r29,__SP_H__
 754 03e2 2497      		sbiw r28,4
 755 03e4 0FB6      		in __tmp_reg__,__SREG__
 756 03e6 F894      		cli
 757 03e8 DEBF      		out __SP_H__,r29
 758 03ea 0FBE      		out __SREG__,__tmp_reg__
 759 03ec CDBF      		out __SP_L__,r28
 760               	/* prologue end (size=10) */
 144:G:/HVCBASOFT/AD/adc_sram.c **** //CS:PD5;WR:PG0;RD:PG1
 145:G:/HVCBASOFT/AD/adc_sram.c **** //DATA0~DATA7:PORTA
 146:G:/HVCBASOFT/AD/adc_sram.c **** //ADCD8~ADCD11:PB4~PB7
 147:G:/HVCBASOFT/AD/adc_sram.c **** 	uint8_t result_l,result_h;
 148:G:/HVCBASOFT/AD/adc_sram.c **** 	uint16_t result;
 149:G:/HVCBASOFT/AD/adc_sram.c **** 	////////设置端口方向////////////////
 150:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRA=0x00;//PORTA as input
 762               	.LM87:
 763               	.LBB5:
 764 03ee 1092 3A00 		sts 58,__zero_reg__
 151:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTA=0xFF;//设置上拉
 766               	.LM88:
 767 03f2 8FEF      		ldi r24,lo8(-1)
 768 03f4 8093 3B00 		sts 59,r24
 152:G:/HVCBASOFT/AD/adc_sram.c **** 	DDRB&=0x0F;//PB4~PB7 as input
 770               	.LM89:
 771 03f8 8091 3700 		lds r24,55
 772 03fc 8F70      		andi r24,lo8(15)
 773 03fe 8093 3700 		sts 55,r24
 153:G:/HVCBASOFT/AD/adc_sram.c **** 	PORTB|=0xF0;//PB4~PB7设置上拉
 775               	.LM90:
 776 0402 8091 3800 		lds r24,56
 777 0406 806F      		ori r24,lo8(-16)
 778 0408 8093 3800 		sts 56,r24
 154:G:/HVCBASOFT/AD/adc_sram.c **** 	////////读///////////////////////////
 155:G:/HVCBASOFT/AD/adc_sram.c **** //片选
 156:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTD,5);//ad片选拉低
 780               	.LM91:
 781 040c 8091 3200 		lds r24,50
 782 0410 8F7D      		andi r24,lo8(-33)
 783 0412 8093 3200 		sts 50,r24
 157:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTD,6);//ram片选拉高
 785               	.LM92:
 786 0416 8091 3200 		lds r24,50
 787 041a 8064      		ori r24,lo8(64)
 788 041c 8093 3200 		sts 50,r24
 158:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTG,1);//读拉低
 790               	.LM93:
 791 0420 8091 6500 		lds r24,101
 792 0424 8D7F      		andi r24,lo8(-3)
 793 0426 8093 6500 		sts 101,r24
 159:G:/HVCBASOFT/AD/adc_sram.c **** 	delay_ms();
 795               	.LM94:
 796 042a 0E94 0000 		call delay_ms
 160:G:/HVCBASOFT/AD/adc_sram.c **** 	
 161:G:/HVCBASOFT/AD/adc_sram.c **** 	result_l=PINA;
 798               	.LM95:
 799 042e 8091 3900 		lds r24,57
 800 0432 8983      		std Y+1,r24
 162:G:/HVCBASOFT/AD/adc_sram.c **** 	result_h=PINB;
 802               	.LM96:
 803 0434 8091 3600 		lds r24,54
 804 0438 8A83      		std Y+2,r24
 163:G:/HVCBASOFT/AD/adc_sram.c **** 	result_h&=0xF0;
 806               	.LM97:
 807 043a 90EF      		ldi r25,lo8(-16)
 808 043c 8A81      		ldd r24,Y+2
 809 043e 8923      		and r24,r25
 810 0440 8A83      		std Y+2,r24
 164:G:/HVCBASOFT/AD/adc_sram.c **** 	
 165:G:/HVCBASOFT/AD/adc_sram.c **** 	result=result_h;
 812               	.LM98:
 813 0442 8A81      		ldd r24,Y+2
 814 0444 9927      		clr r25
 815 0446 8B83      		std Y+3,r24
 816 0448 9C83      		std Y+4,r25
 166:G:/HVCBASOFT/AD/adc_sram.c **** 	result=result<<4;
 818               	.LM99:
 819 044a 8B81      		ldd r24,Y+3
 820 044c 9C81      		ldd r25,Y+4
 821 044e 8295      		swap r24
 822 0450 9295      		swap r25
 823 0452 907F      		andi r25,0xf0
 824 0454 9827      		eor r25,r24
 825 0456 807F      		andi r24,0xf0
 826 0458 9827      		eor r25,r24
 827 045a 8B83      		std Y+3,r24
 828 045c 9C83      		std Y+4,r25
 167:G:/HVCBASOFT/AD/adc_sram.c **** 	result|=result_l;
 830               	.LM100:
 831 045e 8981      		ldd r24,Y+1
 832 0460 282F      		mov r18,r24
 833 0462 3327      		clr r19
 834 0464 8B81      		ldd r24,Y+3
 835 0466 9C81      		ldd r25,Y+4
 836 0468 822B      		or r24,r18
 837 046a 932B      		or r25,r19
 838 046c 8B83      		std Y+3,r24
 839 046e 9C83      		std Y+4,r25
 168:G:/HVCBASOFT/AD/adc_sram.c **** 
 169:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTG,1);//读拉高
 841               	.LM101:
 842 0470 8091 6500 		lds r24,101
 843 0474 8260      		ori r24,lo8(2)
 844 0476 8093 6500 		sts 101,r24
 170:G:/HVCBASOFT/AD/adc_sram.c **** 	return result;
 846               	.LM102:
 847 047a 8B81      		ldd r24,Y+3
 848 047c 9C81      		ldd r25,Y+4
 171:G:/HVCBASOFT/AD/adc_sram.c **** }
 850               	.LM103:
 851               	.LBE5:
 852               	/* epilogue: frame size=4 */
 853 047e 2496      		adiw r28,4
 854 0480 0FB6      		in __tmp_reg__,__SREG__
 855 0482 F894      		cli
 856 0484 DEBF      		out __SP_H__,r29
 857 0486 0FBE      		out __SREG__,__tmp_reg__
 858 0488 CDBF      		out __SP_L__,r28
 859 048a DF91      		pop r29
 860 048c CF91      		pop r28
 861 048e 0895      		ret
 862               	/* epilogue end (size=9) */
 863               	/* function AD7891_READ size 91 (72) */
 870               	.Lscope7:
 874               	.global	AD7891_CHANNEL_SELECT
 876               	AD7891_CHANNEL_SELECT:
 172:G:/HVCBASOFT/AD/adc_sram.c **** //AD通道选择,index:1~8
 173:G:/HVCBASOFT/AD/adc_sram.c **** void AD7891_CHANNEL_SELECT(uint16_t index)
 174:G:/HVCBASOFT/AD/adc_sram.c **** {
 878               	.LM104:
 879               	/* prologue: frame size=2 */
 880 0490 CF93      		push r28
 881 0492 DF93      		push r29
 882 0494 CDB7      		in r28,__SP_L__
 883 0496 DEB7      		in r29,__SP_H__
 884 0498 2297      		sbiw r28,2
 885 049a 0FB6      		in __tmp_reg__,__SREG__
 886 049c F894      		cli
 887 049e DEBF      		out __SP_H__,r29
 888 04a0 0FBE      		out __SREG__,__tmp_reg__
 889 04a2 CDBF      		out __SP_L__,r28
 890               	/* prologue end (size=10) */
 891 04a4 8983      		std Y+1,r24
 892 04a6 9A83      		std Y+2,r25
 175:G:/HVCBASOFT/AD/adc_sram.c **** 	index--;//0~7
 894               	.LM105:
 895 04a8 8981      		ldd r24,Y+1
 896 04aa 9A81      		ldd r25,Y+2
 897 04ac 0197      		sbiw r24,1
 898 04ae 8983      		std Y+1,r24
 899 04b0 9A83      		std Y+2,r25
 176:G:/HVCBASOFT/AD/adc_sram.c **** 	index=(index<<3);
 901               	.LM106:
 902 04b2 8981      		ldd r24,Y+1
 903 04b4 9A81      		ldd r25,Y+2
 904 04b6 880F      		lsl r24
 905 04b8 991F      		rol r25
 906 04ba 880F      		lsl r24
 907 04bc 991F      		rol r25
 908 04be 880F      		lsl r24
 909 04c0 991F      		rol r25
 910 04c2 8983      		std Y+1,r24
 911 04c4 9A83      		std Y+2,r25
 177:G:/HVCBASOFT/AD/adc_sram.c **** 	index&=0x38;//00111000,保留A2、A1、A0,将其它位屏蔽
 913               	.LM107:
 914 04c6 8981      		ldd r24,Y+1
 915 04c8 9A81      		ldd r25,Y+2
 916 04ca 8873      		andi r24,lo8(56)
 917 04cc 9070      		andi r25,hi8(56)
 918 04ce 8983      		std Y+1,r24
 919 04d0 9A83      		std Y+2,r25
 178:G:/HVCBASOFT/AD/adc_sram.c **** 	AD7891_WRITE(index);
 921               	.LM108:
 922 04d2 8981      		ldd r24,Y+1
 923 04d4 9A81      		ldd r25,Y+2
 924 04d6 0E94 0000 		call AD7891_WRITE
 179:G:/HVCBASOFT/AD/adc_sram.c **** }
 926               	.LM109:
 927               	/* epilogue: frame size=2 */
 928 04da 2296      		adiw r28,2
 929 04dc 0FB6      		in __tmp_reg__,__SREG__
 930 04de F894      		cli
 931 04e0 DEBF      		out __SP_H__,r29
 932 04e2 0FBE      		out __SREG__,__tmp_reg__
 933 04e4 CDBF      		out __SP_L__,r28
 934 04e6 DF91      		pop r29
 935 04e8 CF91      		pop r28
 936 04ea 0895      		ret
 937               	/* epilogue end (size=9) */
 938               	/* function AD7891_CHANNEL_SELECT size 46 (27) */
 940               	.Lscope8:
 943               	.global	AD7891_CONVERSION_START
 945               	AD7891_CONVERSION_START:
 180:G:/HVCBASOFT/AD/adc_sram.c **** //AD转换开始
 181:G:/HVCBASOFT/AD/adc_sram.c **** void AD7891_CONVERSION_START(void)
 182:G:/HVCBASOFT/AD/adc_sram.c **** {
 947               	.LM110:
 948               	/* prologue: frame size=0 */
 949 04ec CF93      		push r28
 950 04ee DF93      		push r29
 951 04f0 CDB7      		in r28,__SP_L__
 952 04f2 DEB7      		in r29,__SP_H__
 953               	/* prologue end (size=4) */
 183:G:/HVCBASOFT/AD/adc_sram.c **** 	cbi(PORTB,2);//拉低CONVST
 955               	.LM111:
 956 04f4 8091 3800 		lds r24,56
 957 04f8 8B7F      		andi r24,lo8(-5)
 958 04fa 8093 3800 		sts 56,r24
 184:G:/HVCBASOFT/AD/adc_sram.c **** 	delay_ms();
 960               	.LM112:
 961 04fe 0E94 0000 		call delay_ms
 185:G:/HVCBASOFT/AD/adc_sram.c **** 	sbi(PORTB,2);//拉高CONVST,启动AD转换
 963               	.LM113:
 964 0502 8091 3800 		lds r24,56
 965 0506 8460      		ori r24,lo8(4)
 966 0508 8093 3800 		sts 56,r24
 186:G:/HVCBASOFT/AD/adc_sram.c **** }
 968               	.LM114:
 969               	/* epilogue: frame size=0 */
 970 050c DF91      		pop r29
 971 050e CF91      		pop r28
 972 0510 0895      		ret
 973               	/* epilogue end (size=3) */
 974               	/* function AD7891_CONVERSION_START size 19 (12) */
 976               	.Lscope9:
 981               	.global	UART_SETTING
 983               	UART_SETTING:
 187:G:/HVCBASOFT/AD/adc_sram.c **** //串口初始化设置,包括设置波特率、8位数据+1位STOP位、多机通讯模式设置
 188:G:/HVCBASOFT/AD/adc_sram.c **** void UART_SETTING(int baud_rate, long fosc)
 189:G:/HVCBASOFT/AD/adc_sram.c **** {
 985               	.LM115:
 986               	/* prologue: frame size=22 */
 987 0512 EF92      		push r14
 988 0514 FF92      		push r15
 989 0516 0F93      		push r16
 990 0518 1F93      		push r17
 991 051a CF93      		push r28
 992 051c DF93      		push r29
 993 051e CDB7      		in r28,__SP_L__
 994 0520 DEB7      		in r29,__SP_H__
 995 0522 6697      		sbiw r28,22
 996 0524 0FB6      		in __tmp_reg__,__SREG__
 997 0526 F894      		cli
 998 0528 DEBF      		out __SP_H__,r29
 999 052a 0FBE      		out __SREG__,__tmp_reg__
 1000 052c CDBF      		out __SP_L__,r28
 1001               	/* prologue end (size=14) */
 1002 052e 8983      		std Y+1,r24
 1003 0530 9A83      		std Y+2,r25
 1004 0532 4B83      		std Y+3,r20
 1005 0534 5C83      		std Y+4,r21
 1006 0536 6D83      		std Y+5,r22
 1007 0538 7E83      		std Y+6,r23
 190:G:/HVCBASOFT/AD/adc_sram.c **** 	UBRR0L=(fosc/16/(baud_rate+1))%256;//设置波特率
 1009               	.LM116:
 1010 053a 8B81      		ldd r24,Y+3
 1011 053c 9C81      		ldd r25,Y+4
 1012 053e AD81      		ldd r26,Y+5
 1013 0540 BE81      		ldd r27,Y+6
 1014 0542 8F83      		std Y+7,r24
 1015 0544 9887      		std Y+8,r25
 1016 0546 A987      		std Y+9,r26
 1017 0548 BA87      		std Y+10,r27
 1018 054a 2F81      		ldd r18,Y+7

⌨️ 快捷键说明

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