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

📄 adc.lis

📁 nRF24L01详细编程资料
💻 LIS
字号:
                        .module adc.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\OLED\adc.c
 0000                   .dbfunc e InitADC _InitADC fV
                        .even
 0000           _InitADC::
 0000                   .dbline -1
 0000                   .dbline 10
 0000           ; //ICC-AVR application builder : 2006-02-12 14:00:00
 0000           ; // Target : ATmega48
 0000           ; // Crystal: 1.000Mhz
 0000           ; // Author:  jackyan
 0000           ; 
 0000           ; #include "iom48v.h"
 0000           ; //ADC initialize
 0000           ; // Conversion time: 6uS
 0000           ; void InitADC( void)
 0000           ; {
 0000                   .dbline 11
 0000           ;       ADCSRA = 0x00; //disable adc
 0000 2224              clr R2
 0002 20927A00          sts 122,R2
 0006                   .dbline 12
 0006           ;       ADMUX = 0x43; //select adc input 3,AVCC
 0006 83E4              ldi R24,67
 0008 80937C00          sts 124,R24
 000C                   .dbline 13
 000C           ;       ACSR  = 0x80;   // 
 000C 80E8              ldi R24,128
 000E 80BF              out 0x30,R24
 0010                   .dbline 14
 0010           ;       ADCSRA = 0x80;  // ADC 功能开启,但是没有进行转换,单次转换,不中断,ADIF=0
 0010 80937A00          sts 122,R24
 0014                   .dbline 15
 0014           ;       ADCH=ADCL=0;
 0014 20927800          sts 120,R2
 0018 20927900          sts 121,R2
 001C                   .dbline -2
 001C           L1:
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbend
 001E                   .dbfunc e ReadADC _ReadADC fI
 001E           ;              i -> R20,R21
 001E           ;        channel -> R16
                        .even
 001E           _ReadADC::
 001E 00D0              rcall push_gset1
 0020                   .dbline -1
 0020                   .dbline 19
 0020           ; }
 0020           ; 
 0020           ; int ReadADC( unsigned char channel)
 0020           ; {
 0020                   .dbline 22
 0020           ;     int i;
 0020           ; 
 0020           ;     ADMUX |= channel;                        // Select channel
 0020 20907C00          lds R2,124
 0024 202A              or R2,R16
 0026 20927C00          sts 124,R2
 002A                   .dbline 24
 002A           ;     
 002A           ;     ADCSRA |= 0x40;                          // Start conversion
 002A 80917A00          lds R24,122
 002E 8064              ori R24,64
 0030 80937A00          sts 122,R24
 0034           L3:
 0034                   .dbline 26
 0034           L4:
 0034                   .dbline 26
 0034           ;     
 0034           ;     while (!(ADCSRA & 0x10));                // Check if converstion is ready
 0034 20907A00          lds R2,122
 0038 24FE              sbrs R2,4
 003A FCCF              rjmp L3
 003C                   .dbline 28
 003C           ;     
 003C           ;     ADCSRA |= 0x10;                          // Clear Conversion ready flag by setting the bit
 003C 80917A00          lds R24,122
 0040 8061              ori R24,16
 0042 80937A00          sts 122,R24
 0046                   .dbline 30
 0046           ; 
 0046           ;     i = ADCL;                               // Read 8 low bits first (important)
 0046 40917800          lds R20,120
 004A 5527              clr R21
 004C                   .dbline 31
 004C           ;     i += (int)ADCH << 8;                    // Read 2 high bits and multiply with 256
 004C 20907900          lds R2,121
 0050 3324              clr R3
 0052 322C              mov R3,R2
 0054 2224              clr R2
 0056 420D              add R20,R2
 0058 531D              adc R21,R3
 005A                   .dbline 33
 005A           ; 
 005A           ;     return i;
 005A 8A01              movw R16,R20
 005C                   .dbline -2
 005C           L2:
 005C 00D0              rcall pop_gset1
 005E                   .dbline 0 ; func end
 005E 0895              ret
 0060                   .dbsym r i 20 I
 0060                   .dbsym r channel 16 c
 0060                   .dbend

⌨️ 快捷键说明

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