Este documento describe los puertos de entrada y salida de los microcontroladores PIC16F84 y PIC16F873. Explica que los puertos permiten la entrada y salida de información en forma de bits y que cada puerto tiene registros asociados para configurarlos como entrada o salida. También presenta el simulador de MPLAB para probar programas y aplicar estímulos a los puertos de entrada para simular señales.
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
Clase - Puertos
1. Clase: Puertos de los
microcontroladores PIC
1
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
ELECTRÓNICA DIGITAL II
Clase 2
2. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
TEORÍA PARTE 1: PUERTOS DE LOS
MICROCONTROLADORES
PIC
Clase: Puertos de los 2
microcontroladores PIC
3. Clase: Puertos de los
microcontroladores PIC
3
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
¿Qué es un PUERTO?
Un puerto de un microcontrolador es un terminal del chip por donde
entra o sale información en forma de bits, 0 ó 1 (masa ó VCC).
Un microcontrolador es más poderoso cuanto más puertos tiene,
puesto que tiene una mayor capacidad de control.
Los puertos individuales se agrupan en “PORTS”, de esta manera
pueden trabajar juntos a nivel de palabra o byte.
Los puertos pueden ser configurados individualmente por el usuario
para que cumplan una determinada función en la aplicación.
Cada pin de un puerto multiplexa diferentes funciones, algunas de
ellas muy disímiles entre sí. Un puerto no puede ser configurado
para cumplir dos funciones al mismo tiempo.
4. Clase: Puertos de los
microcontroladores PIC
4
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Configuración de los PUERTOS
Luego de un RESET, todos los puertos son configurados como
entradas.
Los puertos, en general se configuran al inicio del programa de
aplicación.
Cada puerto tiene 2 o 3 registros asociados: TRISx, PORTx y LATx.
Los micros de la línea 16FXXX no tienen el registro LATx.
Adicionalmente, cuando funcionan como terminal de un periférico, es
necesario además configurar el registro asociado a tal periférico.
5. Clase: Puertos de los
microcontroladores PIC
5
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Registros asociados a la configuración de puertos para PIC16F84
6. Clase: Puertos de los
microcontroladores PIC
6
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Registros asociados a la configuración de puertos para PIC16F873
7. Clase: Puertos de los
microcontroladores PIC
7
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Registros TRIS
Cada puerto tiene asignado un registro TRIS. Al puerto A le
corresponde el TRISA, al puerto B el TRISB, etc.
El registro TRISx se usa para indicar si el puerto será usado como
entrada o salida digital. Cada terminal puede configurarse
individualmente.
El bit 0 de TRISx configura al puerto Rx0, el bit 7 configura al Rx7.
Un 1 en un bits de TRISx configura al puerto correspondiente como
entrada; un 0 lo configura como salida.
8. Clase: Puertos de los
microcontroladores PIC
8
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Registros PORT
Cada puerto tiene asignado un registro PORT. Al puerto A le
corresponde el PORTA, al puerto B el PORTB, etc.
El registro PORTx se usa para leer el estado del puerto o para sacar
información por él. Los puertos pueden leerse o escribirse
individualmente o agrupados todo el puerto completo
El bit 0 de PORTx controla el puerto Rx0, el bit 7 controla al Rx7.
En microcontroladores más modernos, existe un registro adicional
llamado LATx. En estos micros, los datos se leen mediante el
registro PORTx y se sacan mediante el LATx.
9. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Distribución de pines del PIC16F84
Clase: Puertos de los
microcontroladores PIC 9
10. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
PIC16F84: función de cada terminal
Clase: Puertos de los
microcontroladores PIC 10
11. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
PIC16F84: Puerto A
El Puerto A tiene un ancho de 5 bits (RA0-RA4)
Las entradas tienen niveles lógicos TTL, excepto RA4.
Las salidas tienen niveles lógicos CMOS, excepto RA4.
RA4 tiene niveles lógicos Schmitt Trigger como entrada y colector
abierto como salida.
RA4 multiplexa la entrada de reloj del TIMER0.
Clase: Puertos de los
microcontroladores PIC
11
12. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
PIC16F84: Puerto B
El Puerto B tiene un ancho de 8 bits (RB0-RB7)
Las entradas tienen niveles lógicos TTL.
Las salidas tienen niveles lógicos CMOS.
Todos los pines de puerto B tienen resistencias de pull-up que son
habilitadas borrando el bit RBPU del registro OPTION_REG.
El nibble superior (RB4-RB7) incorpora una petición de interrupción
por cambio en alguno de sus pines, cuando están configurados
como entradas. Pueden despertar al microcontrolador de una
condicíón SLEEP.
Clase: Puertos de los
microcontroladores PIC
12
13. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital
II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras Distribución de pines del PIC16F873
Clase: Puertos de los
microcontroladores PIC 13
14. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
TEORÍA PARTE 2: ENTORNO DE DESARROLLO MPLAB.
SIMULACIÓN DE PROGRAMAS
Clase: Puertos de los
microcontroladores PIC 14
15. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Simulación de programas
El entorno de desarrollo MPLAB permite simular el funcionamiento del
programa principal. De esta manera es posible ver si el programa
se desempeña según lo pensado y realizarle correcciones.
Durante la simulación es posible observar el estado de los registros
internos y puertos del microcontrolador y de las variables definidas
dentro del programa.
También es posible aplicar señales digitales a los puertos definidos
como entradas.
Clase: Puertos de los
microcontroladores PIC 15
16. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Simulación de programas
Para usar el simulador es necesario habilitarlo. Para ello hay que
tildar la opción 5 MPLABSIM que está dentro de Select Tool en la
pestaña Debugger.
Clase: Puertos de los
microcontroladores PIC 16
17. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Corriendo el programa
Una vez que el programa ha sido compilado exitosamente y el
simulador fue habilitado, se puede correr el programa usando las
teclas de funciones:
• F6 Reset: apunta el contador de programa a la primera instrucción,
es una inicialización.
• F7 Step into: ejecución instrucción por instrucción, ingresa a una
función si la encuentra.
• F8 Step over: ejecuta una función completa en un solo paso.
• F9 Run: corre el programa libremente. En caso de encontrar una
condición de ¨break¨ la ejecución se detiene allí.
• F5 Halt: detiene la ejecución del programa si estaba en bajo la
acción de F8 o F9.
Clase: Puertos de los
microcontroladores PIC 17
18. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Ventana de observación
El estado de los registros
internos, puertos o variables
del programa se pueden ver a
través de la ventana de
observación o ¨Watch
Window¨
La ventana de observación se
habilita desde la pestaña View
en la opción Watch.
Clase: Puertos de los
microcontroladores PIC 18
19. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras Ventana de observación
En la ventana se van agregando los registros, puertos o variables que
se desean ver.
Se puede elegir el formato de presentación: hexa, binario, decimal,
etc.
Durante la simulación, cada variable o registro que cambia su estado
es resaltada en color rojo.
Clase: Puertos de los
microcontroladores PIC
19
20. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Ventana de estímulos
La ventana de estímulos permite simular la aplicación de señales
sincrónicas o asincrónicas a los puertos de entrada. De esta
forma se amplia la capacidad de verificación y depuración de
errores de un programa.
Para utilizar la ventana de estímulos hay que crear una nueva
ventana o abrir una previamente grabada. Una ventana de
estímulos tiene un nombre y una ubicación dentro del directorio.
Clase: Puertos de los
microcontroladores PIC
20
21. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Cómo crear una ventana de estímulos
Clase: Puertos de los
microcontroladores PIC
21
La ventana de estímulos
se abre desde la
pestaña Debugger,
seleccionando la
opción New
Workbook dentro de
la opción Stimulus.
22. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Clase: Puertos de los
microcontroladores PIC
22
Cómo crear un estímulo asincrónico
Un estímulo asincrónico es aquel que no depende del reloj del
microcontrolador, sino que se puede aplicar en cualquier
momento.
Para adicionar una señal asincrónica es necesario seleccionar la
pestaña Asinch dentro de la ventana. Luego se eligen en los
casilleros correspondientes: el puerto al que se aplicará la señal,
la acción sobre este y algún comentario.
23. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Clase: Puertos de los
microcontroladores PIC
23
Cómo crear un estímulo asincrónico
Finalmente se guarda la ventana dándole un nombre y ubicación desde
la pestaña Debugger, seleccionando la opción Save Workbook as
dentro de la opción Stimulus.
24. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Clase: Puertos de los
microcontroladores PIC
24
Cómo crear un estímulo sincrónico
Un estímulo sincrónico es aquel que depende directamente del
reloj del microcontrolador y es procesaro con cada ciclo de
instrucción.
Para adicionar una señal sincrónica es necesario seleccionar la
pestaña Clock Stimulus dentro de la ventana de estímulos.
Como en el caso anterior hay que definir el puerto al que se aplicará
la señal sincrónica, la duración del ciclo alto y del bajo, cuál será
el semiciclo inicial, cuando comenzará a aplicarse y cuando
cesará.
25. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Clase: Puertos de los
microcontroladores PIC
25
Cómo crear un estímulo sincrónico
26. Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II
Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel
Argañaras
Clase: Puertos de los
microcontroladores PIC
26
Fuente de información
• Hoja de datos del microcontrolador PIC16F84 y PIC16F882 proporcionada
por MICROCHIP en su página web.