访问电脑版页面

导航:老古开发网手机版AVR单片机ATMega8系列单片机

atmega8 例程:AD中断方式采集

导读:/************************************************************ 函数库说明:ATMEGE8 AD模数转换 * 版本: v1.0 * * 说明: 中断方
关键字:
atmega8,采集,ad中断方式,

/***********************************************************

* 函数库说明:ATMEGE8 AD模数转换

* 版本: v1.0

*

* 说明: 中断方式AD采集

*

* 版本更新: 详见readme.txt

*

************************************************************

*注意: res PC5

* CE PB0

* RST PB1

* DC PB2

* SDIN PB3

* SCLK PB4

***********************************************************/

#include "includes.h"

/***********************************************************

** 名 称:void AD_Init(void)

** 功 能:AD初始化

** 入口参数:无

** 出口参数:无

** 使用说明:无

**********************************************************/

void AD_Init(void)

{

//参考电压AREF,左对齐,ADC5单端输入

ADMUX |= (1 << ADLAR) | (1 << MUX2) | (1 << MUX0);

//AD使能, 连续转换,中断使能,32分频, 6M / 32 = 187.5khz

ADCSRA |= (1 << ADEN) | (1 << ADFR) | (1 << ADIE) | (1 << ADPS2) | (1 << ADPS0);

//AD开始转换

ADCSRA |= (1 << ADSC);

}

int main(void)

{

//LCD初始化

LCD_Init();

//AD初始化

AD_Init();

LCD_Write_Chinese_String(0, 0, 12, 5, Chinese_Font, 0, 0);

//开总中断

sei();

while(1)

{

}

return 0;

}

int result = 0;

char buf[] = "5.00V";

SIGNAL(SIG_ADC)

{

result = ADCH;

result = result * 500.0 / 255;

//数据更新

buf[0] = result / 100 + '0';

buf[2] = result / 10 % 10 + '0';

buf[3] = result % 10 + '0';

//数据显示

LCD_Write_English_String(0, 3, buf);

}


来源:互联网   作者:karen  2018/12/24 9:40:01
栏目: [ ATMega8系列单片机]

相关阅读

atmega8 例程:USART串口通信

ATmega8多数的I/O口外部中断问题

atmega8 例程:系统库函数的延迟

atmega8 例程:PWM

atmega8 例程:AD中断方式采集

ATmega8控制STA013和MMD/SD卡的电路图

atmega8 默认内部RC振荡 + 解锁

用 Atmega8 实现D触发锁存器的功能

ATmega8驱动74HC595程序

基于ATmega8的电动车蓄电池智能管理系统设计

让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义

基于ATmega8的超声波倒车雷达实现方案

ATMega8 查询方式 A/D转换测试程序

8 位AVR® 微处理器 ATmega8515 ATmega8515L

基于Stm32F101和Atmega8的投影机升降控制设计

ATmega8单片机与时钟器件DS3231的接口设计

[转载]基于Atmega8及MSM7512的嵌入式Modem设计

ADF7020+ATMEGA88原理应用

基于ATmega8的新型电动自行车调速控制系统设计

基于ATmega8的电动车蓄电池智能管理系统设计