Está en la página 1de 6

Fecha: 16/09/2020 1

ASIGNATURA: SISTEMAS DIGITALES 2


NOMBRE: DUVAN STIVEN CASTAÑO RAIGOZA
CODIGO: 1087562208
TRABAJO: PROYECTO #2. Encender Y Apagar En Secuencia 8 Leds Con Pulsadores,
Utilizando El Micro controlador PIC16F877A.

CODIGO EN C

// Encender Y Apagar 8 LEDS con pulsadores

#if defined(__PCM__) // Compilador

#include <16F877.h> // Incluye encabezados y definiciones

#fuses XT, NOWDT, PUT, NOPROTECT, NOLVP, BROWNOUT

#use delay (clock = 4000000) // Ajusta cristal de 4 MHz

#byte puerto_b = 06

void main()

int contador;

set_tris_C(255);

set_tris_B(0); // Puerto B como salida digital

puerto_b = 0; // inicializo el puertoB

contador = 0;

do

if(input(PIN_C0)== 0) // pulsador 1 presionado

delay_ms(200); // Antirebote
Fecha: 16/09/2020 2

if(input(PIN_C0)== 1)

contador = contador + 1;

if(contador==1)

output_high(PIN_B0);

if(contador==2)

output_high(PIN_B1);

if(contador==3)

output_high(PIN_B2);

if(contador==4)

output_high(PIN_B3);

if(contador==5)

output_high(PIN_B4);

if(contador==6)

output_high(PIN_B5);

if(contador==7)
Fecha: 16/09/2020 3

output_high(PIN_B6);

if(contador==8)

output_high(PIN_B7);

if(input(PIN_C1)==0) // presión del pulsador 2

delay_ms(200); // eliminar antirebote

if(input(PIN_C1)==1)

contador = contador - 1; // Conteo para apagar los led en secuencia

if(contador==7)

output_low(PIN_B7);

if(contador==6)

output_low(PIN_B6);

if(contador==5)

output_low(PIN_B5);

if(contador==4)

{
Fecha: 16/09/2020 4

output_low(PIN_B4);

if(contador==3)

output_low(PIN_B3);

if(contador==2)

output_low(PIN_B2);

if(contador==1)

output_low(PIN_B1);

if(contador==0)

output_low(PIN_B0);

while(true); // bucle

SIMULACIÓN EN PROTEUS
Fecha: 16/09/2020 5

Encendiendo los leds:

Apagando los leds:


Fecha: 16/09/2020 6

También podría gustarte