Está en la página 1de 12

Unidad Académica LA PAZ EL ALTO X

CURSO
Carrera Ingeniería Electrónica
Semestre Sexto
Turno Mañana
Paralelo A
Asignatura Procesamiento Digital de Señales
Sigla ELN-326
PRACTICA
Evaluación Primer Parcial Segundo Parcial E. Final
Tipo de práctica Ejercicios Investigación Laboratorio
Código de práctica L5
Título Secuenciador y Control de Leds
ESTUDIANTE
Apellidos Paredes Saavedra
Nombre(s) Alex
FECHA DE CARGADO EN CAMPUSUTB
DIA 26 MES ABRIL AÑO 2022
DOCENTE
Ing. Crispín Condori
Rodríguez
Plataforma campusutb.com
SECUENCIADOR Y CONTROL DE LEDS

1. OBJETIVO.-

El principal objetivo de este laboratorio es elaborar, diseñar y construir el circuito

utilizando microcontrolador PIC 16f877A, haciendo el código en MIKRO C, para el

funcionamiento se utilizaron varios leds, circuito BCD 7447, display de 7 segmentos, etc.

DESCRIPCIÓN DEL FUNCIONAMIENTO.-

Usando los puertos como salidas del microcontrolador vamos hacer la secuencia con los

leds, también un contador de las secuencias utilizando el circuito integrado 7447 junto

con los displays de 7 segmentos.

CIRCUITO.-

Para el presente circuito se utilizó un diseño del canal de YouTube del docente.

2. LISTA DE COMPONENTES.-

- Microcontrolador PIC 16f877A

- Leds de varios colores

- BCD 7447

- BCD 7448

- Display de 7 segmentos (Ánodo Común)

- Display de 7 Segmentos (Cátodo Común)

- Resistencias 220 Ohm

- Crystal de 4 MHz

- Capacitores de 22 pF

- Pulsador

- Protoboard
- Cables Jumper

- Fuente de 5V

3. EXPERIENCIAS ADQUIRIDAS.-

Para el armado del circuito tener cuidado con la polaridad en las conexiones con el

microcontrolador y también con el circuito integrado 7447, para el correcto

funcionamiento.

4. CONCLUSIONES.-

Después del armado se pudo verificar que para el display se tiene que conectar las entradas,

a, b, c, y d, a las salidas del puerto del microcontrolador de igual manera en el circuito

integrado 7447 llevar los pines, 3, 4 y 5 a VCC, para el correcto funcionamiento.

5. RECOMENDACIONES.-

Revisar las conexiones de los cables jumper porque algunos tienen un falso contacto y eso

puede ocasionar fallas en el circuito y también la polaridad de los pines del

microcontrolador, circuito integrado 7447 y los displays de 7 segmentos.

6. DIAGRAMA DEL CIRCUITO.-


7. CODIGO.

void main()

const TIEMPO = 200; // 200 milisegundos

unsigned int ciclo, n = 4; // n es la cantidad de ciclos

TRISB = 0b00000000; // PUERTO (B) SALIDA

TRISD = 0b00000000; // PUERTO (D) SALIDA

PORTB = 0b00000000; // PUERTO (B)APAGADO

PORTD = 0b00000000; // DISPLAYs EN CERO


while(1)

for(ciclo = 1; ciclo <= n; ciclo++) // Secuencia 1

PORTD = (ciclo<<4)|(1);

PORTB = 0b10000000; delay_ms(TIEMPO);

PORTB = 0b11000000; delay_ms(TIEMPO);

PORTB = 0b01100000; delay_ms(TIEMPO);

PORTB = 0b00110000; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);

PORTB = 0b00001100; delay_ms(TIEMPO);

PORTB = 0b00000110; delay_ms(TIEMPO);

PORTB = 0b00000011; delay_ms(TIEMPO);

PORTB = 0b00000001; delay_ms(TIEMPO);

for(ciclo = 1; ciclo <= n; ciclo++) // Secuencia 2

PORTD = (ciclo<<4)|(2);
PORTB = 0b10000000; delay_ms(TIEMPO);

PORTB = 0b11000000; delay_ms(TIEMPO);

PORTB = 0b01100000; delay_ms(TIEMPO);

PORTB = 0b00110000; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);

PORTB = 0b00001100; delay_ms(TIEMPO);

PORTB = 0b00000110; delay_ms(TIEMPO);

PORTB = 0b00000011; delay_ms(TIEMPO);

PORTB = 0b00000001; delay_ms(TIEMPO);

for(ciclo = 1; ciclo <= n; ciclo++) // Secuencia 3

PORTD = (ciclo<<4)|(3);

PORTB = 0b10000000; delay_ms(TIEMPO);

PORTB = 0b11000000; delay_ms(TIEMPO);

PORTB = 0b01100000; delay_ms(TIEMPO);

PORTB = 0b00110000; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);


PORTB = 0b00001100; delay_ms(TIEMPO);

PORTB = 0b00000110; delay_ms(TIEMPO);

PORTB = 0b00000011; delay_ms(TIEMPO);

PORTB = 0b00000001; delay_ms(TIEMPO);

void main()

const TIEMPO = 200; // 200 milisegundos

TRISB = 0b00000000; // PUERTO (B)

TRISD.RD0 = 1; // ENTRADA

TRISD.RD1 = 1; // ENTRADA

PORTB = 0b00000000; // LEDs APAGADO

while(1)

if(PORTD.RD1 == 0 && PORTD.RD0 == 0) // SECUENCIA 0


{

PORTB = 0b10000000; delay_ms(TIEMPO);

PORTB = 0b11000000; delay_ms(TIEMPO);

PORTB = 0b01100000; delay_ms(TIEMPO);

PORTB = 0b00110000; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);

PORTB = 0b00001100; delay_ms(TIEMPO);

PORTB = 0b00000110; delay_ms(TIEMPO);

PORTB = 0b00000011; delay_ms(TIEMPO);

PORTB = 0b00000001; delay_ms(TIEMPO);

if(PORTD.RD1 == 0 && PORTD.RD0 == 1) // SECUENCIA 1

PORTB = 0b00000001; delay_ms(TIEMPO);

PORTB = 0b00000011; delay_ms(TIEMPO);

PORTB = 0b00000110; delay_ms(TIEMPO);

PORTB = 0b00001100; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);


PORTB = 0b00110000; delay_ms(TIEMPO);

PORTB = 0b01100000; delay_ms(TIEMPO);

PORTB = 0b11000000; delay_ms(TIEMPO);

PORTB = 0b10000000; delay_ms(TIEMPO);

if(PORTD.RD1 == 1 && PORTD.RD0 == 0) // SECUENCIA 2

PORTB = 0b10000001; delay_ms(TIEMPO);

PORTB = 0b11000011; delay_ms(TIEMPO);

PORTB = 0b01100110; delay_ms(TIEMPO);

PORTB = 0b00111100; delay_ms(TIEMPO);

PORTB = 0b00011000; delay_ms(TIEMPO);

PORTB = 0b00111100; delay_ms(TIEMPO);

PORTB = 0b01100110; delay_ms(TIEMPO);

PORTB = 0b11000011; delay_ms(TIEMPO);

PORTB = 0b10000001; delay_ms(TIEMPO);

if(PORTD.RD1 == 1 && PORTD.RD0 == 1) // SECUENCIA 3


{

PORTB = 0b11110000; delay_ms(TIEMPO);

PORTB = 0b01111000; delay_ms(TIEMPO);

PORTB = 0b00111110; delay_ms(TIEMPO);

PORTB = 0b00011110; delay_ms(TIEMPO);

PORTB = 0b00001111; delay_ms(TIEMPO);

PORTB = 0b10000111; delay_ms(TIEMPO);

PORTB = 0b11000011; delay_ms(TIEMPO);

PORTB = 0b11100001; delay_ms(TIEMPO);

8. ANEXOS.

También podría gustarte