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

📄 text1.lst

📁 ATmega16-ad1602
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0039) void init_adc(void)
(0040) {	
(0041) 	DDRA&=~BIT(PA0);
_init_adc:
    00212 98D0      CBI	0x1A,0
(0042) 	PORTA&=~BIT(PA0);
    00213 98D8      CBI	0x1B,0
(0043)     ADCSRA = 0x00; 
    00214 2422      CLR	R2
    00215 B826      OUT	0x06,R2
(0044)     ADMUX =(1<<REFS0)|(adc_mux&0x1f);  	 //AVCC,AREF引脚加滤波电容,单端输入ADC0
    00216 9180 0071 LDS	R24,adc_mux
    00218 718F      ANDI	R24,0x1F
    00219 6480      ORI	R24,0x40
    0021A B987      OUT	0x07,R24
(0045)     ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
    0021B EC8E      LDI	R24,0xCE
    0021C B986      OUT	0x06,R24
    0021D 9508      RET
_adc_isr:
  temp                 --> R12
  sum                  --> R10
  i                    --> R20
    0021E 920A      ST	-Y,R0
    0021F 921A      ST	-Y,R1
    00220 922A      ST	-Y,R2
    00221 923A      ST	-Y,R3
    00222 924A      ST	-Y,R4
    00223 925A      ST	-Y,R5
    00224 926A      ST	-Y,R6
    00225 927A      ST	-Y,R7
    00226 928A      ST	-Y,R8
    00227 929A      ST	-Y,R9
    00228 930A      ST	-Y,R16
    00229 931A      ST	-Y,R17
    0022A 932A      ST	-Y,R18
    0022B 933A      ST	-Y,R19
    0022C 938A      ST	-Y,R24
    0022D 939A      ST	-Y,R25
    0022E 93AA      ST	-Y,R26
    0022F 93BA      ST	-Y,R27
    00230 93EA      ST	-Y,R30
    00231 93FA      ST	-Y,R31
    00232 B60F      IN	R0,0x3F
    00233 920A      ST	-Y,R0
    00234 940E 02F1 CALL	push_xgset303C
(0046) }
(0047) 
(0048) /******************************************************************************/
(0049) 
(0050) /******************************************************************************/
(0051)  //ADC完成中断
(0052) //#pragma vector = interrupt_handler adc_isr:iv_ADC  
(0053) // define the interrupt handler
(0054) 
(0055) #pragma interrupt_handler adc_isr:15  
(0056) void adc_isr(void)
(0057) {   
(0058)     unsigned char i;
(0059)  	unsigned int temp,sum=0;
    00236 24AA      CLR	R10
    00237 24BB      CLR	R11
(0060)  	temp=ADCL;
    00238 B0C4      IN	R12,0x04
    00239 24DD      CLR	R13
(0061)  	temp=temp+ADCH*256;
    0023A B125      IN	R18,0x05
    0023B 2733      CLR	R19
    0023C E000      LDI	R16,0
    0023D E011      LDI	R17,1
    0023E 940E 02B7 CALL	empy16s
    00240 0EC0      ADD	R12,R16
    00241 1ED1      ADC	R13,R17
(0062)   	for(i=1;i<MaxAdcBufSize-1;i++)
    00242 E041      LDI	R20,1
    00243 C01E      RJMP	0x0262
(0063)  	{
(0064)    	 ADCBuffer[i]=ADCBuffer[i+1];
    00244 E78C      LDI	R24,0x7C
    00245 E090      LDI	R25,0
    00246 2FE4      MOV	R30,R20
    00247 27FF      CLR	R31
    00248 9631      ADIW	R30,1
    00249 0FEE      LSL	R30
    0024A 1FFF      ROL	R31
    0024B 0FE8      ADD	R30,R24
    0024C 1FF9      ADC	R31,R25
    0024D 8020      LD	R2,Z
    0024E 8031      LDD	R3,Z+1
    0024F 2FE4      MOV	R30,R20
    00250 27FF      CLR	R31
    00251 0FEE      LSL	R30
    00252 1FFF      ROL	R31
    00253 0FE8      ADD	R30,R24
    00254 1FF9      ADC	R31,R25
    00255 8231      STD	Z+1,R3
    00256 8220      ST	Z,R2
(0065)    	 sum+=ADCBuffer[i];
    00257 2FE4      MOV	R30,R20
    00258 27FF      CLR	R31
    00259 0FEE      LSL	R30
    0025A 1FFF      ROL	R31
    0025B 0FE8      ADD	R30,R24
    0025C 1FF9      ADC	R31,R25
    0025D 8020      LD	R2,Z
    0025E 8031      LDD	R3,Z+1
    0025F 0CA2      ADD	R10,R2
    00260 1CB3      ADC	R11,R3
    00261 9543      INC	R20
    00262 3048      CPI	R20,0x8
    00263 F300      BCS	0x0244
(0066)  	}
(0067)    	ADCBuffer[MaxAdcBufSize-1]=temp;
    00264 92D0 008D STS	adc.c:ADCBuffer+17,R13
    00266 92C0 008C STS	adc.c:ADCBuffer+16,R12
(0068)     sum+=ADCBuffer[MaxAdcBufSize-1];
    00268 9020 008C LDS	R2,adc.c:ADCBuffer+16
    0026A 9030 008D LDS	R3,adc.c:ADCBuffer+17
    0026C 0CA2      ADD	R10,R2
    0026D 1CB3      ADC	R11,R3
(0069)     ADCBuffer[0]=(sum>>AdcBufStep);
    0026E 0115      MOVW	R2,R10
    0026F 9436      LSR	R3
    00270 9427      ROR	R2
    00271 9436      LSR	R3
    00272 9427      ROR	R2
    00273 9436      LSR	R3
    00274 9427      ROR	R2
    00275 9230 007D STS	adc.c:ADCBuffer+1,R3
    00277 9220 007C STS	adc.c:ADCBuffer,R2
(0070)     
(0071) 	ad_result();      
    00279 DF1D      RCALL	_ad_result
(0072) 	      
(0073) 	ADMUX|=(adc_mux&0x1f)|(1<<REFS0);
    0027A 9180 0071 LDS	R24,adc_mux
    0027C 718F      ANDI	R24,0x1F
    0027D 6480      ORI	R24,0x40
    0027E B027      IN	R2,0x07
    0027F 2A28      OR	R2,R24
    00280 B827      OUT	0x07,R2
(0074)     ADCSRA|=(1<<ADSC);//启动AD转换
FILE: <library>
    00281 9A36      SBI	0x06,6
    00282 940E 02F8 CALL	pop_xgset303C
    00284 9009      LD	R0,Y+
    00285 BE0F      OUT	0x3F,R0
    00286 91F9      LD	R31,Y+
    00287 91E9      LD	R30,Y+
    00288 91B9      LD	R27,Y+
    00289 91A9      LD	R26,Y+
    0028A 9199      LD	R25,Y+
    0028B 9189      LD	R24,Y+
    0028C 9139      LD	R19,Y+
    0028D 9129      LD	R18,Y+
    0028E 9119      LD	R17,Y+
    0028F 9109      LD	R16,Y+
    00290 9099      LD	R9,Y+
    00291 9089      LD	R8,Y+
    00292 9079      LD	R7,Y+
    00293 9069      LD	R6,Y+
    00294 9059      LD	R5,Y+
    00295 9049      LD	R4,Y+
    00296 9039      LD	R3,Y+
    00297 9029      LD	R2,Y+
    00298 9019      LD	R1,Y+
    00299 9009      LD	R0,Y+
    0029A 9518      RETI
mod16u:
    0029B 9468      BSET	6
    0029C C001      RJMP	xdiv16u
div16u:
    0029D 94E8      BCLR	6
xdiv16u:
    0029E 92EA      ST	-Y,R14
    0029F 92FA      ST	-Y,R15
    002A0 938A      ST	-Y,R24
    002A1 24EE      CLR	R14
    002A2 24FF      CLR	R15
    002A3 E180      LDI	R24,0x10
    002A4 0F00      LSL	R16
    002A5 1F11      ROL	R17
    002A6 1CEE      ROL	R14
    002A7 1CFF      ROL	R15
    002A8 16E2      CP	R14,R18
    002A9 06F3      CPC	R15,R19
    002AA F018      BCS	0x02AE
    002AB 1AE2      SUB	R14,R18
    002AC 0AF3      SBC	R15,R19
    002AD 9503      INC	R16
    002AE 958A      DEC	R24
    002AF F7A1      BNE	0x02A4
    002B0 F416      BRTC	0x02B3
    002B1 2D0E      MOV	R16,R14
    002B2 2D1F      MOV	R17,R15
    002B3 9189      LD	R24,Y+
    002B4 90F9      LD	R15,Y+
    002B5 90E9      LD	R14,Y+
    002B6 9508      RET
empy16s:
    002B7 920A      ST	-Y,R0
    002B8 921A      ST	-Y,R1
    002B9 938A      ST	-Y,R24
    002BA 939A      ST	-Y,R25
    002BB 9F02      MUL	R16,R18
    002BC 01C0      MOVW	R24,R0
    002BD 9F12      MUL	R17,R18
    002BE 0D90      ADD	R25,R0
    002BF 9F03      MUL	R16,R19
    002C0 0D90      ADD	R25,R0
    002C1 018C      MOVW	R16,R24
    002C2 9199      LD	R25,Y+
    002C3 9189      LD	R24,Y+
    002C4 9019      LD	R1,Y+
    002C5 9009      LD	R0,Y+
    002C6 9508      RET
pop_xgset00FC:
    002C7 90A9      LD	R10,Y+
    002C8 90B9      LD	R11,Y+
    002C9 90C9      LD	R12,Y+
    002CA 90D9      LD	R13,Y+
    002CB 90E9      LD	R14,Y+
    002CC 90F9      LD	R15,Y+
    002CD 9508      RET
push_xgsetF0FC:
    002CE 937A      ST	-Y,R23
    002CF 936A      ST	-Y,R22
push_xgset30FC:
    002D0 935A      ST	-Y,R21
    002D1 934A      ST	-Y,R20
push_xgset00FC:
    002D2 92FA      ST	-Y,R15
    002D3 92EA      ST	-Y,R14
push_xgset003C:
    002D4 92DA      ST	-Y,R13
    002D5 92CA      ST	-Y,R12
    002D6 92BA      ST	-Y,R11
    002D7 92AA      ST	-Y,R10
    002D8 9508      RET
push_xgset300C:
    002D9 935A      ST	-Y,R21
    002DA 934A      ST	-Y,R20
    002DB 92BA      ST	-Y,R11
    002DC 92AA      ST	-Y,R10
    002DD 9508      RET
pop_xgset300C:
    002DE 90A9      LD	R10,Y+
    002DF 90B9      LD	R11,Y+
    002E0 9149      LD	R20,Y+
    002E1 9159      LD	R21,Y+
    002E2 9508      RET
push_xgsetF00C:
    002E3 937A      ST	-Y,R23
    002E4 936A      ST	-Y,R22
    002E5 935A      ST	-Y,R21
    002E6 934A      ST	-Y,R20
    002E7 92BA      ST	-Y,R11
    002E8 92AA      ST	-Y,R10
    002E9 9508      RET
pop_xgsetF00C:
    002EA 90A9      LD	R10,Y+
    002EB 90B9      LD	R11,Y+
    002EC 9149      LD	R20,Y+
    002ED 9159      LD	R21,Y+
    002EE 9169      LD	R22,Y+
    002EF 9179      LD	R23,Y+
    002F0 9508      RET
push_xgset303C:
    002F1 935A      ST	-Y,R21
    002F2 934A      ST	-Y,R20
    002F3 92DA      ST	-Y,R13
    002F4 92CA      ST	-Y,R12
    002F5 92BA      ST	-Y,R11
    002F6 92AA      ST	-Y,R10
    002F7 9508      RET
pop_xgset303C:
    002F8 90A9      LD	R10,Y+
    002F9 90B9      LD	R11,Y+
    002FA 90C9      LD	R12,Y+
    002FB 90D9      LD	R13,Y+
    002FC 9149      LD	R20,Y+
    002FD 9159      LD	R21,Y+
    002FE 9508      RET
neg32:
    002FF 9500      COM	R16
    00300 9510      COM	R17
    00301 9520      COM	R18
    00302 9530      COM	R19
    00303 5F0F      SUBI	R16,0xFF
    00304 4F1F      SBCI	R17,0xFF
    00305 4F2F      SBCI	R18,0xFF
    00306 4F3F      SBCI	R19,0xFF
    00307 9508      RET
lpm32:
    00308 93EA      ST	-Y,R30
    00309 93FA      ST	-Y,R31
    0030A 920A      ST	-Y,R0
    0030B 2FE0      MOV	R30,R16
    0030C 2FF1      MOV	R31,R17
    0030D 95C8      LPM
    0030E 2D00      MOV	R16,R0
    0030F 9631      ADIW	R30,1
    00310 95C8      LPM
    00311 2D10      MOV	R17,R0
    00312 9631      ADIW	R30,1
    00313 95C8      LPM
    00314 2D20      MOV	R18,R0
    00315 9631      ADIW	R30,1
    00316 95C8      LPM
    00317 2D30      MOV	R19,R0
    00318 9009      LD	R0,Y+
    00319 91F9      LD	R31,Y+
    0031A 91E9      LD	R30,Y+
    0031B 9508      RET
lsr16:
    0031C 2322      TST	R18
    0031D F021      BEQ	0x0322
    0031E 9516      LSR	R17
    0031F 9507      ROR	R16
    00320 952A      DEC	R18
    00321 CFFA      RJMP	lsr16
    00322 9508      RET
fpint:
    00323 924A      ST	-Y,R4
    00324 925A      ST	-Y,R5
    00325 926A      ST	-Y,R6
    00326 938A      ST	-Y,R24
    00327 940E 0423 CALL	unpacku
    00329 F111      BEQ	0x034C
    0032A 2055      TST	R5
    0032B F0E2      BMI	0x0348
    0032C E18F      LDI	R24,0x1F
    0032D 1648      CP	R4,R24
    0032E F4C0      BCC	0x0347
    0032F E187      LDI	R24,0x17
    00330 1648      CP	R4,R24
    00331 F0D1      BEQ	0x034C
    00332 F458      BCC	0x033E
    00333 9441      NEG	R4
    00334 EE89      LDI	R24,0xE9
    00335 1A48      SUB	R4,R24
    00336 C005      RJMP	0x033C
    00337 9535      ASR	R19
    00338 9527      ROR	R18
    00339 9517      ROR	R17
    0033A 9507      ROR	R16
    0033B 944A      DEC	R4
    0033C F7D1      BNE	0x0337
    0033D C00E      RJMP	0x034C
    0033E E187      LDI	R24,0x17
    0033F 1A48      SUB	R4,R24
    00340 0F00      LSL	R16
    00341 1F11      ROL	R17
    00342 1F22      ROL	R18
    00343 1F33      ROL	R19
    00344 944A      DEC	R4
    00345 F7D1      BNE	0x0340
    00346 C005      RJMP	0x034C
    00347 E73F      LDI	R19,0x7F
    00348 2F23      MOV	R18,R19
    00349 2F13      MOV	R17,R19
    0034A 2F03      MOV	R16,R19
    0034B C004      RJMP	0x0350
    0034C 2066      TST	R6
    0034D F011      BEQ	0x0350
    0034E 940E 02FF CALL	neg32
    00350 9189      LD	R24,Y+
    00351 9069      LD	R6,Y+
    00352 9059      LD	R5,Y+
    00353 9049      LD	R4,Y+
    00354 9508      RET
uint2fp:
    00355 9468      BSET	6
    00356 C001      RJMP	0x0358
int2fp:
    00357 94E8      BCLR	6
    00358 2722      CLR	R18
    00359 2733      CLR	R19
    0035A F046      BRTS	0x0363
    0035B FD17      SBRC	R17,7
    0035C 9520      COM	R18
    0035D FD17      SBRC	R17,7
    0035E 9530      COM	R19
    0035F C003      RJMP	0x0363
ulong2fp:
    00360 9468      BSET	6
    00361 C001      RJMP	0x0363
long2fp:
    00362 94E8      BCLR	6
    00363 924A      ST	-Y,R4
    00364 925A      ST	-Y,R5
    00365 926A      ST	-Y,R6
    00366 938A      ST	-Y,R24
    00367 E187      LDI	R24,0x17
    00368 2E48      MOV	R4,R24
    00369 2455      CLR	R5
    0036A 2466      CLR	R6
    0036B F036      BRTS	0x0372
    0036C 2333      TST	R19
    0036D F422      BPL	0x0372
    0036E 940E 02FF CALL	neg32
    00370 E880      LDI	R24,0x80
    00371 2E68      MOV	R6,R24
    00372 940E 043C CALL	normalize_and_pack
    00374 9189      LD	R24,Y+

⌨️ 快捷键说明

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