现在的位置: 首页 > 综合 > 正文

atmega8 例程: 查询方式AD采集

2013年03月21日 ⁄ 综合 ⁄ 共 1017字 ⁄ 字号 评论关闭
/*********************************************************** 
* 函数库说明:ATMEGE8 AD模数转换
* 版本: v1.0
* 修改: 庞辉
* 修改日期: 2011年08月05日
*
* 说明: 查询方式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 << ADPS2) | (1 << ADPS0);
//AD开始转换
ADCSRA |= (1 << ADSC);
}

int main(void)
{
int result = 0;
char buf[] = "5.00V";

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


while(1)
{
while((ADCSRA & (1 << ADIF)) == 0);
//读取转换值
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);
}

return 0;
}

抱歉!评论已关闭.