要做一个基于AVR单片机的充放电控制电路
时间:10-02
整理:3721RD
点击:
要做一个基于AVR单片机的充放电控制电路,写了一段代码,求指教。看看有木有问题谢谢。
#include <iom8v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma data:code
uint meg8_ad()
{
uint addata;
DDRC&=~BIT(0);
PORTC&=~BIT(PC0);
ADMUX=0xC0;
ADCSR=0X80;
ADCSR|=BIT(ADSC);
while(!(ADCSR&(BIT(ADIF))));
addata=ADCL;
addata=addata+ADCH*256;
return addata;
}
void init()
{
PORTB=0x16;
PORTC|=BIT(2)|BIT(3)|BIT(5);
PORTC&=~(BIT(1)|BIT(4));
}
void main()
{
uint v;
float vol;
uint k;
k=0;
init();
while(1)
{
v=meg8_ad();
vol=v*2.56/1024;
if(vol<1.5)
{
PORTC|=BIT(4)|BIT(5);
PORTC&=~(BIT(1)|BIT(2)|BIT(3));
k=1;
}
if((vol>1.67&&k==1)||(vol<1.63&&k==2))
{
PORTC|=BIT(2)|BIT(3)|BIT(5);
PORTC&=~(BIT(1)|BIT(4));
k=0;
}
if(vol>1.87)
{
PORTC|=BIT(1)|BIT(2)|BIT(3)|BIT(4);
PORTC&=~BIT(5);
k=2;
}
}
}
dggadgfadf
dggadgfadf
dggadgfadf
dggadgfadf
dggadgfadf