Date post: | 30-Jun-2015 |
Category: |
Education |
Upload: | tecnicaturaenelectronica |
View: | 129 times |
Download: | 0 times |
Clase: Puertos de los microcontroladores PIC
1
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
ELECTRÓNICA DIGITAL II
Clase 2
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
TEORÍA PARTE 1: PUERTOS DE LOS MICROCONTROLADORES
PIC
2Clase: Puertos de los microcontroladores PIC
Clase: Puertos de los microcontroladores PIC
3
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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.
Clase: Puertos de los microcontroladores PIC
4
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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.
Clase: Puertos de los microcontroladores PIC
5
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Registros asociados a la configuración de puertos para PIC16F84
Clase: Puertos de los microcontroladores PIC
6
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Registros asociados a la configuración de puertos para PIC16F873
Clase: Puertos de los microcontroladores PIC
7
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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.
Clase: Puertos de los microcontroladores PIC
8
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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.
Clase: Puertos de los microcontroladores PIC 9
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Distribución de pines del PIC16F84
Clase: Puertos de los microcontroladores PIC 10
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
PIC16F84: función de cada terminal
Clase: Puertos de los microcontroladores PIC
11
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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
12
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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 13
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Distribución de pines del PIC16F873
Clase: Puertos de los microcontroladores PIC 14
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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 15
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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 16
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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 17
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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 18
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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
19
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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
20
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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
21
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Cómo crear una ventana de estímulos
La ventana de estímulos se abre desde la pestaña Debugger, seleccionando la opción New Workbook dentro de la opción Stimulus.
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.
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura 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
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
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.
Clase: Puertos de los microcontroladores PIC
24
Cómo crear un estímulo sincrónico
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
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á.
Clase: Puertos de los microcontroladores PIC
25
Cómo crear un estímulo sincrónico
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Clase: Puertos de los microcontroladores PIC
26
Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras
Fuente de información
• Hoja de datos del microcontrolador PIC16F84 y PIC16F882 proporcionada por MICROCHIP en su página web.