Microcontroladores PIC

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO. 3. MICROCONTROLADORES PIC. Tipos de PIC. PIC de gama básica (16C5XX):. • Datos de 8...

261 downloads 714 Views 1022KB Size
MICROCONTROLADORES PIC

Microcontroladores PIC

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

1

MICROCONTROLADORES PIC

Características generales: • Arquitectura Harvard, procesador segmentado. • Compatibilidad software entre los modelos de la misma gama. • Sencillez de uso y herramientas de desarrollo sencillas y baratas. • Código compacto y rápido. • Poco consumo y amplio rango de voltajes de alimentación. • Pequeño tamaño y gran variedad de encapsulados. • precio

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

2

MICROCONTROLADORES PIC Tipos de PIC

PIC de gama básica (16C5XX): • Datos de 8 bits. • Instrucciones de 12 bits. • 33 instrucciones. • Sin interrupciones • Pila de dos niveles • Alimentación desde 2,5 v. • Ejemplos:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

3

MICROCONTROLADORES PIC Tipos de PIC

PIC de gama media (16C(F)XXX): • Datos de 8 bits. • Instrucciones de 14 bits. • 35 instrucciones. • Interrupciones • Pila de 8 niveles (anidamiento de subrutinas) • Gran variedad de periféricos: Timers, ADC, USART, LCD, Comparadores, etc. • Ejemplos:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

4

MICROCONTROLADORES PIC Tipos de PIC

PIC miniatura (12C(F)XXX): • Datos de 8 bits. • Instrucciones de 14/12 bits. • 35/33 instrucciones. • 8 pines y hasta 6 líneas de E/S. • Consumo menor de 2 mA a 5v y 4 Mhz. • Ejemplos:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

5

MICROCONTROLADORES PIC Tipos de PIC

PIC de gama alta (17CXXX): • Datos de 8 bits. • Instrucciones de 16 bits. • 58 instrucciones. • Potente sistema de gestión de interrupciones vectorizadas. • Arquitectura abierta (bus de datos y direcciones disponibles: como en un µP) • Gran variedad de periféricos: como en gama media, más un multiplicador HW de gran velocidad. • Ejemplos:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

6

MICROCONTROLADORES PIC Tipos de PIC

PIC de gama mejorada (18C(F)XXX): • Datos de 8 bits. • Instrucciones de 16 bits. • 77 instrucciones (multiplicación de 8x8 en un ciclo). • Alta velocidad (hasta 40 Mhz) y alto rendimiento (10 MIPS) • Arquitectura orientada al lenguaje C. • Potentes herramientas de emulación. • Ejemplos:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

7

MICROCONTROLADORES PIC

Arquitectura Harvard:

PIC de gama media Arquitectura

• Memoria de programa y memoria de datos separadas, con buses distintos • Mayor ancho de banda que en la arquitectura Von Neuman donde el bus para datos e instrucciones es único. • Gracias a un bus exclusivo para la memoria de programa se optimizan las instrucciones a la arquitectura. • Todos los códigos de operación son de 14 bits, con un único acceso a memoria para cada instrucción, frente a la estructura multi-byte de algunas instrucciones en arquitectura Von Neuman.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

8

MICROCONTROLADORES PIC PIC de gama media Arquitectura

Ejecución segmentada: • Pipeline de dos estados: solapamiento de la fase de búsqueda y ejecución de la instrucción. • Mientras de ejecuta una instrucción se busca el código de operación de la siguiente.

Ortogonalidad • Las instrucciones pueden realizar cualquier operación sobre cualquier registro, usando cualquier modo de direccionamiento

Juego de instrucciones reducido: • 35 instrucciones que se ejecutan en un solo ciclo, ssalvo las de salto.

Arquitectura en banco de registros: • Todos los registros especiales incluido el contador de programa, los puertos, temporizadores, etc. están mapeados en memoria. • A los registros/memoria se puede acceder con direccionamiento directo o indirecto.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

9

MICROCONTROLADORES PIC

Características especiales

PIC de gama media Arquitectura

• Código de protección • El contenido de la memoria de programase puede proteger contra lectura. • Existen posiciones de memoria reservadas para incluir números de serie o códigos de identificación. • Power-on Reset (POR) • Autoreset al conectarles la alimentación. • Lógica Brown-out (BOR) • Reset del µC si la alimentación desciende por debajo de un determinado valor. •Watchdog Timer (perro guardián) • Temporizador que resetea la MCU si no se actualiza en un tiempo determinado. Evita ‘cuelgues’. • Modo de bajo consumo • Mediante la instrucción SLEEP se para el funcionamiento de la CPU reduciendo drásticamente el consumo. • Oscilador RC interno. • In-Circuit Serial Programming (ICSP) • Posibilidad de programación del circuito en la aplicación final utilizando un protocolo serie sobre dos líneas de E/S del µC. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

10

MICROCONTROLADORES PIC PIC de gama media Arquitectura

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

11

MICROCONTROLADORES PIC PIC de gama media Arquitectura

2. No todos los dispositivos incluyen esta característica SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

12

MICROCONTROLADORES PIC PIC de gama media Arquitectura

3. Muchos de los pines de E/S de propósito general están multiplexados con uno más módulos periféricos SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

13

MICROCONTROLADORES PIC PIC de gama media Arquitectura

Esquema de reloj/ciclo de instrucción: Cuatro ciclos de reloj -> ciclo de instrucción Se incrementa el contador de programa

La nueva instrucción se almacena en el registro de instrucción

Decodificación y ejecución de la instrucción

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

14

MICROCONTROLADORES PIC PIC de gama media Arquitectura

Ejemplo de ejecución:

• Hasta Tcy3 en cada ciclo se ejecuta una instrucción. • Al acabar de ejecutarse la tercera instrucción la CPU almacena la dirección de la cuarta instrucción en la pila e introduce la dirección de SUB_1 en el PC, aunque la búsqueda de la fase de búsqueda cuarta de la cuarta instrucción ya se ha completado. • Durante Tcy4 la ejecución de la cuarta instrucción se ignora (ejecutando un NOP) y se busca el código de operación correspondiente a la dirección SUB_1.

• Todas las instrucciones se realizan en un ciclo de instrucción salvo las de salto que lo hacen en dos. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

15

MICROCONTROLADORES PIC PIC de gama media

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

16

MICROCONTROLADORES PIC

Unidad Aritmético lógica:

PIC de gama media ALU

• Longitud de palabra: 8 bits. • Operaciones de suma, resta , desplazamiento y lógicas. • Operaciones aritméticas en complemento a dos. • Los acarreos (C), acarreo decimal (DC) y resultado cero (Z), se reflejan en el registro STATUS

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

17

MICROCONTROLADORES PIC Existen tres tipos de instrucciones:

PIC de gama media Instrucciones

•Instrucciones de operación de bytes en registros •Instrucciones de manipulación de bits de registros •Instrucciones de control y operación con literales

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

18

MICROCONTROLADORES PIC PIC de gama media Instrucciones

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

19

MICROCONTROLADORES PIC PIC de gama media Instrucciones

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

20

MICROCONTROLADORES PIC PIC de gama media Reg. STATUS

Registro STATUS: •Indica el estado de las operaciones aritméticas de la ALU •Indica el estado el estado del RESET •Controla la selección de bancos en la memoria de datos

Bit7 IRP: bit de selección de banco de registros usado en direccionamiento indirecto. 1 = Bank 2, 3 (100h - 1FFh) 0 = Bank 0, 1 (00h - FFh) Para circuitos con Banco 0 y Banco 1 este bit esta reservado y siempre esta cero Bit 6:5 RP1:RP0: bit de selección de banco de registros usado en direccionamiento directo. 11 = Banco 3 (180h - 1FFh) 10 = Banco 2 (100h - 17Fh) 01 = Banco 1 (80h - FFh) 00 = Banco 0 (00h - 7Fh) Cada banco es de 128 bytes. Bit 4 TO’: bit Time-out. 1 = Después del encendido, de la instrucciones CLRWDT o SLEEP. 0 = Time-out del WDT.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

21

MICROCONTROLADORES PIC PIC de gama media Reg. STATUS

Bit 3 PD’: bit power-down 1 = Después del encendido o por la instrucción CLRWDT 0 = Por la ejecución de la instrucción SLEEP. Bit 2 Z: bit cero 1 = El resultado de una operación aritmética o lógica es cero. 0 = El resultado de una operación aritmética o lógica no es cero Bit 1, DC: bit Digit carry/borrow’ (instrucciones ADDWF, ADDLW, SUBLW, SUBWF) 1 = El cuarto bit de menor peso del resultado produce acarreo 0 = El cuarto bit de menor peso del resultado no produce acarreo Bit 0, C: bit Carry/borrow’ (instrucciones ADDWF, ADDLW,SUBLW,SUBWF) 1 = El resultado produce acarreo 0 = El resultado no produce acarreo

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

22

MICROCONTROLADORES PIC MEMORIA DE PROGRAMA

PIC de gama media Organización de la Memoria

• Máximo espacio de memoria 8K palabras (13 bits de bus de direcciones) • Cuatro páginas de 2K cada una • El byte de menor peso del contador de programa: PCL es accesible por el usuario en lectura y escritura a través de un registro del mismo nombre. • Los 5 bits de mayor peso del PC (PCH) son accesibles a través de PCLATCH<4:0> • Un RESET pone a cero el registro PCLATCH • Acceso a las páginas mediante PCLATCH <4:3> • Vector de reset en 0000h • Vector de interrupción en 0004h

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

23

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria CONTADOR DE PROGRAMA Instrucción con PCL como destino

Instrucción GOTO

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

24

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria CONTADOR DE PROGRAMA Instrucción CALL

Instrucción RETURN, RETFIE o RETLW

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

25

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria

PILA (STACK): • Tiene 8 niveles. • Se guarda el contenido del PC con la instrucción CALL o cuando se produce una interrupción. • No existen instrucciones del tipo PUSH o POP. • Tiene estructura ‘circular’:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

26

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria

MEMORIA DE DATOS dividida en dos áreas: • Registros de funciones especiales (SFR, Special Function Registers) – Controlan la operación de la CPU y los periféricos. – Se implementan como RAM estática – Se inicializan a un valor por defecto después de la alimentación del µC. • Registros de propósito general (GPR, General Purpose Registers) – Almacenamiento de datos. – No se inicializan a un valor por defecto después de la alimentación. • La transferencia entre registros ha de hacerse a través del registro W. • Estructura en bancos de 128 bits accesibles mediante STATUS<7:5> • Acceso directo (bits RP1:RP0) o indirecto (bit IRP y registro FSR) a la información.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

27

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria

MEMORIA DE DATOS: Acceso a bancos:

Direccionamiento directo:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

28

MICROCONTROLADORES PIC

MEMORIA DE DATOS:

PIC de gama media Organización de la Memoria

Direccionamiento indirecto: Se utiliza como operando el registro INDF que en realidad no está implementado físicamente

El siguiente código pone a cero las posiciones de memoria comprendidas entre las direcciones 20h y 2Fh SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

29

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria

Distribución de las áreas de registros SFR Y GPR en cada banco de memoria

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

30

MICROCONTROLADORES PIC PIC de gama media Organización de la Memoria

Distribución de las áreas de registros SFR Y GPR en cada banco de memoria para dispositivos de 18 patillas.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

31

MICROCONTROLADORES PIC INTERRUPCIONES • Interrumpen la ejecución de un programa y pasan a la rutina de servicio del evento que provoca la interrupción. • El vector de interrupción se encuentra en la dirección 04H de la memoria de programa. • Al terminar la rutina de servicio (RETFIE) se retoma el programa en el ‘punto de ruptura’. • Fuentes de interrupción: • Pin INT, cambio en los terminales del puerto B (RB7:RB4). • Overflow en los temporizadores. • Cambio en el comparador. • Fin de escritura en la memoria EEPROM de datos. • Relacionadas con el Puerto Paralelo Esclavo, con la USART, con el fin de conversión A/D y en general con los módulos periféricos con que puede contar una MCU. • Gestión de interrupciones mediante registros: • INTCON: registro general de control y estado. • En función de los periféricos disponibles por una MCU: •PIE1, PIE2 (Peripheal Interrupt Enable) habilitan las interrupciones de cada periférico. • PIR1 y PIR2 (Peripheal Interrupt Flag Registers) identifican el periférico que interrumpe. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

32

MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO INTCON

Bit 7 GIE: (Global Interrupt Enable) bit de habilitación global de interrupciones 1 = Habilita las interrupciones. 0 = Inhibe todas las interrupciones. Se pone a cero cuando se reconoce una interrupción (para evitar interrupciones anidadas) y a 1 cuando se vuelve de su rutina de servicio. Bit 6 PEIE: (Peripheral Interrupt Enable) bit de habilitación de interrupciones de periféricos. 1 = Habilita las interrupciones desde los periféricos. 0 = Inhibe las interrupciones desde los periféricos. (3) En MCU con un solo periférico puede ser EEIE o ADIE Bit 5 T0IE: (Timer 0 Overflow Interrupt Enable) bit de habilitación del Timer 0. 1 = Habilita la interrupción con el desbordamiento del Timer 0. 0 = Inhibe la interrupción con el desbordamiento del Timer 0. Bit 4 INTE: (INT External Interrupt Enable) bit de habilitación de interrupción desde el pin de entrada INT. 1 = Habilita la interrupción. 0 = Inhibe la interrupción. (2) Algunas MCU no disponen de esta característica SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

33

MICROCONTROLADORES PIC INTERRUPCIONES REGISTRO INTCON

Bit 3 RBIE: (RB Port Change Interrupt Enable) bit de habilitación de interrupción con el cambio de RB7:RB4 1 = Habilita la interrupción. 0 = Inhibe las interrupción. (2) Algunas MCU no disponen de esta característica (1) También se puede encontrar con el nombre GPIE. Bit 2 T0IF: (Timer 0 Overflow Interrupt Flag). 1 = Interrupción producida por el desbordamiento del Timer 0 (debe ser puesto a cero por SW). 0 = El Timer 0 no se ha desbordado. Bit 1 INTF: (INT External Interrupt Flag). 1 = Interrupción producida por INT (debe ser puesto a cero por SW). 0 = INT no ha interrumpido la MCU. (2) Algunas MCU no disponen de esta característica Bit 0 RBIF: (RB Port Change Interrupt Flag). 1 = Interrupción producida por el cambio en alguno de los bits RB7:RB4 (debe ser puesto a cero por SW). 0 = RB7:RB4 no han interrumpido la MCU. (2) Algunas MCU no disponen de esta característica (1) También se puede encontrar con el nombre GPIF. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

34

MICROCONTROLADORES PIC INTERRUPCIONES

LÓGICA DE INTERRUPCIONES Registros PIR/PIE

Registro INTCON

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

35

MICROCONTROLADORES PIC INTERRUPCIONES

TIEMPO DE LATENCIA Es el tiempo que transcurre desde que se produce un evento de interrupción hasta que se ejecuta la instrucción de la dirección 04H. • Interrupciones síncronas (normalmente internas) tiempo de latencia= 3 Tcy. • Interrupciones asíncronas (normalmente externas) tiempo de latencia= 3-3,75 Tcy.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

36

MICROCONTROLADORES PIC INTERRUPCIONES Respuesta a un evento en el pin INT.

(1) El flag INTF se muestrea cada Q1. (2) El tiempo de latencia comprendido entre 3 y 3,75 Tcy. (3) CLKOUT disponible solo si el oscilador es RC. (4) Anchura mínima de pulso requerida en función de la MCU (para el 16F84A 20ns.) (5) INTF debe ponerse a cero por Sw.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

37

MICROCONTROLADORES PIC INTERRUPCIONES Fases en la gestión de interrupciones: 1. PC->Pila y GIE=0 2. PC=0004H 3. Se salvan los registros cuyo contenido se desee conservar (W, STATUS, etc.) ≡ PUSH 4. Se determina la fuente de interrupción (interrogando los flags correspondientes) 5. Se ejecuta la rutina de servicio a la interrupción 6. Se borra el flag relacionado con la interrupción atendida. 7. Se restauran los registros ≡ POP 8. Se ejecuta RETFIE 9. Pila->PC y GIE=1

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

38

MICROCONTROLADORES PIC INTERRUPCIONES

Salvaguarda de W y el registro STATUS, en un rutina de servicio a una interrupción:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

39

MICROCONTROLADORES PIC PUERTOS DE E/S • Se pueden considerar los periféricos más sencillos, implementan las entrada-salida de la MCU. • Se utilizan mediante dos registros: PORTx (datos) y TRISx (control) • Pueden implementarse hasta siete puertos de características distintas (x puede sustituirse con identificadores de puerto desde la A hasta la G) • Cada uno de los bits de TRISx establece la dirección de la información de su correspondiente bit (pin) en PORTx. • Un 1 configura el pin como entrada. Una operación de lectura obtiene el nivel presente en el terminal implicado. • Un 0 configura ese pin como salida, manteniendo el bit de salida mediante un latch. • Después de un reset todos los bits de TRISx son 1. • Los pines de entrada/salida pueden estar multiplexados con varios periféricos. Para conocer con exactitud las características de cada puerto en concreto es imprescindible. Consultar las hojas de características de cada dispositivo.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

40

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto de entrada/salida típico:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

41

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto A: • Tiene 6 bits. • RA4 Tiene entrada Trigger Schmitt y salida drenador abierto. • El resto admiten niveles de entrada TTL y salida CMOS. Diagrama de bloques para RA3:RA0 y RA5.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

42

MICROCONTROLADORES PIC PUERTOS DE E/S Pin RA4:

Ejemplo de inicialización del puerto A

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

43

MICROCONTROLADORES PIC PUERTOS DE E/S Puerto B: • Puerto de 8 bits bidireccionales Diagrama de bloques para RB3:RB0.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

44

MICROCONTROLADORES PIC PUERTOS DE E/S Diagrama de bloques para RB7:RB4.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

45

MICROCONTROLADORES PIC PUERTOS DE E/S

• La escritura en un puerto implica una lectura-modificación-escritura. • Puede acarrear problemas en operaciones de escritura sobre puertos en los que unos pines están configurados como entradas y otros como salidas:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

46

MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones sucesivas sobre un puerto de entrada salida • Escritura y lectura sobre el puerto B:

A frecuencias de reloj más altas, una escritura seguida por una lectura puede ser problemática debido a la capacidad externa, en esos casos puede ser conveniente utilizar NOP entre esas instrucciones.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

47

MICROCONTROLADORES PIC PUERTOS DE E/S Operaciones sucesivas sobre un puerto de entrada salida • Operaciones que implican lectura-modificación escritura:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

48

MICROCONTROLADORES PIC TIMER 0

Características: • Contador temporizador de 8 bits • Accesible mediante operaciones de lectura y escritura. • Incorpora un prescaler de 8 bits programable por Sw. • Reloj interno o externo. • Selección del flanco del reloj externo • Puede producir una interrupción al debordarse.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

49

MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG

Bit 7 RBPU’: bit de habilitación de resistencias pull-up 1 = Inhibidas 0 = habilitadas Bit 6 INTEDG: bit de selección del flanco activo de la interrupción INT 1 = Flanco ascendente 0 = Flanco descendete Bit 5 T0CS: bit de selección de reloj para TMR0 1 = Transición del pin T0CKI (reloj externo). 0 = Reloj interno (CLKOUT). Bit 4 T0SE: bit de selección de flanco cuando el reloj es externo 1 = Flanco de bajada de T0CKI. 0 = Flanco de subida de T0CKI

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

50

MICROCONTROLADORES PIC TIMER 0 REGISTRO OPTION_REG

Bit3 PSA: bit de asignación del prescaler 1 = Prescaler asignado al WDT. 0 = Prescaler asignado al TIMER 0. Bit 2:0 PS2:PS0: Valor de división del prescaler PS2 000 001 010 011 100 101 110 111

TMR0 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256

WDT 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

51

MICROCONTROLADORES PIC TIMER 0 Escritura en TMR0 (reloj interno, sin prescaler):

Una escritura en TMR0 provoca dos ciclos de instrucción (2Tcy) en los que no se puede volver a escribir en él.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

52

MICROCONTROLADORES PIC TIMER 0 Escritura en TMR0 (reloj interno, prescaler 1:2):

• Una escritura en TMR0 actualiza el registro e inicializa el prescaler. • El incremento del temporizador 0 (TMR0+prescaler) se inhibe durante dos ciclos de instrucción (2 Tcy), como el prescaler está configurado como divisor por 2, el temporizador 0 no se incrementará durante 4 tiempos de reloj.

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

53

MICROCONTROLADORES PIC TIMER 0 Temporización de la interrupción del timer 0:

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

54

MICROCONTROLADORES PIC TIMER 0 Sincronización con reloj externo:

T0CKI debe se 1 al menos 2TOSC

El reloj/prescaler se muestrea en Q2 y Q4

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

55

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

56

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

57

MICROCONTROLADORES PIC TIMER 0

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

58