Vous êtes sur la page 1sur 5

Manual Prácticas de Microcontrolador PIC16F8XX Práctica 1: Kit

Práctica 1: Kit

Manejo de Puertos como Salida Digital

Objetivo
• El alumno comprenderá el funcionamiento de las entradas y salidas
digitales en los puertos del microcontrolador PIC16F887.
• El alumno aprenderá a calcular tiempos de ejecución en base a
ciclos máquina.

Descripción
En los años 80s existió una serie de televisión llamada “El auto increíble”
(Knight Driver). Este automóvil además de tener turbinas y hasta mente
propia, contaba con una barra luminosa en la parte frontal, arriba de la
defensa. Esta barrita contaba con una luz que se recorría de un extremo a
otro como muestra la figura 1.

Como se puede se puede apreciar en el


diagrama, es necesario configurar un
puerto de 8 bits como salida digital. El
estado inicial del puerto será de ‘1’, se
mostrará el valor por un instante de
tiempo t en cada uno de los pasos y
posteriormente se recorrerá el valor del
puerto un lugar a la derecha, y así
sucesivamente hasta que esta luz llegue
hasta la posición de extrema izquierda;
una vez ahí, habrá que recorrer esta luz a
la derecha hasta llegar a la posición
Figura 1. Secuencia de inicial y repetir el ciclo infinitamente.
encendido de luces

Notas de diseño
1. Hay que tomar en cuenta que en el microcontrolador que se
pretende utilizar, muchos de los puertos tienen también la función de
entradas de canales analógicos, por lo cual es necesario
configurarlos como entradas y salidas digitales. Se recomienda ver el
Apunte Puertos.
2. No hay que olvidar que el valor inicial del bit de acarreo es
indeterminado y que las instrucciones de rotación de bit utilizan
dicho bit para realizar su operación, por lo cual es necesario
garantizar que su valor sea puesto en ‘0’ antes de comenzar el
recorrido.

Ulises M. Peñuelas Rivas Página 1


Manual Prácticas de Microcontrolador PIC16F8XX Práctica 1: Kit

Tabla de Entradas y Salidas


En la tabla de entradas y salidas se describe la función y ubicación de los
elementos que se utilizarán del microcontrolador y se le asignará un alias el
cuál servirá para que el diagrama de flujo que se proponga se general.

Tabla 1. Tabla de entradas y salidas


Descripción Ubicación Tipo Alias
Se necesita un
PORTB O KIT
puerto de 8 bits

Reglas de Comportamiento
En las reglas de comportamiento se establece que tipo de conexión
deberán llevar los elementos electrónicos, así como polaridades y
acciones, por ejemplo, si un botón va a funcionar como normalmente
abierto o normalmente cerrado.

Para esta práctica hay que establecer qué tipo de luces se conectarán,
éstas pueden ser pequeños focos o LEDs. Si se escogieran lámpara no es
necesario establecer una polaridad, lo que se deberá ser necesario es
establecer el voltaje de funcionamiento y las potencia para así poder
escoger los elementos de potencia adecuados. Para el caso de los LEDs es
necesario establecer la polaridad, ya que estos elemento van a emitir luz
de acuerdo a la conexión que se establezca.

Se proponen LEDs y funcionarán bajo las siguientes reglas:


1. Será una barra de LEDs de por lo menos 8 elementos.
2. Tendrán una polaridad tal que al conectar un ‘1’ lógico, el LED
conectado emitirá luz.

Ulises M. Peñuelas Rivas Página 2


Manual Prácticas de Microcontrolador PIC16F8XX Práctica 1: Kit

Diagrama de Flujo
El diagrama de flujo es el diseño lógico del algoritmo propuesto, éste
deberá considerar cada uno de los pasos a seguir para poder obtener la
respuesta esperada. El diagrama de flujo, por fuerza, deberá ser general,
de tal forma que pueda ser programado en cualquier plataforma y por lo
anterior deberá utilizar los alias propuestos en la tabla de entradas y salidas
(ver Tabla 1).

RETARDO
INICIO
71 ms

KIT = 1 x=9

RETARDO
71ms y = 68

NO KIT = KIT * 2 z = 192

z--
KIT<7> == 1?

NO
SI NO
SI
NO z == 0?

RETARDO
71ms
SI

NO KIT = KIT / 2
y == 0?

SI
KIT<7> == 1?

x == 0?

FIN
SI

REGRESO

Figura 2. Diagrama de flujo del Kit

Ulises M. Peñuelas Rivas Página 3


Manual Prácticas de Microcontrolador PIC16F8XX Práctica 1: Kit

Diagrama Electrónico
El diagrama electrónico se deberá hacer con componentes estándar que
sea posible de conseguir y deberán respetar las reglas de comportamiento
comentadas anteriormente. Cada uno de los componentes deberá indicar
su valor y polaridad.

Figura 3. Diagrama electrónico

Ulises M. Peñuelas Rivas Página 4


Manual Prácticas de Microcontrolador PIC16F8XX Práctica 1: Kit

Listado del programa


;PRÁCTICA 1 KIT

INCLUDE P16F887.INC ;SE CARGA LA LIBRERÍA DE MICROCONTROLADOR

;RAM DE PROPÓSITO GENERAL


TMP0 EQU 0X25 ;ALMACENARÁ EL VALOR X PARA EL RETARDO
TMP1 EQU 0X21 ;ALMACENARÁ EL VALOR Y PARA EL RETARDO
TMP2 EQU 0X22 ;ALMACENARÁ EL VALOR Z PARA EL RETARDO

;INICIA PROGRAMA
org 0x00 ;VECTOR DE RESET
goto INICIO ;SALTA AL VECTOR DE INTERRUPCIÓN

org 0x04 ;VECTOR DE INTERRUPCIÓN


INICIO
BANKSEL ANSELH ;CAMBIA AL BANCO 3
CLRF ANSELH ;CONFIGURA AL PB COMO DIGITAL

BANKSEL TRISB ;CAMBIA AL BANCO 1


CLRF TRISB ;CONFIGURA AL PB COMO SALIDA

BANKSEL PORTA ;CAMBIA AL BANCO 0

BCF STATUS,C ;LIMPIA EL ACARREO

MOVLW B'00000001' ;CARGA AL 1 -> PB


MOVWF PORTB

IZQ CALL DELAY ;LLAMA AL RETARDO


RLF PORTB,F ;PB = PB * 2
BTFSS PORTB,7 ;PB<7> == 1?
GOTO IZQ ;NO, VE A IZQ
DER CALL DELAY ;LLAMA AL RETARDO
RRF PORTB,F ;PB = PB / 2
BTFSS PORTB,0 ;PB<0> == 1?
GOTO DER ;NO, VE A DER
GOTO IZQ ;SI, VE A IZQ

;SUBRUTINA DE RETARDO DE 71 ms
;LA FUNCIÓN DE RETARDO PARA ESTE PROGRAMA ES t = (5 + 4x + 4xy +3xyz)(200ns)
;DONDE x = 9, y = 68, z = 162
DELAY MOVLW .9 ;CARGA EL VALOR DE X
MOVWF TMP0
DEL0 MOVLW .68 ;CARGA EL VALOR DE Y
MOVWF TMP1
DEL1 MOVLW .162 ;CARGA EL VALOR DE Z
MOVWF TMP2
DEL2 DECFSZ TMP2,F ;Z--, Z == 0?
GOTO DEL2
DECFSZ TMP1,F ;Y--, Y == 0?
GOTO DEL1
DECFSZ TMP0,F ;X--, X == 0?
GOTO DEL0
RETURN ;REGRESO

END

Ulises M. Peñuelas Rivas Página 5

Vous aimerez peut-être aussi