📄 adc_sram.lst
字号:
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 + -