Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Digitalio Config 16f887a 886 PDF
Digitalio Config 16f887a 886 PDF
En este articulo trabajamos con 4 PICS. Los PIC16F876A/877A son los que se utilizan en las tarjetas
del laboratorio. Los PIC16F886/887 son las versiones mejoradas de los PICs anteriores. El fabricante,
Microchip recomienda utilizar estas nuevas versiones. Las nuevas versiones integran significativas
mejoras a la funcionalidad interna del microcontrolador:
Oscilador interno configurable. Se pueden seleccionar varias frecuencias de reloj entre 8MHz y
31KHz
Mas pines de input/output.
Menos consumo de energia.
Mayor numero de canales para el convertidor A/D
Perifericos mejorados: ECCP/EUSART/Enhanced-watchdog, etc.
En esta figura se observa una comparativa de las caracteristicas principales de ambas opciones:
Puertos
A traves de los puertos de input y output(I/O) el microcontrolador se comunica con el mundo exterior.
Los puertos pueden ser utilizados como I/O digital o como I/O analogico:
I/O digital significa que el puerto recibe y transmite a traves de sus pines valores binarios
Laboratorio de microcomputadoras - http://localhost/dokuwiki/
Last update: 2012/09/17 06:06 articles:digitalio http://localhost/dokuwiki/doku.php?id=articles:digitalio
exclusivamente,'0' y '1'. Los valores binarios '0' y '1' se corresponden con los voltajes de GND y VDD.
I/O analogico significa que el puerto va a ser utilizado para recibir y/o transmitir por sus pines
voltajes analogicos continuos entre 0 y VDD generalmente.
La datasheet especifica como configurar cada puerto y que tipo de I/O y funcion va a desempear.
En la siguiente figura se muestra el diagrama de pines para cada uno de los PICs:
Por ejemplo en la siguiente tabla se muestra para el PIC16F886 el resumen de las diferentes
funciones que puede desempear un pin dado:
Los nombres de las columnas resaltados en rojo se refieren a los modulos o perifericos internos que
tiene el microcontrolador:
I/O Ports
Analog pheriferals
Voltage comparators
Timers
ECCP
EUSART
MSSP
Interrup.
El pin 1:
La funcion que va a desempear cada pin se elige y configura via un conjunto de registros de funcion
especifica,SFR que tiene asignado cada uno de los modulos internos mostrados en la arquitectura del
microcontrolador.
Estos registros de configuracion tienen valores por default al darle RESET o POWER al micro. Es decir,
en RESET y POWER ON todos los pines inician su funcionamiento con la funcion seleccionada por
default.
En practicas posteriores se mostrara como configurar e utilizar cada uno de los modulos o perifericos
internos del microcontrolador.
El presente articulo se enfoca en la configuracion del modulo 'I/O Ports'. Este modulo se refiere a los
pines de los puertos utilizados como I/O digital.
I/O digital
Los pines de algunos puertos tienen la funcion de Input analogica(modulo A/D) y de I/O digital. Estos
pines por default estan configurados para ser utilizados como input analogica en RESET. Para
poderlos utilizar como I/O digital debemos configurarlos de forma explicita con algunas instrucciones.
En la siguiente tabla se indica para cada PIC los registros SFRs necesarios para configurar al PORTX
como I/O digital y el valor que se les asigna para lograrlo:
0x07 ADCON1
E 0x00 ANSEL
0 TRISE<4>
Las celdas vacias indican que ese puerto en RESET esta configurado con la funcion I/O digital por
default. Es decir, no se necesita configurar un SFR extra para que sea I/O digital.
TRISX.
En el registro TRISX se especifica si el pin 'n' del puerto X va a ser input o output.
El bit 'n' del registro TRISX,TRISX<n> configura la direcion del pin 'n' del PORTX,PORTX<n>.
Los valores del TRISX<n> son:
'1' input
'0' output
PORTX.
El registro PORTX esta ligado fisicamente a los pines del PIC.
Si los pines se configuraron como input, entonces PORTX tendra el voltaje digital que esta
conectado a los pines en ese momento, por ejemplo el voltaje que entregan los dip-switches.
Si los pines se configuraron como output, entonces PORTX tendra el voltaje digital que envia el PIC
al exterior, por ejemplo a los leds.
En RESET todos los pins del PIC estan configurados como INPUT por default.
Los registros 'TRISX' y los bits que se pueden configurar se muestran en la siguiente tabla:
Las celdas vacias indican que el PIC no tiene pines fisicos en ese puerto.
La configuracion del registro TRISX generalmente solo se ejecuta una vez al inicio del programa. Por
ejemplo si se conectan 8 leds al PORTX, entonces el PORTX siempre va a ser output. Por lo cual no
hay necesidad de estar actualizando el valor del registro TRISX continuamente dentro del loop MAIN
del programa.
Nota:
- El valor que se escriba a cada pin de output permanecera fijo hasta que el programa lo sobreescriba.
- El valor leido de cada pin de input es el que este entrando del exterior en ese instante. Si no hay
nada conectado al pin se lee un '0'.
- Si la fuente de poder es de 5V: '1' 5V , '0' 0V
- En reset los pines PORTX<7:0> tienen valores aleatorios. Se deben inicializar a un valor conocido
antes de ser utilizados.
- El PIC16F886 tiene un PORTA de 8 pines, del pin 0 al pin 7. Sin embargo, en el sistema minimo de la
protoboard solo tenemos libres a los pines RA0 al RA5.
Los pines RA6 y RA7 se estan utilizando en el sistema minimo de la protoborad para conectar el
oscilador externo(crystal de 20MHz). Estos pines tienen los nombres RA6/OSC1/CLKIN y
RA7/OSC2/CLKOUT. Es decir, pueden ser configurados para utilizar una de esas tres funciones.
Por default el firmware del bootloader del PIC16F886 esta configurado para utilizar la funcion de
oscilador externo(OSC1 y OSC2).
Si se deseara utilizar esos dos pines como I/O digital se tendria que programar un bootloader que
utilizara el oscilador interno del PIC16F886. Con eso se elminaria el crystal externo y sus capacitores
y podrian usarse los pines como I/O digital.
2.0 Ejemplos
Por lo general la configuracion de los pines como I/O digital y la configuracion de su direccion se
realiza una sola vez, en la zona donde se inicializan los modulos internos del PIC. Es decir, antes de
entrar al loop MAIN del programa. Esto se debe a que en la mayoria de las aplicaciones los pines
tienen conectado hardware que siempre se usa como outputs, como los leds o que siempre se usa
como inputs, como los dip-switches.
Sin embargo, es posible tener aplicaciones en donde se requiera que un pin sea configurado como
output en un instante dado y en otro instante como input. En esas aplicaciones seria necesario
configurar la funcion del pin(I/O digital,Input analogica) y/o su direccion (input o output) dentro del
loop MAIN.
Configurar todos los puertos del PIC16F886 como I/O digital,PORTA input,PORTB OUPUT,
PORTC<7:4> input, PORTC<3:0> output
Configurar todos los puertos del PIC16F877A como I/O digital,PORTA input,PORTB OUPUT,
PORTC<7:4> input, PORTC<3:0> output, PORTD input , PORTE<2:1> input, PORTE<0>
output
3.0 Referencias
1. Datasheet PIC16F886/887
2. Datasheet PIC16F876A/877A
3. Proteus . Software comercial para el desarrollo de esquematicos, simulacion virtual del prototipo y
creacion del circuito impreso(PCB). Se utilizo para la creacion de los esquematicos.
From:
http://localhost/dokuwiki/ - Laboratorio de microcomputadoras
Permanent link:
http://localhost/dokuwiki/doku.php?id=articles:digitalio