Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Entradas y Salidas GPIOs General Porpuse Input/Output Entradas y salidas de propósito general (GPIOS). Puertos en PIC16F877A de hasta 8 pines s A(6), B(8), C(8), D(8), E(3). Funciones alternativas multiplexadas. Registros TRISx <n> => Control 0 - Output 1 - Input Registro PORTx => Datos X = Nombre del puerto (A, B, C, D , E). Estructura general de un GPIO Control input/output => TRIS Registro de datos =>PORT Salida Totem-Pole (Transistor N y P). 25mA de salida máxima por PIN. Escritura en Latch, lectura de Pines (PORT). Tras un RESET => TRIS=1 Todos los pines del puerto son Inputs. Control WR TRIS Dato Puerta OR (OUT) Puerta AND (OUT) Trt canal P Trt Canal N I/O Pin 0 0 0 0 Cortado Conduce Vss = 0 1 1 1 conduce Cortado Vdd = 1 1 x 1 0 cortado cortado Alta Impedancia Puerto A Puerto bidireccional de 6 bits <RA5:RA0> RA5 y <RA3:RA0> Módulo A/D RA5 Módulo SPI RA4 Salida drenador abierto – Timer0 o Comparador Puerto A Ejemplo de programación del puerto A en ensamblador Linea 6 ADCON1 s configura como como entradas digitales, en C no tenemos que hacer esto. Diagrama a Bloques RA4/T0CKI. Salida en configuración Drenador abierto. Puerto A Registros asociados al Puerto A, los más importantes PORTA y TRISA Hay un registro de configuración ADCON1 que sirve para las entradas analógicas, (revisar página anterior): Después de un RESET TRISA = 0xFF => Todos los Pines Entradas ADCON1 = 0x00 => Entrada Analógica Para entradas digitales =>ADCON1 = 0bxx011x <PCFG3:PCFG0> = 011x Puerto B Resumen Puerto bidireccional de 8 bits <RB7:RB0> RB0 Interrupción externa por flanco. RB7:RB4 Interrupción por cambio de nivel. Puerto B Este puerto puede tener una Resistencia de Pull-up asociada. Pull-up de entrada internas => Registro OPTION_REG<7> => RBPU Si RBPU = 0 Resistencia pullup activadas Si RBPU = 1 Resistencias pullup desactivadas (Por defecto o tras reset están desactivadas) COLECTOR ABIERTO (OPEN COLECTOR) En la conexión colector abierto, la corriente que consume el circuito depende de la fuente de alimentación, lo que nos permite un mejor manejo de la energía en el microcontrolador. A tavés del transistor, controlamos la trayectoria de la corriente. Puerto C Timer 1 o módulos CCP RC0 Timer 1 RC1 Timer 1 o módulo CCP2 RC2 Módulo CCP1 Comunicación: RC3:RC4 Comunicación SPI o I2C RC5 Comunicación SSP RC6:RC7 Comunicación USART Puerto D Puerto bidireccional de 8 bits <RD7:RD0>. Puede funcionar como un puerto esclavo paralelo de 8 bits de un microprocesador. Puerto D Para activar el modo Puerto Paralelo Esclavo PSP => Registro TRISE<4> => PSPMODE Si PSP = 0 Puerto Paralelo Esclavo desactivado (Por defecto o posterior a un RESET). Si PSP = 1 Puerto Paralelo Esclavo Activado. Puerto E Puerto bidireccional de 3 bits <RE2:RE0> RE0 => Módulo A/D o Entrada de control de lectura en el PSP. RE1 => Módulo A/D o Entrada de control de selección del dispositivo en el PSP. RE2 => Módulo A/D o Entrada de control de lectura en el PSP. Puerto E Módulo A/D => Vigilar ADCON1, como en el puerto A. Modo PSP => Vigilar PSPMODE, como en el puerto D. Resumen de Puertos Cada Puerto Tendrá asociado los siguientes registros para su control/ configuración Registro de Control Registro de Datos Otros Registros para funciones especiales TRISX PORTX ADCON1 CMCON …. OPTION_REG
Compartir