CODE micro
CODE micro
ORG
UP:
(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
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 = ,
}
Experiment No 4
(interface of 16x2 lcd)
#include<p18f458.h>
#include "LCD8bitspic.h"
void main()
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()
lcd_cmd(0x38);
delay(2);
Icd_cmd(0xOE);
delay(2):
lcd_cmd(0x01);
delay(2);
Icd_cmd(0x06);
delay(2):
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;
if(x==1)
Icd_cmd(0x80+y-1);
else if (x==2)
lcd_cmd(0xCO+y-1);
void lcd_send string(unsigned char*str)
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
void Buzzer_on(void)
PORTAbits.RA3=1;
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):
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)
#include"lcd.h"
#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
{
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;
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;
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).
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
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;
|/Interrupt Setup
RCONbits. IPEN = 1;
void TMRISR(void);
#pragma code InterruptVectorHigh=0x08
asm
goto TMRISR
_endasm
#pragma code
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;
{
TimerOlnit():
8_ui8TimerOnflag=0;
TRISD = Ox00;
while(1) ;
Experiment No 8
(Interfacing serial port with Transmitting data with PIC)
#include <P18F4520.h>
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>
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;
for(i-0;ic«xi+)
for(j-0;j<x;j+*).
void main(void)
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):