您的位置 首页 应用

AVR单片机入门系列(27)AVR AD转化中止

系统功能大部分AVR内部带有AD,本节以使用ATMEGA16的内部AD为例,给出AD转换中断程序。硬件设计AVR主控电路原理图软件设计//目标系统:基于A…

体系功用

大部分AVR内部带有AD,本节以运用ATMEGA16的内部AD为例,给出AD转化中止程序。

硬件规划

AVR主控电路原理

软件规划

//方针体系:根据AVR单片机

//应用软件: ICC AVR

/*01010101010101010101010101010101010101010101010101010101010101010101

———————————————————————-

试验内容:

运用中止检测AD0口,运用PB/PD口的LED指示AD读到的数据。

———————————————————————-

硬件衔接:

将“ADJ0.AD0”引针与“MCU.AD0”引针运用短路帽短接。

将PB/PD口的LED指示灯使能开关心换到”ON”状况。

———————————————————————-

注意事项:

(1)若有加载库程序,请将光盘根目录下的“库程序”下的“ICC_H”文件夹拷到D盘

(2)请具体阅览:光盘根目录下的“产品材料开发板试验板SMK系列SMK1632阐明材料”

———————————————————————-

10101010101010101010101010101010101010101010101010101010101010101010*/

#include

#include “D:ICC_HCmmICC.H”

#define H_VAL_DISP_DDR DDRD

#define L_VAL_DISP_DDR DDRB

#define H_VAL_DISP_PORT PORTD

#define L_VAL_DISP_PORT PORTB

const uint8 ADEnStatus[8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

uint8 AdcMux; //ADC通道

uint16 AdcVal; //ADC转化值

/*——————————————————————–

程序称号:AD转化初始化程序

程序功用:

注意事项:

提示阐明:

输入:

回来:

——————————————————————–*/

void adc_init()

{

/*设置对应的IO口为输入高阻态*/

DDRA &= ADEnStatus[AdcMux];

PORTA &= ADEnStatus[AdcMux];

ADCSRA = 0x00;//disable adc

ADMUX = (1<

ACSR = (1<

ADCSRA=(1<

}

/*——————————————————————–

程序称号:AD转化中止服务程序

程序功用:

注意事项:

提示阐明:

输入:

回来:

——————————————————————–*/

#pragma interrupt_handler adc_isr:15

void adc_isr(void)

{

AdcVal = ADC&0x3FF;

ADMUX = (1<电源

ADCSRA |= (1<

}

/*——————————————————————–

程序称号:

程序功用:

注意事项:

提示阐明:

输入:

回来:

——————————————————————–*/

void main(void)

{

H_VAL_DISP_DDR = 0xFF;

L_VAL_DISP_DDR = 0xFF;

AdcMux = 0; //运用ADC通道0

adc_init();

SEI();

while(1)

{

H_VAL_DISP_PORT = (AdcVal&0x300)>>8;//ADC的高2位Val

L_VAL_DISP_PORT = AdcVal&0xFF;//ADC的低8位Val

}

}

体系调试

用LED显现AD转化值,调“ADJ0.AD0”的可调电阻可改动AD转化值,调查它的改变

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/252534.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部