Professional Documents
Culture Documents
a) direct
org 0000h
mov a,#55h
mov 30h,a
mov 31h,a
mov 32h,a
mov 33h,a
mov 34h,a
end
org 0000h
mov a,#55h
mov r0,#30h
mov @r0,a
inc r0
mov @r0,a
inc r0
mov @r0,a
inc r0
mov @r0,a
inc r0
mov @r0,a
ret
org 0000h
mov a,#55h
mov r0,#30h
mov r2,#05
again:mov @r0,a
inc r0
djnz r2,again
end
d) transfer block(extra)
org 0000h
mov r0,#40h
mov dptr,#400h
mov r2,#05h
next:clr a
movc a,@a+dptr
mov @r0,a
inc dptr
inc r0
djnz r2,next
ret
2)SQUARE WAVE/DELAY
org 0
clr p2.3
mov tmod,#01h
here:mov tl0,#0h
mov th0,#0EEh
setb tr0
again:jnb tf0,again
cpl p2.3
clr tf0
sjmp here
end
b) observation
3) INTERFACING LEDS
a) Manual - single led
#include<reg51.h>
void delay_ms(unsigned int);
sbit LED=P1^0;
void main(void)
{
P1=0x00;
while(1)
{
LED = 1;
delay_ms(1000);
LED = 0;
delay_ms(1000);
}
}
#include<reg51.h>
void delay_ms(unsigned int);
#define LED P1
void main(void)
{
P1=0x00;
while(1)
{
LED = 0xff;
delay_ms(1000);
LED = 0x00;
delay_ms(1000);
}
}
c) alternate leds
#include<reg51.h>
void delay_ms(unsigned int);
#define LED P1
void main(void)
{
P1=0x00;
while(1)
{
LED = 0xaa;
delay_ms(1000);
LED = 0x55;
delay_ms(1000);
}
}
a) one LED
#include<reg51.h>
sbit LED=P2^0;
sbit SWITCH=P1^0;
void main(void)
{
LED=0;
while(1)
{
if (SWITCH==0)
{
LED=~LED;
delay_ms(200);
}
}
}
b) entire port
#include<reg51.h>
#define LED P2
void delay_ms(unsigned int);
sbit SWITCH=P1^0;
void main(void)
{
LED=0x00;
while(1)
{
if (SWITCH==0)
{
LED=0Xff;
delay_ms(200);
}
else
LED=0XAA;
}
}
5) INTERFACING RELAY
#include<reg51.h>
#define relay P0
#define LED P2
void delay(unsigned int);
void main(void)
{
while(1)
{
relay=0x15;
LED=0x15;
delay(100);
relay=0x2A;
LED=0x2A;
delay(100);
}
}
6)INTERFACING BUZZER
#include<reg51.h>
void delay(unsigned int);
sbit BUZZER=P1^0;
void main(void)
{
BUZZER=0;
while(1)
{
BUZZER=1;
delay(1000);
BUZZER=0;
delay(1000);
}
}
7) DAC
a) Triangular
#include<reg51.h>
#define DAC P1
void delay();
void main()
{
unsigned char i=0;
DAC=0X00;
while(1)
{
for (i=255;i>0;i--)
DAC=i;
for (i=0;i<255;i++)
DAC=i;
}
}
b) Square
#include<reg51.h>
#define DAC P1
void delay();
void main()
{
DAC=0x00;
while(1)
{
DAC=0xff;
delay();
DAC=0x00;
delay();
}
}
void delay()
{
unsigned int i;
for (i=0;i<500;i++);
}
c)Ramp
#include<reg51.h>
#define DAC P1
void delay();
void main()
{
unsigned char i=0;
DAC=0x00;
while(1)
{
DAC=i++;
}
}
void delay()
{
unsigned int i;
for(i=0;i<500;i++);
}
d)Sine
#include<reg51.h>
#define DAC P1
void main()
{
unsigned char
i,sine[20]={171,209,238,253,255,253,238,209,171,128,84,46,17,2,0,2,17,46,84,128};
DAC=0x00;
while(1)
{
for (i=0;i<20;i++)
DAC=sine[i];
}
}
9) ADC
#include<reg51.h>
#define ADC P3
#define LED P2
void main()
{
ADC=0xff;
LED=0x00;
while(1)
{
LED=ADC;
}
}
#include<reg51.h>
#define stm P1
void delay(unsigned int);
sbit frv=P1^4;
sbit rev=P1^5;
sbit inc=P1^7;
sbit dec=P1^6;
void main()
{
unsigned int i=2000;
stm=0x00;
frv=1;
rev=1;
inc=1;
dec=1;
if (frv==0)
{
while(1)
{
stm=0x05;
delay(i);
stm=0x06;
delay(i);
stm=0x0a;
delay(i);
stm=0x09;
delay(i);
inc=1;
dec=1;
if(inc==0)
{
if(i>200)
i=i-200;
}
if(dec==0)
{
if(i<65400)
i=i+200;
}
}
}
if (rev==0)
{
while(1)
{
stm=0x05;
delay(i);
stm=0x09;
delay(i);
stm=0x0a;
delay(i);
stm=0x06;
delay(i);
inc=1;
dec=1;
if(inc==0)
{
if(i>200)
i=i-200;
}
if(dec==0)
{
if(i<65400)
i=i+200;
}
}
}
}
#include<reg51.h>
#define sevensegment_data P1
sbit DISP1_sel=P0^3;
sbit DISP2_sel=P0^2;
sbit DISP3_sel=P0^1;
sbit DISP4_sel=P0^0;
sbit lcd_backlight=P0^7;
void port_init(void);
void delay_ms(unsigned int);
void main(void)
{
unsigned char count0=0,count1=0,count2=0,count3=0,count4=0,count5=0,count6=0;
unsigned bcd_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
port_init();
do
{
do
{
do
{
do
{
do
{
DISP1_sel=0;
sevensegment_data=bcd_code[count1];
delay_ms(2);
DISP1_sel=1;
DISP2_sel=0;
sevensegment_data=bcd_code[count2];
delay_ms(2);
DISP2_sel=1;
DISP3_sel=0;
sevensegment_data=bcd_code[count3];
delay_ms(2);
DISP3_sel=1;
DISP4_sel=0;
sevensegment_data=bcd_code[count4];
delay_ms(2);
DISP4_sel=1;
count0+=1;
}
while(count0<=125);
count0=0;
count1+=1;
}
while(count1<=9);
count1=0;
count2+=1;
while(count2<=9);
count2=0;
count3+=1;
}
while(count3<=9);
count3=0;
count4+=1;
}
while(count4<=9);
count4=0;
while(1);
}
void port_init(void)
{
P0=0xff;
P1=0xff;
P2=0xff;
P3=0xff;
}
#include<reg51.h>
#define ldata P1
sbit rs=P0^4;
sbit rw=P0^5;
sbit en=P0^6;
sbit backlight=P0^7;
backlight=0;
for (c=0;c<5;c++)
{
lcdcmd(lcd_cmd[c]);
}
for (d=0;d<15;d++)
{
lcddata(lcd_message[d]);
delay_ms(30);
}
backlight=1;
for (c=0;c<5;c++)
{
lcdcmd(lcd_cmd1[c]);
}
for (d=0;d<15;d++)
{
lcddata(lcd_message1[d]);
delay_ms(30);
}
while(1)
{
}
}