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--);
}



Monday, 8 June 2015

accident project

#include<htc.h>
#define motor RB1
#define buzz RC3
#include"lcdsub.c"
#include"adcsub.c"
#include"serialsub.c"
/*void serialwrite(char tx);
char serialread();
void serialstr(char *serstr);
void dream(int);*/
//void serialstr(int);
void dream(int u)
{
while(u--);
}
void main()
{
TRISB=0X00;
TRISD=0X00;
TRISC=0X00;
TRISC6=0X00;
lcdint();
serialint();
adcint(0xc1);  //ch 1 AN0
//adcint(0xc9); //ch2 AN1
lcdstr("..INITIALIZING..");

dream(6500);
dream(65000);
serialstr("serial communication OK...\r");

serialstr("reading sensor values");
lcdcmd(0x01);
lcdstr("READING SNR VAL");
//buzz=0;
//motor=1;
while(1)
{
  adcfun1();
//lcdcmd(0xc0);
serialstr("\r");
dream(100);
serialstr("CH1:");
  lcdch1();
adcfun2();
serialstr(" ");
serialstr("CH2:");
  lcdch2();
serialstr("\r");
buzz=0;
motor=1;
//break;

while(a2>=0 && b2>=5 && c2>=0)
{

buzz=1;
motor=0;
lcdcmd(0x01);
lcdstr("ACCIDENT OCCURED");
lcdcmd(0xc0);
lcdstr("call HELP!!!");
serialstr("Calling help.....dialing\r");
a2,b2,c2=0;
lcdcmd(0x01);
break;
/*if(a2<=0 && b2<=5 && c2<=0)
{
break;
}*/
}
}
}

#define rs RC0
#define rw RC1
#define en RC2
int count=0;
int adc=0;
int p=192;
void lcdint();
void lcddisp(char chr);
void lcdcmd(int cmd);
void delay(int s);
void lcdstr(unsigned char *str);
void lcddisp1(char);
void delay(int s)
{
while(s--);
}

void lcdint()
{
lcdcmd(0x38);

lcdcmd(0x01);
lcdcmd(0x0E);

lcdcmd(0x06);

lcdcmd(0x80);
}
void lcdread()
{
char chrrd;
rw=1;
rs=1;
chrrd=PORTD;
en=1;
delay(100);
en=0;
}
void lcddisp(char chr)
{

/*if(count==16)
{
lcdcmd(0x80);
lcdstr("                 ");
lcdcmd(0x80);
count=0;

}
if(adc==1)
{
lcdcmd(p);
rw=0;
rs=1;
PORTD=chr;
en=1;
delay(100);
en=0;
p++;
}*/
rw=0;
rs=1;
PORTD=chr;
en=1;
delay(100);
en=0;
//count++;
}

void lcdcmd(int cmd)
{
rw=0;
rs=0;
PORTD=cmd;
en=1;
delay(100);
en=0;
if(cmd==0x01)
count=0;
}
void lcddisp1(char disp1)
{
rw=0;
rs=1;
PORTD=disp1;
en=1;
delay(100);
en=0;
}
void lcdstr(unsigned char *str)
{
while(*str)
{
delay(2500);
lcddisp1(*str++);
}
}


char a,volt;
int a1,b1,c1,a2,b2,c2;
int ch=0;
void serialwrite(char);
void elay(int s)
{
while(s--);
}

void adcint(int ch)
{
ADCON0=ch;
ADCON1=0x82;
ADIF=0;
}
unsigned int adcread()
{
ADGO=1;
while(ADGO==1);
elay(100);
ADGO=0;
ADIF=0;
a=(ADRESH<<8 | ADRESL)*0.49;
return(a);
}

void convert(char volt)
{
//serialwrite(volt);
int d,e,f,g=0;
d=a/100;
e=a%100;
f=e/10;
g=e%10;
if(ch==0)
{
a2=d;
b2=f;
c2=g;
}
if(ch==1)
{
a1=d;
b1=f;
c1=g;
}
//adc=1;
/*lcddisp(d+0x30);
elay(10);
lcddisp(f+0x30);
elay(10);
lcddisp(g+0x30);
//p=192;
//adc=0;
lcdcmd(0x80);
elay(1000);
*/

}
void adcfun1()
{

 adcint(0xc1);
 volt=adcread();
 convert(volt);
  elay(6500);
ch=0;
}
void adcfun2()
{

 adcint(0xc9);
 volt=adcread();
 convert(volt);
  elay(6500);
ch=1;
}

/*
void main()
{
char volt;

TRISA=0xff;
TRISE=0x00;
TRISD=0x00;
TRISC=0x00;
while(1)
{
intlcd();
 adcint(0xc1);
 volt=adcread();
 convert(volt);
elay(6500);
lcdcmd(0x01);

}
}
*/
lcdch1()
{
serialwrite(a1+0x30);
elay(10);
serialwrite(b1+0x30);
elay(10);
serialwrite(c1+0x30);

//lcdcmd(0x80);
elay(10000);
//lcdcmd(0x01);

}

lcdch2()
{
serialwrite(a2+0x30);
elay(10);
serialwrite(b2+0x30);
elay(10);
serialwrite(c2+0x30);

//lcdcmd(0x80);
elay(10000);
//lcdcmd(0x01);

}


#define xtalfreq 4000000
#define baudrate 9600


void serialwrite(char);
void serialint()
{
  TRISC6=0;
  TRISC7=1;
SPBRG=25;//((xtalfreq/16)*1/baudrate)-1;
BRGH=1;
SYNC=0;
SPEN=1;
CREN=1;
SREN=0;
TXIE=0;
RCIE=1;
TX9=0;
RX9=0;
TXEN=0;
TXEN=1;
}
void serialwrite(char tx)
{
TXREG=tx;
while(TRMT==0);
TRMT=0;
}
char serialread()
{
char rx;
while(RCIF==0);
rx=RCREG;
RCIF=0;
return (rx);
}
void serialstr(char *serstr)
{
while(*serstr)
{
serialwrite(*serstr++);
}
}



Friday, 5 June 2015

ARM button led

#include <LPC21xx.H>
#define s 0x00000080   //assigning P0.7 as s
void delay(int);
void delay(int m)
{
while(m--);
}

int main()
{
  IO0DIR |=(1<<6);
  //IO0DIR |= ~(1<<7);
  IO0DIR &= ~(s);
   IO0SET|=(1<<6);
  delay(650000);
 IO0CLR |=(1<<6);
while(1)
{
  IO0CLR |=(1<<6);
  //while(IO0PIN& (1<<7))
 while(IO0PIN& (s))
 {
  IO0SET|=(1<<6);
 }
}
}



ARM lcd

#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--);
}
int main()
{
IO0DIR |= 0xFF;
IO0DIR |= (rs);
IO0DIR |= (rw);
IO0DIR |= (en);
lcdint();
lcdstr("hello world");
//delay(1000000);
//lcdcmd(0x01);
while(1)
{



}
}


PIC parallel slave port slave

#include<htc.h>
#include"lcdsub.c"
#define rd RE0
#define wr RE1
#define cs RE2
void elay(int s);
void pspint();

void elay(int s)
{
while(s--);
}
void pspint()
{
TRISE=0x17;
}
void pspread()
{
unsigned char data;
wr=1;
//elay(200);
rd=0;
//PORTC=PORTD;
while(PSPIF==0);
//data=PORTD;
PSPIF=0;
//TRISB=0xff;
//PORTB=PORTD;
//TRISB=0x00;
data=PORTD;
lcddisp(data);

//PORTB=PORTD;
//lcddisp(PORTD);
cs=1;
elay(200);
cs=0;
}
void main()
{
ADCON1=0x07;
//TRISE=0xff;
TRISB=0X00;
TRISC=0X00;
TRISD=0XFF;
lcdint();
pspint();
//lcdstr("initialized");
elay(6500);
//lcdcmd(0x01);
while(1)
{
//PORTB=PORTD;
pspread();
elay(65000);
}
}

#define rs RC0
#define rw RC1
#define en RC2
int count=0;
int adc=0;
int p=192;
void lcdint();
void lcddisp(char);
void lcdcmd(int cmd);
void delay(int s);
void lcdstr(unsigned char *str);
void lcddisp1(char);
void delay(int s)
{
while(s--);
}

void lcdint()
{
lcdcmd(0x38);

lcdcmd(0x01);
lcdcmd(0x0E);

lcdcmd(0x06);

lcdcmd(0x80);
}
void lcdread()
{
char chrrd;
rw=1;
rs=1;

chrrd=PORTB;
en=1;
delay(100);
en=0;
}
void lcddisp(char data)
{

rw=0;
rs=1;
//while(PSPIF==0);
//PORTB=PORTD;

//PSPIF=0;
PORTB=data;
en=1;
delay(100);
en=0;

}

void lcdcmd(int cmd)
{
rw=0;
rs=0;
PORTB=cmd;
en=1;
delay(100);
en=0;
if(cmd==0x01)
count=0;
}
void lcddisp1(char disp1)
{
rw=0;
rs=1;
PORTB=disp1;
en=1;
delay(100);
en=0;
}
void lcdstr(unsigned char *str)
{
while(*str)
{
delay(2500);
lcddisp1(*str++);
}
}

PIC parallel slave port master

#include<htc.h>

#define rd RE0
#define wr RE1
#define cs RE2
void pspint();
void pspsend();
void elay(int);
void elay(int s)
{
while(s--);
}

void pspsend()
{
rd=1;
elay(200);
wr=0;

PORTD=0b11111111;
//while(PSPIF==0);
//PSPIF=0;
cs=1;
elay(200);
cs=0;
}
void pspint()
{
TRISE=0x10;
}
void main()
{
ADCON1=0x06;
//TRISE=0X00;
TRISD=0X00;

pspint();
while(1)
{
elay(6500);
pspsend();
elay(6500);
}

}

#define rs RC0
#define rw RC1
#define en RC2
int count=0;
int adc=0;
int p=192;
void lcdint();
void lcddisp(char chr);
void lcdcmd(int cmd);
void delay(int s);
void lcdstr(unsigned char *str);
void lcddisp1(char);
void delay(int s)
{
while(s--);
}

void lcdint()
{
lcdcmd(0x38);

lcdcmd(0x01);
lcdcmd(0x0E);

lcdcmd(0x06);

lcdcmd(0x80);
}
void lcdread()
{
char chrrd;
rw=1;
rs=1;
chrrd=PORTD;
en=1;
delay(100);
en=0;
}
void lcddisp(char chr)
{

if(count==16)
{
lcdcmd(0x80);
lcdstr("                 ");
lcdcmd(0x80);
count=0;

}
if(adc==1)
{
lcdcmd(p);
rw=0;
rs=1;
PORTD=chr;
en=1;
delay(100);
en=0;
p++;
}
rw=0;
rs=1;
PORTD=chr;
en=1;
delay(100);
en=0;
count++;
}

void lcdcmd(int cmd)
{
rw=0;
rs=0;
PORTD=cmd;
en=1;
delay(100);
en=0;
if(cmd==0x01)
count=0;
}
void lcddisp1(char disp1)
{
rw=0;
rs=1;
PORTD=disp1;
en=1;
delay(100);
en=0;
}
void lcdstr(unsigned char *str)
{
while(*str)
{
delay(2500);
lcddisp1(*str++);
}
}



ARM led blink LPC2124

#include<LPC21XX.h>
void delay(int s);
void delay(int s)
{
while(s--);
}
int main()
{
IO0DIR=(1<<9);//setting P0.09 as output
while(1)
{

delay(6500); // making the pin high
IO0SET=(1<<9);
delay(6500);
IO0CLR=(1<<9); // making the pin low
delay(6500);
}
}