Sie sind auf Seite 1von 12

UNIVERSIDAD NACIONAL DE SAN AGUSTN FACULTAD DE INGENIERAS DE PRODUCCIN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRNICA

Laboratorio de Microcontroladores y Microprogramacin


Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES
Cdigo: Semestre: Grupo: Lab. N

Pgina:1/12

Jefe de Prcticas: Ing. Juan Carlos Cuadros 0404137 VII A, B, C y D

03

FECHA: 21/JUN/2011

I.

INFORME PREVIO

1. Leer previamente toda la prctica. 2. Llevar un PC o una Notebook para poder realizar la prctica de laboratorio. Debera tener instalado el software MPLAB 8.20 y Proteus 7.1 Professional o superiores. 3. Conseguir y llevar las instrucciones del PIC 16F877. Tener a mano la bibliografa acerca de: funcionamiento y sintaxis de la instruccin CLR funcionamiento y sintaxis de la instruccin BSF y BCF funcionamiento y sintaxis de la instruccin BTFSS Y BTFSC funcionamiento y sintaxis de la instruccin RLF y RRF

II.

OBJETIVOS Configurar los puertos de I/O como I/O digitales. Realizar programas que manejen I/O digitales

III.

MARCO TERICO

MEMORIA DE DATOS La memoria de datos del PIC16F877 se divide en cuatro bancos: 0, 1, 2 y 3. En las posiciones inferiores de ambos bancos se encuentran los registros especiales de funcin (SFR). En la posicin 0x05, 0x06, 0x07, 0x08 y 0x09 respectivamente se encuentran los registros PORTA, PORTB, PORTC, PORTD y PORTE que se usan para leer o escribir datos, en tanto que en las posiciones 0x85, 0x86, 087, 0x88 y 0x89 se encuentran los registros TRISA, TRISB, TRISC, TRISD y TRISE respectivamente, es all donde se configuran los puertos. Cabe sealar que el PORTB tambin aparece en el banco 2 en la posicin de memoria 0x106 y el TRISB en la posicin de memoria 0x186.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 2/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

PUERTOS PROGRAMABLES DE ENTRADA SALIDA El PIC 16F877 posee varias caractersticas que hacen a este microcontrolador un dispositivo muy verstil, eficiente y prctico para ser empleado en diferentes aplicaciones. El nmero de pines es de 40 (figura 1), de los cuales 07 pines, estn asociados a: 4 pines para alimentacin, estn duplicados. 1 pin para MCLR y Vpp que es una tensin de 12 a 14 V. usada cuando est en modo programacin. 2 pines relacionados con entradas o salidas de reloj, en funcin del tipo de reloj utilizado. Los 33 pines restantes son pines de entrada/salida, las principales caractersticas son: Programables como entradas o salidas individualmente. Capaces de trabajar con corrientes de 25 mA. en cada lnea. No obstante la corriente total en los puertos A, B y E no puede superar los 200 mA. y en los puertos C y D otros 200 mA. Entradas tipo TTL o ST (Schmitt Trigger). Resistencias Pull-up (habilitables por programa) en el puerto B Las lneas de E/S estn agrupadas en 5 puertos: A (6 bits), B (8 bits), C (8 bits), D (8 bits) y E (3 bits).

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 3/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 4/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

Cada puerto de E/S tiene asociados dos registros TRISX y PORTX. El primer registro dispone de un bit por cada lnea del puerto, y controlar si funciona como entrada (Input, 1) o como salida (Output, 0). El segundo registro nos permite acceder al puerto. Con una escritura se modifican los bits configurados como salida, y con una lectura accedemos tanto a los de entrada como a los de salida. El Puerto A: Tiene todas sus salidas Totem pole, excepto la RA4 que es del tipo Open collector (open drain de forma ms exacta) lo que obliga a poner una resistencia de Pull Up para poder obtener '1'. Adems despus de un reset estas lneas estn configuradas como entradas analgicas (como digitales devuelven '0'). Por medio del registro ADCON se pueden convertir en entradas digitales. Solo dispone de 6 lneas (RA0-RA5), son bidireccionales y se configuran a travs del registro TRISA, situado en el Banco 1. En cada bit del registro TRISA de la Puerta se configura la correspondiente lnea. Si el bit es 0, la lnea est configura como salida, a su vez, si se pone a 1, la lnea se configura como entrada. Las lneas R0/AN0, R1/AN1 y R2/AN2, adems de lneas de E/S digitales, tambin pueden actuar como los canales 0, 1 y 2 por los que se puede aplicar una seal analgica al conversor A/D. La pata RA3/AN3/Vref+, tambin puede actuar como entrada de Tensin de Referencia para los perifricos que la precisan. La pata RA4/TOCKI acta adems de E/S digital, como entrada de seal de reloj para el Timer 0. La pata RA5/AN5/SS# tiene multiplexadas tres funciones: E/S digital, canal 4 para el conversor A/D y seleccin del modo esclavo cuando se trabaja con la comunicacin serie sncrona. Para seleccionar si las lneas de la Puerta A van a trabajar como E/S digitales o como canales de entrada para el conversor A/D, hay que escribir el valor adecuado sobre el registro ADCON1. Si se carga en dicho registro el valor 011x en sus 4 bits de menos peso, todas las lneas de puertas funcionan como E/S digitales.

X u -

: Significa desconocido. : Significa que no cambia. : Significa que no est implementado y se lee como 0.

Los canales de entrada se implementan mediante los bits bajos del Puerto A, de manera que es necesario configurar el uso de estos pines, ya sea para el tratamiento de seales digitales o la aceptacin de seales analgicas. Esto se logra escribiendo los cuatro bits menos significativos de ADCON1.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 5/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

Entonces

En cuanto al bit ADFM, l se utiliza para justificar a la derecha o la izquierda el resultado de la conversin, que tiene 10 bits, en el espacio disponible de 16 bits que corresponden a los registros ADRESH y ADRESL

Cuando se trata de configurar el Puerto A de este microcontrolador es necesario escribir en los registros ADCON1 y TRISA, si la palabra de control colocada en el primero de ellos programa alguno de los bits del Puerto para el manejo de seales digitales.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 6/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

El Puerto B: dispone de resistencias Pull-up que pueden activarse por software cuando funcionan como entradas. La activacin se realiza con el bit RBPU (bit 7) del registro OPTION_REG (direcciones 81h y 181h). Adems la lnea RB0 puede funcionar como entrada de peticin de interrupcin. Para ello se debe activar el bit INTE (bit 4) del registro INTCON (direcciones 0Bh, 8Bh, 10Bh y 18Bh). Con el bit INTDEG (bit 6) de OPTION_REG (direcciones 81h y 181h) se selecciona si se activa la interrupcin con flanco de subida (1) o de bajada (0).

X u -

: Significa desconocido. : Significa que no cambia. : Significa que no est implementado y se lee como 0.

El Puerto C: Consta de 8 lneas bidireccionales cuyo sentido se configura mediante el registro TRISC. Todas las patas de esta puerta tienen multiplexadas diferentes funciones: RC0/T1OSO/T1CKI: Esta lnea puede actuar como E/S digital, como salida del Timer 1 o como entrada de impulsos para el Timer 1. RC1/T1OSI/CCP2: E/S digital, entrada al oscilador del Timer 1, entrada del modulo de Captura 2, Salida del comparador 2, salida del PWM2. RC2/CCP1: E/Sdigital, entrada Captura 1, Salida de comparador uno, salida del PWM1. RC3/SCK/SCL: E/S digital, Seal de reloj modo SPI, Seal de reloj modo I2C. RC4/SDI/SDA: E/S digital, Seal de datos modo SPI, Seal de datos modo I2C. RC5/SDO: E/S digital, Salida de datos en modo SPI. RC6/TX/CK: E/S digital, Lnea de transmisin en USART, Seal de reloj sncrona en transmisin serie. RC7/RX/DT: E/S digital, Lnea de recepcin USART, Lnea de datos en transmisin serie sncrona. La Puerta D: Consta de 8 lneas bidireccionales. Solo la tienen los PIC encapsulados con 40 patas (16F877). Se configura mediante el registro TRISD. Todas las patas disponen en su entrada de un Trigger Schmitt. Adems de usarse como lneas de E/S digitales normales, implementan una puerta paralela esclava de 8 lneas (PSP), que sirve para permitir la comunicacin en paralelo con otros elementos del sistema. Las patas se denominan RD0/PSP0RD7/PSP7, y para que funcionen como puerto de comunicacin esclava en paralelo, es preciso poner el bit PSP MODE=1.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 7/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

El Puerto E: Solo la tienen los PIC de 40 patas. Dispone de tres patas multifuncin, que se configuran como entrada o salida, segn el valor de los tres bits de menos peso del registro TRISE. RE0/RD#/AN5: E/S digital, Seal de lectura en modo puerta paralela esclava, Canal 5 de conversor A/D. RE1/WR#/AN6: E/S digital, Seal de escritura en modo PSP, Canal 6 de conversor A/D. RE2/CS#/AN7: E/S digital, Seleccin de chip en modo PSP, Canal 7 de conversor A/D.

bit 7 : IB F : Inpu t B u ffe r F u ll S ta tu s bit 1 =A w ord ha s be e n re c e ive d a nd is w a iting to be re a d by the C P U 0 =N o w ord ha s be e n re c e ive d bit 6: OBF : Output Buffer Full Status bit 1 = The output buffer still holds a previously written w o rd 0 = The output buffer has been read b it 5: IB OV : Input Buffer Overow Detect bit (in microprocessor m ode ) 1 = A write occurre d when a prev iously input word ha s not be e n re a d (must be cleared in software) 0 = No overow occurred b it 4: P S P M O D E : Parallel Slave Port Mode Select b it 1 = Parallel slave port mode 0 = Genera l purpose I/O mode bit 3: Unimplemented : Read a s '0' P O R T E D a ta D i re c tio n B i ts b it 2: Bit2: Direction Control bit for pin R E 2/C S /A N 7 1 = Input 0 = O utput b it 1: Bit1: Direction Control bit for p in R E 1/W R /A N 6 1 = Input 0 = O utput b it 0: Bit0: Direction Control bit for p in R E 0/R D /A N 5 1 = Input 0 = O utput

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 8/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

REGISTRO DE STATUS (Direcciones 03h, 83h,103h, 183h)

bit 7: IRP: Seleccin de Bancos para el direccionamiento indirecto. 1 = Bancos 2 y 3 (1 00h- 1 FFh). 0= Bancos 0 y 1 (00h-FFh). bit 6-5: RP1:RP0: Seleccin del Banco para el direccionamiento directo. RP1 RP0 1 1 = Banco 3 (1 80h- 1 FFh). 1 0 = Banco 2(100h-17Fh). 0 1 = Banco 1 (80h-FFh). 0 0 = Banco 0 (00h-7Fh). Cada Banco es de 128 bytes. bit 4:#TO: Flag de Timer Out. 1= Despus de conectar VDD o ejecutar CLRWDT o SLEEP. 0= Al desbordarse el temporizador de WDT. bit 3:#PD:Flag de Power Down. 1= Despus de conectar VDD o al ejecutar la instruccin CLRWDT 0 = Al ejecutar la instruccin SLEEP. bit 2: Z: Flag de Cero. 1= El resultado de la ltima operacin aritmtica o lgica es Cero. 0= El resultado de la ltima operacin aritmtica o lgica es distinto cero. bit 1: DC: Flag de acarreo en el 4 bit de menos peso. 1 = Acarreo en la suma. 0 = No acarreo en la suma. En la resta es al contrario . bit 0:C: Flag de acarreo en el octavo bit. 1 = Se ha producido un acarreo en la suma y no en la resta. 0= Se ha producido un acarreo en la resta y no en la suma. Este bit tambin se utiliza en las instrucciones de rotacin. REGISTRO OPTION u OPTION_REG (Direccin 81h,181h)

El Registro de OPTION_REG es un registro que puede ser ledo o escrito y que contiene varios bits de control para configurar la asignacin del preescaler al TMR0 o al WDT, la interrupcin externa, el TMR0 y las resistencias de pull-up del PORTB.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 9/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

bit 7:#RBPU: Resistencia de Pull-up en, el PORTB. 1=Resistencia de Pull-up desactivada. 0= Resistencia de Pull-up activada. bit6 1:INTEDG:, Flanco, de control de interrupciones. 1:Interrupcin por flanco ascendente en el pin RB0/INT. 0:Interrupcin por flanco: descendente en el pin RB0/INT. bit 5:T0SC. Seleccin del tipo de Reloj para TMRO. 1 = Los pulsos se introducen a travs del, pin RA4/TOCK1. 0 = Los Pulsos de reloj internos- Fosc/4. bit 4:T0SE: Tipo de flanco para TMR0. 1 = Incremento de TMR0 en cada flanco, descendente por el pin RA4/TOCKI. 0 = Incremento de TMR0 en cada flanco ascendente por el pin RA4/TOCKI. bit 3:PSA: Asignacin del Preescaler. 1 = El preescaler se le asigna al WDT. 0 = El preescaler se le asigna al TMR0. bit 2-0:PS2 a PS0: Rango de actuacin del preescaler. PS2 PS1 PS0 Divisor de TMR0 Divisor de WDT 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128

El pre escalador es compartido entre el TMR0 y el WDT; su asignacin es mutuamente excluyente ya que solamente puede uno de ellos ser pre escalado a la vez. IV. MATERIALES Y/O EQUIPOS A UTILIZAR PC y/o Notebook con MPLAB y Proteus instalado.

V.

DESARROLLO DE LA PRCTICA 1. Cree una carpeta (Grupo N ____) donde pueda guardar sus archivos. 2. Cree los proyectos necesarios para realizar los siguientes programas, haga las modificaciones necesarias para simular el proyecto, corrija las informaciones de la ventana de salida.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 10/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

Ejemplo 1: Configuracin de los pines RA0 a,RA3 del puerto A para manejar el encendido y apagado de 4 diodos.

En este caso, el hardware es muy simple, adems de conectar las seales de reloj de acuerdo a alguna de las opciones descritas en teora, consiste en 4 LEDs conectados a las patitas RA0,...,RA3 con las respectivas resistencias limitadoras de corriente. Al ejecutar el programa en un PIC real con un cristal de 4 Mhz (no simulado) a simple vista no podemos apreciar el parpadeo de los LEDs, ya que stos se encienden durante tres a seis seg y se apagan durante 1 a 3 seg. ;CONTROL DE LUCES EN ESCALERA Include p16f877.inc org 0x0000 ;Inicia en el vector de reset ;INICIALIZANDO EL PUERTO ;CONTROL DE LOS LEDs

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 11/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

Ejercicio 1: Configurar los pines RA0 y RA1 como entradas digitales y RA5 como salida digital del puerto A conectada a un LED, dicha salida se controlara de acuerdo al estado de RA0 y RA1.

;REALIZAR PROGRAMA AQUI

1. Simule el proyecto. 2. Agregue las variables necesarias para poder ver los cambios 3. Comente cada uno de los programas anteriormente desarrollados. 4. Modifique el programa de Encendido y apagado de 4 diodos de tal manera que cada led se prenda una a continuacin de con una pausa de 5 segundos entre cada led.

Laboratorio de Microcontroladores y Microprogramacin

Pgina: 12/12

LAB N 2

uC-uProg

Tema: CONFIGURACIN DE PUERTOS CORRECCION DE ERRORES

JP: Ing Juan Carlos Cuadros

VI.

CUESTIONARIO FINAL

1. Obtuvo errores de compilacin? Si su respuesta es afirmativa, En qu lneas los obtuvo? Corrobor el formato de escritura de cdigo? Corrobor que la sintaxis de los op-code fuese correcta?. 2. Qu es el efecto rebote y como se elimina? 3. Explique y haga el diagrama de flujo del siguiente programa? LIST P=16F877 INCLUDE "P16F877.INC" ORG 0X000 GOTO INICIO INICIO BSF STATUS,RP0 MOVLW 0XFF MOVWF TRISB CLRF TRISD BCF STATUS,RP0 CICLO MOVF PORTB,W MOVWF PORTD GOTO CICLO END Depure el programa, que errores obtuvo en el programa? VII. CONCLUSIONES (Realice al menos 4 conclusiones respecto a la prctica)

1. ______________________________________________________________________________________ 2. ______________________________________________________________________________________ 3. ______________________________________________________________________________________ 4. ______________________________________________________________________________________ VIII. _ _ _ BIBLIOGRAFA (Consigne la bibliografa utilizada por usted para el desarrollo de la prctica).

Das könnte Ihnen auch gefallen