mega16内部AD程序范例

发布时间:

PSoC联合实验室

Mega16
AD程序范例201352
内部
#include#include
#defineucharunsignedchar#defineuintunsignedint
/******************运用mega16内部AD转换**********************/uintmega16_ad({
uintaddata;
DDRA&=~BIT(PA0;//设置PA0为输入PORTA&=~BIT(PA0;//拉低PA0
ADMUX=0;//76号选择参考电压AREF5号口选择左对齐;//0~4号口选则通道与增益(此处选择单端输入)
ADCSR=0X80;//使能ADC,未开始,标志位置0,关闭中断,分频因子2ADCSR|=BIT(ADSC;//开始转换
while(!(ADCSR&(BIT(ADIF;//等待ADIF1,开始转换
addata=ADCL;//ADCl的值强制转为十进制赋给无符号整形addataaddata=addata+ADCH*256;//将寄存器高位ADCH的值读取,将这16位寄存器值全赋给addata
returnaddata;//返回addata}
voidmain({
uintada,i,ad[4];
DDRB=0xff;//设置二极管显示
DDRB=0xff;//初始化二极管,关闭while(1{
ada=mega16_ad(;//addata的值赋给ada
/****************以下为根据ada的值不同而不同的显示以此表示AD*******************/
if(ada>=0&&ada<=128PORTB=0xfe;
elseif(ada>128&&ada<=256PORTB=0xfd;
elseif(ada>256&&ada<=384PORTB=0xfb;
elseif(ada>384&&ada<=512PORTB=0xf7;
elseif(ada>512&&ada<=640PORTB=0xef;
elseif(ada>640&&ada<=768PORTB=0xdf;

}
elseif(ada>768&&ada<=896PORTB=0xbf;
elseif(ada>896&&ada<=1024PORTB=0x7f;
elsePORTB=0x00;}

mega16内部AD程序范例

相关推荐