Abhi Proj
Transcript of Abhi Proj
-
8/18/2019 Abhi Proj
1/4
#include
#define LCDDATA P2#define ADCDATA P1#define MINIMUM 5
sbit BUSY = P2^7;sbit RS = P2^0;sbit RW = P2^1;sbit EN = P2^2;
sbit OE = P1^3; //RD pinsbit SC = P1^4; // WR is active LOW pinsbit EOC = P1^5; //INTR is active LOW pin
sbit RELAY1 = P1^0;sbit RELAY2 = P1^1;sbit RELAY3 = P1^2;
unsigned char Buff[3] = 0;
void ISR_T0() interrupt 1{
TH0 = 0x4B;TL0 = 0xFF;
TF0 = 0;}
void Delay(unsigned int time){ unsigned int i = 0;
for(i=0;i
-
8/18/2019 Abhi Proj
2/4
BUSY = 1;RS = 0; // RS =0 FOR COMMANDRW = 1; // RW = 1 FOR READINGwhile(BUSY){
EN = 0; // ENABL EIS LOWEN = 1; // ENABLE IS HIGH
}}
/*Function to Send Command to LCD*/void LCDCMD(unsigned char CMD){
BusyCheck();LCDDATA = CMD;RS = 0; // RS =0 FOR COMMANDRW = 0; // RW = 0 FOR WRITINGEN = 1; // ENABLE IS HIGHEN = 0; // ENABL EIS LOW
}
/*Function to Send Data to LCD*/void LCDData(unsigned char Data){
BusyCheck();LCDDATA = Data;RS = 1; // RS =1 FOR DATARW = 0; // RW = 0 FOR WRITINGEN = 1; // ENABLE IS HIGHEN = 0; // ENABL EIS LOW
}
void LCDString(unsigned char *str){
while(*str){
LCDData(*str);str++;}
}
void Init_T0(){
TMOD = 0x01; // SET THE TIMER0 IN MODE 1 MODETH0 = 0x4B; // LOAD THE TH0 VALUETL0 = 0xFF; // LOAD THE TL0 VALUEET0 = 1; // ENABLE THE TIMER0 INTERRUPT
EA = 1; // ENABLE ALL INTERRUPTTR0 = 1; // START THE TIMER
}
/*Function to Initalize LCD*/void Init_LCD(){
/*Command to Select 2 line , 5x7 matrix mode of LCD */LCDCMD(0x38);
-
8/18/2019 Abhi Proj
3/4
/*Command to shift the cursor to next position when Data is send in LCD*/
LCDCMD(0x06);
/*Command to ON Display, OFF the Cursor in LCD */LCDCMD(0x0C);
/*Return cursor home */LCDCMD(0x02);
}
void Display(unsigned char Data){
switch(Data){
case 170:LCDString("1KM");
break;case 204:
LCDString("2KM"); break;
case 219:LCDString("3KM");
break;case 227:LCDString("4KM");
break;case 255:
LCDString("NF "); break;
default:break;
}}
void main(){ P0 = 0x0F;
Buff[0] = 0xFF;Init_T0();Init_LCD();
while(1){
P0 = 0x01;LCDCMD(0x80);LCDString("R: ");Display(Read_ADC());
LCDCMD(0x87);LCDString("B: ");Display(Read_ADC());
P0 = 0x02;LCDCMD(0xC0);LCDString("Y: ");Display(Read_ADC());
P0 = 0x04;
-
8/18/2019 Abhi Proj
4/4
LCDCMD(0xC7);LCDString("N: ");Display(Read_ADC());
}}