Curso de Microcontroladores Pic

10
MICROEXTREMO.COM www.microextremo.com Lima, Perú 2006 administració[email protected] CURSO DE MICROCONTROLADORES PIC 1ra sesión

Transcript of Curso de Microcontroladores Pic

Page 1: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

CURSO DE MICROCONTROLADORES PIC

1ra sesión

Page 2: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

CURSO DE MICROCONTROLADORES PIC

¿QUÉ ES UN MICROCONTROLADOR? Los microcontroladores son circuitos integrados programables en el cual encontramos todos los componentes de un computador con la característica de prestaciones limitadas. A diferencia de un computador, el microcontrolador es un computador dedicado, ya que sólo realiza el control asignado por el programa residente en la memoria de comandos. Dispone de procesador, memoria para el programa y los datos, líneas de entrada y salida de datos y suele estar asociado a múltiples recursos auxiliares. Estos chips presentan un tamaño reducido, por lo cual pueden ser incorporados dentro del propio sistema, objeto de control:

- Maquinas expendedora de productos. - Controles de acceso tanto de personas como de objetos - Maquinas herramientas, motores, temporizadores. - Sistemas autónomos de control, incendio, humedad, temperatura. Etc - Telefonía, Automatismos, Medicina, Automoción, etc. etc.

DIFERENCIAS ENTRE UN MICROCONTROLADOR Y UN MICROPROCESADOR Un microprocesador es un sistema abierto con el que puede construirse un computador con las características que se deseen, mientras que un microcontrolador conforma un sistema cerrado que contiene un computador completo pero con características limitadas, es decir, que su capacidad en cuanto a hardware permanece inalterable. ARQUITECTURA INTERNA DE UN MICROCONTROLADOR PIC Un microcontrolador PIC posee todos los componentes de un computador pero con las características de no poder ser alterados. Componentes de un microcontrolador pic: • Procesador • Memoria no volátil para almacenar el programa • Memoria de lectura y escritura destinada a los datos • Pines de entrada/salida que permiten la interacción del microcontrolador con medio exterior • Recursos auxiliares

Temporizadores Watchdog Timer Circuito de reloj Protección ante fallas de energía Estado SLEEP o de bajo consumo de energía Conversor AD y DA Módulos de Captura, Comparación y PWM Puerto Serial Síncrono (SSP) con SPI (Modo Master) e I2C (Master/Slave), etc.

Page 3: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

VARIEDADES DE DISPOSITIVOS PIC16F8X Cuando se examina el mapa de memoria y otras características de la arquitectura el uso de F y CR también implica las versiones LF y LCR. Hay 4 cuatro ‘tipos’ de dispositivos:

1. F, como en PIC16F84. este dispositivo tiene memoria de programa Flash y opera sobre un rango de voltaje estándar.

2. LF, como en PIC16LF84. Este dispositivo tiene memoria de programa Flash y opera sobre un rango de voltaje extendido.

3. CR, como en PIC16CR83. Este dispositivo tiene memoria de programa ROM que opera sobre un rango de voltaje estándar.

4. LCR, como en PIC16LCR84. Este dispositivo tiene memoria de programa ROM y opera sobre un rango de voltaje extendido.

Examinando los mapas de memoria y otras características de la arquitectura el uso de F y CR también implican el LF y versiones LCR.

Page 4: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

DESCRIPCIÓN GENERAL DEL PIC16F8X El PIC16F8X es un grupo en la familia PIC16CXX de microcontroladores de 8 bits de bajo costo, alto desempeño, CMOS y completamente estático. Este grupo contiene los siguientes dispositivos. • PIC16F83 • PIC16F84 • PIC16C83 • PIC16CR84 Todos los microcontroladores PICmicro emplean una arquitectura RISC avanzada. Los dispositivos PIC16F8X tienen un conjunto de características mejoradas, pilas de profundidad de 8 niveles y multiples fuentes de interrupción internas y externas. Los buses de instrucción y data separados, de la arquitectura Harvard, permiten palabras de instrucción de 14 bits de ancho con un bus de data de 8 bits de ancho separados. El pipeline de instrucción de dos niveles permite todas las instrucciones ser ejecutadas en un ciclo instrucción excepto para las de salto (las cuales requieren dos ciclos). Un total de 35 instrucciones (conjunto de instrucciones reducido) están disponibles. Adicionalmente, un largo conjunto de registros es usado para realizar un alto nivel de desempeño. Los microcontroladores PIC16F8X típicamente ejecutan una compresión de código de 2:1 y hasta un mejoramiento de velocidad de 4:1(a 20 MHz) sobre otros microcontroladores de 8 bits de su clase. El PIC16F8X tiene hasta 68 bytes de RAM, 64 bytes de memoria EEPROM de datos y 13 pines I/O. Un temporizador/contador también está disponible. El PIC16CXX tiene características especiales para reducir los componentes externos, así como reducción de costos, mejoramiento de la fidelidad del sistema y reducción del consumo de energía. Hay cuatro opciones de oscilador, de los cuales el oscilador RS de pin único provee una solución de bajo costo, el oscilador LP minimiza el consumo de energía, el XT es un cristal estándar y el HS es para cristales de alta velocidad. El modo SLEEP ofrece un ahorro de energía. El usuario puede despertar el chip desde sleep a través de muchas interrupciones internas, externas y reset. Un temporizador Watchdog altamente confiable con su propio oscilador on-chip provee protección contra estancamiento por software. Los dispositivos con memoria de programa flash permiten que el mismo empaquetado de dispositivo sea usado para el prototipo y producción. La reprogramación permite al código ser actualizado sin tener que ser removido desde la aplicación final. Esto es útil en el desarrollo de muchas aplicaciones donde el dispositivo puede no ser fácilmente accesible, pero los prototipos deben requerir códigos de actualización. Eso también es útil para aplicaciones remotas donde el código no necesita ser actualizado (tal como información de razón). El PIC16F8X encaja perfectamente en aplicaciones alcanzando desde una alta velocidad automotriz y aplicación al control de motor hasta baja energía de sensores remotos, cerrojos electrónicos, dispositivos de seguridad y tarjetas inteligentes. La tecnología Flash/EEPROM promueve la habituación de programas de aplicación (códigos de transmisor, velocidades de motor, frecuencias de receptor, códigos de seguridad, etc) en extremadamente rápidos y convenientes. Los empaquetados de pequeña footprint hacen a esta serie de microcontroladores perfecta para aplicaciones con limitaciones de espacio. El bajo costo, baja energía, alto desempeño, fácil uso y flexibilidad de I/O hacen del 16F8X muy versátil aún en áreas donde el microcontrolador no ha sido considerado antes (por ejemplo, funciones de temporización; comunicación serial; funciones de captura, comparación y PWM; y aplicaciones de co-procesador). La característica de programación in System (vía dos pines) ofrece flexibilidad de habituación al producto después de un ensamblado y probado completo. Esta característica puede ser usada para enseriar un producto, almacenar datos de calibración o programar el dispositivo con el firmware corriente antes del embarque. La familia 16CXX es respaldada por un macroasembler de características completas, un simulador por software, un emulador in circuit, un programador de desarrollo de bajo costo y un programador de completas características, un compilador de C y herramientas de soporte de lógica fuzzy están disponibles.

Page 5: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

TIPOS DE OSCILADORES La frecuencia de funcionamiento para los microcontroladores PIC es posible implementarla utilizando osciladores los cuales admiten cuatro presentaciones:

• Oscilador tipo RC • Oscilador tipo HS • Oscilador tipo XT • Oscilador tipo LP

El oscilador tipo RC, es un oscilador que presenta bajo costo. Está formado por una resistencia y un condensador. Este tipo de oscilador ofrece una frecuencia con baja estabilidad.

El oscilador tipo HS, ofrece una alta velocidad, variando entre los 4 y 10 MHz y está basado en un cristal de cuarzo o un resonador cerámico. El oscilador tipo XT, es un cristal que proporciona un rango de frecuencias estándar entre 100KHz y 4 MHz. El oscilador tipo LP, es un oscilador de bajo consumo implementado en base a un cristal o resonador operando en un rango de frecuencias de 35 a 200 KHz. Observación: todos estos osciladores, excepto el RC, van conectados entre los pines OSC1 y OSC2.

Page 6: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

Modo Freq. OSC1/C1 OSC2/C2 LP 32 KHz

200KHz 68 – 100pF 15 – 33pF

68 – 100pF 15 – 33pF

XT 100 KHz 2MHz 4MHz

100 – 150pF 15 – 33pF 15 – 33pF

100 – 150pF 15 – 33pF 15 – 33pF

HS 4 MHz 10 MHz

15 – 33pF 15 - 33pF

15 – 33pF 15 - 33pF

ORGANIZACIÓN DE LA MEMORIA En el PIC16F8X hay 2 bloques de memorias. Estos son: la memoria de programa y la memoria de datos. Cada uno de estos bloques cuenta con su propio bus, pero el acceso a cada bloque puede ocurrir durante el mismo ciclo del oscilador. La memoria de datos se encuentra fraccionada dentro de la RAM, formando los registros de propósito general y los registros de función especial (SFRs). El área de la memoria de datos también contiene la memoria de datos EEPROM. Esta memoria no es mapeada directamente dentro de la memoria de datos, pero si indirectamente. Esta memoria EEPROM tiene una capacidad de 64 bytes.

Page 7: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

Page 8: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

DISPOSITIVOS FLASH Estos dispositivos son ofrecidos en un empaquetado de plástico de bajo costo, sin embargo este dispositivo puede ser borrado y reprogramado. Esto permite que el mismo dispositivo sea usado para el desarrollo de prototipos y programas piloto también como en la producción. Una ventaja nueva de la versión flash eléctricamente borrable es que puede ser borrado y reprograma in circuit, por prototipos como PICSTART PLUS Y PROMATE II. DISPOSITIVOS ROM Algunos dispositivos de Microchip tienen un dispositivo correspondiente donde la memoria de programación es una ROM. Estos dispositivos dan ahorros altos sobre los tradicionales dispositivos programados por el usuario (EPROM y EEPROM). Los dispositivos ROM (PIC16CR8X) no permiten la información de serialización en el espacio de memoria de programa. El usuario debe programar esta información en la EEPROM de data. REGISTROS DE CONTROL REGISTRO STATUS El registro STATUS contiene el estado aritmético del ALU, el estado RESET y los bits de selección de banco de la memoria de datos. El registro STATUS puede ser también el destino para cualquier instrucción como cualquier otro registro. Si el registro STATUS es el destino de una instrucción que afecta a Z, los bits DC o C, luego la escritura a estos bits es deshabilitada. Estos bits son puestos a uno o borrados de acuerdo con la lógica del dispositivo. Más allá, los bits /TO y /PD no se pueden escribir, sin embargo, el resultado de una instrucción con el registro STATUS como destino puede ser diferente de lo propuesto. Por ejemplo, CLRF STATUS borrará los tres bits superiores y pondrá a uno el bit Z. Esto deja al registro STATUS como 000u u1uu (donde u = sin cambio). Es recomendado, sin embargo, que sólo las instrucciones BCF, BSF, SWAP y MOVF sean usadas para alterar el registro STATUS, porque estas instrucciones no afectan a los bits Z, C o DC del registro STATUS. Para otras instrucciones que no afectan a los bits de estado, ver "Sumario de Set de Instrucciones". Nota 1: Los bits C y DC operan como bits de /préstamo y /préstamo de dígito, respectivamente, en la resta.

Page 9: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

REGISTRO STATUS (DIRECCIÓN 03h, 83h) R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x IRP RP1 RP0 /TO /PD Z DC C

Bit 7 bit 0 bit 7 : IRP: bit de Selección de Banco de Registros (usado para direccionamiento

indirecto) 1 = Banco 2, 3 (100h, 1FFh) 0 = Banco 0, 1 (00h, FFh) El bit IRP no es usado por el PIC16F8X. IRP debe mantenerse en cero. bit 6-5: RP1:RP0: bits de Selección de Banco de Registros (usado para 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. Sólo el bit RP0 es usado por el PIC16F8X. RP! Debe de mantenerse en cero.

bit 4 : /TO: bit de Time-out 1 = Después de energizado, instrucción CLRWDT o instrucción SLEEP. 0 = Un time-out de WDT ocurrió bit 3 : /PD: bit de Power-down 1 = Después de energizado, instrucción CLRWDT 0 = Por ejecución de la instrucción SLEEP bit 2: Z: bit Zero 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 de acarreo-/préstamo de dígito (instrucciones ADDWF, ADDLW, SUBLW,

SUBWF) 1 = Un carry-out del 4to bit de orden bajo del resultado ocurrió 0 = Ningún carry-out del 4to bit de orden bajo del resultado ocurrió bit 0: C: bit de acarreo-/préstamo (instrucciones ADDLW, ADDLW, SUBLW, SUBWF) 1 = Un carry-out del bit más significativo del resultado ocurrió 0 = Ningún carry-out del bit más significativo del resultado ocurrió

Nota: Para /préstamo la polaridad está reservada. Una substracción es ejecutada por la adición del complemento a dos del segundo operando. Para las instrucciones de rotación (RRF, RLF), este bit es cargado con cualquier bit de orden alto o bajo del registro fuente.

Page 10: Curso de Microcontroladores Pic

MICROEXTREMO.COM

www.microextremo.com Lima, Perú 2006 administració[email protected]

REGISTRO OPTION_REG El registro OPTION_REG es un registro que se pude leer y escribir, el cual contiene varios bits de control para configurar el prescalador de TMR0/prescalador de WDT (registro de asignación simple conocido también como prescalador), las Interrupciones Externas INT, el TMR0 y las pull-ups en PORTB. Nota: Ejecutar una asignación de 1:1 al prescalador para el registro TRM0, asigna el prescalador al Temporizador de Watchdog. REGISTRO OPTION_REG (DIRECCIÓN 81h) R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 Bit 7 bit 0 bit 7 : /RBPU: Bit de Habilitación de Pull-up de PORTB 1 = Pull-ups de PORTB están deshabilitadas 0 = Pull-ups de PORTB están habilitadas por valores de latch de puerto individuales bit 6: INTEDG: Bit de Selección de Flanco de Interrupción 1 = Interrupción en flanco de subida del pin RB0/INT 0 = Interrupción en flanco de bajada del pin RB0/INT bit 5 : T0CS: Bit de Selección de Fuente de Reloj de TMR0 1 = Transición en pin RA4/T0CKI 0 = Reloj de Ciclo de Instrucción Interno (CLKOUT) bit 4 : T0SE: Bit de Selección de Flanco de Fuente de TRM0 1 = Incremento en transición de alto a bajo en el pin RA4/T0CKI 0 = Incremento en transición de bajo a alto en el pin RA0/T0CKI bit 3: PSA: Bit de Asignación del Prescalador 1 = Prescalador es asignado al WDT 0 = Prescalador es asignado al módulo Timer0 bit 2-0: PS2:PS0: Bits de Selección de rango del Prescalador

Valor de Bit Rango del TMR0 Rango del WDT 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