You are on page 1of 7

LAB MANUAL

LAB NO # 04

Thursday, October 15, 2015

Task: 7 Segment Display Common Anode & Common Cathode


/*
* File: 7 seg.c
* Author: Muhammad Habza
*
* Created on October 24, 2015, 11:13 PM
*/
#define _XTAL_FREQ 20000000
#include<xc.h>
#include <stdio.h>
#include <stdlib.h>
__PROG_CONFIG(1,0X3F32);
/*
*
*/
int main(int argc, char** argv)
{
TRISB=0X00;
TRISC=0X00;
while(1)
{
PORTB=0X40;
PORTC=0X6F;
__delay_ms(1000);
PORTB=0XF9;
PORTC=0X7F;
__delay_ms(1000);
PORTB=0X24;
PORTC=0X07;
__delay_ms(1000);
PORTB=0X30;
PORTC=0X7D;
__delay_ms(1000);
PORTB=0X19;
PORTC=0X6D;
__delay_ms(1000);
PORTB=0X12;
PORTC=0X66;
__delay_ms(1000);
PORTB=0X02;
PORTC=0X4F;
__delay_ms(1000);
PORTB=0XF8;
PORTC=0X5B;
MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL
__delay_ms(1000);
PORTB=0X00;
PORTC=0X06;
__delay_ms(1000);
PORTB=0X10;
PORTC=0X3F;
__delay_ms(1000);
}
return (EXIT_SUCCESS);
}

LAB NO # 05

Monday, October 19, 2015

Task: 7 Segment Display Using BCD


/*
* File: BCD TO 7SEG.c
* Author: Muhammad Habza
*
* Created on October 19, 2015, 5:34 PM
*/
#define _XTAL_FREQ 20000000
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
__PROG_CONFIG (1,0X3F32);
/*
*
*/
int main(int argc, char** argv)
{
TRISB=0X00;
while(1)
{
PORTB=0X42;
}
return (EXIT_SUCCESS);
}

MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL

Task: 7 Segment Display without using BCD


/*
* File: 7 SEG BY TRANS.c
* Author: Muhammad Habza
*
* Created on October 19, 2015, 5:40 PM
*/
#define _XTAL_FREQ 20000000
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>
__PROG_CONFIG (1,0X3F32);
/*
*
*/
int main(int argc, char** argv)
{
TRISB=0X00;
TRISC=0X00;
TRISD=0XFC;
while(1)
{
PORTB=0X06;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X5B;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X4F;
PORTC=0X3F;
MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL
__delay_ms(1000);
PORTB=0X66;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X6D;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X7D;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X07;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X7F;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X6F;
PORTC=0X3F;
__delay_ms(1000);
PORTB=0X3F;
PORTC=0X3F;
__delay_ms(1000);
}
return (EXIT_SUCCESS);
}

LAB NO # 06

Thursday, October 22, 2015

Task: 7 Segment Display by using Transistor & functions


/*
* File: 7 seg using transistor.c
* Author: Muhammad Habza
*
* Created on October 22, 2015, 6:18 AM
*/
#define _XTAL_FREQ 20000000
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
__PROG_CONFIG (1,0X3F32);
/*
*
*/
unsigned char getpattern (unsigned char digit);
void disp (void);
int main(int argc,char** argv)
MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL
{
TRISB=0X00;
TRISD=0X00;
while(1)
{
disp ();
}
return (EXIT_SUCCESS);
}
unsigned char getpattern (unsigned char digit)
{
if (digit==0)
return(0X3F);
if (digit==1)
return(0X06);
if (digit==2)
return(0X5B);
if (digit==3)
return(0X4F);
if (digit==4)
return(0X66);
if (digit==5)
return(0X6D);
if (digit==6)
return(0X7D);
if (digit==7)
return(0X07);
if (digit==8)
return(0X7F);
if (digit==9)
return(0X6F);
}
void disp (void)
{
PORTD=0X00;
unsigned char dispseq;
++dispseq;
if (dispseq==1)
{
PORTB=getpattern(1);
RD0=1;
__delay_ms(500);
}
if (dispseq==2)
{
PORTB=getpattern(2);
RD1=1;
MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL
__delay_ms(500);
}
if (dispseq==3)
{
PORTB=getpattern(3);
RD2=1;
__delay_ms(500);
}
if (dispseq==4)
{
PORTB=getpattern(4);
RD3=1;
__delay_ms(500);
}
if (dispseq==5)
{
PORTB=getpattern(5);
RD0=1;
__delay_ms(500);
}
if (dispseq==6)
{
PORTB=getpattern(6);
RD1=1;
__delay_ms(500);
}
if (dispseq==7)
{
PORTB=getpattern(7);
RD2=1;
__delay_ms(500);
}
if (dispseq==8)
{
PORTB=getpattern(8);
RD3=1;
__delay_ms(500);
}
if (dispseq==9)
{
PORTB=getpattern(9);
RD0=1;
__delay_ms(500);
}
if (dispseq==0)
{
PORTB=getpattern(0);
MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

LAB MANUAL
RD0=1;
__delay_ms(500);
dispseq=0;
}
}

MUHAMMAD HABZA MALIK

(UW-13-MTS-BSC-024)

You might also like