单片机
返回首页

avr单片机的adc应用

2016-10-19 来源:eefocus

1.数模转换的基础知识  
      数模转换器(ADC)基本上是一个比例上的问题,即由ADC产生的数字值跟输入模拟量与转换器量程的比值有关的。转换关系如下:
           Vin/Vfullscale=X/(2N-1)  其中X是数字输出,N是数字输出的位数(ADC的位数),Vin是模拟输入量的值,Vfullscale是模拟输入量的最大值。
  数模转换的转换精度计算:
           Vresolution=Vfullscale/((2N-1)
2.AVR微控器的ADC介绍
  AVR微控器的ADC具有两个ADC寄存器:ADC控制与状态寄存器ADCSR控制ADC的运行;ADC多路复用选择器ADMUX,控制8个测量的模拟量输入。
ADEN
ADSC
ADFR
ADIF
ADIE
ADPS2
ADPS1
ADPS0
                                                        表2-1 ADCSR位定义
   位
                        说明
ADEN
   ADC支持位设置为1则允许ADC
ADSC
   ADC开始转换位,设置为1则开始第一次轮换
ADFR
  ADC自由模式选择位,设置为1则允许自由模式
ADIF
  ADC中断标志
ADIE
  ADC中断屏蔽位,设置为1允许每个转换结束时产生中断
ADPS2
  ADC比例因子选择位
ADPS1
  ADC比例因子选择位
ADPS0
  ADC比例因子选择位
  
  为了ADC以最大的精度操作时,要求使用50HZ---200K HZ之间的时钟频率,选择合适的比例分频因子以获得50HZ---200KHZ的转换频率。由于ADC的速度比较慢,如果处理器在ADC转换数据时处于等待状态,会浪费时间,则ADC通常采用中断模式。ADC初始化:
            (1) 设置ADCSR的最低三位,确定分频因子
            (2)    设置ADIE为1,打开中断模式
            (3) 设置ADEN为高电平,使ADC有效
            (4)  设置ADSC,以马上开始转换
3.应用
  系统功能:当在模拟通道3输入电压超过3V时,系统点亮红色LED;当输入电压小于2V时,点亮黄色LED,当输入电压在2V--3V间,点亮绿色LED.
        硬件连接:三个LED分别接至AT908535的PORD口的PORTD.0、 PORTD.1、PORTD.2 AVR微控制器的ADC外设会根据所使用的具体微控制器而有所不同,所有的ADC都对VCC连接中的引脚电压有噪声抑制要求,有些拥有内置的噪声消除器,有些则拥用在内部控制Vref的能力,使用ADC时需要查看相关微控制器的手册。
  程序代码:
#i nclude<90s9535.h>
#define LEDS PORTD
#define red 0xfe
#define yellow 0xfd
#define green 0xfc
#define uchar unsigned char
interrupt[ADC_INT] void adc_isr(void)
{
   uchar adc_data;       //variable for ADC result
   adc_data=ADCW;   //read all 10bits into variable
  if(adc_data>(3*1023)/5)
      LEDS=red;
 else(adc_data<(2*1023)/5)
      LEDS=yellow;
  else
     LEDS=green;
   ADCSR=ADCSR|0x40;         //start the next conversion
}
void main()
{
 DDRD=0x07;                        //least signifcant 3 bits for output
ADMUX=0x03;                        //select to read only channel 3
ADCSR=0xCE;                        //ADC中断,64分频
#asm('sei')
while(1);                                  //等待ADC中断产生
}
进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 开关电源的基本组成及工作原理

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

    相关电子头条文章