Last active
March 19, 2018 04:57
-
-
Save pranjal-joshi/6d5c2bff5fd777d2b305dcb9dc2ec6df to your computer and use it in GitHub Desktop.
C Program for 8051/52 microcontroller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<reg51.h> | |
#define cmdport P3 | |
#define dataport P2 | |
#define q 10 | |
#define o 1 | |
sbit s1 = (P0^1); | |
sbit s2 = (P0^2); | |
sbit s3 = (P0^3); | |
sbit s4 = (P0^4); | |
sbit d1 = (P1^1); | |
sbit d2 = (P1^2); | |
sbit d3 = (P1^3); | |
sbit d4 = (P1^4); | |
sbit en = (P1^5); | |
sbit rs = cmdport^2; //register select pin | |
sbit rw = cmdport^1; // read write pin | |
sbit e = cmdport^0; //enable pin | |
void delay(unsigned int msec) // Function to provide time delay in msec. | |
{ | |
int i,j ; | |
for(i=0;i<msec;i++) | |
for(j=0;j<550;j++); | |
} | |
void lcdcmd(unsigned char msg) //Function to send command to LCD | |
{ | |
dataport = msg; | |
rs= 0; | |
rw=0; | |
e=1; | |
delay(1); | |
e=0; | |
} | |
void lcddata(unsigned char item) //Function to send data to LCD | |
{ | |
dataport = item; | |
rs= 1; | |
rw=0; | |
e=1; | |
delay(1); | |
e=0; | |
} | |
lcddat(unsigned char *item) // function to send string to LCD | |
{ | |
int x; | |
for(x=0;item[x]!=0;x++) | |
{ | |
lcddata(item[x]); | |
} | |
} | |
void main () | |
{ | |
P1=0x00; | |
P2=0x00; | |
P3=0x00; | |
delay(100); | |
lcdcmd(0x38); | |
delay(q); | |
lcdcmd(0x01); | |
delay(q); | |
lcdcmd(0x0C); | |
delay(q); | |
lcdcmd(0x80); | |
delay(q); | |
lcddat("Wireless Gesture"); | |
lcdcmd(0xC0); | |
delay(q); | |
lcddat("Controlled Robot"); | |
delay(700); | |
lcdcmd(0x01); | |
delay(q); | |
lcdcmd(0x81); | |
delay(q); | |
lcddat("Using AT89S52"); | |
delay(q); | |
lcdcmd(0xC0); | |
delay(q); | |
lcddat("Micro-controller"); | |
delay(700); | |
lcdcmd(0x38); | |
delay(q); | |
lcdcmd(0x01); | |
delay(q); | |
;lcdcmd(0x0C); | |
delay(q); | |
lcdcmd(0x86); | |
delay(q); | |
lcddat("By:"); | |
delay(q); | |
lcdcmd(0xC2); | |
delay(q); | |
lcddat("Pranjal Joshi"); | |
delay(650); | |
while(1) | |
{ | |
if (!s1 & !s2 & s3 & !s4) | |
{ | |
en = 1; | |
d1 = 1, d3 = 1; | |
d2 = 0, d4 = 0; | |
lcdcmd(0x38); | |
delay(q); | |
en=0; | |
lcdcmd(0x01); | |
delay(q); | |
en=1; | |
lcdcmd(0x0C); | |
delay(q); | |
lcdcmd(0x80); | |
en=0; | |
delay(q); | |
lcddat("Receiving Signal ."); | |
en=1; | |
delay(q); | |
lcdcmd(0xC0); | |
delay(q); | |
en=0; | |
lcdcmd(0x0C); | |
delay(q); | |
en=1; | |
lcddat("GOING FORWARD "); | |
delay(40); | |
en=0; | |
} | |
if (!s1 & !s2 & !s3 & s4) | |
{ | |
en = 1; | |
d1 = 0, d3 = 0; | |
d2 = 1, d4 = 1; | |
lcdcmd(0x38); | |
delay(q); | |
en=0; | |
lcdcmd(0x01); | |
delay(q); | |
en=1; | |
lcdcmd(0x0C); | |
delay(q); | |
lcdcmd(0x80); | |
delay(q); | |
en=0; | |
lcddat("Receiving Signal ."); | |
delay(q); | |
en=1; | |
lcdcmd(0xC0); | |
delay(q); | |
en=0; | |
lcdcmd(0x0C); | |
delay(q); | |
en=1; | |
lcddat("GOING REVERSE "); | |
delay(40); | |
en=0; | |
} | |
if (!s1 & s2 & !s3 & !s4) | |
{ | |
en = 1; | |
d1 = 0, d4 = 0; | |
d2 = 1, d3 = 1; | |
lcdcmd(0x38); | |
delay(q); | |
en=0; | |
lcdcmd(0x01); | |
en=1; | |
delay(5); | |
en=0; | |
lcdcmd(0x0C); | |
en=1; | |
delay(5); | |
en=0; | |
lcdcmd(0x80); | |
en=1; | |
delay(q); | |
en=1; | |
delay(5); | |
en=0; | |
lcddat("Receiving Signal ."); | |
delay(q); | |
lcdcmd(0xC0); | |
delay(q); | |
lcdcmd(0x0C); | |
delay(q); | |
lcddat("TURNING RIGHT "); | |
en=1; | |
delay(5); | |
en=0; | |
delay(2); | |
en=1; | |
delay(5); | |
en=0; | |
en=1; | |
delay(5); | |
en=0; | |
delay(40); | |
} | |
if (s1 & !s2 & !s3 & !s4) | |
{ | |
en = 1; | |
d1 = 1, d4 = 1; | |
d2 = 0, d3 = 0; | |
lcdcmd(0x38); | |
delay(q); | |
en=0; | |
lcdcmd(0x01); | |
en=1; | |
delay(5); | |
en=0; | |
lcdcmd(0x0C); | |
en=1; | |
delay(5); | |
en=0; | |
lcdcmd(0x80); | |
en=1; | |
delay(q); | |
en=1; | |
delay(5); | |
en=0; | |
lcddat("Receiving Signal ."); | |
delay(q); | |
lcdcmd(0xC0); | |
delay(q); | |
lcdcmd(0x0C); | |
delay(q); | |
lcddat("TURNING LEFT "); | |
en=1; | |
delay(5); | |
en=0; | |
delay(2); | |
en=1; | |
delay(5); | |
en=0; | |
en=1; | |
delay(5); | |
en=0; | |
delay(40); | |
} | |
if (!s1 & !s2 & !s3 & !s4) | |
{ | |
en=0; | |
d1=0; | |
d2=0; | |
d3=0; | |
d4=0; | |
lcdcmd(0x38); | |
delay(q); | |
lcdcmd(0x01); | |
delay(q); | |
lcdcmd(0x0C); | |
delay(q); | |
lcdcmd(0x80); | |
delay(q); | |
lcddat("No Signal "); | |
delay(q); | |
lcdcmd(0xC0); | |
delay(q); | |
lcdcmd(0x0C); | |
delay(q); | |
lcddat("STOP "); | |
delay(40); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment