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

📄 adc.lis

📁 详细介绍M8两版间通讯
💻 LIS
字号:
                        .module ADC.c
                        .area data(ram, con, rel)
 0000           _adc_rel::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile G:\Mega8程序\TCXO评估板\Main\ADC.c
 0002                   .dbsym e adc_rel _adc_rel i
 0002           _adc_mux::
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile G:\Mega8程序\TCXO评估板\Main\ADC.c
 0003                   .dbsym e adc_mux _adc_mux c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\Mega8程序\TCXO评估板\Main\ADC.c
 0000                   .dbfunc e adc_init _adc_init fV
                        .even
 0000           _adc_init::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; #define Vref 4995//参考电压值
 0000           ; unsigned int adc_rel=0;//AD转换结果
 0000           ; unsigned char adc_mux=0;//AD通道,默认为0通道
 0000           ; void adc_init(void)//ADC初始化,并启动AD转换
 0000           ;  {DDRC=0x00;
 0000                   .dbline 7
 0000 2224              clr R2
 0002 24BA              out 0x14,R2
 0004                   .dbline 8
 0004           ;       PORTC=0x00;
 0004 25BA              out 0x15,R2
 0006                   .dbline 9
 0006           ;       ADCSRA = 0x00;
 0006 26B8              out 0x6,R2
 0008                   .dbline 11
 0008           ;       //状态控制寄存器复位
 0008           ;       ADMUX =(1<<REFS0)|(adc_mux&0x0f);
 0008 80910200          lds R24,_adc_mux
 000C 8F70              andi R24,15
 000E 8064              ori R24,64
 0010 87B9              out 0x7,R24
 0012                   .dbline 13
 0012           ;       //选择内部AVCC为基准,并选取当前转换通道(转换为0~7)
 0012           ;       ACSR  =(1<<ACD);
 0012 80E8              ldi R24,128
 0014 88B9              out 0x8,R24
 0016                   .dbline 15
 0016           ;       //关闭模拟比较器(使用ADC时必须关断)
 0016           ;       ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;
 0016 8EEC              ldi R24,206
 0018 86B9              out 0x6,R24
 001A                   .dbline -2
 001A           L1:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbend
                        .area vector(rom, abs)
                        .org 28
 001C 0EC0              rjmp _adc_isr
                        .area text(rom, con, rel)
 001C                   .dbfile G:\Mega8程序\TCXO评估板\Main\ADC.c
 001C                   .dbfunc e adc_isr _adc_isr fV
                        .even
 001C           _adc_isr::
 001C 8A93              st -y,R24
 001E 9A93              st -y,R25
 0020 8FB7              in R24,0x3f
 0022 8A93              st -y,R24
 0024                   .dbline -1
 0024                   .dbline 20
 0024           ;       //允许AD转换,启动AD转换,开启AD转换中断,64预分频
 0024           ;  }
 0024           ; #pragma interrupt_handler adc_isr:iv_ADC //ADC完成中断
 0024           ; void adc_isr(void)
 0024           ;  {adc_rel=ADC&0x3ff;
 0024                   .dbline 20
 0024 84B1              in R24,0x4
 0026 95B1              in R25,0x5
 0028 9370              andi R25,3
 002A 90930100          sts _adc_rel+1,R25
 002E 80930000          sts _adc_rel,R24
 0032                   .dbline 22
 0032           ;       //摒除高位数据,10位转换
 0032           ;       ADMUX=(1<<REFS0)|(adc_mux&0x0f);
 0032 80910200          lds R24,_adc_mux
 0036 8F70              andi R24,15
 0038 8064              ori R24,64
 003A 87B9              out 0x7,R24
 003C                   .dbline 24
 003C           ;       //选择内部AVCC为基准,并选取当前转换通道(转换为0~7)
 003C           ;       ADCSRA|=(1<<ADSC);
 003C 369A              sbi 0x6,6
 003E                   .dbline -2
 003E           L2:
 003E 8991              ld R24,y+
 0040 8FBF              out 0x3f,R24
 0042 9991              ld R25,y+
 0044 8991              ld R24,y+
 0046                   .dbline 0 ; func end
 0046 1895              reti
 0048                   .dbend

⌨️ 快捷键说明

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