Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada...

26
Computadoras Electrónicas 2010 Introducción a la programación Introducción a la programación de microcontroladores de microcontroladores TCO. NOGUERA Guillermo Sebastián Instituto Politécnico San Arnoldo Janssen www.guillenoguera.com.ar

Transcript of Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada...

Page 1: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Computadoras Electrónicas 2010

Introducción a la programaciónIntroducción a la programaciónde microcontroladoresde microcontroladores

TCO. NOGUERA Guillermo SebastiánInstituto Politécnico San Arnoldo Janssen

www.guillenoguera.com.ar

Page 2: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Conceptos Previos

Repasamos (sintesis al 010410 - webpage)

sistemas digitales. problema técnico. metodología. algoritmo. programa. lenguajes de programación. programación estructurada: estructuras de

datos, de control, operadores, operandos. diagrama de flujo y pseudocódigo.

Page 3: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Controlador: recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o más procesos.

Algunos ejemplos:

Velocidad de motores. Temperatura de un recinto (habitación, horno,etc). Humedad, presión, etc. Nivel de líquido en un tanque. Alarmas hogareñas. Encendido/apagado de dispositivos. Contador de eventos y control de acceso. Nivel e intensidad de luz.

¿Algunos aportes más acerca de los procesos que podemos controlar?

Controladores

Page 4: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Evolución histórica: Componentes mecánicos. Componentes de lógica discreta. Sistemas con microprocesadores.

¿Cuál es el esquema básico de un sistema basadoen un microprocesador?

Evolución histórica

Page 5: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Microcontrolador

Un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que conforman un controlador. “La solución en un chip”...

¿Qué es un microcontrolador ?

- Procesador o UCP (Unidad Central de Proceso).- Memoria RAM para Contener los datos.- Memoria para el programa tipo ROM/PROM/EPROM.- Líneas de E/S para comunicarse con el exterior.- Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.).- Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.

Page 6: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

http://www.areacapacitacion.com.ar/

Page 7: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Arquitectura interna - Elementos

Procesador o UCP: se encarga de direccionar la memoria de programa, recibir el OP de la instrucción en curso, su decodificación y la ejecución de la operaciónque implica la instrucción, asi como la búsqueda de operandos y el almacena-miento del resultado.

Memoria: una parte de memoria no volatil (destinada al almacenamiento del prog.)y una parte de memoria volatil destinada a guardar variables y datos.

Puertas de E/S: líneas que comunican la UCP con los periféricos exteriores.

Reloj: los microcontroladores disponen de un oscilador que genera una onda cua-Drada de alta frecuencia, que configura los impulsos de reloj usados en la sincro-nización de todas sus operaciones internas.

Recursos especiales: “Timers” o temporizadores, Watchdog, Conversores A/D y D/A, Comparadores, PWM o moduladores de anchura de pulso, Puertos de comu-Nicación (USART, USB, I2C, etc.)

Page 8: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 9: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Actividad 1: Elaborar un diagrama de bloques o esquema básico que represente la arquitectura interna del PIC16F84.

Page 10: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Los PIC16 tienen 3 bloques de memoria

Memoria de Programa Flash/RomMemoria de Datos RAMMemoria de Datos E2prom

La memoria de datos y de programa tienen buses separados, lo que permite accesos a ambas zonas en un mismo ciclo de máquina. (Harvard)

PIC16 - Organizacion de Memoria

Page 11: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Organización de MemoriaMemoria de Programa

Memoria de Datos / Recursos

Organización de MemoriaMemoria de Programa

Memoria de Datos / Recursos

Page 12: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

PIC16 - Memoria

La serie PIC16 tiene un PC (Contador de programa) de 13 bits.

El Vector de Reset se encuentra en la dirección 0000h

El Vectores de Interrupción se encuentran en la direccion 0004h.

Page 13: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Mapas de Memoria

Page 14: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

PIC16 – Funcionamiento

Un ciclo de instrucción (C.I) consiste en cuatro ciclos de reloj (Q1,Q2, Q3, Q4). La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante Q2, Q3 y Q4.Lectura de datos durante Q2 y escritura durante Q4. En un mismoC.I mientras se ejecuta una instrucción se busca la siguiente (pipeline).

Actividad 2: tomando como base el concepto de ciclo instrucción, si unmicrontrolador tiene como Fosc = 4Mhz. ¿cuánto tardaría en ejecutar un programa de 1000 instrucciones?.Deducir una fórmula general que relacione Tosc y CM (C.I)

Page 15: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Diagramas de tiempo – Ciclo instrucción

Page 16: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

PIC16 – Circuito y Funcionamiento

Page 17: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Programación de uCLenguaje Máquina: 1000110101010 (“entiende el microcontrolador”)Lenguaje Ensamblador: MOVWF portb (“comprende el programador”)

Page 18: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

SET de Instrucciones

El Set de instrucciones o repertorio del PIC 16F84A está compuesto por35 instrucciones que podemos agrupar en:

1. Instrucciones de carga: transfieren el contenido de un registro origen (f) a unregistro destindo (d) o bien cargan el destino con una constante (k).2. Instrucciones aritméticas: permiten realizar sumas, restas, incrementar un registro o decrementarlo.3. Instrucciones lógicas: and, or, xor, swap, complemento a 1, rotar a la izq. oderecha.4. Instrucciones de bit: setean (1) o borran (0) un determinado bit de un registrode la memoria de datos.5. Instrucciones de salto: incondicional a la dirección k, salta si b es 0 o 1 de (f),decrementa e incrementa y salta si 0.6. Instrucciones para el manejo de subrutinas: llamadas y retornos a subrutinas.7. Instrucciones especiales: nop, clrwdt, sleep.

Page 19: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

¿ CONSULTAS ?

Continuamos con la última actividad...

Page 20: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

Actividad 3: considerando el set de instrucciones del PIC16F84 clasificarlas instrucciones. Dos ejemplos de cada tipo.

Page 21: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 22: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 23: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 24: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 25: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante
Page 26: Introducción a la programación de microcontroladores · 2013-04-29 · La instrucción encontrada es latcheada en el R.I en el Estado Q1, luego es decodificada y ejecutada durante

FINConsultas vía email: [email protected]: programapic

Materiales en: www.guillenoguera.com.ar

Usted es libre de:Usted es libre de:Copiar, distribuir, exhibir, y ejecutar esta obraCopiar, distribuir, exhibir, y ejecutar esta obraHacer obras derivadasHacer obras derivadasBajo las siguientes condiciones:Bajo las siguientes condiciones:Atribución. Usted debe atribuir la obra en la forma especificada Atribución. Usted debe atribuir la obra en la forma especificada por el autor o el licenciante.por el autor o el licenciante.No Comercial. Usted no puede usar esta obra con fines comerciales.No Comercial. Usted no puede usar esta obra con fines comerciales.Si usted altera, transforma, o crea sobre esta obra, sólo podrá distribuirSi usted altera, transforma, o crea sobre esta obra, sólo podrá distribuirla obra derivada resultante bajo una licencia idéntica a ésta.la obra derivada resultante bajo una licencia idéntica a ésta.