92
Tema 1: “Microcontroladores” Sistemas en Tiempo Real Curso 2006 -2007 Segundo cuatrimestre 2007

Tema_1_Microcontroladores

Embed Size (px)

Citation preview

Page 1: Tema_1_Microcontroladores

Tema 1: “Microcontroladores”

Sistemas en Tiempo Real

Curso 2006 -2007Segundo cuatrimestre 2007

Page 2: Tema_1_Microcontroladores

Los microcontroladores están adquiriendo mayor presencia en nuestra vida cotidiana sin que aparentemente notemos su presencia. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, enlos teléfonos, en los hornos microondas, los televisores, los teléfonos móviles, las consolas de videojuegos...

Introducción

Page 3: Tema_1_Microcontroladores

Controlador y Microcontrolador (I)

Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos.

Ejemplo el termostato de un sistema de calefacción.

Page 4: Tema_1_Microcontroladores

Controlador y Microcontrolador (II)

• En un principio, los controladores electrónicos se construían con circuitos integrados digitales ( puertas lógicas).

• Posteriormente se construyeron con microprocesadores, que eran auxiliados por memorias, unidades de E/S y todo ello en un circuito impreso.

• Actualmente todos los elementos de un controlador se han incluido en un único chip que recibe el nombre microcontrolador.

Page 5: Tema_1_Microcontroladores

Controlador y Microcontrolador (III)

• Microcontrolador: un chip o circuito integrado de alta escala deintegración que incorpora la mayor parte de los elementos que configuran un controlador, cuya característica principal es su alto nivel de especialización e integración.

Page 6: Tema_1_Microcontroladores

Diferencias entre µP y µC (I)

Un microprocesador es un sistema abierto o genérico, porque su configuración es variable de acuerdo con la aplicación a la que se destine.

Page 7: Tema_1_Microcontroladores

Diferencias entre µP y µC (II)

El microcontrolador es un sistema cerrado o específico. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.

Page 8: Tema_1_Microcontroladores

MicrocontroladorMicrocontroladorSistema cerrado (un solo chip que integra:)

La CPULa Memoria de datos (RAM EEPROM)La Memoria de programa (ROM, EPROM,

FLASH)Unidades de entrada/salida.Timmers y contadores. Opcionalmente también

pueden integrar:Controladores de interrupciones.Clock interno.ComparadoresPWMConvertidores A/D y D/A.

Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Page 9: Tema_1_Microcontroladores

Aumento de prestaciones: un mayor control sobre un determinado

elemento representa una mejora considerable en el mismo.

Aumento de la fiabilidad. • Menor riesgo de averías

• Menos ajustes

Disminución del tamaño del producto. • Menor volumen

• Mano de obra

• Stocks

Disminución del coste del producto.

Ventajas del uso de los Microcontroladores

Page 10: Tema_1_Microcontroladores

Aplicaciones de los Microcontroladores

• Aparatos electrodomésticos: microondas, frigoríficos, hornos,TV, reproductores y grabadores de CD y DVD, equipos de sonido,teléfonos,...

• Equipos informáticos: impresoras, módems, unidades de disco,ratones, teclados,..

• Automóviles: mando de sistemas del automóvil (ABS, inyección,encendido, climatizador..)

• Domótica: sistemas antirrobo, climatizadores,..

• Instrumentación: equipos de medida

• Robótica

Page 11: Tema_1_Microcontroladores

• Cocina o Lavadora....................... 1o Horno.......................... 1o Frigorífico.................... 1o Lavavajillas................... 1

• Salón o TV............................. 2o Mando a distancia.............. 1o Video.......................... 1o DVD............................ 2 o Receptor TDT................... 1o Teléfono fijo.................. 1o Teléfono móvil................. 2

• Garaje o Puerta automática.............. 1o Alarma robo/incendio/gas....... 3

• Ascensor............................ 2

•Generalo Calefacción........... 1o Aire acondicionado.... 1o Video portero......... 2

•Automóvil o Frenos ABS............ 1o Climatización......... 1o Alarma antirrobo...... 1o Airbag................ 1 o Equipo música......... 1o Ordenador de viaje.... 1o Control motor......... 1 o Sistema seguridad..... 1

•PC y periféricos.............. 6

TOTAL: . . . . . . . . . . 38

Microcontroladores en el hogar

Page 12: Tema_1_Microcontroladores

El Mercado de los Microcontroladores

• se venden cientos de microcontroladores por cada microprocesador• existe una gran diversidad de microcontroladores: clasificación según tamaño de la palabra, en microcontroladores de 4, 8, 16 ó 32 bits• la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS.

Page 13: Tema_1_Microcontroladores
Page 14: Tema_1_Microcontroladores
Page 15: Tema_1_Microcontroladores

¿Qué microcontrolador emplear?

Factores a considerar según la aplicación:

Elección de la familia (fabricante).Experiencia previa.Documentación.Herramientas de desarrollo y precio.Disponibilidad.

Elección de modelo concreto de µCPrecio del microcontrolador.E/S y recursos internos.Consumo y velocidadMemoriaAncho de palabraDiseño de la placa

Page 16: Tema_1_Microcontroladores

Características (arquitectura) I

Todos los microcontroladores disponen de bloques básicos:- Procesador (CPU), - Memoria de datos y de instrucciones, - Líneas de E/S, - Oscilador de reloj - Módulos controladores de periféricos (recursos especiales).

Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente.En la actualidad la mayoría de uC incorporan CPU’s cuya arquitectura es de tipo:

• Von Neumann• Harvard

Page 17: Tema_1_Microcontroladores

Características (arquitectura) II

El modelo básico de arquitectura empleada por los computadores digitales fue establecida en 1945 por Von Neumann.Este tipo de arquitectura consta de los siguientes bloques:

• Memoria principal• Unidad aritmético-lógica• Unidad de control• Unidad de entrada/salida

Page 18: Tema_1_Microcontroladores

Características (arquitectura) IIIArquitectura: Von Neumann

Page 19: Tema_1_Microcontroladores

Características Arquitectura: Von Neumann

• Memoria principal: se emplea para almacenar datos o instrucciones. Se compone de una serie de celdas a cada una de las cuales se accede a través de una dirección. Cada celda está compuesta de un número de bits que nos da el ancho de palabra de la memoria.

• Unidad aritmético-lógica: permite realizar las operaciones elementales (AND, OR, NAND, NOR, suma, resta, etc.). Estas operaciones las realiza con datos procedentes normalmente de la memoria y los resultados parciales los almacena o no temporalmente en algunos registros que suele tener la propia unidad aritmética. Las operaciones básicas que puede realizar un computador se dividen en operaciones lógicas y operaciones aritméticas. Ambos tipos de operaciones se realizan dentro de esta unidad.

• Unidad de control: se encarga de generar las señales necesarias para que todo elcomputador ejecute las instrucciones leídas de la unidad de memoria. La unidad de control es la encargada de leer de forma consecutiva las instrucciones (que se encuentran almacenadas en la unidad de memoria), y generar las señales eléctricas necesarias para proceder a la ejecución de cada una de estas instrucciones. Es la unidad que gobierna y gestiona el comportamiento de un computador.

Page 20: Tema_1_Microcontroladores

• La agrupación de algunos bloques funcionales del computador como son la unidad de control, la unidad aritmético-lógica y los registros recibe el nombre de unidad central de proceso (CPU).

Page 21: Tema_1_Microcontroladores

• Unidad de entrada/salida: realiza la transferencia de información con el exterior, con las unidades que se conocen con el nombre de periféricos.• Buses: caminos que unen los distintos bloques del computador y a través de los cuales circulan los datos y las instrucciones. Dependiendo del tipo de información que se trate podemos hablar de diferentes caminos:

• Bus de datos: circulan los datos de las operaciones que se van a efectuar.• Bus de direcciones: circulan las direcciones de memoria donde se encuentra almacenado algún tipo de información a la que se desea acceder.• Bus de control : circulan las señales de control generadas por la unidad de control para la ejecución de las instrucciones.

Características Arquitectura: Von Neumann

Page 22: Tema_1_Microcontroladores
Page 23: Tema_1_Microcontroladores

En la arquitectura Harvard, existen dos tipos de memorias, y por lo tanto dos buses, que suelen ser de anchura diferente, es posible acceder a ambas memorias al mismo tiempo, con lo cual la velocidad del sistema aumenta.

Arquitectura HARVARD

Page 24: Tema_1_Microcontroladores

Ejecuta SUB_1Búsqueda SUB_14. BSF PORTA,BIT3

SalirBúsqueda 43. CALL SUB_1

Ejecuta 3Búsqueda 32 .MOVWF PORTB

Ejecuta2Búsqueda 21. MOVLW 55h

Ejecuta 1Búsqueda 1Ejemplo:

Procesador segmentado (pipeline)

Page 25: Tema_1_Microcontroladores

Arquitecturas: Von Neumann vs. Harvard

La arquitectura de von Neumann se caracteriza por disponer deuna sola memoria principal donde se almacenan datos e instruc-ciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control).

La arquitectura Harvard dispone de dos memorias independien-tes, una que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias.

Page 26: Tema_1_Microcontroladores
Page 27: Tema_1_Microcontroladores

– CISC: Complex Instruction Set Computer• Muchas instrucciones diferentes. Potentes y especializadas.• Facilita la programación. • Código muy compacto• P.e.: Motorola

– RISC: Reduced Instruction Set Computer• Pocas instrucciones muy sencillas.• La sencillez de las instrucciones permite liberar área de silicio para

implementar características que mejoren las prestaciones.• Chips más baratos, de menor consumo, de menos pines.• P.e.: PIC

- SISC: Specific Instruction Set Computer- Set de instrucciones reducido y específico adaptado a las

necesidades de la aplicación prevista.

Microcontroladores (CPU)

Page 28: Tema_1_Microcontroladores

La memoria en los microcontroladores

En los microcontroladores, existen dos tipos de memoria: ♣ Memoria de programa. ♣ Memoria de datos.

•Ambos tipos de memoria están integradas dentro del propio chip.•La memoria de programa, ha de ser no volátil, y su contenido no sufre modificaciones durante la ejecución del mismo, es del tipo ROM.•La memoria de datos evoluciona según se ejecuta el programa, ha de ser de tipo lectura–escritura es decir tipo RAM.

Page 29: Tema_1_Microcontroladores

Tipos de memoria no volátil en los microcontroladores (I)

• Los diferentes tipos de memoria no volátil que nos podemosencontrar en un microcontrolador son:

• ROM CON MÁSCARA. • OTP.• EPROM. • EEPROM. • FLASH.

Page 30: Tema_1_Microcontroladores

Tipos de memoria no volátil en los microcontroladores (II)

ROM CON MÁSCARA: Es una memoria no volátil de solo lectura, cuyo contenido se graba durante la fabricación del chip. Es muy cara, por lo cual solo es interesante cuando el numero de chips a fabricar es muy elevado. Este tipo de memoria no se puede volver a programar.

OTP: (One Time Programable), o ROM programable una vez. El Microcontrolador posee una memoria ROM que el usuario puede programar una única vez. Una vez realizada esta función, no se puede modificar el programa.

EPROM: (Erasable Programmable Read Only Memory y), memoria no volátil, que se puede grabar y borrar muchas veces. Se borra mediante luz ultravioleta y a través de una ventana de cristal que posee el chip.

EEPROM: (Electrical Erasable Programmable Read Only Memory) Tanto la grabación como el borrado se realiza mediante impulsos eléctricos. Estas operaciones se pueden efectuar muchas veces.

FLASH: Es una memoria no volátil de bajo consumo, que se puede leer y escribir en el propio circuito. Es mas veloz y de mayor densidad que la EEPROM .

Page 31: Tema_1_Microcontroladores

Puertos de entrada y salida

Soportan la comunicación entre el chip y el mundo exterior (actuadores y sensores).

Pueden ser digitales o analógicas.

Una misma patilla del chip, puede ser entrada o salida, tanto analógica como digital.

Las patillas se suelen agrupar en puertos de 8 o 16 bits.

Protegidas contra sobreintensidades y sobretensiones.

Page 32: Tema_1_Microcontroladores

Reloj principal

Genera las señales que determinan la velocidad de trabajo del uC.

Suele estar integrado en el propio chip, solo necesita unos pocos componentes externos.

Cristales de cuarzo.Resonadores cerámicos.Circuitos R/C.Oscilador externo.

Existen uC, que incluso integran toda la circuiterianecesaria para generar la señal de reloj.

Page 33: Tema_1_Microcontroladores

Recursos especiales

• Temporizadores o timers.• Perro guardián o “watchdog”.• Protección ante fallos de alimentación o “brownout”.• Estado de bajo consumo o “sleep”.• Convertidor A/D.• Convertidor D/A.• Control se anchura de pulsos PWM.• Puertos de comunicación.

– UART– USART– USB– I2C– CAN– TCP/IP

Page 34: Tema_1_Microcontroladores

Análisis y

Diseño

Edición

Compilación

Ensamblado

Corrección sintáctica

Implemen-

tación

Depuración

y prueba

Simulación lógica

Placa prototipo

Idea o proyecto

Requerimientos

Papel y lápiz

Herramientas gráficas

Ciclo de vida del proyectoCiclo de vida del proyecto

Page 35: Tema_1_Microcontroladores

Herramientas de desarrollo Las herramientas de desarrollo están formadas por un conjunto de programas e

interfaces que permiten realizar los proyectos de la forma más eficiente posible.

Ensamblador.Compilador. Simulador. Placas de prototipo + ICD. Emuladores en circuito + ICD. Programador.

Page 36: Tema_1_Microcontroladores

• Ensamblador– Permiten el uso eficiente de los recursos– Programación costosa y casi imposible la modificación

• El código debe ser documentado, empleo de símbolos• Programación estructurada

• Lenguajes de alto nivel– Desarrollo más rápido, mantenimiento menos costoso↓ Eficiencia↑ Ocupación en memoria

– Ada --> Grandes sistemas – C, PASCAL, PYTON, BASIC

• Permiten el acceso a los recursos hardware (ansi C + registros + asm)

Lenguajes de programación

Page 37: Tema_1_Microcontroladores

Editar código fuente

Compilar código fuente

Ensamblar código objeto

Entorno IDE(editor de textos)

MIKROC(Mikroe compiler)

Fichero ejecutable

MPASM, MIKROC

Proceso de implementaciProceso de implementacióónn

*.c

*.asm

*.dbg, .cof

*.hex

WINPIC800+ TE-20

Page 38: Tema_1_Microcontroladores

ImplementaciImplementacióón y prueban y prueba

PRO

GR

AM

AC

IÓN

SIMULACISIMULACIÓÓN/CORRECCIN/CORRECCIÓÓNN

Page 39: Tema_1_Microcontroladores

Foto placa

Page 40: Tema_1_Microcontroladores

Placas de simulaciPlacas de simulacióón (programadores)n (programadores)

Page 41: Tema_1_Microcontroladores

• 8051 (Intel)– Arquitectura Harvard (direccionamiento separado para datos e

instrucciones)– Bus de 8 bits de datos– Puede direccionar 64K de programa (los 4K ó 8K bajos pueden residir

en chip) y 64K de memoria de datos externa. 128 bytes de RAM interna + registros especiales. E/S direccionadas en espacio propio.

• Bus de direcciones de 16 bits– Gran potencia en instrucciones de bit– Timers y puertos serie (no A/D ni PWM)– 8048 serie baja– 80c196 de 16 bits– 80186: microcontrolador con un 8086 como núcleo (PC XT)

Microcontroladores (Familias I)

Page 42: Tema_1_Microcontroladores

• 68HC11 (Motorola)– Arquitectura Von Neuman (datos, programa, E/S, timers

comparten el mismo espacio de memoria)– Bus de 8 bits de datos, 16 bits de direcciones– Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers,

A/D, PWM, acumuladores de pulsos, comunicación serie síncrona y asíncrona

– Serie baja 68HC05– 683xx: microcontrolador con un 68xxx como núcleo

Microcontroladores (Familias II)

Page 43: Tema_1_Microcontroladores

¿ Porqué PIC?No porque esta familia sea mejor que otras, sino porque presentan diversas características que los hacen especialmente interesantes:

- Facilidad de uso. - Gran cantidad de información disponible en libros, revistas e Internet. - Herramientas de desarrollo muy asequibles. - Bajo precio y fácil disponibilidad.

En muchos casos la elección de una versión adecuada de PIC es la mejor solución para resolver un problema. Otras familias de microcontroladores son más eficaces en aplicaciones concretas, especialmente si predominauna característica especial.

Page 44: Tema_1_Microcontroladores
Page 45: Tema_1_Microcontroladores

Gamas de Gamas de PICPIC’’ss

PIC 10 , PIC 12*2 niveles de pila y 33 instrucciones de 12 bits, 1 timer de 8bits

PIC24 , (DsPIC)75, (84) instrucciones,

hasta 16,(40)MIPS

PIC1832 niveles de pila17 vectores de interrupción, 75

instruciones de 16 bits, 10 MIPS

PIC16*8 niveles de pila, 4 vectores de interrrupción

35 instrucciones de 14 bits, 1 timer 8 bit y 2 de 16bit, hasta 5MIPS

Gama alta

Gama altamejorada

Gama media

Gama básica

8bits

16bit

s

Page 46: Tema_1_Microcontroladores
Page 47: Tema_1_Microcontroladores

• PIC (MicroChip)– Arquitectura Harvard (direccionamiento separado para datos

e instrucciones)• solapamiento de instrucciones [PIPELINE -> SEGMENTACIÓN]

(ejecución actual y búsqueda de la siguiente.)• Estructura ortogonal.

– Primer microcontrolador RISC– 16Fxx línea más popular del fabricante

• 35 instrucciones• 8 bits de datos• 14 bits de instrucción (hasta 8K instrucciones)• Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers,

A/D, PWM, acumuladores de pulsos, comunicación serie síncronay asíncrona

Microcontroladores (Familias III)

Page 48: Tema_1_Microcontroladores

Modelo 12C508 16F84A 16F88 16F877 18F6722Mem.Prog.

Bytes 768 1792 7168 14336 128KPalabras 512x12 1024x14 4096x14 8192x14 64Kx16

Mem.Datos

Bytes EEP 0 64 256 256 1024Bytes RAM 25 68 368 368 3936

Conversión A/D No No 7(10bits) 8(10bits) 12(10bits)Líneas de E/S 6 13 16 33 54Comparador Analog No No 2 2 2Temporizadores 1-8bits+

WTD1- 8bits +WDT

1-16bits+2 8bits+WDT

1-16bits+2 8bits+WDT

3-16bits+2 8bits+WDT

Nº de pin’s 8 18 18 40 64PWM No No Si(10bits) Si SiFrec. Max. 4 Mhz. 20Mhz. 20Mhz. 20Mhz. 40MhzPrecio 2,04€ 5,17€ 3,81€ 10,85€ 23,75€

Comparativa

Page 49: Tema_1_Microcontroladores

Oscilador RCC1 de 20pF como mínimo5K? ? R1 ? 100K?

Oscilador XTC1=C2=22pF ó 33pFCristal ? 4MHz (PIC16F84A-04)

Modo de conexionado del oscilador:

Page 50: Tema_1_Microcontroladores
Page 51: Tema_1_Microcontroladores

El espacio marcado como "Espacio de Memoria de Usuario" es donde irá el programa, desde la dirección 0000h hasta la 3FFh (3FFh en decimal es 1023, que mas la dirección 0000h hace 1024 direcciones, es decir, 1Kbyte)."Reset Vector" es la primera dirección (0000h) a la que se dirige el PIC al encenderlo o al resetearlo y donde debe estar siempre la primera instrucción."Vector de Interrupción" es la dirección (0004h) a la que se dirige el PIC cuando se produce una interrupción, esto es, un evento que permite sacar al PIC de la ejecución normal del programa para ejecutar una subrutina de atención a la interrupción."PC" (Contador de Programa) es un registro de 13 bits que apunta a la dirección de la memoria de programa que contiene la instrucción a ejecutar."Niveles de la pila de 1 a 8" son los niveles de la pila, que se utiliza cuando se ejecutan subrutinas.

La memoria de programa

Page 52: Tema_1_Microcontroladores

- La memoria RAM no sólo se usa para almacenar las variables que puedan utilizarse en el programa, también se utilizan una serie de registros para configurar y controlar el PIC.

- La memoria esta dividida en dos bancos, el banco 0 y el banco 1, para seleccionar un banco u otro se utiliza un bit(RP0) del registro de estado (STATUS). Generalmente se trabaja con el banco 0. Cada banco se divide a su vez en dos áreas:•- RFS (Registros de Funciones Especiales) •- RGP (Registros de Propósito General) El área RFS (Registros de Funciones Especiales) controla el funcionamiento del dispositivo. Estos registros se emplean para el control del funcionamiento de la CPU y de los periféricos (direcciones desde la 00h hasta la 0Bh y desde la 80h hasta la 8Bh).

-El área RGP (Registros de Propósito General) comprende los registros que podemos utilizar como variables de trabajo a partir de la dirección 0Ch hasta la 4Fh (68 bytes de SRAM). Puede accederse directamente o bien indirectamente haciendo uso del registro FSR.

- El área RGP así como algunos registros especiales son los mismos en los dos bancos del mapa de memoria del PIC.

La memoria de datos RAM

Page 53: Tema_1_Microcontroladores
Page 54: Tema_1_Microcontroladores

Interrupciones

Page 55: Tema_1_Microcontroladores
Page 56: Tema_1_Microcontroladores

Registro INTCON

Page 57: Tema_1_Microcontroladores

Registro OPTION

Page 58: Tema_1_Microcontroladores

unsigned cnt;

void interrupt() {cnt++; // Incrementar valor cntTMR0 = 96; //en cada interrupciónINTCON = 0x20; // Activar T0IE, borrar T0IF

}//~

void main() {OPTION_REG = 0x84; // Preescaler a TMR0TRISB = 0; // PORTB como salidaPORTB = 0xFF; // iniciar PORTBTMR0 = 96;INTCON = 0xA0; // Habilitar interupción TMR0cnt = 0; // Resetear cnt

do {if (cnt == 400) {PORTB = ~PORTB; // Negar PORTB cnt = 0; // Resetear cnt

}} while(1);

}//~!

Manejo de una interrupción

Page 59: Tema_1_Microcontroladores

T. total = 4 x Tosc x (256-TMR0)xPredivisor

Tosc = 1 / fclock

Cálculo de retardos con TMR0

Page 60: Tema_1_Microcontroladores

Formato de una instrucción (I)

Ejemplo: Addwf f,d

Ejemplo: bcf f,b

Page 61: Tema_1_Microcontroladores

Formato de una instrucción (II)

Ejemplo: addfw kcall k

Page 62: Tema_1_Microcontroladores

RAM 16F84 RAM 16F877

Page 63: Tema_1_Microcontroladores

Display alfanumérico LCD

Page 64: Tema_1_Microcontroladores
Page 65: Tema_1_Microcontroladores

Lcd_Configvoid Lcd_Config(unsigned short *port, unsigned short RS, unsigned short EN, unsigned short WR, unsigned short D7, unsigned short D6, unsigned short D5, unsigned short D4);

Lcd_Config(&PORTD,1,2,0,3,5,4,6);

Lcd_InitLcd_Init(&PORTB);

Lcd_Outvoid Lcd_Out(unsigned short row, unsigned short col, char *text);Lcd_Out(1, 3, "Hello!");

Lcd_Custom_Cmdvoid Lcd_Custom_Cmd(char out_char);Lcd_Custom_Cmd(Lcd_Clear);

Librería LCD (interface 4 bits)

Page 66: Tema_1_Microcontroladores

Shift display right without changing display data RAMLCD_SHIFT_RIGHT

Shift display left without changing display data RAMLCD_SHIFT_LEFT

Turn LCD display offLCD_TURN_OFF

Turn LCD display onLCD_TURN_ON

Move cursor right without changing display data RAMLCD_MOVE_CURSOR_RIGHT

Move cursor left without changing display data RAMLCD_MOVE_CURSOR_LEFT

Blink cursor onLCD_BLINK_CURSOR_ON

Underline cursor onLCD_UNDERLINE_ON

Turn off cursorLCD_CURSOR_OFF

Return cursor to home position, returns a shifted display tooriginal position. Display data RAM is unaffected.

LCD_RETURN_HOMEClear displayLCD_CLEAR

Move cursor to 4th rowLCD_FOURTH_ROW

Move cursor to 3rd rowLCD_THIRD_ROW

Move cursor to 2nd rowLCD_SECOND_ROW

Move cursor to 1st rowLCD_FIRST_ROW

PurposeLCD Command

Page 67: Tema_1_Microcontroladores

Lcd_Custom_Configvoid Lcd_Custom_Config(char * data_port, char D7, char D6, char D5, char

D4, char * ctrl_port, char RS, char WR, char EN);Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTB,2,3,4);

Lcd_Custom_Out

Lcd_Custom_Cmd

Librería LCD a medida

Page 68: Tema_1_Microcontroladores

char *text = "S.T.R. 2007";

void main() {TRISB = 0;TRISC = 0; // PORTB y PORTC SalidaLcd_Custom_Config(&PORTC,7,6,5,4,&PORTB,0,1,2);Lcd_Custom_Cmd(Lcd_CURSOR_OFF); // Ocultar cursorLcd_Custom_Out(1, 1, text); //Imprimir texto

}

Manejo de display LCD

Page 69: Tema_1_Microcontroladores

Hasta 8 canales de entradaConversión por método de aproximaciones sucesivas10 bits de resoluciónVoltaje alto y bajo de referencia seleccionable por softwarePosibilidad de ejecución en modo SLEEP

Conversión A/D (I)

Page 70: Tema_1_Microcontroladores

4 registros básicos:

2 registros configuración: ADCON0ADCON1

2 registros datos: ADRESH y ADRESL

Conversión A/D (II)

Page 71: Tema_1_Microcontroladores

Registro de configuración (I)

Page 72: Tema_1_Microcontroladores

Registro de configuración (II)

Page 73: Tema_1_Microcontroladores

Registro de datos

Page 74: Tema_1_Microcontroladores
Page 75: Tema_1_Microcontroladores

Conversión A/D

TRISA = 0xFF;ADCON1 = 0x80;ADCON0 = 0x81;Comando: Adc_Read( ) Inicializa el convertidor A/D para trabajar como oscilar RC, y como parámetro se le pasa el canal que queramos convertir, devolviendo un entero con el resultado de laconversión.

unsigned Adc_Read(unsigned short channel);temp = Adc_Read(0);

Page 76: Tema_1_Microcontroladores

Interfaz Serie

• Posibilidad de configuración para comunicación:– full-duplex asíncrona.– Sincrona como Master– Síncrona como Slave

• Utilizaremos el modo asíncrono

Page 77: Tema_1_Microcontroladores

Interfaz Serie

• MODO ASINCRONO:– codificación standard NRZ

• 1 bit inicio 8-9 de datos y 1 bit de paro.

– formato standard de 8 bits ( configurable )– se transmite primero el bit LSB– paridad no soportada por HW pero puede

calcularse por SW y almacenarse en bit 9

Page 78: Tema_1_Microcontroladores

Interfaz SerieDIAGRAMA DEL BLOQUE DE TRANSMISION

Page 79: Tema_1_Microcontroladores

• PROGRAMACION:– 1) Inicializar registro del Generador de baudios

(SPBRG) y el bit de alta velocidad si necesario (BRGH)

Interfaz Serie

Page 80: Tema_1_Microcontroladores

Interfaz Serie

– 2) Modo Asíncrono• Clear bit SYNC

– 3) Habilitar puerto serie• Set bit SPEN

– 4) Interrupciones habilitadas• Set bit TXIE

– 5) Si se quiere 9º bit de datos• Set bit TX9

Page 81: Tema_1_Microcontroladores

Interfaz Serie

– 6 ) Habilitar transmision• Set bit TXEN (habilita el bit TXIF)

– 7) Si se ha seleccionado 9º bit• Cargar bit en TX9D

– 8) Cargar el registro TXREG con los datos:• empieza automáticamente la transmisión

Page 82: Tema_1_Microcontroladores

// ejemplo para simular en placa de prototipos// PICDEM2 + PIC16F877

unsigned int temp;char txt[5];void main(){ADCON1 = 0x8E;TRISA = 0x11;

Lcd_Custom_Config(&PORTD,3,2,1,0,&PORTA,3,2,1);Lcd_Custom_Out(1, 1, "valor conversion:");

do {temp = Adc_Read(0); // Almacena valor de la conversionWordToStr(temp*5/1020, txt);delay_ms(100);Lcd_Custom_Out(2, 1, txt);

}while(1);}

Page 83: Tema_1_Microcontroladores

/** Project name:

ADC_USART (enviar al puerto serie el valor del ADC)*/

unsigned short temp_res;void main() {

USART_Init(9600); // Inicializar puerto serie (9600 baud rate, 1 stop bit, ...

ADCON1 = 0; // Todos los pin analógicos y VDD es VrefTRISA = 0xFF; // PORTA entrada

do { // leer ADC y enviar los 8 bits al puerto serie temp_res = ADC_Read(0) ;USART_Write(temp_res);

} while (1); }

Page 84: Tema_1_Microcontroladores

Ejercicio nEjercicio nºº 1 (1 (flujogramaflujograma))P rac t ic a01

-D e fin ir va ria b le s -P a --> E n t ra d a -P b --> S a lid a

Leer P ue rto A (R a0 )

P 1 (R a 0 ) es ta pu ls ado?

S iN o

E nc ende r Led L1 (R b0 )

A pagar Led L1 (R b0 )

Page 85: Tema_1_Microcontroladores

Explorador de código

Compilar

Ventana de edición

Resultado

Configuración del proyecto

Page 86: Tema_1_Microcontroladores

• Ejecutar el compilador.• Crear un proyecto nuevo, o abrir uno existente.

– Proyect -> new proyect.• Configurar parámetros del proyecto.

– Nombre del proyecto, directorio de trabajo…– Seleccionar el Microcontrolador.– Elegir la frecuencia de trabajo del mismo.– Activar bits de configuración.

• Solo activar WDT_OFF.

• Escribir el código fuente.• Construir el proyecto (build) y comprobar que esta libre de

errores.– En el subdir de trabajo se generan 4 nuevos ficheros: *.asm, *.lst, *.mcl y

*.hex• El fichero *.hex generado es el ejecutable que emplearemos

para simular en proteus, y posteriormente grabarlo en el microcontrolador.

Proceso de trabajo

Page 87: Tema_1_Microcontroladores

TRISx Donde x = A, B, C D ó E-Define un puerto o un pin como entrada o salida.-Un 1 define el pin como entrada y un 0 como salida.- Ejemplo: TRISA = 0xFF; TRISB = 129; TRISE = % 11110001;

PORTx Donde x = A, B, C D ó E-Asigna un valor a un puerto.-Ejemplo: PORTB = %10000111; PORTA = 0xF8; PORTC = ~PORTB

PORTx.Fy Donde x = A, B, C D ó Ee y = 0..7

-Asigna un valor binario a un pin.-Ejemplo: PORTB.F2 =1; PORTA.F0 =0;

Comandos entrada/salida (I)

Page 88: Tema_1_Microcontroladores

Comandos entrada/salida (II)

var = PORTx-Lee el puerto x y lo asigna a var-Ejemplo: temp = PORTB- temp sera de tipo byte.

Var = PORTx.Fy-Lee el pin y del puerto x y lo asigna a var.-Ejemplo: temp = PORTA.F2;

Page 89: Tema_1_Microcontroladores

void main(){TRISB = 0; // inicializamos el puerto B y el D como salida.TRISD = 0; // 0 --> Salida, 1 --> entradaPORTB = 0;PORTD = 0;do {

PORTB = 0xFF; // equivale a 255 todo el puerto a 1PORTD = 0; // Sería correcto PORTB = 255; ó PORTB = % 11111111;delay_ms(1000); // Retardo de 1 seg.PORTB = 0;PORTD = 0xFF;delay_ms(1000);} while(1);

}

Ejercicio 1

Page 90: Tema_1_Microcontroladores

PIC 16F88PIC 16F88

Page 91: Tema_1_Microcontroladores

PIC 16F88PIC 16F88Microcontrolador Pic 16F88

ClockFrecuencia típica 4 Mhz

Frecuencia máxima 20 Mhz

Memoria

Memoria Flash (programa)de 14 bits

4096

Memoria RAM 384

Memoria EEPROM 256

Periféricos

Temporizadores Tmr0, Tmr1, Tmr2

Comparadores 2

PWM hasta 10 bitsConvertidores A/D 10 bits

17

Comunicación serieSPI

USART

Oscilador interno de 32 Khz a 8 MHZ Si

Características

Fuentes de interrupción 10

Patillas de E/S 16

Rango de tensión 2.0–5.5 V

Encapsulados 18 pin DIP, SOIC, 20 pin SSOP

Page 92: Tema_1_Microcontroladores