Está en la página 1de 5

UNIVERSIDAD TECNOLOGICA DEL PERÚ

Ingeniería Electrónica - Ingeniería Mecatrónica

Circuitos Lógicos Secuenciales Emitido: 15 Diciembre 2020


Laboratorio Dirigido #7 Entrega: 22 Diciembre 2020

Manejo de retardos y tablas

Objetivo: “Manejar retardos y visualizadores de 7 segmentos”


En este laboratorio se va a determinar los pasos en la construcción de retardos de tiempo
utilizando ASM y algunas aplicaciones en lenguaje ASM usando microcontroladores PIC
16F877

1.- Pre-Laboratorio
a) ¿Qué es un display de 7 segmentos?
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
b) ¿Cuál es la diferencia principal entre un display de ánodo común y cátodo común?
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
2.- Actividades del laboratorio

a) Experiencia 1. Construcción de proyecto para el manejo de retardos en MPLAB

1. Abrir el MPLABX
2. Crear un proyecto llamado “Lab_dir_7”, para el microcontrolador PIC16F877.
3. Crear un nuevo programa principal llamado “Lab7.asm”
a. Listar e incluir el dispositivo ( #include <device_name>.inc)
b. Agregar los códigos de configuración, considerando un cristal externo de 4MHz y
“HS” en configuración del oscilador y MCLR habilitado.
c. Definición de variables, si fuera necesario.
d. Código principal.

4. Desarrollar un programa que configure el pin 0 del puerto A como entrada y las líneas del
puerto B como salida. Cada vez que se presione el interruptor se aumentará en uno la
cuenta de un numero binario que será mostrado permanentemente en el puerto B. Para
esto, se necesita evitar el periodo de rebote ocasionado por el interruptor mecánico
creando un retardo de 250ms.

MEng. Luis E. Manga Olivera C18970@utp.edu.pe


5. Compilar el proyecto.
6. Realizar la simulación con Proteus y verificar el funcionamiento.

U1
BTN113 RB0/INT33
BUTTON14 OSC1/CLKIN
OSC2/CLKOUT
RB134 0
RB235
2
RA0/AN0
RB3/PGM36 0
3 RA1/AN1 RB437
4 RA2/AN2/VREF-/CVREF RB538 0
5 RB6/PGC39
RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT
R2 6 RB7/PGD40 0
7
10k
8
15
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2
0
16
RE0/AN5/RD
RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
RE1/AN6/WR
17 0
18
RE2/AN7/CS
23
24
0
1
MCLR/Vpp/THV
25
26
0
RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730

PIC16F877A
Figura 1 Circuito en Proteus
U1
BTN113OSC1/CLKIN OSC2/CLKOUT RB0/INT 33
BUTTON14 RB134 1
RB235
RA0/AN0 RA1/AN1
2 RB3/PGM36 0
3 RB437
RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT
4 RB538 0
5 RB6/PGC39
R2 6 RB7/PGD40 0
7
10k
15
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2
0
RE0/AN5/RD 16
RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
RE1/AN6/WR 17 0
RE2/AN7/CS 18
23 0
1 24
MCLR/Vpp/THV
25 0
26

RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730

PIC16F877A

U1
BTN113OSC1/CLKIN OSC2/CLKOUT RB0/INT33
BUTTON14 RB134 1
RB235
RA0/AN0 RA1/AN1
2 RB3/PGM36 1
3 RB437
RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT
4 RB538
0
5
R2 6
RB6/PGC39
RB7/PGD40
0
10k 7
8
15
RC0/T1OSO/T1CKI RC1/T1OSI/CCP2
0
16
RC2/CCP1
RE0/AN5/RD
RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
17 0
RE1/AN6/WR
RE2/AN7/CS
18
23
0
1
MCLR/Vpp/THV 24
25
0
26

RD0/PSP019
RD1/PSP120
RD2/PSP221
RD3/PSP322
RD4/PSP427
RD5/PSP528
RD6/PSP629
RD7/PSP730

PIC16F877A
Figura 2 Simulación en Proteus

b) Experiencia 1. Construcción de proyecto para el manejo visualizadores de 7 segmentos


en MPLAB

1. Abrir el MPLABX
2. Crear un proyecto llamado “Lab_dir_7-2”, para el microcontrolador PIC16F877.
3. Crear un nuevo programa principal llamado “Lab7-2.asm”
a. Listar e incluir el dispositivo ( #include <device_name>.inc)
b. Agregar los códigos de configuración, considerando un cristal externo de 4MHz y
“HS” en configuración del oscilador y MCLR habilitado.
c. Definición de variables, si fuera necesario.
d. Código principal.

4. Desarrollar un programa que configure el pin 0 del puerto A como entrada y las líneas del
puerto B como salida. Cada vez que se presione el interruptor se aumentará en uno la
cuenta de un numero binario que será mostrado permanentemente en un display
conectado al puerto B. Además. se necesita evitar el periodo de rebote ocasionado por el
interruptor mecánico creando un retardo de 250ms.
5. Compilar el proyecto.
6. Realizar la simulación con Proteus y verificar el funcionamiento.
2
15pF
CRYSTAL
U1

1
OSC1/CLKIN RB0/INT33
15pF OSC2/CLKOUT RB134
220R
RB235
220R
2 RB3/PGM36
RA0/AN0 RA1/AN1 220R
3 RB437
RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT 220R
4 RB538
220R
5 RB6/PGC39
220R
6 RB7/PGD40
220R
7
15
8 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2
16
RE0/AN5/RD
RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
BUTTON 17
RE1/AN6/WR
18
RE2/AN7/CS
23
1 24
MCLR/Vpp/THV
25
26

10k 19
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
20
21
22
27
28
29
30

PIC16F877A
Figura 1 Circuito en Proteus
2

15pF
CRYSTAL
U1
1

OSC1/CLKIN RB0/INT33
15pF OSC2/CLKOUT RB134
220R
RB235
220R
2 RB3/PGM36
RA0/AN0 RA1/AN1 220R
3 RB437
RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT 220R
4 RB538
220R
5 RB6/PGC39
220R
6 RB7/PGD40
220R
7
15
8 RC0/T1OSO/T1CKI RC1/T1OSI/CCP2
16
RE0/AN5/RD
RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SDO RC6/TX/CK RC7/RX/DT
BUTTON 17
RE1/AN6/WR
18
RE2/AN7/CS
23
1 24
MCLR/Vpp/THV
25
26

10k 19
RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7
20
21
22
27
28
29
30

PIC16F877A
Figura 2 Simulación en Proteus

4.- Post-Laboratorio
1. Usando la experiencia de la actividad 2a, diseñar, simular e implementar un programa que
configure el pin 0 del puerto A como entrada y las líneas del puerto C como salida. Cada
vez que se presione el interruptor se decrementará en uno la cuenta de un numero binario
que será mostrado permanentemente en el puerto C y que comenzará con el valor b’
11111100’. Para esto, se necesita evitar el periodo de rebote ocasionado por el interruptor
mecánico creando un retardo de 200ms. Presentar el código en MPLAB y la simulación en
Proteus.

2. Usando la experiencia de la actividad 2b, diseñar, simular e implementar un programa que


configure el pin 0 del puerto A como entrada y las líneas del puerto B como salida. Cada
vez que se presione el interruptor se aumentará en uno la cuenta de un numero binario
que será mostrado permanentemente en un display Ánodo Común conectado al puerto B.
Además. se necesita evitar el periodo de rebote ocasionado por el interruptor mecánico
creando un retardo de 200ms. Presentar el código en MPLAB, tabla del display de 7
segmentos ánodo común y la simulación en Proteus.

También podría gustarte