Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC...

75
Tecnología Electrónica Introducción

Transcript of Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC...

Page 1: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

Tecnología Electrónica

Introducción

Page 2: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

2

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

MicrocontroladoresMicrocontroladores

Son circuitos integrados que incorporan todos los bloques funcionales de un Sistema Microprocesador en un único encapsulado.

Necesitan una tensión continua (5V, 3.3V, 2.5V, 1.5V...) y un oscilador para funcionar.

Interpretan (decodifican) combinaciones de bits (instrucciones) y generan señales digitales internas y/o externas.

Ejecutan de manera continua una secuencia de instrucciones (programa) que permite controlar un sistema o subsistema electrónico.

Tecnología Electrónica

Page 3: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

3

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Sistema mínimo microprocesadorSistema mínimo microprocesador

El sistema mínimo está basado en la estructura de von Newman. Sus bloques básicos son los siguientes:

El sistema mínimo está basado en la estructura de von Newman. Sus bloques básicos son los siguientes:

Tecnología Electrónica

•CPU, Central Process Unit o Unidad Central de Proceso. Formada por dos bloques: Unidad de Control y Unidad de Proceso.•Memoria, donde residen las instrucciones del programa y sus datos.•Módulos E/S, elementos encargados de recibir y entregar información al exterior.

CPU MEMORIA UDS. E / S

Reloj

Bus de Direcciones

Bus de Datos

Bus de Control

Los tres módulos están conectados entre sí por medio de los Buses de Comunicación. Cada bus está formado por un conjunto de conductores por los cuales se transmite la información digital.

Page 4: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

4

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Microprocesadores y microcontroladoresMicroprocesadores y microcontroladores

Tecnología Electrónica

Sistema Microprocesador (varios C.I. en una PCB)

Microcontrolador (único C.I.)

Page 5: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

5

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Microprocesadores y microcontroladoresMicroprocesadores y microcontroladores

Tecnología Electrónica

Tarjeta de Sistema Microprocesador para

control

C.I. Microcontrolador

Page 6: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

6

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Sistemas empotradosSistemas empotrados

Tecnología Electrónica

• Sistemas que incorporan microcontroladores (o microprocesadores) para una tarea específica pero que no son “programables” directamente por el usuario

• Los microcontroladores de 8 bits dominan en la mayoría de las aplicaciones

• El microcontrolador es el núcleo del sistema electrónico versátil de bajo coste y reducido tamaño que es capaz de detectar las señales de entrada y generar las salidas de un equipo, sistema o instrumento

• Por su reducido tamaño y coste permiten la fácil implantación de sistemas de“inteligencia” distribuida a lo largo de sistemas más complejos

• Los microcontroladores son los semiconductores más abundantes de todos en la actualidad.

Page 7: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

7

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Sistemas empotradosSistemas empotrados

Tecnología Electrónica

Evolución Microprocesadores: Computadores

75 Millones Microprocesadores/año

Evolución Microcontroladores: Sistemas Empotrados

2500 Millones

Microcontroladores/año

Page 8: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

8

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Microcontroladores PICMicrocontroladores PIC

Tecnología Electrónica

•Arquitectura Harvard: buses internos separados para memoria de datos (8 bits) y de programa (12, 14 ó 16 bits depende de la familia)

•Microprocesador RISC: juego de instrucciones reducido

•Estructura pipe-line: durante la ejecución de una instrucción, se está accediendo a la memoria de programa para traer la siguiente instrucción a ejecutar. (salvo un salto o llamada a subpr.)

•Todas las instrucciones ocupan una posición de memoria de programa

•Todas las instrucciones se ejecutan en un ciclo de instrucción = 4 ciclos de reloj (salvo las instrucciones de salto)

•Ortogonalidad de los registros: se opera entre el registro de trabajo W y cualquier otro registro, el resultado puede almacenarse en W

Page 9: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

Tecnología Electrónica

ARQUITECTURA HARVARD

• El tiempo de acceso se mejora respecto a la arquitectura von Neumann donde programa y datos se traen a la CPU usando el mismo bus.• La arquitectura Harvard tiene memoria de programa y memoria de datos separadas y se accede a ellas a través de buses separados.

Page 10: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

10

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Microcontroladores PIC.Microcontroladores PIC.CaracterísticasCaracterísticas

Tecnología Electrónica

• Eficiencia del código: permiten gran compactación de programas

• Rapidez de ejecución: a f de 20MHz 5 millones de instr./seg.

• Seguridad en acceso: Separa memoria de datos y de programa

• Juego reducido de instrucciones

• Compatibilidad de pines y código entre dispositivos (familias)

• Gran variedad de versiones en distintos encapsulados (8 - 84 pines)

• Herramientas de desarrollo software y hardware abundantes y de bajo coste

Page 11: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

11

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Familias de PICFamilias de PIC

Tecnología Electrónica

Familia PIC16C5X

•Encapsulados de 14, 18, 20 y 28 pines•Instrucciones de 12 bits•Juego de 33 instrucciones•Es la familia base de partida de los PIC

Familia PIC16CXXX/16FXXX•Encapsulados desde 18 hasta 68 pines (DIP, SSOP, PLCC, QFP)•Instrucciones de 14 bits en Memoria de Programa•Juego de 35 instrucciones•Gran variedad de módulos integrados

Page 12: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

12

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Familia PIC16CXXX/16FXXXFamilia PIC16CXXX/16FXXX

Tecnología Electrónica

• Puertos de Entrada/Salida

• Puerto Esclavo Paralelo (PSP)

• Temporizadores/contadores (TMR0, TMR1, TMR2)

• Captura / Comparación / PWM (CCP1 y CCP2)

• Conversión Analógica / Digital (A/D)

• Transmisor Receptor Asíncrono Síncrono Universal (USART)

• Puerto Serie Síncrono (BSSP ó MSSP)

• Memoria EEPROM de datos

• FLASH EEPROM de programa modificable desde el código

Page 13: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

13

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Familia PIC16CXXX/16FXXXFamilia PIC16CXXX/16FXXX

Tecnología Electrónica

Microcontrolador PIC16F877

(gama media)

Microcontrolador PIC16F877

(gama media)

8K x 14368 x 8

256 x 8

Pu

erto

s d

e E

/S

Puerto Esclavo Paralelo

Temporizadores

Conversor A/D

USART

Módulos CCP SSP

Page 14: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

14

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

PIC. Proceso de diseñoPIC. Proceso de diseño

Tecnología Electrónica

Diseño software: el micro sin un programa cargado en su memoria no hace nada, cuando el micro esté grabado con un programa eficiente el conjunto empezará a funcionar

• Diseño del programa y escritura del código fuente en ensamblador o en C • Pruebas, verificación y modificación del código: Simulación del programa (puro software) o emulación dentro del circuito de aplicación (software y hardware)• Grabación del código máquina en la memoria del microcontrolador

Edición del código,1ª depuración y

simulación

Emulación oDepuración sobre

PCB

Grabación del micro

Page 15: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

PIC 16F877PIC 16F877ORGANIZACIÓN DE LA ORGANIZACIÓN DE LA

MEMORIAMEMORIA

Tecnología ElectrónicaCopyright ATE

Page 16: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

16

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Organización de la memoriaOrganización de la memoria

Tecnología Electrónica

El PIC16F877 dispone de tres tipos de memoria:

• Memoria de programaConsta de 8192 posiciones (8Kwords) y contiene el programa con las instrucciones que gobiernan la aplicación. Es no volátil.

• Memoria de datos RAMGuarda las variables y datos. Está formada por registros de 8 bits. Es volátil.

• Memoria EEPROM de datosEs una pequeña área de memoria de datos de lectura y escritura no volátil que permite garantizar que determinada información estará siempre disponible al reiniciar el programa.

Page 17: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

17

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

MemoriaMemoria

Tecnología Electrónica

156 X 8EEPROM

Memoria de programa

Memoria de datos RAM

Memoria EEPROM

Page 18: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

18

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de programaMemoria de programa

Tecnología Electrónica

• La información contenida en esta memoria se graba previamente mediante un equipo (programador o grabador).

• Almacena todas las instrucciones del programa en ejecución, y queda grabada de forma permanente.

• En el PIC16F877 esta memoria es no volátil del tipo ROM Flash y admite unas 1000 grabaciones.

• Está organizada en palabras de 14 bits cada una.

• Todas las instrucciones ocupan una posición dememoria de programa

• A la posición 0 se accede tras un RESET y a laposición 4 tras una interrupción.

Page 19: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

19

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de programa. Memoria de programa. Contador de programa, PC.Contador de programa, PC.

Tecnología Electrónica

Para acceder a la memoria de programa de los PIC16FXXX se utiliza un registro de 13 bits que actúa como puntero de la instrucción que se debe ejecutar en el siguiente ciclo de instrucción.

Este registro es el Contador de Programa PC que permite direccionar 8K posiciones de memoria de 14 bits (recordar que cada posición corresponde a una instrucción) por tanto, el PC es capaz de direccionar 8K instrucciones.

Resulta fácil saber si un PIC tiene memoria de programa suficiente para una determinada aplicación.

Page 20: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

20

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de programa.Memoria de programa.Contador de programa, PC.Contador de programa, PC.

Tecnología Electrónica

Líneas de direcciones (direccionamiento)

Líneas de datosde la memoriade programa

ACCESO A LA MEMORIA DE PROGRAMA

ACCESO A LA MEMORIA DE PROGRAMA

Page 21: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

21

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de programa.Memoria de programa.Contador de programa, PC.Contador de programa, PC.

Tecnología Electrónica

• Los 8K de memoria de programadisponible están divididos en 4 páginas de2K cada una (0h–7FFh, 800h-FFFh, 1000h-17FFh y 1800h-1FFFh). Esto se debe aque las instrucciones de salto y llamada asubprograma permiten cargar sólo 11 bitsen el PC (desplazamiento en 211 = 2K)

•Si se están ejecutando instruccionessecuencialmente, el contador de programapasará de una página a otra.

•Para saltar entre páginas de la memoriade programa los 2 bits más altos del PCdeben modificarse. Esto se realizaescribiendo en el registro PCLATH (es unregistro situado en la memoria de datos).

Page 22: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

22

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de programa.Memoria de programa.Contador de programa, PC.Contador de programa, PC.

CONTADOR DE PROGRAMA El contador de programa (PC) es un

registro de 13 bits que se descompone en 2 registros: PCH y PCL

El byte bajo PC<0:7> se denomina PCL y está disponible en la memoria de datos. Es un registro que se puede leer y escribir directamente desde el programa.

El “cuasibyte” alto PC<12:8> se denomina PCH y no está disponible en la memoria de datos. Este registro no se puede leer ni escribir directamente. La escritura debe realizarse usando como registro intermedio el registro PCLATH que sí es un registro de 8 bits accesible en la memoria de datos del microcontrolador. El contenido del registro PCLATH se transfiere a la parte alta del PC en el momento en que se escribe en el registro PCL. También aporta dos bits al PC en los saltos o llamadas a subprogramas.

Tecnología Electrónica

Page 23: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

23

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

La pilaLa pila

Tecnología Electrónica

• La pila permite almacenar las direcciones a donde deberetornar el programa cuando se finaliza una llamada a una subrutinao cuando se finaliza la ejecución de una rutina de interrupción.

• Los microcontroladores de la familia PIC16 tienen una pila de 8niveles x 13 bits, que por tanto permite como máximo 8 llamadas a subrutinas (CALLs) o ejecuciones de rutinas de interrupción (salto a 0004h).

• El espacio de memoria para la pila no forma parte de la memoria deprograma ni de la memoria de datos que tiene el microcontrolador.Es un espacio de memoria totalmente independiente. El puntero depila no se puede leer ni escribir. La pila es gestionada por elhardware.

Page 24: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

24

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria RAM de datosMemoria RAM de datos

• La memoria de datos está distribuida en 4 posibles bancos de 128bytes cada uno. Por tanto, la máxima cantidad de memoria disponibleen los microcontroladores PIC16 es de 512 bytes. No obstante, noestán implementadas todas las posiciones de memoria en todos losbancos.

• Por ejemplo, un PIC16F876 sólo tiene implementadas 368 posiciones dememoria de datos.

• A cada posición de memoria se le denomina registro.

• La memoria de datos se organiza en bancos de 128 bytes porque cuando se indica una dirección de operando fuente, sólo se puedenincluir 7 bits en la codificación: 27=128 bytes

Tecnología Electrónica

Page 25: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

Tecnología Electrónica

• Sirve para almacenar todos los datos que se manejan en un programa.

• Se distinguen dos tipos de registro:

Registros de funciones especiales: Son los primeros registros. Cada uno de ellos cumple un propósito especial en el control del PIC.

Registros de propósito general: Se pueden usar para guardar datos temporales. El PIC16F877 dispone de 368.

• Cuenta con cuatro bancos de memoria: Bancos 0, 1, 2 y 3.

Los registros de funciones especiales aparecen de la dirección 00h a 1Fh del Banco 0, de 80h a 9Fh del Banco 1, de 100h a 10F en el Banco 2 y de 180h a 18Fh del Banco 3. Algunos son accesibles desde dos o más bancos.

Los registros de propósito general ocupan 368 posiciones de memoria.

Memoria RAM de datos

Page 26: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

26

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

La memoria de datosSTATUS STATUS STATUSSTATUS

PORTB PORTB

Page 27: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

27

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de datosMemoria de datos

MODOS DE DIRECCIONAMIENTO La memoria de datos está distribuida en 4 posibles bancos de

128 bytes cada uno. Existen 2 modos de direccionamiento para acceder a cualquiera

de las posiciones de la memoria de datos:Direccionamiento directoDireccionamiento indirecto

Direccionamiento directo: La posición de memoria con la que se trabaja viene directamente definida en el código de la instrucción.

Direccionamiento indirecto: La posición de memoria con la que se trabaja viene definida por el contenido del registro FSR (Posición 04h, 84h, 104h o 184h), es decir, el registro FSR actúa como puntero de la posición de memoria con la que se pretende operar.

Tecnología Electrónica

Page 28: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

28

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Memoria de datos: Memoria de datos: Direccionamiento.Direccionamiento.

BANCO RP1:RP0

0 00

1 01

2 10

3 11

Tecnología Electrónica

DIRECCIONAMIENTO DIRECTO

Page 29: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

29

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Direccionamiento indirectoDireccionamiento indirecto

Tecnología Electrónica

1) SE LEE EL REGISTRO CONTENIDO EN EL CODIGO DE LA INSTRUCCIÓN.

2) SI EL REGISTRO ES DISTINTO DEL CORRESPONDIENTE A INDF (00h,80h,100h ó 180h) LA INSTRUCCIÓN SE EJECUTA SOBRE EL REGISTRO INDICADO EN LA INSTRUCCIÓN COMPLEMENTADO CON LOS BITS RP1:RP0 DEL REGISTRO STATUS (DIRECCIONAMIENTO DIRECTO)

3) SI EL REGISTRO CORRESPONDE A LA POSICION DE INDF (00h,80h,100h ó 180h), LA INSTRUCCIÓN SE EJECUTA SOBRE EL REGISTRO INDICADO EN EL REGISTRO FSR COMPLEMENTADO CON EL BIT IRP DEL REGISTRO STATUS

BCF STATUS, IRP ; dir. Indirecto, bancos 0/1MOVLW 0x20 ; Inicializa puntero a RAMMOVWF FSR ;

NEXT CLRF INDF ; limpia registro INDFINCF FSR,F ; Inc punteroBTFSS FSR,4 ; Todo limpio?GOTO NEXT ; NO, limpia siguiente

CONTINUE ;: ; SI, continua

Sencillo ejemplo de direccionamiento indirecto donde se limpian las posiciones de memoria de datos comprendidas entre la posición 20h y la 2Fh (ambas incluidas)

Page 30: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

30

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

Registro de estado

Page 31: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

31

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

Registro option

Page 32: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

32

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

Registro intcon

Page 33: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

33

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

PIE1

Page 34: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

34

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Tecnología Electrónica

PIR1

Page 35: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

CARACTERÍSTICAS CARACTERÍSTICAS ESPECIALES DE LOS PICESPECIALES DE LOS PIC

Tecnología Electrónica

Page 36: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

36

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

CARACTERÍSTICAS ESPECIALES DE CARACTERÍSTICAS ESPECIALES DE LOS PICLOS PIC

Estas características suelen ser los aspectos que más distinguen la CPU

de estos dispositivos con otros microprocesadores.

• Oscilador: más simple y con menos elementos adicionales necesarios

• Resets y Watchdog: seguridad en el arranque, reinicio y “autovigilancia”

• Sleep: modo de bajo consumo para aplicaciones con baterías• Interrupciones: lógica de máscaras y eventos y posición común del

PTI• Protección de código: para evitar la “copia” de programas grabados• ICSP e ICSP LVP: (In-Circuit Serial Programming) programación en

serieya en la tarjeta de la aplicación y a baja tensión (Low Voltage

Program)• Modo depuración ICD: (In-Circuit Debugger) modo especial que

permitedepurar el código pero ya con el MCU conectado con el resto del

circuito.

Tecnología Electrónica

Page 37: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

37

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

PALABRA DE CONFIGURACIÓNPALABRA DE CONFIGURACIÓN• Todos los microcontroladores PIC tienen una posición de

memoria denominada palabra de configuración en la que cada bit tiene un significado y configura las características especiales.

• Los bits de configuración están fuera del espacio de memoria de

programa de usuario por lo que sólo son accesibles durante la

programación del micro y no durante la ejecución de un programa.

Las herramientas que ofrece MICROCHIP nos dan dos alternativas para fijar los valores de estos bits de configuración: a través del menú Configure > Configuration_Bits del entorno MPLAB ó mediante la inclusión de una directiva de configuración en el código del programa.

Tecnología Electrónica

Page 38: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

38

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

OSCILADOROSCILADOR

Los PIC16F87X pueden funcionar con 4 modos distintos de oscilador. El usuario puede programar dos bits de configuración para seleccionar uno de

estos 4 modos: LP Low Power Crystal (cristal de cuarzo ó

resonador cerámico hasta 200KHz) XT Crystal/Resonator (cristal de cuarzo ó

resonador cerámico hasta 4MHz) HS High Speed Crystal/Resonator (cristal de

cuarzo entre 4MHz y 20MHz) RC Resistor/Capacitor (red RC externa hasta

4MHz)

Tecnología Electrónica

Page 39: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

39

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

CICLO DE INSTRUCCIÓNCICLO DE INSTRUCCIÓN

Un ciclo de instrucción es el tiempo que se tarda en ejecutar una instrucción (salvo saltos) en el microcontrolador. En los PIC16, un ciclo de instrucción dura 4 ciclos de reloj (Q1, Q2, Q3, Q4).

En una primera etapa, la instrucción es traída a la CPU. Esto lleva un ciclo de instrucción.

En la segunda etapa se ejecuta la instrucción. Esto lleva otro.

No obstante, debido al solapamiento (pipelining) de traer la instrucción actual y ejecución de la instrucción previa, una instrucción se trae y otra se ejecuta cada ciclo de instrucción.

Se produce un ciclo de instrucción de retardo si elresultado de ejecutar la instrucción anterior modifica elcontenido del Contador de Programa (Ej: GOTO ó CALL).

Tecnología Electrónica

Page 40: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

40

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

MODO SLEEPMODO SLEEP

Los microcontroladores PIC pueden trabajar en dos modos distintos:

Modo Normal: ejecutando las instrucciones Modo Dormido o de bajo consumo: se suspende la

ejecución El consumo de un microcontrolador depende de su

frecuencia de trabajo, a más frecuencia más consumo. El modo dormido supone un ahorro de consumo porque el

oscilador del microcontrolador deja de oscilar, por tanto no se ejecutan instrucciones.

En este modo “dormido” se entra por software cuando se ejecuta la instrucción SLEEP

Tecnología Electrónica

Page 41: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

41

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

MODO SLEEPMODO SLEEP Al entrar en modo dormido, el bit PD (STATUS<3>) se pone a 0 y el bit

TO(STATUS<4>) se pone a 1, estos bits indican que se entró en ese modo para conocimiento posterior en tiempo de ejecución.A continuación el oscilador deja de oscilar. Los pines asociados a Puertos deEntrada/Salida mantienen el valor previo a la ejecución de la instrucción SLEEP.

Si está habilitado el WATCHDOG (en la palabra de configuración), sutemporizador se pondrá a cero al ejecutar la instrucción SLEEP, pero semantendrá “corriendo” y podría desbordar ya que el Watchdog tiene unoscilador RC independiente del propio del microcontrolador.

El microcontrolador puede salir del modo de bajo consumo por alguno delos siguientes motivos:◦ 1. Un RESET externo provocado en el pin MCLR.◦ 2. Desbordamiento del WATCHDOG.◦ 3. Interrupción provocada por algún evento de los periféricos que

pueden generarlos sin la presencia del oscilador.

Tecnología Electrónica

Page 42: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

42

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

RESET DEL MCURESET DEL MCU

Los PIC16F87X tienen 6 posibles fuentes de RESET del MCU:

Power-on Reset (POR) -> Reset de Alimentación del Microcontrolador

MCLR Reset durante funcionamiento normal -> Activación del pin de Reset en modo normal

MCLR Reset durante SLEEP -> Activación del pin de Reset en modo de bajo consumo

WDT Reset (durante funcionamiento normal) -> Desbordamiento del Watchdog en modo normal

WDT Wake-up (durante SLEEP) -> Desbordamiento del Watchdog en modo de bajo consumo

Brown-out Reset (BOR) -> Reset por caída temporal de la alimentación

La mayoría de los registros del mapa de memoria de datos no se ven afectados por ningún tipo de RESET. No obstante, hay muchos otros registros que son “reseteados” a un valor determinado si se produce un POR, un MCLR Reset ó WDT Reset durante funcionamiento normal, un MCLR Reset durante SLEEP ó un BOR.

Tecnología Electrónica

Page 43: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

43

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

PERRO GUARDIÁN O WATCHDOGPERRO GUARDIÁN O WATCHDOG El temporizador Watchdog es un temporizador existente en el

microcontrolador basado en un oscilador RC interno, independiente del oscilador del microcontrolador

Este oscilador RC interno no tiene nada que ver con un posible oscilador RC externo conectado a la patilla OSC1/CLKI.

Si está activo, durante el funcionamiento normal del microcontrolador, un desbordamiento (ó time-out) del Watchdog provoca un Reset del microcontrolador (Watchdog Timer Reset).

Para que no se desborde, cada cierto tiempo y antes de que llegue al límite, se debe ejecutar una instrucción CLRWDT que “limpia” el Watchdog y le hace comenzar una nueva cuenta desde cero.

Si el dispositivo está en modo dormido, un desbordamiento del watchdog provoca que el micro despierte y continue con el funcionamiento normal (Watchdog Timer Wake-Up) con la instrucción que sigue a SLEEP.

El bit TO del registro STATUS se pone a cero tras un desbordamiento del Watchdog.

Tecnología Electrónica

Page 44: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

44

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

PERRO GUARDIÁN O WATCHDOGPERRO GUARDIÁN O WATCHDOG Un preescaler es un divisor de frecuencia que puede hacer que

se cuente antes el número de desbordamientos del WDT y hacer así que el tiempo que tarda en resetear al microcontrolador sea más largo. Ese divisor de frecuencia está compartido con el TMR0 y por tanto, si se usa para el TMR0 no se puede usar para el WATCHDOG y viceversa.

El divisor de frecuencia del WATCHDOG viene definido por unos bits del registro OPTION:◦ PSA: a quién se le asigna el divisor.◦ PS2-PS1-PS0: cuál es el factor de división de la frecuencia: 000: 1:2 para TMR0 / 1:1 para WDT. 100: 1:32 para TMR0 / 1:16 para WDT.001: 1:4 para TMR0/ 1:2 para WDT. 101: 1:64 para TMR0 / 1:32 para WDT.010: 1:8 para TMR0 / 1:4 para WDT. 110: 1:128 para TMR0 / 1:64 para WDT.011: 1:16 para TMR0 / 1:8 para WDT. 111: 1:256 para TMR0 / 1:128

para WDT.

Tecnología Electrónica

Page 45: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

45

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

INTERRUPCIONESINTERRUPCIONESLos PIC16F87XA tienen hasta 15 posibles fuentes de interrupción, entre otras:◦ Escritura o lectura del puerto esclavo paralelo (PSPIF)◦ Desbordamiento del TMR0◦ Desbordamiento del TMR1◦ Desbordamiento del TMR2◦ Captura de un módulo CCP (CCPxIF).◦ Comparacion del modulo CCP en modo “disparo de evento

especial”. ◦ Módulo SSP al detectar un bit de START ó STOP ◦ Módulo SSP al transmitir o recibir en modo esclavo◦ Módulo USART al RX o TX (modo síncrono) (RCIF ó TXIF).◦ Al finalizar una conversión A/D ◦ Al completar una escritura en EEPROM (EEIF).◦ Al modificarse el estado de salida de alguno de los comparadores

(CMIF).◦ Interrupción externa por flanco en el pin RB0/INT (INTF).◦ Interrupción por cambio en los valores de los pines RB4 a RB7 del

PORTB (RBIF).Tecnología Electrónica

Page 46: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

46

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

INTERRUPCIONESINTERRUPCIONES Se dispone de un bit de habilitación de interrupciones global GIE

(INTCON<7>) que permite deshabilitar todas las interrupciones (si está a 0). Cuando el bit GIE está a 1, si una interrupción tiene su flag a 1 y sus bits de habilitación a 1, el microcontrolador terminará la instrucción que se está ejecutando en ese instante y, a continuación, pasará a ejecutar la posición 4 de la memoria de programa que corresponde a la posición del vector de interrupción y que es el mismo para todas las interrupciones. Las fuentes de interrupción pueden deshabilitarse individualmente utilizando sus máscaras o bits de habilitación (bits acabados en “E”).

El bit GIE se pone a 0 tras un RESET. Por tanto, al principio las interrupciones están desactivadas.

Al producirse el salto a la rutina o programa de tratamiento de la interrupción, el bit GIE se pone a 0 deshabilitando el resto de interrupciones, salvo que por software se vuelva a poner a 1 ese bit GIE. El retorno del programa de tratamiento de interrupción (RETFIE) coloca en la máscara global GIE el valor 1, además de recuperar el PC de la pila hardware.

Los bits de flags pueden ponerse a 1 independientemente de que sus bits de habilitación estén o no a 1, ya que indican eventos.

Tecnología Electrónica

Page 47: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

47

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Lógica de interrupcionesLógica de interrupciones

Tecnología Electrónica

Page 48: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

48

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

SALVANDO EL CONTEXTOSALVANDO EL CONTEXTO Cuando se produce una interrupción sólo se guarda en la pila

hardware interna el valor del PC.

Normalmente, se deberán salvar algunos otros registros para no perder sucontenido al regresar al programa principal y tras haber pasado por la rutina de interrupción, máxime cuando se ignora cuándo se va a producir el salto a ese programa de tratamiento de la interrupción (PTI) desde el programa principal.

Estos registros son al menos el W y el STATUS

También puede resultar interesante guardar el registro PCLATH, especialmente si en la rutina de interrupción se cambia de página de memoria de programa.

Como no hay pila en RAM, hay que reservar posiciones de memoria en RAM que habitualmente denominaremos W_TEMP, STATUS_TEMP y PCLATH_TEMP donde se guardan los valores de W, STATUS y PCLATH al entrar en la rutina de interrupción para luego recuperarlos al salir.

Tecnología Electrónica

Page 49: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

49

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

SECUENCIA PARA SALVAR EL SECUENCIA PARA SALVAR EL CONTEXTO DEL PROG. PCPAL.CONTEXTO DEL PROG. PCPAL.

;Para salvar el contexto no podemos emplear la instrucción MOVF ;ya que afecta al registro STATUS (al bit Z), para evitarlo ;empleamos la instrucción SWAPF

movwf W_tmp ;Salvamos el registro Wswapf STATUS,W ; y el registro STATUS "girado" en Wbcf STATUS,RP0 ;Aseguramos el paso al banco 0bcf STATUS,RP1 ;poniendo a 0 los dos bits de selección de ;bancomovwf STATUS_tmp ;Guardamos en el banco 0 STATUS giradomovf PCLATH,W ;Salvamos también PCLATH en Wmovwf PCLATH_tmp ;y ahora en una posición auxiliar del ;banco 0 Tecnología Electrónica

Siempre se debe hacer así o de una manera similar (si se guardan más registros) al principio de un PTI

Page 50: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

50

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

SECUENCIA PARA RECUPERAR EL SECUENCIA PARA RECUPERAR EL CONTEXTO DEL PROG. PCPAL.CONTEXTO DEL PROG. PCPAL.

;Para recuperar los registros salvados no podemos usar MOVF ;porque modifica a STATUS, para evitarlo usamos la instrucción ;SWAPF

movf PCLATH_tmp,W ;Recuperamos PCLATHmovwf PCLATH ;directamenteswapf STATUS_tmp,W ;Recuperamos el registro STATUS con ;un SWAPFmovwf STATUS ;ahora estamos en el banco de partidaswapf W_tmp,F ;Recuperamos también el W con dos ;SWAPFswapf W_tmp,W ;para evitar la instrucción MOVF

retfie ;Ahora ya podemos retornar del PTI

Tecnología Electrónica

Page 51: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

Programación en Programación en ensambladorensamblador

Tecnología ElectrónicaCopyright ATE

Page 52: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

52

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

EnsambladorEnsamblador

El lenguaje ensamblador expresa las instrucciones de una forma más natural al hombre que el lenguaje máquina (0 y 1) a la vez que muy cercana al microcontrolador, ya que cada una de esas instrucciones se corresponde con otra en código máquina.

El lenguaje ensamblador trabaja con nemónicos, que son grupos de caracteres alfanuméricos que simbolizan las órdenes o tareas a realizar.

La traducción de los nemónicos a código máquina la realiza un programa ensamblador: MPASM.

El programa escrito en lenguaje ensamblador se denomina código fuente (*.asm). El programa ensamblador proporciona a partir de este fichero el correspondiente código máquina, que suele tener la extensión *.hex.

Tecnología Electrónica

Page 53: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

53

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Código fuenteCódigo fuente

Está compuesto por una sucesión de líneas de texto. Cada línea puede estructurarse en hasta cuatro campos o columnas

separados por uno o más espacios o tabulaciones entre sí. Campo de etiquetas. Expresiones alfanuméricas escogidas por el

usuario para identificar una determinada línea. Todas las etiquetastienen asignado el valor de la posición de memoria en la que se encuentra el código al que acompañan.

Campo de código. Corresponde al nemónico de una instrucción, de una directiva o de una llamada a macro.

Campo de operandos y datos. Contiene los operandos que precisa elnemónico utilizado. Según el código puede haber dos, uno o ningúnoperando.

Campo de comentarios. Dentro de una línea, todo lo que se encuentrea continuación de un punto y coma (;) será ignorado por el programaensamblador y considerado como comentario.

Tecnología Electrónica

Page 54: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

54

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Campo de códigoCampo de código

Puede estar ocupado por:

Instrucciones: son aquellos nemónicos que son convertidos por elensamblador en código máquina que puede ejecutar elmicrocontrolador. Cada nemónico se convierte en una palabra en la memoria de programa.

Directivas: Pseudoinstrucciones que controlan el proceso de ensamblado del programa, pero no son parte del código. Son indicaciones al programa ensamblador de cómo tiene que generar el código máquina.

Macros: Secuencia de nemónicos que pueden insertarse en el códigofuente del ensamblador de una manera abreviada mediante una simplellamada.

Tecnología Electrónica

Page 55: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

55

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Campo de operandos y datosCampo de operandos y datos

Tecnología Electrónica

Decimal .<valor>d’<valor>’D’<valor>’

Hexadecimal

0x<valor>h’<valor>’H’<valor>’

<valor>h . <valor>H

Octal o’<valor>’O’<valor>’

Binario b’<valor>’B’<valor>’

ASCII ‘<carácter>’a’<carácter>’A’<carácter>’

Cadena “<cadena>”

TIPO SINTAXIS

Las constantes hexadecimales que empiecen por una letra deben ir precedidas de un cero para no confundirlas con una etiqueta.

Page 56: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

56

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Es un juego reducido de 35 instrucciones muy simples y rápidas.

La mayoría de las instrucciones se ejecuta en 4 ciclos de reloj; los saltos se ejecutan en 8.

Todas las instrucciones tienen la misma longitud: 14 bits.

Tecnología Electrónica

Instrucciones de CARGA

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

clrf f 00 (f) Z

clrw 00 (W) Z

movf f,d (f) (destino) Z

movlw k k (W) Ninguno

movwf f (W) (f) Ninguno

Page 57: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

57

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Tecnología Electrónica

Instrucciones de BIT

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

bcf f,b Pone a 0 el bit ‘b’ del registro ‘f’ Ninguno

bsf f,b Pone a 1 el bit ‘b’ del registro ‘f’ Ninguno

Instrucciones ARITMÉTICAS

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

addlw k (W) + k (W) C – DC - Z

addwf f,d (W) + (f) (destino) C – DC - Z

decf f,d (f) - 1 (destino) Z

incf f,d (f) + 1 (destino) Z

sublw k K - (W) (W) C – DC - Z

subwf f,d (f) - (W) (destino) C – DC - Z

Page 58: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

58

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Tecnología Electrónica

Instrucciones LÓGICAS

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

andlw k (W) AND k (W) Z

andwf f,d (W) AND (f) (destino) Z

comf f,d (/f) (destino) Z

iorlw k (W) OR k (W) Z

iorwf f,d (W) OR (f) (destino) Z

rlf f,d Rota (f) a izquierda (destino) C

rrf f,d Rota (f) a derecha (destino) C

swap f,d Intercambia nibbles (f) (destino) Ninguno

xorlw k (W) XOR k (W) Z

xorwf f,d (W) XOR (f) (destino) Z

Page 59: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

59

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Tecnología Electrónica

Instrucciones de SALTO

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

btfsc f,b Salta si el bit ‘b’ de ‘f’ es 0 Ninguno

btfss f,b Salta si el bit ‘b’ de ‘f’ es 1 Ninguno

decfsz f,d (f) - 1 (destino) y salta si es 0 Ninguno

incfsz f,d (f) + 1 (destino) y salta si es 0 Ninguno

goto k Salta a la dirección ‘k’ Ninguno

Page 60: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

60

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Tecnología Electrónica

Instrucciones de manejo de SUBRUTINAS

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

call k Llamada a subrutina Ninguno

retfie Retorno de una interrupción Ninguno

retlw k Retorno con un literal en (W) Ninguno

return Retorno de una subrutina Ninguno

Page 61: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

61

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Juego de instruccionesJuego de instrucciones

Tecnología Electrónica

Instrucciones ESPECIALES

NEMÓNICO DESCRIPCIÓN FLAGS AFECTADOS

clrwdt Borra Timer del Watchdog /TO - /PD

nop No operación Ninguno

sleep Entra en modo de bajo consumo /TO - /PD

Page 62: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

62

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

DirectivasDirectivas Controlan el proceso de ensamblado del programa, pero no

son parte del mismo (también se conocen como pseudoinstrucciones).

Hay más de 50 directivas reconocidas por MPASM. A continuación veremos algunas de las más utilizadas.

◦ END Es la única directiva obligatoria. Indica al ensamblador dónde debe

detener el proceso. Debe colocarse en la última línea del programa.

◦ <etiqueta> EQU <expresión>El valor <expresión> es asignado a <etiqueta>. Estas directivas sesuelen colocar al principio del programa y habitualmente se usanpara definir constantes y direcciones de memoria.

◦ [<etiqueta>] ORG <expresión>Las instrucciones del código fuente que siguen a esta directiva seensamblan a partir de la posición indicada por <expresión>.

Tecnología Electrónica

Page 63: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

63

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

DirectivasDirectivas

Tecnología Electrónica

__CONFIG <expresión> [& <expresión> & ... & <expresión>]Permite indicar la configuración elegida para la grabación del

PIC.Ejemplo: __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC

LIST P=16F877Indica el tipo de microcontrolador utilizado.

INCLUDE <p16F877.inc> o INCLUDE “p16F877.inc”Incluye en el programa un fichero donde se definen las etiquetascon las que se nombra a los diferentes registros y sus bits. Estefichero se encuentra en el directorio principal del programaensamblador. Puede usarse esta directiva para incluir cualquierotro fichero (El fichero de inclusión no puede terminar conuna directiva END).

Page 64: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

MANEJANDO LASMANEJANDO LASINSTRUCCIONESINSTRUCCIONES

Tecnología ElectrónicaLucía Marcos

Page 65: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

65

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Registros FSR más utilizados y Registros FSR más utilizados y bancos donde se ubican en la bancos donde se ubican en la RAMRAMBanco 0:

◦ PORTA◦ PORTB◦ PORTC◦ PORTD◦ PORTE◦ TMR0◦ STATUS (en los dos bancos)◦ INTCON (en los dos bancos)◦ PCLATH (en los dos bancos)

Banco 1:◦ TRISA◦ TRISB◦ TRISC◦ TRISD◦ TRISE◦ OPTION_REG

Tecnología Electrónica

Después del RESET de encendido, estamos en el banco 0.

La selección de banco se realiza mediante los bits RP0 y RP1 que se encuentran en el registro STATUS

Page 66: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

66

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

InicializaciónInicialización

La secuencia a seguir en el inicio es:LIST P=16F877 ;Tipo de procesadorinclude P16F877.INC ;incluye fichero de símbolos y etiquetas

;se pueden incluir otros ficheros;aquí reservamos las posiciones de memoria de datos que necesitemos a

partir;de la posición 0x20

org 0x00 ;inicio en el vector de Reset (posición 0 de la ;memoria de programa)goto Inicio ;va a la primera instrucción del programa

; si se van a producir interrupciones, debemos tener en cuenta que el vector de

; interrupción se encuentra en la posición 4 de la memoria de programa, por lo

; que habrá que añadir:org 0x04 ; vector de interrupcióngoto trata_interrupción ; va al programa de tratamiento de la ;interrupción

Tecnología Electrónica

Page 67: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

67

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Configuración de los puertosConfiguración de los puertos

Los puertos (que están en el banco 0) tienen unos registros asociados, TRIS (en el banco 1) que permiten configurar cada una de sus patillas como entrada o salida.

Después del RESET de encendido, estos registros TRIS tienen todos sus bits a 1 (los puertos correspondientes están configurados como entradas).

Tecnología Electrónica

Ejemplo: Queremos que los bits del puerto A <7:5> sean salidas y los bits <4:0> sean entradas

bsf STATUS,RP0 ;pasamos al banco 1movlw b'00011111' ;configuramos PORTA<7:5> como movwf TRISA ;salidas y PORTA<4:0> como entradas,

;aunque esto último no es necesario.

Page 68: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

68

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Operaciones con literalesOperaciones con literales Todas las operaciones con literales se realizan con el registro

W. Para cargar, sumar, etc. un registro F con un literal se debe

hacer en dos pasos:◦ 1º- Se realiza la operación con W◦ 2º- Se carga W en el registro F.

Tecnología Electrónica

Ejemplo 1: cargar el registro OPTION_REG con 0000 0110.movlw b'00000110' ;cargamos el registro option_reg...movwf OPTION_REG ;...con el valor indicado

Ejemplo 2: sumar dos valores inmediatos (p.e. los decimales 12 y 7) movlw 0x0C ;carga el 1er. sumando en Waddlw 0x07 ;le sumamos el 2º sumandomovwf Resultado ;guardamos el resultado

;antes hemos reservado una posición de memoria RAM para el resultado, a partir de la 0X20 (banco 0 en este caso) con la directiva EQU o bien con la directiva CBLOK.; con EQU:

Resultado EQU 0x20;con CBLOK:

CBLOK 0x20ResultadoENDC

Page 69: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

69

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Obtener parte de un registroObtener parte de un registro

Se hace una AND con 1s.Ejemplo :Queremos quedarnos con la parte alta del registro REG.

MOVF REG, W ;pasamos el contenido del registro a WANDLW 0xF0 ;hacemos la AND con F0 para obtener la parte

alta ;de REG, el resultado queda en W

Otra forma:MOVLW 0xF0 ;cargamos W con el literal F0ANDWF REG, 0 ;hacemos la AND entre W y REG y dejamos el

;resultado en W

Tecnología Electrónica

Page 70: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

70

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Comprobar si dos registros son Comprobar si dos registros son iguales iguales Se utiliza la instrucción XORWF, por lo que se hace la XOR entre W y uno de los

registros. Ejemplo: saber si el registro CONTADOR que es un registro que se inicializa a 0 y se va incrementando es igual al registro FIN, en cuyo caso se termina el programa; si no, incrementamos CONTADOR.

MOVF CONTADOR,W ; cargamos W con el contenido de CONTADORXORWF FIN ; hacemos la XOR entre W y FINBTFSS STATUS,Z ; miramos si el resultado ha sido cero; INCF CONTADOR ; si no, se incrementa CONTADORGOTO END ; si sí, salta la siguiente instrucción y va a GOTO ENDOtra opción es restar ambos registros utilizando el registro W; en este ejemplo

sólo nosinteresa saber si son o no son iguales.

Tecnología Electrónica

MOVF CONTADOR, W ;cargamos W con el valor de CONTADOR

SUBWF FIN, W ; restamos FIN-CONTADOR y lo dejamos en W

BTFSC STATUS,Z ; si Z=0, salta ya que no son iguales

GOTO Iguales ; sí, son iguales

GOTO NoIguales ; no son iguales

En este caso hemos utilizado la instrucción BTFSC.

Si la comparación es entre un registro y un literal, se cargaría W con el contenido del registro y se haría la XOR entre W y el literal con la instrucción XORLW

Page 71: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

71

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

InterrupcionesInterrupciones

En las interrupciones el proceso que se sigue es el que muestra la figura.

Cuando se origina una interrupción el bit GIE (habilitación global de interrupciones) del registro INTCON es puesto a 0, lo que impidecualquier otra interrupción.El bit de flag correspondiente sepone a 1 y debe borrarse porsoftware.La habilitación de una deter-minada interrupción exigeponer a 1 el bit GIE y el corres-pondiente bit de habilitaciónde la interrupción particular;ambos se encuentran en elregistro INTCON.La instrucción RETFIE vuelve a poner GIE a 1.El registro INTCON estáen el banco 0 y el 1

Tecnología Electrónica

Page 72: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

72

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

InterrupcionesInterrupciones Hay que tener en cuenta que al principio de la interrupción hay que salvaguardar los

registros W y STATUS, a veces también el PCLATH.

PTI movwf W_tmp ;Salvamos el registro Wswapf STATUS,W ; y el registro STATUS "girado" en Wbcf STATUS,RP0 ;Aseguramos el paso al banco 0bcf STATUS,RP1 ;poniendo a 0 los dos bits de selección de

bancomovwf STATUS_tmp ;Guardamos en el banco 0 STATUS giradomovf PCLATH,W ;Salvamos también PCLATH en Wmovwf PCLATH_tmp ;y ahora en una posición auxiliar del banco 0

Al final del PTI, antes de RETFIE hay que recuperarlos.

movf PCLATH_tmp,W ;Recuperamos PCLATH directamentemovwf PCLATH swapf STATUS_tmp,W ;Recuperamos el registro STATUS con

un SWAPFmovwf STATUS ;ahora estamos en el banco de partidaswapf W_tmp,F ;Recuperamos también el W con dos SWAPFswapf W_tmp,W ;para evitar la instrucción MOVF

retfie

Tecnología Electrónica

Page 73: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

73

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

TMR0TMR0 Es un registro que se encuentra en el banco 0 de la RAM. Es un temporizador que se incrementa con cada pulso del oscilador

interno o con un reloj externo que se selecciona mediante el bit T0CS del registro OPTION_REG que se encuentra en el banco 1: T0CS =0 para el reloj interno.

También tiene la posibilidad de aplicarle un divisor de frecuencia (prescaler) de 8 bits que comparte con el WDT. El bit PSA (OPTION_REG <3>) a 0 le asigna el prescaler al TMR0 y los bits PS2-PS0 seleccionan por cuánto se divide la frecuencia.Se puede leer y escribir en TMR0 y cuando se desborda puede producir una interrupción.Ejemplo: Se pretende que cada 200ms. se produzca un determinado evento por interrupción del TMR0 utilizando el oscilador interno de 4 MHz y sabiendo que cada ciclo de instrucción dura 4 ciclos del oscilador.Como un solo desbordamiento del TMR0 sólo permite una temporización de aproximadamente 65ms tendremos que hacer que se desborde varias veces. Vamos a hacer que se desborde 20 veces para lo que tenemos que precargar el TMR0 para que se desborde a los 10ms

Tecnología Electrónica

temp TMR0 = [(256 – carga) · PS + 2] · TinstrElegimos PS=128Carga = 180Hay que cargar el reg. OPTION_REG con el binario: 00000110Para permitir las interrupciones el registro INTCON debe cargarse

con elbinario 10100000. (Mirar la configuración de ambos registros)

Page 74: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

74

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Interrupción RBIInterrupción RBI

Interrupción RBI es una interrupción producida por el cambio de estado en alguna de las líneas RB4, RB5, RB6 o RB7. Hay que configurar esas líneas como entradas y cargar el INTCON para permitir la interrupción.Ejemplo: Vamos a utilizar la interrupción RBI para encender unos LEDs conectados a los bits RB0, RB1, RB2 y RB3

BSF STATUS, RP0 ;pasamos al banco 1 para configurar el puerto BMOVLW 0XF0 ;RB<4,7> entradas, RB<0,3> salidasMOVWF TRISBBCF STATUS, RP0 ;volvemos al banco 0CLRF PORTB ;para inicializar el puerto (LEDs apagados)MOVLW b’10001000 ;habilitamos las interrupciones generalesMOVWF INTCON ;y la particular poniendo GIE y RBIE a 1

Como en todas las interrupciones al principio del programa hay que poner: ORG 0x04 GOTO PTI

Al principio del PTI hay que salvar los registros W y STATUS y al final del mismo hay

que recuperarlos y borrar el flag RBIF

Tecnología Electrónica

Page 75: Tecnología Electrónica Introducción. 2 Universidad de Oviedo 6. Microcontroladores. PIC Microcontroladores Son circuitos integrados que incorporan todos.

75

Universidad de Oviedo

6. M

icro

con

tro

lad

ore

s. P

IC

Suma de valores inmediatosSuma de valores inmediatos

;Escribir un programa que sume dos valores inmediatos (p.e. los decimales 12 y 7)

List p=16F877 ;tipo de procesadorinclude P16F877.INC ;incluye fichero de símbolos

y ;etiquetasResultado equ 0x20 ;para almacenar el

resultado org 0x00 ;vector de Resetgoto Inicioorg 0x05 ;saltamos el vector de

;interrupciónInicio movlw 0x0C ;carga el 1er. sumando en

Waddlw 0x07 ;le sumamos el 2º sumandomovwf Resultado ;guardamos el resultado

Stop nop ;ponemos punto de paradaend ;fin del programa fuente

Tecnología Electrónica