12
Entradas y Salidas Registros de control Programación de los Puertos

PIC16C5X (5) microcontrolador microchip

Embed Size (px)

DESCRIPTION

Puertos de entrada/salida. Programación

Citation preview

Page 1: PIC16C5X (5) microcontrolador microchip

Entradas y Salidas Registros de control

Programación de los Puertos

Page 2: PIC16C5X (5) microcontrolador microchip

http://issuu.com/microprocesadores/ © 2011 Celestino Benítez Vázquez Todos los contenidos e imágenes publicados en la revista “microprocesadores” tienen los derechos reservados quedando prohibida la reproducción total o parcial de esta publicación sin el consentimiento expreso de su autor.

Page 3: PIC16C5X (5) microcontrolador microchip

LAS ENTRADAS/SALIDAS

Page 4: PIC16C5X (5) microcontrolador microchip

4.1 INTRODUCCION. Entendemos como puertos de entrada/salida, las vías de comunicación o los medios de transmisión de datos, que tiene a su disposición el microcontrolador y que le permiten comunicarse con el exterior, es decir, con otros dispositivos periféricos. Los PIC de la familia 16C5X, disponen de líneas de entrada/salida digitales (no disponen de comunicación analógica) y cada una de ellas se corresponde físicamente con una patilla del circuito integrado. En referencia al PIC 16C57, debemos indicar que posee tres puertos de comunicación entrada/salida, denominados PORTA, PORTB y PORTC, que a continuación describiremos.

Page 5: PIC16C5X (5) microcontrolador microchip

Los puertos de E/S son tratados igual que cualquier otro registro, y por tanto podemos leer su contenido o bien escribir en ellos la información que deseemos. Estos procesos de lectura y escritura se realizan mediante las instrucciones adecuadas del programa. Cada puerto lleva asociado, para llevar a cabo su control, un registro (denominados TRISA, TRISB y TRISC) y cuando se produce un RESET todos los bits de dichos registros se ponen a nivel lógico alto (1 lógico), situándose entonces los puertos como entradas. El PORTA dispone de 8 bits de los cuales únicamente se utilizan los cuatro de menor peso (bits 0, 1, 2 y 3) tanto en operaciones de lectura como de escritura. Los cuatro bits de mayor peso (bits 4, 5, 6 y 7) no han sido implementados y cuando se produce una acción de lectura del puerto, de estos bits de mayor peso se obtiene un 0 lógico. El PORTB dispone de 8 bits de entrada/salida disponibles en su totalidad para operaciones de transmisión de información. El PORTC (en el PIC16C57) dispone de 8 bits de comunicación para operaciones de entrada/salida. Cada pin de E/S, puede suministrar una corriente máxima de 20 mA, (cuando actúan como salidas) y absorber hasta 25 mA cuando actúan como entradas. Si embargo existen unas limitaciones en cuanto a las potencias totales permitidas en cada puerto: a. El PORTA puede absorber (en total) un máximo de 80 mA y

suministrar un máximo de 50 mA. b. El PORTB y el PORTC pueden absorber (cada uno en total) un

máximo de 150 mA y suministrar un máximo de 100 mA. Estas restricciones obligan a limitar la corriente de salida total de cada puerto y también la corriente total de entrada.

Page 6: PIC16C5X (5) microcontrolador microchip
Page 7: PIC16C5X (5) microcontrolador microchip
Page 8: PIC16C5X (5) microcontrolador microchip

4.2 LOS REGISTROS TRIS.

Como sabemos, cada puerto del PIC, lleva asociado un registro especial (TRIS) que utilizamos para cargar en él el código adecuado que nos permita programar el puerto correspondiente de acuerdo a nuestras necesidades. Estos registros (TRISA, TRISB y TRISC) son controlados por software ejecutando la instrucción " TRIS f ", mediante la cual cargamos el registro TRIS con el contenido del registro de trabajo W. Si colocamos un 1 lógico en un determinado bit de un registro TRIS, nos determinará que la correspondiente línea de salida del puerto implicado se coloque en alta impedancia (modo entrada). Si colocamos un 0 lógico, la línea del puerto correspondiente trabajará como salida. En la FIG.14 podemos ver la dependencia directa de los tres puertos de sus registros TRIS correspondientes y la dependencia de éstos del contenido del registro de trabajo W.

FIG.14

TRISA PORTA

De W

4

4

4

BUS DE DATOS

TRISB PORTB

De W

8

8

8

TRISC PORTC

De W

8

8

8

RA0...RA3 RB0...RB7 RC0...RC7

Page 9: PIC16C5X (5) microcontrolador microchip

Cuando se realiza una operación de lectura, el puerto nos proporciona el dato presente en ese instante en las líneas físicas de entrada, de modo que si esas líneas cambian de valor un instante mas tarde, no lo apreciaremos a no ser que efectuemos otra nueva lectura. Sin embargo, cuando tenemos programada una línea como salida y escribimos en ella un dato, esta línea permanece de forma indefinida con el dato almacenado, hasta que en otra posterior operación de escritura nosotros lo cambiemos a voluntad. En los tres puertos de E/S de que dispone el PIC 16C57, podemos programar los bits de los mismos independientemente como entradas o como salidas.

Page 10: PIC16C5X (5) microcontrolador microchip

4.3 PROGRAMAR LOS PUERTOS.

Como se ha mencionado anteriormente, los puertos se programas mediante el software del programa, utilizando para ello los registros TRIS. En ocasiones se realizan algunas operaciones internas que llevan a cabo tareas de lectura seguida de escritura en los puertos. Por ejemplo, con las instrucciones BCF y BSF, se pueden leer todos los bits de un puerto, se realiza la operación con el bit indicado en la operación y finalmente se escribe el resultado. Estas operaciones deben realizarse con sumo cuidado cuando se trabaja con puertos cuyos bits están programados unos como entradas y otros como salidas. Si realizamos una operación BSF sobre el bit 5 del PORTB, se producirá la lectura de los 8 bits del PORTB, a continuación el bit 5 se pone a 1 lógico y finalmente el valor del PORTB será escrito en los latches de salida. Si cualquier otro bit del PORTB se emplea en sentido bidireccional y está definido como entrada en ese instante, la señal de entrada presente en ese pin será leída por la CPU y reescrita en ese mismo pin. Como este pin permanece programado en modo entrada, no sucede nada anómalo. Sin embargo, si al realizar la operación BSF sobre el bit 5, cualquier otro bit está programado como salida, el contenido del latch de datos puede producir errores. Con las instrucciones MOVF y MOVWF podemos leer y escribir respectivamente los puertos del PIC. Cuando se realizan una operación de lectura y otra de escritura seguidas, es recomendable dejar transcurrir unos instantes entre ambas operaciones, colocando una instrucción NOP entre las dos anteriores.

Page 11: PIC16C5X (5) microcontrolador microchip
Page 12: PIC16C5X (5) microcontrolador microchip

DISFRUTA DE LA NATURALEZA DISFRUTA DE LA MONTAÑA

DISFRUTA DEL DEPORTE, PONTE EN FORMA FÍSICA Y MENTALMENTE

EN CUALQUIER PARTE DEL MUNDO QUE RESIDAS, TENDRÁS LUGARES

MARAVILLOSOS QUE EXPLORAR

NOSOTROS SOMOS ASÍDUOS AL SENDERISMO http://issuu.com/rutasasturias/