You are on page 1of 12

1) ADDRESSING MODES

a) direct

org 0000h
mov a,#55h
mov 30h,a
mov 31h,a
mov 32h,a
mov 33h,a
mov 34h,a
end

b) reg indirect no loop

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

c) reg indirect loop

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

a)freq 100Hz square wave

;p2 equ 0a0h


;tmod equ 89h
;tl0 equ 8ah
;th0 equ 8ch
;tr0 equ 8ch
;tf0 equ 8dh

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

void delay_ms(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

b) entire port i.e. all leds

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

void delay_ms(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

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

void delay_ms(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

4)INTERFACING LED AND SWITCH

a) one LED

#include<reg51.h>

void delay_ms(unsigned int);

sbit LED=P2^0;
sbit SWITCH=P1^0;

void main(void)
{
LED=0;
while(1)
{
if (SWITCH==0)
{
LED=~LED;
delay_ms(200);
}
}
}

void delay_ms(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

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

void delay_ms(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

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

void delay(unsigned int i)


{
unsigned int j;
while(i-->0)
for (j=0;j<500;j++);
}

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

void delay(unsigned int i)


{
unsigned int j;
while (i-->0)
{
for (j=0;j<500;j++);
}
}

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

10) STEPPER MOTOR

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

void delay(unsigned int i)


{
unsigned int j;
for (j=0;j<i;j++);
}

11) SEVEN SEGMENT

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

void delay_ms(unsigned int itime)


{
unsigned int i,j;
for(i=0;i<itime;i++)
for(j=0;j<100;j++);
}

12) LCD DISPLAY

#include<reg51.h>
#define ldata P1

sbit rs=P0^4;
sbit rw=P0^5;
sbit en=P0^6;
sbit backlight=P0^7;

void delay_ms(unsigned int);


void lcdcmd(unsigned char);
void lcddata(unsigned char);
void lcdready();
void main()
{
unsigned char lcd_cmd[]={0x38,0x0e,0x01,0x06,0x84};
unsigned char lcd_message[]=" i2c logic ";

unsigned char lcd_cmd1[]={0x38,0x0e,0x06,0xc0,0xc1};


unsigned char lcd_message1[]= "hello world ";
unsigned char c,d;

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

void lcdcmd(unsigned char value)


{
ldata=value;
rs=0;
rw=0;
en=1;
delay_ms(1);
en=0;
return;
}

void lcddata(unsigned char value)


{
ldata=value;
rs=1;
rw=0;
en=1;
delay_ms(1);
en=0;
return;
}

void delay_ms(unsigned int itime)


{
unsigned int i,j;
for(i=0;i<itime;i++);
for(j=0;j<1275;j++);
}

You might also like