Tuesday 9 June 2015

adc ARM

#include <LPC214X.H>
#include"lcdsub.c"

void adcint();
unsigned int adcfun();

unsigned int adcfun()
{
int result;
AD0CR |=(1<<24);
while(!(AD0GDR & 0x80000000));
result=AD0GDR;
AD0CR &= ~0x01000000;
result=(result >> 6) & 0x3FF;
result=result*1.2;
return (result);
}
void adcint()
{
AD0CR=1<<21;
AD0CR=0<<21;
PINSEL1=0x02000000;
AD0CR=0x00200802;
AD0GDR=0x001<<24;
}

int main(void)
{

unsigned char c,d,e,f=0;
unsigned char mv;
IO0DIR |= 0xFF;
IO0DIR |= (rs);
IO0DIR |= (rw);
IO0DIR |= (en);
adcint();
lcdint();
lcdcmd(0x80);
lcdstr("initializing");
delay(150000); delay(150000);
delay(150000); delay(150000);
lcdcmd(0x01);
delay(150000);
lcdstr("CONVERTING");

while(1)
{
 lcdcmd(0xc0);
mv=adcfun();
(int)mv=mv;
//mv=mv+15;
/*int)result=((AD0DR0>>6) & 0x3FF);
//resmv=(5000/1023)*result;
*/
c=mv/100;
d=mv%100;
e=d/10;
f=d%10;

lcddata(c+0x30);
lcddata(e+0x30);
lcddata(f+0x30);
//delay(65000);
//delay(65000);

}
}

#include <LPC214X.H>
#define data 0xFF    //assinging values for po.0-p0.7
#define rs (1<<8)
#define rw (1<<9)
#define en (1<<10)
void delay(int);
void lcdint();
void lcdcmd(int);
void lcddata(char);
void lcdstr(unsigned char*);
void lcdstr(unsigned char *chr)
{
while(*chr)
{
lcddata(*chr++);
}
}
void lcddata(char xdata)
{
IO0PIN = xdata;
IO0SET =(rs);
IO0CLR =(rw);

IO0SET = (en);
delay(500);
IO0CLR = (en);
}
void lcdcmd(int cmd)
{
IO0CLR =(rs);
IO0CLR =(rw);
IO0PIN = cmd;
IO0SET = (en);
delay(500);
IO0CLR = (en);
}
void lcdint()
{
lcdcmd(0x0E);
lcdcmd(0x38);
lcdcmd(0x06);
lcdcmd(0x80);
}
void delay(int m)
{
while(m--);
}



No comments:

Post a Comment