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

📄 adc.lst

📁 atmega128单片机实现模数转换并通过1602液晶显示出结果。
💻 LST
📖 第 1 页 / 共 3 页
字号:
     25F DE15      RCALL	_s_ms
(0233) 		pBuffer++;
     260 5F4F      SUBI	R20,0xFF
     261 4F5F      SBCI	R21,0xFF
     262 94AA      DEC	R10
     263 20AA      TST	R10
     264 F711      BNE	0x0247
     265 940C 035A JMP	pop_xgsetF03C
_main:
  ten_4                --> Y,+5
  adc_h1               --> R12
  adc_l1               --> R10
  adc_h0               --> R12
  adc_l0               --> R10
  ten_1                --> R20
  adc_data1            --> R12
  adc_data0            --> R20
  ten_2                --> R22
  ten_3                --> R10
  i                    --> R20
     267 9724      SBIW	R28,4
FILE: C:\DOCUME~1\wdd\桌面\模数转换\ADC.c
(0001) #include<iom128v.h>
(0002) #include"1602.h"
(0003) #define uchar unsigned char 
(0004) #define uint unsigned int 
(0005) 
(0006) uchar adc_0[]={"ADC_0: .  V"};
(0007) uchar adc_1[]={"ADC_1: .  V"};
(0008) 
(0009) 
(0010) 
(0011) 
(0012) 
(0013) //ADC测试
(0014) //主函数
(0015) main()
(0016) {
(0017) uchar ten_1,ten_2,ten_3,ten_4,i;
(0018) uint adc_data0,adc_l0,adc_h0,adc_data1,adc_l1,adc_h1;
(0019) DDRA=0xff;
     268 EF8F      LDI	R24,0xFF
     269 BB8A      OUT	0x1A,R24
(0020) PORTA=0x00;
     26A 2422      CLR	R2
     26B BA2B      OUT	0x1B,R2
(0021) DDRB=0xff;
     26C BB87      OUT	0x17,R24
(0022) DDRD=0xff;
     26D BB81      OUT	0x11,R24
(0023) PORTD=0x00;
     26E BA22      OUT	0x12,R2
(0024) DDRF=0x00;
     26F 9220 0061 STS	0x0061,R2
(0025) PORTF=0x00;
     271 9220 0062 STS	0x0062,R2
(0026) DDRG=0xff;
     273 9380 0064 STS	0x0064,R24
(0027) PORTG=0xff;
     275 9380 0065 STS	0x0065,R24
(0028) 
(0029) LcdInit();   //1602初始化
     277 DE6D      RCALL	_LcdInit
(0030) WriteChar(1,2,11,adc_0);
     278 E080      LDI	R24,0
     279 E091      LDI	R25,1
     27A 839B      STD	Y+3,R25
     27B 838A      STD	Y+2,R24
     27C E08B      LDI	R24,0xB
     27D E090      LDI	R25,0
     27E 8399      STD	Y+1,R25
     27F 8388      STD	Y+0,R24
     280 E022      LDI	R18,2
     281 E001      LDI	R16,1
     282 DFA3      RCALL	_WriteChar
(0031) WriteChar(2,2,11,adc_1);
     283 E08C      LDI	R24,0xC
     284 E091      LDI	R25,1
     285 839B      STD	Y+3,R25
     286 838A      STD	Y+2,R24
     287 E08B      LDI	R24,0xB
     288 E090      LDI	R25,0
     289 8399      STD	Y+1,R25
     28A 8388      STD	Y+0,R24
     28B E022      LDI	R18,2
     28C E002      LDI	R16,2
     28D DF98      RCALL	_WriteChar
     28E C08B      RJMP	0x031A
(0032) while(1)
(0033)      {
(0034) 	  //取ADC_0
(0035)       ADCSRA=0x00;
     28F 2422      CLR	R2
     290 B826      OUT	0x06,R2
(0036)       ADMUX=0x40;
     291 E480      LDI	R24,0x40
     292 B987      OUT	0x07,R24
(0037)       ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07;   //128分频
     293 EE87      LDI	R24,0xE7
     294 B986      OUT	0x06,R24
(0038)       s_ms(500);                        //延时很重要
     295 EF04      LDI	R16,0xF4
     296 E011      LDI	R17,1
     297 DDDD      RCALL	_s_ms
(0039)       adc_l0=ADCL;
     298 B0A4      IN	R10,0x04
     299 24BB      CLR	R11
(0040)       adc_h0=ADCH;
     29A B0C5      IN	R12,0x05
     29B 24DD      CLR	R13
(0041)       adc_data0=adc_h0<<8|adc_l0;  
     29C 01A6      MOVW	R20,R12
     29D 2F54      MOV	R21,R20
     29E 2744      CLR	R20
     29F 294A      OR	R20,R10
     2A0 295B      OR	R21,R11
(0042)       adc_data0=adc_data0>>1;
     2A1 9556      LSR	R21
     2A2 9547      ROR	R20
(0043)       adc_data0-=35;                        //修正
     2A3 5243      SUBI	R20,0x23
     2A4 4050      SBCI	R21,0
(0044) 	  //取ADC_1
(0045)       ADCSRA=0x00;
     2A5 2422      CLR	R2
     2A6 B826      OUT	0x06,R2
(0046)       ADMUX=0x41;
     2A7 E481      LDI	R24,0x41
     2A8 B987      OUT	0x07,R24
(0047)       ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07;   //128分频
     2A9 EE87      LDI	R24,0xE7
     2AA B986      OUT	0x06,R24
(0048)       s_ms(500);                        //延时很重要
     2AB EF04      LDI	R16,0xF4
     2AC E011      LDI	R17,1
     2AD DDC7      RCALL	_s_ms
(0049)       adc_l1=ADCL;
     2AE B0A4      IN	R10,0x04
     2AF 24BB      CLR	R11
(0050)       adc_h1=ADCH;
     2B0 B0C5      IN	R12,0x05
     2B1 24DD      CLR	R13
(0051)       adc_data1=adc_h1<<8|adc_l1;  
     2B2 0116      MOVW	R2,R12
     2B3 2C32      MOV	R3,R2
     2B4 2422      CLR	R2
     2B5 282A      OR	R2,R10
     2B6 283B      OR	R3,R11
     2B7 0161      MOVW	R12,R2
(0052)       adc_data1=adc_data1>>1;
     2B8 94D6      LSR	R13
     2B9 94C7      ROR	R12
(0053)       adc_data1-=35;                        //修正
     2BA 01C6      MOVW	R24,R12
     2BB 9783      SBIW	R24,0x23
     2BC 016C      MOVW	R12,R24
(0054) 	  
(0055) 	  
(0056) 	  //显示ADC0
(0057) 	  ten_3=(adc_data0)/100;
     2BD E624      LDI	R18,0x64
     2BE E030      LDI	R19,0
     2BF 018A      MOVW	R16,R20
     2C0 940E 031F CALL	div16u
     2C2 2EA0      MOV	R10,R16
(0058) 	  ten_2=(adc_data0-(ten_3*100))/10;
     2C3 E684      LDI	R24,0x64
     2C4 9D8A      MUL	R24,R10
     2C5 018A      MOVW	R16,R20
     2C6 1900      SUB	R16,R0
     2C7 0911      SBC	R17,R1
     2C8 E02A      LDI	R18,0xA
     2C9 E030      LDI	R19,0
     2CA 940E 031F CALL	div16u
     2CC 2F60      MOV	R22,R16
(0059) 	  ten_1=adc_data0-(ten_3*100)-ten_2*10;
     2CD E684      LDI	R24,0x64
     2CE 9D8A      MUL	R24,R10
     2CF 011A      MOVW	R2,R20
     2D0 1820      SUB	R2,R0
     2D1 0831      SBC	R3,R1
     2D2 E08A      LDI	R24,0xA
     2D3 9F86      MUL	R24,R22
     2D4 1820      SUB	R2,R0
     2D5 0831      SBC	R3,R1
     2D6 2D42      MOV	R20,R2
(0060) 	  ten_1+=0x30;
     2D7 5D40      SUBI	R20,0xD0
(0061) 	  ten_2+=0x30;
     2D8 5D60      SUBI	R22,0xD0
(0062) 	  ten_3+=0x30;
     2D9 2D8A      MOV	R24,R10
     2DA 5D80      SUBI	R24,0xD0
     2DB 2EA8      MOV	R10,R24
(0063) 	  WriteNum(1,8,(ten_3));
     2DC 82A8      STD	Y+0,R10
     2DD E028      LDI	R18,0x8
     2DE E001      LDI	R16,1
     2DF DF12      RCALL	_WriteNum
(0064) 	  WriteNum(1,10,(ten_2));
     2E0 8368      STD	Y+0,R22
     2E1 E02A      LDI	R18,0xA
     2E2 E001      LDI	R16,1
     2E3 DF0E      RCALL	_WriteNum
(0065) 	  WriteNum(1,11,(ten_1));
     2E4 8348      STD	Y+0,R20
     2E5 E02B      LDI	R18,0xB
     2E6 E001      LDI	R16,1
     2E7 DF0A      RCALL	_WriteNum
(0066) 	  //显示ADC1
(0067) 	  ten_3=(adc_data1)/100;
     2E8 E624      LDI	R18,0x64
     2E9 E030      LDI	R19,0
     2EA 0186      MOVW	R16,R12
     2EB 940E 031F CALL	div16u
     2ED 2EA0      MOV	R10,R16
(0068) 	  ten_2=(adc_data1-(ten_3*100))/10;
     2EE E684      LDI	R24,0x64
     2EF 9D8A      MUL	R24,R10
     2F0 0186      MOVW	R16,R12
     2F1 1900      SUB	R16,R0
     2F2 0911      SBC	R17,R1
     2F3 E02A      LDI	R18,0xA
     2F4 E030      LDI	R19,0
     2F5 940E 031F CALL	div16u
     2F7 2F60      MOV	R22,R16
(0069) 	  ten_1=adc_data1-(ten_3*100)-ten_2*10;
     2F8 E684      LDI	R24,0x64
     2F9 9D8A      MUL	R24,R10
     2FA 2D4C      MOV	R20,R12
     2FB 1940      SUB	R20,R0
     2FC 0951      SBC	R21,R1
     2FD E08A      LDI	R24,0xA
     2FE 9F86      MUL	R24,R22
     2FF 1940      SUB	R20,R0
     300 0951      SBC	R21,R1
(0070) 	  ten_1+=0x30;
     301 5D40      SUBI	R20,0xD0
(0071) 	  ten_2+=0x30;
     302 5D60      SUBI	R22,0xD0
(0072) 	  ten_3+=0x30;
     303 2D8A      MOV	R24,R10
     304 5D80      SUBI	R24,0xD0
     305 2EA8      MOV	R10,R24
(0073) 	  WriteNum(2,8,(ten_3));
     306 82A8      STD	Y+0,R10
     307 E028      LDI	R18,0x8
     308 E002      LDI	R16,2
     309 DEE8      RCALL	_WriteNum
(0074) 	  WriteNum(2,10,(ten_2));
     30A 8368      STD	Y+0,R22
     30B E02A      LDI	R18,0xA
     30C E002      LDI	R16,2
     30D DEE4      RCALL	_WriteNum
(0075) 	  WriteNum(2,11,(ten_1));
     30E 8348      STD	Y+0,R20
     30F E02B      LDI	R18,0xB
     310 E002      LDI	R16,2
     311 DEE0      RCALL	_WriteNum
(0076) 	  
(0077) 	  for(i=0;i<18;i++)
     312 2744      CLR	R20
     313 C004      RJMP	0x0318
(0078) 	     {
(0079) 	      s_ms(60000);
FILE: <library>
     314 E600      LDI	R16,0x60
     315 EE1A      LDI	R17,0xEA
     316 DD5E      RCALL	_s_ms
     317 9543      INC	R20
     318 3142      CPI	R20,0x12
     319 F3D0      BCS	0x0314
     31A CF74      RJMP	0x028F
     31B 9624      ADIW	R28,4
     31C 9508      RET
mod16u:
     31D 9468      BSET	6
     31E C001      RJMP	xdiv16u
div16u:
     31F 94E8      BCLR	6
xdiv16u:
     320 92EA      ST	R14,-Y
     321 92FA      ST	R15,-Y
     322 938A      ST	R24,-Y
     323 24EE      CLR	R14
     324 24FF      CLR	R15
     325 E180      LDI	R24,0x10
     326 0F00      LSL	R16
     327 1F11      ROL	R17
     328 1CEE      ROL	R14
     329 1CFF      ROL	R15
     32A 16E2      CP	R14,R18
     32B 06F3      CPC	R15,R19
     32C F018      BCS	0x0330
     32D 1AE2      SUB	R14,R18
     32E 0AF3      SBC	R15,R19
     32F 9503      INC	R16
     330 958A      DEC	R24
     331 F7A1      BNE	0x0326
     332 F416      BRTC	0x0335
     333 2D0E      MOV	R16,R14
     334 2D1F      MOV	R17,R15
     335 9189      LD	R24,Y+
     336 90F9      LD	R15,Y+
     337 90E9      LD	R14,Y+
     338 9508      RET
push_xgsetF000:
     339 937A      ST	R23,-Y
     33A 936A      ST	R22,-Y
     33B 935A      ST	R21,-Y
     33C 934A      ST	R20,-Y
     33D 9508      RET
pop_xgsetF000:
     33E 9149      LD	R20,Y+
     33F 9159      LD	R21,Y+
     340 9169      LD	R22,Y+
     341 9179      LD	R23,Y+
     342 9508      RET
push_xgsetF00C:
     343 937A      ST	R23,-Y
     344 936A      ST	R22,-Y
     345 935A      ST	R21,-Y
     346 934A      ST	R20,-Y
     347 92BA      ST	R11,-Y
     348 92AA      ST	R10,-Y
     349 9508      RET
pop_xgsetF00C:
     34A 90A9      LD	R10,Y+
     34B 90B9      LD	R11,Y+
     34C 9149      LD	R20,Y+
     34D 9159      LD	R21,Y+
     34E 9169      LD	R22,Y+
     34F 9179      LD	R23,Y+
     350 9508      RET
push_xgsetF03C:
     351 937A      ST	R23,-Y
     352 936A      ST	R22,-Y
     353 935A      ST	R21,-Y
     354 934A      ST	R20,-Y
     355 92DA      ST	R13,-Y
     356 92CA      ST	R12,-Y
     357 92BA      ST	R11,-Y
     358 92AA      ST	R10,-Y
     359 9508      RET
pop_xgsetF03C:
     35A 90A9      LD	R10,Y+
     35B 90B9      LD	R11,Y+
     35C 90C9      LD	R12,Y+
     35D 90D9      LD	R13,Y+
     35E 9149      LD	R20,Y+
     35F 9159      LD	R21,Y+
     360 9169      LD	R22,Y+
     361 9179      LD	R23,Y+
     362 9508      RET

⌨️ 快捷键说明

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