0% found this document useful (0 votes)
30 views4 pages

PSDL Lab

Uploaded by

MOVIES
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)
30 views4 pages

PSDL Lab

Uploaded by

MOVIES
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/ 4

PSDL Practicals

1.Study of Embedded C programming language (Overview, syntax, One simple


program like addition of two numbers).
#include<PIC18F458.h>
#include<stdio.h>
void main(){
int a,b,c;
a=100;
b=100;
c=a+b;
TRISB=0;
PORTC=c;
}

2. Write an Embedded C program to add array of n numbers.


#include<PIC18F458.h>
#include<stdio.h>
void main(){
int i,sum;
int n[]={11,12,13,14,15};
sum=0;
for(i=0;i<=4;i++){
sum=sum+n[i];
}
TRISB=0;
PORTB=sum;
}

3. Write an Embedded C program to transfer elements from one location to another for
following:
i) Internal to internal memory transfer
ii) Internal to external memory transfer.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <PIC18F458.h>
#pragma config OSC=HS
#define SIZE 10
unsigned char data[SIZE];
unsigned char external_mem[SIZE];
void transfer_internal_to_internal(unsigned char *src,unsigned char
*dest,int size)
{
memcpy(dest, src, size);
}
void transfer_internal_to_external(unsigned char *src,unsigned char
*dest,int size)
{
memcpy(dest, src, size);
}
void main(void)
{

Created by Jarvis
for( int i = 0; i<SIZE; i++)
{
data[i]=i;
}
unsigned char internal_data[SIZE];
transfer_internal_to_internal(data,internal_data,SIZE );
transfer_internal_to_external(data,external_mem,SIZE );
printf("Data in internal Memory : \n");
for (int i =0; i<SIZE; i++ ){
printf("%d",internal_data[i]);
}
printf("\n");
printf("Data in external Memory : \n");
for (int i =0; i<SIZE; i++ ){
printf("%d",external_mem[i]);
}
printf("\n");
while(1);
}

4. Write an Embedded C program to interface PIC 18FXXX with LED & blinking it using
specified delay.

#include <PIC18F458.h>
// Define the delay in milliseconds
void delay();
void main(void) {
// Set the TRISB register to output mode for the LED
TRISB = 0x00;
// Loop forever
// Turn the LED on
while(1)
{
PORTB = 0xFF;
delay();
PORTB = 0x00;
delay();
}
}
void delay()
{
for(int
i=0;i<=10000;i++)
{

}
}

5. Write an Embedded C program for LCD interfacing with PIC 18FXXX.


#include <PIC18F458.h>
#define ldata PORTB
#define rs PORTCbits.RC1
#define en PORTCbits.RC0
void delay();
void lcdcmd(unsigned char);
void lcdval(unsigned char);
void main()
{
unsigned char xc;
TRISB=0;
TRISC=0;
lcdcmd(0x38);
lcdcmd(0x0E);
lcdcmd(0x01);
lcdcmd(0x06);
lcdcmd(0xC0);
lcdval('H');
lcdval('E');
lcdval('L');
lcdval('L');
lcdval('O');
while(1);
}
void lcdcmd(unsigned char y)
{
rs=0;
ldata=y;
en=1;
delay();
en=0;
delay();
}
void lcdval(unsigned char y)
{
rs=1;
ldata=y;
en=1;
delay();
en=0;
delay();
}
void delay()
{
for(int i=0;i<=2000;i++)
{}

6.Write an Embedded C program for Generating PWM signal for DC motor.

#include<pic18f458.h>
void main(void)
{
TRISCbits.RC2 = 0;
CCP1CONbits.CCP1M = 0b1100;
TMR2ON = 0;
while(1)
{
PR2 = 74;
CCPR1L = 18;
TMR2ON = 1;
}
}

7. Write an Embedded C program for PC to PC serial communication using UART.


#include <PIC18F458.h>
void main()
{
unsigned char a[]="WELCOME";
int i;
TRISB=0;
TRISCbits.RC6=0;
TRISCbits.RC7=1;
SPBRG=0X4D;
RCSTAbits.SPEN = 1;
TXSTAbits.TXEN = 1;

for(i=0;i<=6;i++)
{

while(PIR1bits.TXIF==0);
TXREG=a[i];
PIR1bits.TXIF=0;
}
while(1);
}

You might also like