microcontroladores pic16fxxse-fich.wdfiles.com/local--files/teorias/clase_03.pdfmicrocontroladores...

20
Microcontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1

Upload: others

Post on 01-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Microcontroladores PIC16FXX:

Puertos de entrada/salida digitales y

Contadores 0 y 1

Page 2: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Estructura del microcontrolador

Page 3: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Patillado y periférico de la Familia 16FXX

Los líneas de entrada/salida tienen las siguientes características:

Manipulan corrientes altas (25 mA) para controlar LEDs directamente

Se pueden programar para generar interrupciones cuando cambia un pin

Pull-ups programables individualmente

Page 4: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Estructura del puerto A

Page 5: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Características del Puerto A

PORTA es un puerto digital bidireccional

El número de lineas depende del microcontrolador específico (por ejemplo 8 bits para el 16F88).

La dirección de cada línea está determinada por el registro TRISA:

● TRISA bit = 1 hace que pin correspondiente de PORTA sea una entrada● TRISA bit = 0 hace que pin correspondiente de PORTA sea una salida

Despues de Power-on Reset, los pines están configurados dependiendo de la salida multiplexada.Cuando se lee el registro del PORTA, leemos el estado del mientras que cuando escribimos lo hacemos en un latch del puerto.

Todas las operaciones de escritura son operaciones de lectura-modificación-escritura: Escribir un puerto implica que los pines son leidos, su valormodificado y luego escrito en el latch.

Page 6: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Puerto A

ANSEL: Analog Select RegisterANS<6:0>: Selección de función de pins: 1 = Entrada analogica

0 = Entrada digital

IRP: Register Bank Select bit (used for indirect addressing)

1 = Bank 2, 3 (100h-1FFh)0 = Bank 0, 1 (00h-FFh)

RP: Register Bank Select bits (used for direct addressing)

11 = Bank 3 (180h-1FFh)10 = Bank 2 (100h-17Fh)01 = Bank 1 (80h-FFh)00 = Bank 0 (00h-7Fh)

Page 7: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Configurando el Puerto A – Un ejemplo

Configuración del Puert A en el PIC16F88

BANKSEL PORTA ; Select bank of PORTACLRF PORTA ; Initialize PORTA by

; clearing output data latches

BANKSEL ANSEL ; Select Bank of ANSELMOVLW 0x00 ; Configure all pins as digital inputsMOVWF ANSEL ;

MOVLW 0xFF ; Value used to initialize data directionMOVWF TRISA , Set RA<7:0> as inputs

Page 8: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Estructura del Puerto B

Page 9: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Características del Puerto B

PORTB es un puerto digital bidireccional

El número de lineas depende del microcontrolador específico (por ejemplo 8 bits para el 16F88).

La dirección de cada línea está determinada por el registro TRISB:● TRISB bit = 1 hace que pin correspondiente de PORTA sea una entrada● TRISB bit = 0 hace que pin correspondiente de PORTA sea una salida

Cada línea del PORTB despues de Power-on Reset, los pines están configurados dependiendo de la salida multiplexada.

Cada línea del PORTB, tiene una resistencia de pull-up programable individual-mente (CCP1CON<3:0> = 0 0 0 0 – Modo captura deshabilitado - ).

Se habilita reseteando el bit RBPU (OPTION_REG<7>). Los pull-ups son deshabilitados despues de Power-on Reset.

Todas las operaciones de escritura son operaciones de lectura-modificación-escritura: Escribir un puerto implica que los pines son leidos, su valormodificado y luego escrito en el latch.

Page 10: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Características del Puerto B

Cuatro de las líneas del PORTB (RB7:RB4) pueden generar una interrupcióncuando se produce un cambio en alguna de esas líneas (interrupt-on-change).

Estas función se puede activar solo cuando las líneas están configuradas comosalidas.

Las entradas del PORTB (RB7:RB4) son comparadas con los valores almacena-dos en los latch del PORTB que almacenan el valor leido anteriormente, calculan-do una diferencia que se utiliza para generar el bit RBIF (INTCON<0>).

Esta interrupción puede sacar al dispositivo del estado Sleep.

El usuario puede indicar que atendio la interrupción de la siguienet manera:

Cualquier operación de lectura o escritura del PORTB. Esto resetea la diferencia de comportamiento

Resetear el bit RBIF.

Page 11: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Puerto B

RBPU: PORTB Pull-up Enable bit 1 = PORTB pull-ups are disabled 0 = PORTB pull-ups are enabled

INTEDG: Interrupt Edge Select bit 1 = Interrupt on rising edge of RB0/INT pin 0 = Interrupt on falling edge of RB0/INT pin

Page 12: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registro de control de inetrrupción

GIE: Global Interrupt Enable bit 1 = Enables all unmasked interrupts0 = Disables all interrupts

PEIE: Peripheral Interrupt Enable bit 1 = Enables all unmasked peripheral interrupts0 = Disables all peripheral interrupts

INT0IE: RB0/INT External Interrupt Enable bit 1 = Enables the RB0/INT external interrupt0 = Disables the RB0/INT external interrupt

RBIE: RB Port Change Interrupt Enable bit 1 = Enables the RB port change interrupt0 = Disables the RB port change interrupt

INT0IF: RB0/INT External Interrupt Flag bit 1 = The RB0/INT external interrupt occurred 0 = The RB0/INT external interrupt did not occur

RBIF: RB Port Change Interrupt Flag bit 1 = At least one of the RB7:RB4 pins changed 0 = None of the RB7:RB4 pins have changed

Page 13: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Estructura del Timer0

Page 14: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Timer0

Page 15: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Timer0

T0CS: TMR0 Clock Source Select 1 = Transition on T0CKI pin 0 = Internal instruction cycle clock (CLKO)

T0SE: TMR0 Source Edge Select 1 = Increment on high-to-low transition0 = Increment on low-to-high transition

PSA: Prescaler Assignment 1 = Prescaler is assigned to the WDT0 = Prescaler is assigned to the Timer0

PS: Prescaler Rate Select bits Bit Value TMR0 Rate WDT Rate 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128

Page 16: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Estructura del Timer1

El Timer1 puede operar en uno de los siguientes tres modos:● Como untemporizador● Como un contador sincrono● Como un contador asincrono

Page 17: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Timer1

Page 18: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Registros asociados al Timer1

T1RUN: Timer1 System Clock Status 1 = System clock is derived from Timer1 oscillator0 = System clock is derived from another source

T1CKPS: Timer1 Input Clock Prescale Select 11 = 1:8 Prescale value10 = 1:4 Prescale value01 = 1:2 Prescale value00 = 1:1 Prescale value

T1OSCEN: Timer1 Oscillator Enable Control 1 = Oscillator is enabled0 = Oscillator is shut off

T1SYNC: Timer1 External Clock Input Synchronization Control1 = Do not synchronize external clock input0 = Synchronize external clock input

TMR1CS: Timer1 Clock Source Select 1 = External clock from pin (on the rising edge)0 = Internal clock (FOSC/4)

TMR1ON: Timer1 On 1 = Enables Timer10 = Stops Timer1

Page 19: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Operando con Timer1 – Ejemplo -

Como leer el Timer1 cuando esta contando

Page 20: Microcontroladores PIC16FXXse-fich.wdfiles.com/local--files/teorias/Clase_03.pdfMicrocontroladores PIC16FXX: Puertos de entrada/salida digitales y Contadores 0 y 1. Estructura del

Operando con Timer1 – Ejemplo -

Como escribir Timer1