0% found this document useful (0 votes)
24 views

CODE micro

Uploaded by

Harsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

CODE micro

Uploaded by

Harsh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

0000H

ORG
UP:

end inr0c; #38H;


24H, 23H,
mov #0B2H;
mov #29H; 22H, 20H,#0AH;
21H,
mov mov
mov #50H; mov#5;r3, #30h; mov r,
movr1, #20h;
djnzr3UP
, inr1c; mov@r1, a;
@r0;
mov a,

(Memory
Experiment No
1
block
transfer

in
8051)
Experiment No 2
(Parallel Port Interfacing of LED)

#include<reg51.h>
P2=0X00;
void delaylvoid);
void main(void)

{
while(1)

P2=0xAA;

delay();
P2=0x55;

delay();

void delay(void)

int j;
int i;

for(i=0;i<=10;++);

for(j=0;j<=10;j++);
Experiment 3 programme

l/programme to penerate triangular waveform using 8051


tinclude <8051.h>

|/Define the control registers for Timer 0

sfr TMOD =Ox89; ||Timer 0 mode register


sfr TCON =0x88, |/ Timer 0 control register
sfr TLO = 0x8A, // Timer 0 low byte

sfr THO =Ox8C, // Timer 0 high byte

|/Define a delay function


void delaylunsigned int count){
unsigned int i;
while (count > 0) {

for (i =0; i< 120; i++); //Adjust this for the desired delay
count

void main() {
tirner)
TMOD = 0x01; // Set Tirmer Oin mode 1 (16-bit
TCON 0x10; //Enable Timer 0

while (1)
|/Generate the triangular waveform
for (int i =0; i<= 255; i++)
THO 0x00;

TLO = ,

P1 = TL0; // Ouput the waveforn on P1)


delay(10); I/Delay for a short period to control the waveform frequency

for (int i=255; i >= 0; i--) {


THO = 0x00;
TLO = i;
P1 = TLO; //Output the waveform on P1.0

delay(10); |/Delay for a short period to control the waveform frequency

}
Experiment No 4
(interface of 16x2 lcd)

#include<p18f458.h>
#include "LCD8bitspic.h"

void main()

unsigned char i,x[]="LCD",y[]="Program";


TRISC=0x00;

TRISD=0x00;

lcd_init():
icd_gotoxy(1,1);
lcd_send_string(x);
Icd_gotoxy(2,1);
lcd_send_string(y):
while(1);

LCD8bitspic.h

#include <string.h>
--LCD pins-

#define rs PORTCbits.RCO

#define rwPORTCbits.RC1
#define en PORTCbits.RC2
#define ldata PORTD

-lcd-.

void lcd _init(void);


void lcd_cmd(unsigned char);
void lcd_data(unsigned char);
void delay(unsigned int);
void lcd_gotoxy(unsigned char, unsigned char);
void lcd_send_string(unsigned char*);
I / - c dfunctions-.

void lcd_init()

lcd_cmd(0x38);
delay(2);
Icd_cmd(0xOE);
delay(2):
lcd_cmd(0x01);

delay(2);
Icd_cmd(0x06);
delay(2):

void lcd_cmd(unsigned char cmd)

ldata=cmd;

rs=0;

rw=0;

en=1;

delay(1);
en=0;
void icd data(unsigned char dat)

ldata-dat,

rs=1;

rw-0;
en=1;

delay(1);
en=0;

void delaylunsigned int x)

unsigned int i,j:


for(i=0;i<=x;i+*)
for(j=0;j<=1275;j++);

void lcd gotoxy(unsigned char x unsigned char y)

if(x==1)
Icd_cmd(0x80+y-1);
else if (x==2)

lcd_cmd(0xCO+y-1);
void lcd_send string(unsigned char*str)

unsigned char len,i;

len=strlen(str);
for(i=0;i<len;i++)
lcd_data(str[i)};
Experiment No 5
(Interfacing Button, LED, Buzzer, Relay with PIC)

#include <p18f4520.h>
#define SW1 PORTBbits.RB0

#define SW2 PORTBbits.RB1

void delay(unsigned int x)

unsigned int i,j;


for(i=0;i<=x;i++)
for(j=0;j<=x;jt+);

void Buzzer_on(void)

PORTAbits.RA3=1;

void Buzzer off(void)

PORTAbits.RA3-0;

void LED_Right_Left(void)

{
PORTD=0b01111111;

delay(200);
PORTD=0b10111111;

delay(200);
PORTD=0b11011111;

delay(200);
PORTD=0b11101111;

delay(200);
PORTD=0b11110111;
delay(200);
PORTD=0b11111011;

delay(200);
PORTD0b11111101;

delay(200):
PORTD=0b11111110;

delay(200);

}
void LED_Left_Right(void)

PORTD=0b11111110;

delay(200);
PORTD=0b11111101;

delay(200);
PORTD=0b11111011;

delay(200);
PORTD=0b11110111;

delay(200):
PORTD=0b11101111;

delay(200);
PORTD=0b1101111l;

delay(200);
PORTD=0b10111111;

delay(200):
PORTD=0b01111111;

delay(200):

void main (void)

TRISD = 0x00;

TRISB = Oxff;
TRISA = 0x00;

while(1)
{
LED_Left_Right():} else {
if( SW1==0){ Buzzer _on();
Buzzer_off(); }
Buzzer_off();LED_Right_Left(); } else{
if( SW2==0) {
Buzzer_off():}
Experiment No 6
(interface of hex keypad)

||====4x4 KEYBOARD AND 16X2 LCD DISPLAY =====


|/for col PORTBO to PORTB3 &row PORTB4 to PORTB7
#include <P18f4520.h>

#include"lcd.h"

#pragma config OSC=HS


#pragma config PWRT=OFF
#pragma config WDT=OFF
#pragma config DEBUG=OFF, LVP=OFF
void delay (unsigned int itime);
#define R1 PORTBbits.RB0

#define R2 PORTBbits.RB1

#define R3 PORTBbits.RB2

#define R4 PORTBbits.RB3

#define C1 PORTBbits.RB4

#define C2 PORTBbits.RBS

#define C3 PORTBbits.RB6

#define C4 PORTBbits.RB7

unsigned char text1[]={"LOGSUN SYSTEMS"};


unsigned char text2[]=("KEY PRESSED:"}:
void main(void)

{
TRISD = 0x00;

TRISC = 0x00;

ADCON1=0x0f;
TRISBbits.TRISB0=1;

TRISBbits.TRISB1=1;
TRISBbits.TRISB2=1;
TRISBbits.TRISB3=1;
TRISBbits.TRISB4=0;
TRISBbits.TRISB5=0;

TRISBbits.TRISB6=0;
TRISBbits.TRISB7=0;

lcdinit();
Icddisplay(1,text1);
Icddisplay(2,text2);

while(1)
{

C1=0;C2=C3=C4=1;

if(R1 == 0)Klcddat ('F'} //Display 0


if(R2 == 0{lcddat ('B'):) //Display 4
if(R3 == 0\lcddat ('7;} / Display 8
if(R4 == 0){lcddat ('3):) // Display C

Smt. KashibaiNavale College of Engineering Electronics and Telecommunication Department

C2=0;C1=C3=C4=1;
if(R1 == 0)Xlcddat ('E"):) // Display 1
if(R2 == O){lcddat ('A');) 1/ Display 5
if(R3 == 0}{lcddat ('6):} // Display 9
if(R4 == 0){lcddat ('2');:) / Display )

C3=0;C1=C2=C4-1;

if(R1 == 0{lcddat ('D'):} // Display 2


if(R2 == 0){lcddat ('9');:) // Display 6
if(R3 == 0){lcddat ('5):} // Display A
if(R4 == 0){lcddat ('1'):} // Display E

C4=0;C1=C2=C3=1;
if(R1 == 0){lcddat ('C):) // Display 3
if(R2 == O{lcddat ('8):) //Display 7
if(R3 == 0Xlcddat ('4'):} // Display B
if(R4 == 0)Klcddat (0')) I/ Display F
Experiment No 7
(Generate the square wave with PIC)

#include <p18f4520.h>
#define SW1 PORTBbits.RBO
#define SW2 PORTBbits.RB1
void delay(unsigned int x)
{
unsigned int i,j:
for(i=0;i<=x;i++)
for(j=0;j<=x;j++);
}
void Buzzer_on(void)
{
PORTAbits.RA3=1;

void Buzzer_off(void)

PORTAbits.RA3=0;

void LED_Right_Left(void)

PORTD=0b01111111;
delay(200);
PORTD=0b10111111;

delay(200);
PORTD=0b11011111;
delay(200);
PORTD=0b11101111;
delay(200);
PORTD=0b11110111;
delay(200):
PORTD-0bl11 11011;

delay(200);
PORTD=0b11111101;

delay(200);
PORTD=0bl1111110;

delay(200);:

void LED_Left_Right(void)

PORTD=0b11111110;

delay(200);
PORTD=Ob11111101;

delay(200);
PORTD=0b11111011;

delay(200),
PORTD=0b11110111;

delayl200):
PORTD=0bl1101111;

delay(200);
PORTD=0bl 1011111;

delay(200);
PORTD=0b10111111;

delay(200);:
PORTD=0b01111111,
delay(200).

void main (void)

TRISD 0x00,

TRISB - 0xtt;

TRISA = Ox00,

while(1)
) else {
Buzzer_on(); LED_Left_Right():
if( SW1==0) {
Buzzer off);}
else {
Buzzer off():LED Right Left(0:}
if(SW2==0) {
Buzzer_off(): }
Experiment No 7
(Generate the square wave with PIC)

#include <p18f4520.h>
#pragma config OSC = HS |/ High-speed oscillator
#pragma config WDT = OFF I/Watchdog Timer disabled
#pragma config LVP = OFF | Low-voltage Programming disabled
#pragma config PBADEN = OFF

unsigned char g_ ui8TimerOnflag-0,g_ui8Num=0;


unsigned char g_ui8tmrcnt=0;

void TimerOlnit()
{
TOCONbits.TOPSO = 1;

|/Prescaler of 2
TOCONbits.TOPS1 = 1;
/ Prescaler of 2
TOCONbits. TOPS2 = 1;

|/Prescaler of 2
TOCONbits. PSA = 0;
|/Timer Prescaler assigned
TOCONbits.TOSE = 0;

|| Increment on low to high transition


TOCONbits.TOCS - 0;
/ internal clock
TOCONbits.TO8B11 =0;
I/16 B1T MODE
TOCONbits. TMROON 1, |/ Turns timer on
TMKOH -0xb3;
TMROL = OxB4;

|/Interrupt Setup
RCONbits. IPEN = 1;

|/Interrupt priority enabled


INTCONbits.GIE = 1;

|/Enables Global Interrupts


INTCONbits.PEIE 1;
|/Enables Peripheral Interrupts
INTCONbits.TM ROIE = 1;

I/Enables overflow Interrupt


INTCONbits.TMROIF = 0;

||Sets overflow bit to zero


INTCON2bits.TMROIP = 1;

/Timer oInterrupt is high priority

void TMRISR(void);
#pragma code InterruptVectorHigh=0x08

void interruptVectorHigh (void)

asm
goto TMRISR

_endasm

#pragma code

#pragma interrupt TMRISR

void TMRISR (void)

if(INTCONbits.TMRoIF == 1)

INTCONbits.TMROIF=0;
I/Clear Interrupt Flag to prevent reinitialisation of ISR
TMROH 0xB3;
TMROL= 0xB4;

iflg_ui8TimerOnflag)

PORTD = 0x00;

8_ui8TimerOnflag=0;

else

{
PORTD = 0xff;

g_ui8TimerOnflag=1;

void main (void)

{
TimerOlnit():
8_ui8TimerOnflag=0;
TRISD = Ox00;

I/Port configured as Output


PORTD = 0x00;
//PORTD = 0x00

while(1) ;
Experiment No 8
(Interfacing serial port with Transmitting data with PIC)

#include <P18F4520.h>

void SerTx(unsigned char c)

while(PIR1bits.TXIF=-0);

TXREG=C;

void main(void)

TXSTA=0x20;

SPBRG=31;
TXSTAbits. TXEN=1;
RCSTAbits.SPEN=1;

while(1)

SerTx('P');
SerTx('u'):
SerTx('n'):
SerTx('e');
SerTx(0xOd);
Experiment No 8
(Interfacing serial port with Receiving data with PIC)

#include <P18F4520.h>

void main (void)

TRISD =0;

RCSTA=0x90;
SPBRG=31;

while(1)

while(PIR1bits.RCIFz-0);
PORTD=RCREG;
Experiment No 9
(tnterfacing of ADC with PIC)

#include p18f4520.h>
void SerTx(unsigned char c)

while(PIR1bits. TXIF=-0);
TXREG=C;

void delay(unsigned int x)

unsigned int ij:

for(i-0;ic«xi+)

for(j-0;j<x;j+*).

void main(void)

unsigned char i,d1,d?, d3 d4


unsigned int
TRISAbIts. TRISAO-1;
TRISC-0x00,

TRISD-Dx00,
ADCONO OxB1
ADCONI Oalt;
YXSIA-Ox20;
SrBRG-31

HCSTALHa SPEN I
wtuiel)

AD(ON0bits G0
while(ADCONObits. DONE == 1);
X=ADRESH;
X=X<<8;

X=x\ADRESL;
d4-(x%10)+48;
d3=(x/10)%10+48;
d2=(x/100)%10+48;
d1=(x/100)/10+48;
delay(1);
SerTx('A');:
SerTx('D'):
SerTx('C'):
SerTx(' ):
SerTx('V');
SerTx('a');
SerTx('"):
SerTx('u');
SerTx('e');
SerTx(':);
SerTx("'):
SerTx(d1):
SerTx(d2);
SerTx(d3);
SerTx(d4);
SerTx(0x0d);
delay(500):

You might also like