/******************************************************************************/
/* 多通道AD实验程序 */
/******************************************************************************/
#include <iom48v.h>
#include <macros.h>
#define uint unsigned int
#define uchar unsigned char
uint temp1=0,temp4=0;
uint ADC_Convert(uchar channel)
{
ADMUX |= channel; //选择ADC通道为PA0
ADCSRA|=(1<<ADSC);// 开始转换
while (!(ADCSRA&(1<<ADIF))); // 等待转换结束
ADCSRA |=(1<<ADIF); // 清除转换结束标记
return(ADCH);
}
void main(void)
{
DDRD|=0x80;
PORTD&=0x7F;
DDRC&=0xEB;//ad通道输入设置
ADCSRA=0x00;
ADMUX |=0x60; //采用内部5参考电压,左对齐
ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
while(1)
{
temp1=ADC_Convert(2);
if(temp1>40)
PORTD|=0x80;
temp4=ADC_Convert(4);
if(temp4<40)
PORTD&=0x7F;
}
}
此帖出自
小平头技术问答
一周热门 更多>