You are on page 1of 9

Flashing LEDs using PIC16F877

Microcontroller - Mini Project Mr. Zulkifli A.Rahman Group members: Salih Abdelwahab 4082007931

IDEA
Flashing LED

Schematic Design

Programming

Program Flowchart

START

SET PORT B OUTPUT

SEND 1 TO PORTS RB4-RB7

DELAY (500mS)

SEND 0 TO PORTS RB4-RB7

SEND 1 TO PORTS RB0-RB3

DELAY (500mS)

SEND 0 TO PORTS RB0-RB3

Program start Setting the ports directions On half of the port B to light up the right side leds Wait for half a second Off the right side leds On the left side leds Wait for half a second Off the left side leds Keep looping till the power is off

Programming

Program High Level C Code

#include <pic.h> #include "Delay.h"


__CONFIG (0x3F32); #define #define #define #define #define #define #define #define void main () { PORTB=0x00; TRISB=0X00; while(1) { r1='1'; r2='1'; r3='1'; r4='1'; DelayMs(500); r1='0'; r2='0'; r3='0'; r4='0'; l1='1'; l2='1'; l3='1'; l4='1'; DelayMs(500); l1='0'; l2='0'; l3='0'; l4='0'; } return; } *\\ clear port B *\\ set port B as output r1 r2 r3 r4 l1 l2 l3 l4 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 *\\ configuring the PIC *\\ assign port RB7 to r1 *\\ assign port RB6 to r2 *\\ assign port RB5 to r3 *\\ assign port RB4 to r4 *\\ assign port RB3 to l1 *\\ assign port RB2 to l2 *\\ assign port RB1 to l3 *\\ assign port RB0 to l4

*\\on all right side leds

*\\ delay for 0.5sec *\\off all right side leds

*\\on all left side leds

*\\ delay for 0.5sec *\\ off all left side leds

Programming

Program Low Level Assembly Code

#include <pic.h> #include "Delay.h"


__CONFIG (0x3F32); #define #define #define #define #define #define #define #define void main () { PORTB=0x00; TRISB=0X00; while(1) { r1='1'; r2='1'; r3='1'; r4='1'; DelayMs(500); r1='0'; r2='0'; r3='0'; r4='0'; l1='1'; l2='1'; l3='1'; l4='1'; DelayMs(500); l1='0'; l2='0'; l3='0'; l4='0'; } return; } *\\ clear port B *\\ set port B as output r1 r2 r3 r4 l1 l2 l3 l4 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 *\\ configuring the PIC *\\ assign port RB7 to r1 *\\ assign port RB6 to r2 *\\ assign port RB5 to r3 *\\ assign port RB4 to r4 *\\ assign port RB3 to l1 *\\ assign port RB2 to l2 *\\ assign port RB1 to l3 *\\ assign port RB0 to l4

*\\on all right side leds

*\\ delay for 0.5sec *\\off all right side leds

*\\on all left side leds

*\\ delay for 0.5sec *\\ off all left side leds

You might also like