8051PROGRAMS
8051PROGRAMS
Circuit design:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/W R
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
void main()
{
int i,j;
char seg[]={0xc0, 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
while(1)
{
for(i=0;i<10;i++)
{
P2=seg[i];
for(j=0;j<30000;j++);
}
}
}
2. WAP to display digits from 0-9 by using single 7segment
display(common cathode)
commom cathode: In 7segment display when we select common cathode all cathodes of all leds
connected to common pin that common pin is connected to GND and a,b,c,d,e,f,g,h are connected to
any port in 8051.
Circuit:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
void main()
{
int i,j;
char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
while(1)
{
for(i=0;i<10;i++)
{
P2=seg[i];
for(j=0;j<30000;j++);
}
}
}
3. WAP to display todays date by using 6 digit mul ple 7segment with
format DD.MM.YY(common anode)
Circuit:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
sbit com1=P3^0;
sbit com2=P3^1;
sbit com3=P3^2;
sbit com4=P3^3;
sbit com5=P3^4;
sbit com6=P3^5;
void main()
{
int i;
while(1)
{
com1=1;
P2=0xc0;
for(i=0;i<1000;i++);
com1=0;
com2=1;
P2=0x10;
for(i=0;i<1000;i++);
com2=0;
com3=1;
P2=0xc0;
for(i=0;i<1000;i++);
com3=0;
com4=1;
P2=0x79;
for(i=0;i<1000;i++);
com4=0;
com5=1;
P2=0xa4;
for(i=0;i<1000;i++);
com5=0;
com6=1;
P2=0x99;;
for(i=0;i<1000;i++);
com6=0;
}
}
4.WAP to display todays date by using 6 digit mul ple 7segment with
format DD.MM.YY(common cathode)
Circuit:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
sbit com1=P3^0;
sbit com2=P3^1;
sbit com3=P3^2;
sbit com4=P3^3;
sbit com5=P3^4;
sbit com6=P3^5;
void main()
{
int i;
while(1)
{
com1=0;
P2=0x3f;
for(i=0;i<1000;i++);
com1=1;
com2=0;
P2=0xef;
for(i=0;i<1000;i++);
com2=1;
com3=0;
P2=0x3f;
for(i=0;i<1000;i++);
com3=1;
com4=0;
P2=0x86;
for(i=0;i<1000;i++);
com4=1;
com5=0;
P2=0x5b;
for(i=0;i<1000;i++);
com5=1;
com6=0;
P2=0x66;;
for(i=0;i<1000;i++);
com6=1;
}
}
5.WAP to display complete student details on LCD
Line 1 : name
Line 2:college
Line3:university
Line4:area
LCD1
LM044L
U1
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
1
2
3
4
5
6
7
8
9
11
10
12
13
14
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
sbit rs=P3^6;
sbit en=P3^7;
void cmd(char);
void lcddata(char*);
void Data(char);
void main()
{
while(1)
{
cmd(0x38);
cmd(0x0C);
cmd(0x06);
cmd(0x01);
cmd(0x80);
lcddata("meghana");
cmd(0xC0);
lcddata("KITSW");
cmd(0x94);
lcddata("JNTUH");
cmd(0xD4);
lcddata("nizamabad");
}
}
void cmd(char c)
{
int i;
P2=c;
rs=0;
en=1;
for(i=0;i<5000;i++);
en=0;
}
void lcddata(char*dat)
{
int i=0;
while(dat[i]!='\0')
{
Data(dat[i]);
i++;
}
}
void Data(char dat)
{
int i;
P2=dat;
rs=1;
en=1;
for(i=0;i<5000;i++);
en=0;
}
6.Design & develop electronic notice board with predefined messages by using push button
and 32x2LCD combination
Button 1keep city clean and green
Button 2wear helimet
Button 3happy new year
Button4thank you
Circuit :
LCD1
LM017L
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
VDD
VSS
VEE
18 36
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
XTAL2 P0.3/AD3
E
35
P0.4/AD4
34
P0.5/AD5
11
1
2
3
4
5
6
7
8
9
10
12
13
14
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
sbit sw1=P3^1;
sbit sw2=P3^2;
sbit sw3=P3^3;
sbit sw4=P3^4;
sbit rs=P3^5;
sbit rw=P3^6;
sbit en=P3^7;
void cmd(char);
void lcddata(char*);
void Data(char);
void main()
{
while(1)
{
cmd(0x38);
cmd(0x0C);
cmd(0x06);
cmd(0x01);
cmd(0x80);
sw1=sw2=sw3=sw4=1;
if(sw1==0)
lcddata("keep city clean & green");
else
cmd(0x01);
if(sw2==0)
lcddata("wear helimet");
else
cmd(0x01);
if(sw3==0)
lcddata("happy new year");
else
cmd(0x01);
if(sw4==0)
lcddata("thank you");
else
cmd(0x01);
}
}
void cmd(char c)
{
int i;
P2=c;
rs=0;
rw=0;
en=1;
for(i=0;i<6000;i++);
en=0;
}
void lcddata(char*dat)
{
int i=0;
while(dat[i]!='\0')
{
Data(dat[i]);
i++;
}
}
void Data(char d)
{
int i;
P2=d;
rs=1;
rw=0;
en=1;
for(i=0;i<6000;i++);
en=0;
}
Program:
#include<reg51.h>
sbit led=P2^0;
void delay();
void main()
{
led=0;
while(1)
{
led=1;
delay();
led=0;
delay();
}
}
void delay()
{
int i;
TMOD=0x10;
for(i=0;i<15;i++)
{
TL1=0xfc;
TH1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
8.WAPto operate traffic signal with accurate time delay red colour
signal with 45sec and yellow for 5sec and green for 60sec
Circuit:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
sbit red=P3^0;
sbit yellow=P3^1;
sbit green=P3^2;
(or)
#include<reg51.h>
sbit red=P3^0;
sbit yellow=P3^1;
sbit green=P3^2;
void delay();
void delay1();
void delay2();
void main()
{
red=yellow=green=0;
while(1)
{
red=1;
delay();
red=0;
yellow=1;
delay1();
yellow=0;
green=1;
delay2();
green=0;
}
}
void delay()
{
int i;
TMOD=0x10;
for(i=0;i<633;i++)
{
TH1=0x00;
TL1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
void delay1()
{
int i;
TMOD=0x10;
for(i=0;i<71;i++)
{
TH1=0x02;
TL1=0x76;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
void delay2()
{
int i;
TMOD=0x10;
for(i=0;i<844;i++)
{
TH1=0x00;
TL1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
9.WAP to operate traffic signal with accurate time delay red colour
signal count on 7segment display
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
#include<reg51.h>
sbit red=P2^2;
sbit yellow=P2^3;
sbit green=P2^4;
void count();
void delay();
char seg[]={0xc0, 0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main()
{
red=yellow=green=0;
while(1)
{
red=1;
count();
red=0;
yellow=1;
count();
yellow=0;
green=1;
count();
green=0;
}
}
void delay()
{
int i;
for(i=0;i<15;i++)
{
TL1=0xfc;
TH1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
void count()
{
int i;
for(i=0;i<10;i++)
{
P3=seg[i];
delay();
}
}
10.WAP to display numbers on 7segment 0to9 for every 1sec
Circuit:
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
Program:
#include<reg51.h>
void delay();
int i;
void main()
{
char a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
for(i=0;i<10;i++)
{
P2=a[i];
delay();
}
}
void delay()
{
TMOD=0x10;
for(i=0;i<15;i++)
{
TL1=0xfc;
TH1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
(or)
#include<reg51.h>
void delay();
void main()
{
P2=0x00;
P2=0xc0;
delay();
P2=0xf9;
delay();
P2=0xa4;
delay();
P2=0xb0;
delay();
P2=0x99;
delay();
P2=0x92;
delay();
P2=0x82;
delay();
P2=0xf8;
delay();
P2=0x80;
delay();
P2=0x90;
delay();
}
void delay()
{
int i;
TMOD=0x10;
for(i=0;i<15;i++)
{
TL1=0xfc;
TH1=0x0f;
TR1=1;
while(TF1==0);
TF1=0;
}
TR1=0;
}
11.write a program to tx 1st character of your name from microcontroller to pc with 9600 braud
rate
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15 RXD
1 10
P1.0 P3.0/RXD TXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0 RTS
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0 CTS
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
#include<reg51.h>
void main()
{
SCON=0x40;
TMOD=0x20;
TH1=-3;
TR1=1;
SBUF='D';
while(TI==0);
TI=0;
TR1=0;
while(1);
}
12.WAP to tx person details from microcontroller to pc with 7200 braud rate
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15 RXD
1 10
P1.0 P3.0/RXD TXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0 RTS
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0 CTS
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
#include<reg51.h>
void main()
{
unsigned int i;
unsigned char p[] = {"person,age,address,phoneno"};
SCON=0x40;
TMOD=0x20;
TH1=-4;
TR1=1;
for(i=0;p[i]!='\0';i++)
{
SBUF=p[i];
while(TI==0);
TI=0;
}
TR1=0;
while(1);
}
13.WAP to display text on lcd connected with remote I/Oport by using I2C communication
LCD1
LM016L
R2
R1 4k7
4k7
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
U1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5 U2
33
P0.6/AD6
9 32 14 4
RST P0.7/AD7 SCL P0
15 5
SDA P1
21 6
P2.0/A8 P2
22 13 7
P2.1/A9 INT P3
23 9
P2.2/A10 P4
29 24 1 10
PSEN P2.3/A11 A0 P5
30 25 2 11
ALE P2.4/A12 A1 P6
31 26 3 12
EA P2.5/A13 A2 P7
27
P2.6/A14
28 PCF8574
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51
#include<reg51.h>
#include<intrins.h>
sbit sda=P2^0;
sbit scl=P2^1;
sbit rs=P2^2;
sbit rw=P2^3;
sbit en=P2^4;
void start();
void write(unsigned char);
void ackcheck();
void stop();
void delay();
void lcd(char);
void lcddata(char*);
void lcddis(char);
void main()
{
start();
write(0x40);
ackcheck();
lcd(0x38);
lcd(0x0c);
lcd(0x06);
lcd(0x80);
lcddata("name:meghana");
}
void lcd(char a)
{
int i;
rs=0;
rw=0;
write(a);
ackcheck();
en=1;
for(i=0;i<1000;i++);
en=0;
}
void lcddis(char a)
{
int i;
rs=1;
rw=0;
write(a);
ackcheck();
en=1;
for(i=0;i<1000;i++);
en=0;
}
void lcddata(char* a)
{
int i=0;
while(a[i]!='\0')
{
lcddis(a[i]);
i++;
}
}
void start()
{
scl=1;
sda=1;
_nop_();
_nop_();
sda=0;
scl=0;
}
void write(unsigned char val)
{
unsigned char v1,v2;
v1=val;
for(v2=0;v2<8;v2++)
{
sda=v1&0x80;
scl=1;
_nop_();
_nop_();
scl=0;
v1=v1<<1;
}
}
void ackcheck()
{
bit c;
sda=1;
c=sda;
scl=1;
_nop_();
_nop_();
scl=0;
if(c==1)
{
stop();
while(1);
}
}
void stop()
{
scl=1;
sda=0;
_nop_();
_nop_();
sda=1;
scl=0;
}
void delay()
{
unsigned int v3;
for(v3=0;v3<6000;v3++);
}
14.WAP and draw interfacing diagram of port expander ,micro controller and 8LED’s
connected with remote I/O port
D1
LED-BLUE
R1 R2
4k7 4k7
U1 D2
19 39 LED-BLUE
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4 U2
34
P0.5/AD5
33 14 4
P0.6/AD6 SCL P0
9
RST P0.7/AD7
32 15
SDA P1
5 D3
6 LED-BLUE
P2
21 13 7
P2.0/A8 INT P3
22 9
P2.1/A9 P4
23 1 10
P2.2/A10 A0 P5
29 24 2 11
PSEN P2.3/A11 A1 P6
30
ALE P2.4/A12
25 3
A2 P7
12 D4
31 26 LED-BLUE
EA P2.5/A13
27 PCF8574
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3
P1.2 P3.2/INT0
12 D5
4 13 LED-BLUE
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51 D6
SDA LED-BLUE
SCL I2C
TRIG
D7
LED-BLUE
D8
LED-BLUE
#include<reg51.h>
#include<intrins.h>
sbit sda=P2^0;
sbit scl=P2^1;
void start();
void write(unsigned char);
void ackcheck();
void stop();
void delay();
void main()
{
start();
write(0x40);
ackcheck();
while(1)
{
write(0xff);
ackcheck();
delay();
write(0x00);
ackcheck();
delay();
}
}
void start()
{
scl=1;
sda=1;
_nop_();
_nop_();
sda=0;
scl=0;
}
void write(unsigned char val)
{
unsigned char v1,v2;
v1=val;
for(v2=0;v2<8;v2++)
{
sda=v1&0x80;
scl=1;
_nop_();
_nop_();
scl=0;
v1=v1<<1;
}
}
void ackcheck()
{
bit c;
sda=1;
c=sda;
scl=1;
_nop_();
_nop_();
scl=0;
if(c==1)
{
stop();
while(1);
}
}
void stop()
{
scl=1;
sda=0;
_nop_();
_nop_();
sda=1;
scl=0;
}
void delay()
{
unsigned int v3;
for(v3=0;v3<6000;v3++);
}
15. WAP to allow one byte value into EEPROM location with a specific address based on series
of device
R2
U1 4k7 R1
4k7
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7 U2
21 6 1
P2.0/A8 SCL A0
22 5 2
P2.1/A9 SDA A1
23 7 3
P2.2/A10 WP A2
29 24
PSEN P2.3/A11
30 25 AT24C512B
ALE P2.4/A12
31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0 SDA
6 15
7
8
P1.5
P1.6
P1.7
P3.5/T1
P3.6/WR
P3.7/RD
16
17
SCL I2C
TRIG
AT89C51
#include<reg51.h>
#include<intrins.h>
sbit sda=P2^0;
sbit scl=P2^1;
void start();
void write(unsigned char);
void ackcheck();
void stop();
void main()
{
start();
write(0xa0);
ackcheck();
write(0x06);
ackcheck();
write(0x00);
ackcheck();
write('a');
ackcheck();
stop();
while(1);
}
void start()
{
scl=1;
sda=1;
_nop_();
_nop_();
sda=0;
scl=0;
}
void write(unsigned char val)
{
unsigned char v1,v2;
v1=val;
for(v2=0;v2<8;v2++)
{
sda=v1&0x80;
scl=1;
_nop_();
_nop_();
scl=0;
v1=v1<<1;
}
}
void ackcheck()
{
bit c;
sda=1;
c=sda;
scl=1;
_nop_();
_nop_();
scl=0;
if(c==1)
{
stop();
while(1);
}
}
void stop()
{
scl=1;
sda=0;
_nop_();
_nop_();
sda=1;
scl=0;
}
void delay()
{
unsigned int v3;
for(v3=0;v3<6000;v3++);
}
16.WAP for 4digit security system from keyboard if 4 digits are matched turn on green led if
it is wrong turn on red led
LCD1
LM016L
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
33
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
D1 30
ALE P2.4/A12
25
LED-GREEN 31 26
EA P2.5/A13
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
D2 3
P1.2 P3.2/INT0
12
LED-RED 4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0 RXD
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR TXD
8 17
P1.7 P3.7/RD
RTS
AT89C51
CTS
#include<reg51.h>
sbit gled=P1^0;
sbit rled=P1^1;
sbit rs=P1^2;
sbit rw=P1^3;
sbit en=P1^4;
void lcdcmd(char);
void lcddat(char);
void lcddis(char*);
unsigned char pwd[4],i;
void delay();
void main()
{
gled=0;
rled=0;
lcdcmd(0x38);
lcdcmd(0x06);
lcdcmd(0x0f);
lcdcmd(0x80);
lcddis("enter password");
lcdcmd(0xc0);
SCON=0x50;
TMOD=0x20;
TH1=-3;
TR1=1;
while(1)
{
for(i=0;i<4;i++)
{
while(RI==0);
pwd[i]=SBUF;
RI=0;
lcddat(pwd[i]);
}
if(pwd[0]=='9'&&pwd[1]=='6'&&pwd[2]=='5'&&pwd[3]=='2')
{
gled=1;
rled=0;
lcdcmd(0x01);
lcddis("password matched");
}
else
{
rled=1;
gled=0;
lcdcmd(0x01);
lcddis("invalid password");
}
}
}
void lcdcmd(char x)
{
rs=0;
rw=0;
P2=x;
en=1;
delay();
en=0;
}
void lcddat(char x)
{
rs=1;
rw=0;
P2=x;
en=1;
delay();
en=0;
}
void lcddis(char* x)
{
unsigned char i=0;
while(x[i]!='\0')
{
lcddat(x[i]);
i++;
}
}
void delay()
{
int i;
for(i=0;i<21000;i++);
}
17.
D1
LED-GREEN
D2
LED-GREEN
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
P0.5/AD5
34 D3
33 LED-GREEN
P0.6/AD6
9 32
RST P0.7/AD7
21
P2.0/A8
22
P2.1/A9
23
P2.2/A10
29 24
PSEN P2.3/A11
30 25
ALE P2.4/A12
31
EA P2.5/A13
26 D4
P2.6/A14
27 D5 LED-GREEN
28 LED-GREEN
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5 14
P1.4 P3.4/T0
6 15
P1.5 P3.5/T1
7 16
P1.6 P3.6/WR
8 17
P1.7 P3.7/RD
AT89C51 D6
LED-GREEN
1
D7
LED-GREEN
D8
LED-GREEN
#include<reg51.h>
void main()
{
unsigned char v1;
TMOD=0x60;
TL1=0x00;
while(1)
{
v1=TL1;
P2=v1;
TR1=1;
if(v1>10)
{
P2=TL1;
TR1=0;
}
}
}