Sei sulla pagina 1di 291

Seminario de Titulacin Ingeniera en Sistemas

Arquitectura de Sistemas Microprocesados

Arquitectura de Sistemas Microprocesados

31/01/2013

Objetivos de Asignatura

Objetivo general:

Disear sistemas automatizados de mediana complejidad gobernados por Microcontroladores

Objetivos especficos: Caracterizar las funciones y arquitectura de un sistema microprocesado. Interpretar las instrucciones de programacin del microcontrolador en lenguaje JAVA. Programar microcontroladores con herramientas de entorno grfico. Disear aplicaciones de sistemas automatizados.
2 Arquitectura de Sistemas Microprocesados 31/01/2013

Contenidos:

Unidades didcticas:

1: Arquitectura de sistemas microprocesados

Microprocesadores vs microcontroladores Arquitectura interna de microcontroladores


Estructura de programas Fundamentos de lenguaje para microncontroladores Herramientas OPEN SOURCE para microcontroladores Simulacin de sistemas microprocesados Funciones y Macros de recursos especiales de uC

2: Programacin de microcontroladores: C++, JAVA


3: Programacin grfica de microcontroladores

4: Diseo de aplicaciones con microcontroladores


Arquitectura de Sistemas Microprocesados 31/01/2013

Metodologa

En cada perodo de clase se presentar el tema, exponiendo el objetivo especfico y las habilidades que se desea alcanzar. Mediante el autoaprendizaje (exploraciones) se llega al descubrimiento de conceptos y patrones de manera independiente, aprovechando el poder de la tecnologa. Las actividades (aplicaciones) son una rica y variada seleccin de aplicaciones del mundo real, estas ofrecen un constante repaso de las habilidades para resolver problemas. Adems, se pueden incorporar Actividades en equipo, motivando al estudiante a pensar, hablar y escribir soluciones en un ambiente de aprendizaje de mutuo apoyo.
4 Arquitectura de Sistemas Microprocesados 31/01/2013

Sistema de evaluacin

La evaluacin ser continua y constante durante el desarrollo de las temticas programadas:

Controles frecuentes, Trabajos individuales o en grupo, Pruebas escritas y prcticas, Resolucin de ejercicios, Exposiciones y trabajos independientes. Para el control de notas se guiar segn ficha de evaluacin para cada parcial emitida por el Departamento Acadmico. Es decir con notas intraclase y extractase.
actividades desarrolladas intraclase y extractase (EF) 20%

Evaluacin parcial (EP) Evaluacin ordinaria o final (EO)

20 % 60%

Arquitectura de Sistemas Microprocesados

31/01/2013

Referencias bibliogrficas

JOS M ANGULO USATEGUI, IGNACIO ANGULO MARTNEZ. PIC diseo prctico de aplicaciones, Tercera edicin. MCGRAW HILL VERLE MILAN. PIC Microcontrollers Programming in C. Primera edicin. 2009 BANZI MASSIMO. GETTING STARTED WITH ARDUINO. Segunda edicin. OREILLY. 2011 WARREN JOHN, JOSH ADAMS, MOLLE HARALD. ARDUINO ROBOTICS. Primera edicin. TIA. 2010 BART HUYSKENS, JOHN DOBSON, STEVE TANDY. AN INTRODUCTION TO MICROCONTROLLER PROGRAMMING. MATRIX MULTIMEDIA. 2010
6 Arquitectura de Sistemas Microprocesados 31/01/2013

Plataforma de trabajo

Microcontroladores PIC de 8 bits:

PIC16F887 PIC16F88 ARDUINO AUTOMASIS VER3.0 Osciloscopios, fuentes cc, multmetros, generadores de seales, programadores PIC MPLAB, MIKROC, PROTEUS
Arquitectura de Sistemas Microprocesados 31/01/2013

Microcontroladores ATMEL de 32 bits:

Entrenadores de microcontroladores:

Equipos de medicin:

Compiladores y simuladores:

Cmo trabaja nuestro sistema?

Arquitectura de Sistemas Microprocesados

31/01/2013

Pasos de diseo de sistemas microprocesados

Procesamiento secuencial:

La lgica digital Codificacin de los datos La organizacin de los componentes Programacin: ensamblador, lenguaje C Compilar Interfaces con mundo exterior Dispositivos y controladores

Arquitectura de Sistemas Microprocesados

31/01/2013

Repaso de electrnica digital

10

Arquitectura de Sistemas Microprocesados

31/01/2013

Funcin AND (producto)

S ab

a
0 0

b
0 1

S
0 0

1
1

0
1

0
1

Funcin OR (suma)

S a b

a
0 0

b
0 1

S
0 1

1
1

0
1

1
1

Funcin NOT (inversor)

Sa

a 0 1

S 1 0

Primera forma cannica


a 0 0 0 0 b 0 0 1 1 c 0 1 0 1

S
0 1 0 1

Minitrminos: Casos en los que se obtiene salida 1


cuando a y b son 0 y c es 1 cuando a es 0 y b y c son 1

(abc) (abc)

1
1 1 1

0
0 1 1

0
1 0 1

0
0 0 1

cuando a, b y c son 1

(abc) S = (abc) + (abc) + (abc)

Al unir los casos favorables

Segunda forma cannica


a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1

S
0 1 1 1 0 1 1 1

Maxitrminos: Casos en los que se obtiene salida 0 cuando a, b y c son 0 (a+b+c)

y
cuando a es 1 y b y c son 0

(a+b+c)

Al eliminar los casos desfavorables

S = (a+b+c) (a+b+c)

Propiedades del lgebra de Boole


Estructura matemtica de un conjunto de elementos {0,1} con tres operaciones con ellos {+, , }
1 ) Conmutativa a+b = b+a ab = ba 2 ) Asociativa a+b+c = a+(b+c) abc = a(bc) 3 ) Distributiva a(b+c) = ab + ac a+(bc) = (a+b)(a+c) 4 ) Elemento neutro a+0 = a a1 = a 5 ) Elemento absorbente a+1 = 1 a0 = 0 6 ) Ley del complementario a+a = 1 aa = 0 7 ) Idempotente a+a = a aa = a 8 ) Simplificativa a+ab = a a(a+b) = a

Teoremas de De Morgan

1 ) Primer teorema a+b=ab

2 ) Segundo teorema ab=a+b

Funcin NAND

S ab

a
0 0

b
0 1

S
1 1

1
1

0
1

1
0

Funcin NOR

S a b

a
0 0

b
0 1

S
1 0

1
1

0
1

0
0

Funcin XOR (o exclusiva)

S a b

a
0 0

b
0 1

S
0 1

1
1

0
1

1
0

Codificadores
Dan salidas dependiendo de los valores de las entradas

Decimal a BCD

BCD a decimal

BCD a 7 segmentos

Multiplexor
Una salida 2n entradas n entradas de seleccin a 0 b 0 c 0 S D0

0
0

0
1

1
0

D1
D2

0 1
1 1 1

1 0
0 1 1

1 0
1 0 1

D3 D4
D5 D6 D7

Transforma valores en paralelo a valores en serie

Demultiplexor
2n salidas una entrada n entradas de seleccin

Transforma valores en serie a valores en paralelo

Comparador
2 grupos de 2n entradas tres salidas

Actividad en clase:

25

Actividad 2: Arquitectura de sistemas microprocesados

Objetivo:

Conceptualizar componentes en un sistema microprocesado, mediante el anlisis de sus mdulos funcionales, para la identificacin en procesos de ejecucin.

26

Cuntos componentes caben en un chip?

27

Arquitectura simplificada de uComputadora

PERIFERICO ENTRADA SALIDA

MEMORIA RAM ROM

BUS DATOS BUS DIRECCIONES BUS CONTROL

28

Buses de comunicacin

Nos referiremos a tres clases de buses de comunicacin:


Bus de direcciones Bus de datos Bus de control

Bus de direcciones: A0-AM-1. Es el empleado por la CPU para seleccionar la direccin de memoria o el dispositivo de E/S con el cual va a intercambiar informacin. Es unidireccional. El tamao determina la capacidad de direccionamiento de la CPU, que es el mximo nmero de posiciones de memoria y dispositivos E/S a los que la CPU puede acceder. Para m lneas la capacidad de direccionamiento ser: 2m.
29

Buses de comunicacin

30

Buses de comunicacin

Bus de datos: D0 - DN-1. El bus de datos es el conjunto de conductores a travs del cual el microprocesador intercambia informacin con la unidad de memoria o E/S seleccionada mediante el bus de direcciones. Caractersticas:

Bidireccional: La informacin puede viajar en los dos sentidos. Nmero de lneas (N): representa la cantidad de bits que se pueden transmitir simultneamente. Suele denominarse la palabra del P. Triestado: Las lneas del bus de datos deben ser triestado. Las lneas triestado son aquellas capaces de tener tres estados: Estado alto (High, H). Estado bajo (Low, L). Estado de alta impedancia (High Impedance, HZ).

31

Buses de datos

32

Bus de control

Bus de control. Est formado por un conjunto de lneas por las que circulan las seales auxiliares de gobierno y sincronizacin del sistema. Las lneas existentes dependen del fabricante del P y de las funciones que desee implementarle. Algunas seales tpicas en todos los sistemas son:

Seal de reloj de sincronizacin (CLK) Seal de RESET o inicializacin (RST) Seal de lectura/escritura en memoria (R/W), etc.

33

Bus de control

34

Arquitectura RISC vs CISC

Arquitectura CISC (Complex Instruction Set Computer).


Basado en un amplio repertorio de instrucciones. Se aumenta la potencia del microprocesador a costa de aumentar el tamao de las instrucciones, y por tanto el nmero de ciclos de reloj que precisan para ejecutarse. Eso s, los programas vern reducido el nmero de instrucciones mquina que precisan para ser ejecutados por el microprocesador. Ejemplos: Los procesadores de Intel y AMD son puramente CISC

35

Arquitectura CISC

36

Arquitectura RISC

Arquitectura RISC (Reduced Instruction Set Computer).


Plantea un conjunto reducido de instrucciones, buscando reducir el nmero de ciclos de reloj de ejecucin por cada una de ellas, hacindolas simples y evitando instrucciones complejas. Se descarga la responsabilidad de construir programas eficientes al software, al compilador. Ejemplos: Procesadores Alpha, el Power PC (Motorola/IBM), microcontroladores ATMEL, PIC

37

Arquitectura RISC

38

Microprocesadores VS. Microcontroladores


Microprocesadores Microcontroladores

Set de instrucciones complejo: Set de instrucciones reducido: en INTEL cerca de 320 PIC gama media 32 instrucciones instrucciones Multipropsito: operaciones Propsito lgicas, operaciones programados aritmticas, multimedia concretas Costo mayor Menor costo especfico: para tareas

Requieren de dispositivos En CHIP se encuentran CPU, externos para funcionar: reloj, memorias, reloj interno memorias, tarjetas I/O

Programa principal se Cuenta con almacena en memoria externa programa reprogramable


39

memoria de interna

Mayores frecuencias trabajo: INTEL en GHz

de Frecuencias de trabajo Arquitectura de Sistemas 31/01/2013 menores: PIC en MHz Microprocesados

Microprocesador vs Microcontrolador

40

Microcontroladores: Ing. Vctor Medina G

Arquitectura de uP de 8 bits

41

Componentes de uP

Adems de la Unidad de Aritmtica y Lgica (ALU) y de la Unidad de Control (UC), los microprocesadores contienen REGISTROS. REGISTRO (register): Es el elemento ms pequeo que puede retener un dato. Usado para almacenar temporalmente informacin dentro de la CPU. Los registros pueden ser de propsito general o especializado.

42

Registros internos

REGISTRO DE PROPSITO GENERAL (generalpurpose register): Son aquellos sobre los que no existe restriccin en cuanto a su utilizacin. Pueden ser empleados como fuente o destino de datos, como contador, como puntero de localidades de memoria o de elementos de E/S. REGISTROS ESPECIALIZADOS (special-purpose register): Son los registros que estn dedicados a realizar alguna funcin especfica.

43

ALU y registros
7 0 7 0

REGISTRO ACUMULADOR

REGISTROS TEMPORALES

7
ALU DE 8 BITS

REGISTRO DE BANDERAS S, C, Z, etc.

44

Registro de trabajo (W)

REGISTRO ACUMULADOR (accumulator): Es el registro base para las operaciones aritmticas y lgicas. Antes de la ejecucin de la instruccin contiene uno de los OPERANDOS y despus de la ejecucin es el que generalmente recibe el resultado. Tambin es registro fuente o destino de las transferencias de datos con la unidad de memoria o con el sistema de entrada / salida. En algunos microprocesadores existe ms de un Acumulador.

45

Registro temporales y FLAGS

REGISTROS TEMPORALES O AUXILIARES (temporal registers) Son registros para uso interno de la CPU, en los que se almacena momentneamente cierta informacin y no son accesibles al programador mediante ninguna instruccin. REGISTRO DE BANDERAS (flag register): Esta formado por un conjunto de biestables, los mismos que indican ciertas condiciones del resultado de las operaciones; como por ejemplo el valor del signo, si hubo o no carry, si es igual a cero o no, etc.
46

REGISTRO ACUMULADOR

REGISTROS TEMPORALES

REGISTRO DE INSTRUCCIONES

7
ALU DE 8 BITS

REGISTRO DE DECODIFICADOR DE BANDERAS INSTRUCCIONES S, C, Z, etc.

CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL

BUS DE CONTROL

47

Registros de instrucciones

REGISTRO DE INSTRUCCIONES (instruction register): Es el registro donde se almacena el CDIGO DE LA OPERACIN de la instruccin que se esta ejecutando, una vez que es trado desde la memoria del programa mediante el Bus de Datos. DECODIFICADOR DE INSTRUCCIONES (instruction decoder): Es la parte de la Unidad de Control que se encarga de interpretar la instruccin que se encuentra en el Registro de Instrucciones, en base a una memoria ROM que contiene microinstrucciones que controlan la ejecucin de las instrucciones.
48

TIMMING AND CONTROL CIRCUITS

CIRCUITOS LGICOS GENERADORES DE TIEMPO Y CONTROL (timming and control circuits): Son los circuitos encargados de generar las seales tanto internas como externas que permiten ejecutar las instrucciones. A estos circuitos tambin llegan las seales externas como las de inicializacin, las de espera, las de interrupciones, etc. Es decir, es el bloque que esta directamente relacionado con el Bus de Control.

49

BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)

D7D0
0

BUFFER DEL BUS DE DATOS

REGISTRO ACUMULADOR

REGISTROS TEMPORALES

REGISTRO DE INSTRUCCIONES

7
ALU DE 8 BITS

0
DECODIFICADOR DE INSTRUCCIONES

REGISTRO DE BANDERAS S, C, Z, etc.

CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL

50

BUS DE CONTROL

Buses

BUS INTERNO (internal bus): Es el bus de comunicaciones entre los distintos componentes del microprocesador, se lo conoce tambin como el BUS INTERNO DE DATOS. El nmero de lneas que posee este bus esta determinado por el nmero de bits que procesa en paralelo la ALU y es uno de los parmetros que clasifican a los microprocesadores. Este bus se encuentra relacionado con el bus externo de datos a travs del BUFFER DEL BUS DE DATOS.
51

BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)

D7D0
0
REGISTROS ESPECIALIZADOS

BUFFER DEL BUS DE DATOS

REGISTRO ACUMULADOR

REGISTROS TEMPORALES

REGISTRO DE INSTRUCCIONES

REGISTROS DE PROPSITO GENERAL REGISTROS NDICES REGISTRO CONTADOR DEL PROGRAMA (PC) REGISTRO PUNTERO DE LA PILA (SP)

7
ALU DE 8 BITS

REGISTRO DE DECODIFICADOR DE BANDERAS INSTRUCCIONES S, C, Z, etc.

15
CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL

BUS DE CONTROL 52

Contador de programa

CONTADOR DEL PROGRAMA (program counter PC): Es el que contiene la direccin de la localidad donde se encuentra la siguiente instruccin a ser ejecutada. PUNTERO DE LA PILA (stack pointer SP): Contiene la direccin de la memoria donde se almacen el ltimo dato de la PILA o STACK. REGISTRO NDICE (index register): Tambin contiene una direccin y es utilizado como puntero. El uso de este registro permite que los programas sean ms flexibles, ya que para acceder a distintas localidades de memoria, basta especificar un valor que sumado al contenido del registro ndice da la direccin real.
53

BUS DE DATOS
7
BUS DE DATOS INTERNO (8 BITS)

D7D0
0
REGISTROS ESPECIALIZADOS

BUFFER DEL BUS DE DATOS

REGISTRO ACUMULADOR

REGISTROS TEMPORALES

REGISTRO DE INSTRUCCIONES

REGISTROS DE PROPSITO GENERAL REGISTROS NDICES

7
ALU DE 8 BITS

0
DECODIFICADOR DE INSTRUCCIONES

REGISTRO DE BANDERAS S, C, Z, etc.

REGISTRO CONTADOR DEL PROGRAMA (PC)

REGISTRO PUNTERO DE LA PILA (SP)

15
CIRCUITOS LGICOS GENERADORES DE TIEMPO Y DE CONTROL

BUFFER DEL BUS DE DIRECCIONES

BUS DE CONTROL 54

BUS DE DIRECCIONES

A15...A0

Ciclo de instrucciones en microprocesador de 8 bits

55

Arquitectura RISC

56

Arquitectura de Sistemas Microprocesados

31/01/2013

Segmentacin PIPE-LINE

La segmentacin permite al procesador realizar al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. De esta forma se puede ejecutar cada instruccin en un ciclo (en los PIC cada ciclo de instruccin son cuatro ciclos de reloj). Durante la fase de bsqueda, la direccin de la instruccin la proporciona el PC, el cual normalmente se autoincrementa en la mayora de las instrucciones, excepto en las de salto.

57

Arquitectura de Sistemas Microprocesados

31/01/2013

Ciclo de instruccin

El registro Program Counter (PC) es gobernado por el ciclo de instruccin. Cada ciclo de instruccin la CPU lee (ciclo Fetch) la instruccin guardada en la memoria de programa apuntada por PC y al mismo tiempo ejecuta la instruccin anterior, esto debido a una cola de instrucciones que le permite ejecutar una instruccin mientras lee la prxima.

58

Arquitectura de Sistemas Microprocesados

31/01/2013

Ciclo de instruccin

59

Arquitectura de Sistemas Microprocesados

31/01/2013

Ciclo de instruccin

Como puede verse, cada ciclo de instruccin: (Tcy = 4Tosc) Se compone a su vez de cuatro ciclos del oscilador Tosc= 1/Fosc. Cada ciclo Q provee la sincronizacin para los siguientes eventos:

Q1: Decodificacin de la instruccin Q2: Lectura del dato (si lo hay) Q3: Procesa el dato Q4: Escribe el dato

Debido a esto cada ciclo de instruccin consume 4 ciclos de reloj, de manera que si la frecuencia de oscilacin es Fosc, Tcy ser 4/Fosc.
60 Arquitectura de Sistemas Microprocesados 31/01/2013

Segmentacin PIPE-LINE

61

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 3: Arquitectura de microcontroladores

Objetivo:

Definir los componentes de un microcontrolador mediante el anlisis de sus etapas funcionales

62

Microcontroladores

Registros

Un registro o una celda de memoria es un circuito electrnico que puede memorizar el estado de un byte.

63

Microcontroladores

Registro SFR

Registros de funciones especiales, cada bit configura los circuitos internos del microcontroladores que se conectan a travs de los pines a los perifricos.

64

Microcontroladores

PUERTOS DE ENTRADA/SALIDA (E/S)

Conectan los circuitos internos con los perifricos. Son configurable s bit a bit. Carga mxima (1020mA)
Microcontroladores

65

UNIDAD DE MEMORIA

Almacena los datos.

66

Microcontroladores

UNIDAD DE MEMORIA

67

Microcontroladores

Memoria en PIC

68

Microcontroladores

UNIDAD CENTRAL DE PROCESAMIENTO (CENTRAL PROCESSOR UNIT - CPU)

69

Decodificador de instrucciones: decodifica las instrucciones del programa y acciona otros circuitos Unidad lgica aritmtica (Arithmetical Logical Unit - ALU) realiza todas las operaciones matemticas y lgicas sobre datos Acumulador o registro de trabajo. Microcontroladores

Bus


70

El bus est formado por 8, 16 o ms cables. Dos tipos de buses: Bus de direcciones Bus de datos.
Microcontroladores

COMUNICACIN EN SERIE

Permite conectar un uC con un perifrico utilizando un mnimo nmero de cables, lo que permite el alcance de mayores distancias.

71

Microcontroladores

VELOCIDAD DE TRANSMISIN SERIAL

La velocidad de transmisin serial (baud rate) es el trmino utilizado para denotar el nmero de bits transmitidos por segundo [bps]. El protocolo normalmente requiere que cada byte se transmita junto con varios bits de control. Eso quiere decir que un byte en un flujo de datos serial puede consistir en 11 bits. Por ejemplo, si velocidad de transmisin serial es 300 bps un mximo de 37 y un mnimo de 27 bytes se pueden transmitir por segundo.

72

Microcontroladores

Sistemas de comunicacin serial


I2C

(INTER INTEGRATED CIRCUIT) CIRCUITO INTER-INTEGRADO Circuito inter-integrado es un sistema para el intercambio de datos serial entre los microcontroladores y los circuitos integrados. Se utiliza cuando la distancia entre ellos es corta (el receptor y el transmisor estn normalmente en la misma placa de circuito impreso). La conexin se establece por medio de dos lneas - una se utiliza para transmitir los datos, mientras que la otra se utiliza para la sincronizacin (la seal de reloj).
Microcontroladores

73

I2C (INTER INTEGRATED CIRCUIT)

74

Microcontroladores

SPI (SERIAL PERIPHERAL INTERFACE BUS)

SPI (SERIAL PERIPHERAL INTERFACE BUS) - BUS SERIAL DE INTERFAZ DE PERIFRICOS Es un sistema para la comunicacin serial que utiliza hasta cuatro lneas (normalmente solo son necesarias tres) - para recibir los datos, para transmitir los datos, para sincronizar y (opcional) para seleccionar el dispositivo con el que se comunica. Esto es la conexin full duplex, lo que significa que los datos se envan y se reciben simultneamente. La velocidad de transmisin mxima es mayor que en el sistema de conexin I2C.
Microcontroladores

75

UART (UNIVERSAL RECEIVER/TRANSMITTER)

ASYNCHRONOUS

UART (UNIVERSAL ASYNCHRONOUS RECEIVER/TRANSMITTER) - TRANSMISORRECEPTOR ASNCRONO UNIVERSAL Este tipo de conexin es asncrona, lo que significa que no se utiliza una lnea especial para transmitir la seal de reloj. Tanto el receptor como el transmisor reciben y envan los datos a velocidad misma que ha sido predefinida para mantener la sincronizacin necesaria. Esto es una manera simple de transmitir datos puesto que bsicamente representa una conversin de datos de 8 bits de paralelo a serial. La velocidad de transmisin no es alta, es hasta 1 Mbit/sec.
Microcontroladores

76

OSCILADOR

Se configura normalmente de tal manera que utilice un cristal de cuarzo o resonador cermico para estabilizacin de frecuencia. Adems, puede funcionar como un circuito autnomo (como oscilador RC).

77

Microcontroladores

CIRCUITO DE ALIMENTACIN

Brown out es un estado potencialmente peligroso que ocurre al apagar el microcontrolador o en caso de que el voltaje de la fuente de alimentacin salga de unos mrgenes debido al ruido elctrico. Como el microcontrolador dispone de varios circuitos que funcionan a niveles de voltaje diferentes, ese estado puede causar un comportamiento descontrolado. Para evitarlo, el microcontrolador normalmente tiene un circuito incorporado para el brown out reset. El pin de reset (reinicio), marcado frecuentemente con MCLR (Master Clear Reset), sirve para el reinicio externo del microcontrolador al aplicar un cero (0) o un uno (1) lgico dependiendo del tipo del microcontrolador. En caso de que el circuito brown out no est incorporado, un simple circuito externo para el brown out reset se puede conectar al pin MCLR.
Microcontroladores

78

TEMPORIZADORES/CONTADORES

Son circuitos que sirven medir el tiempo transcurrido entre dos eventos, basados en contar los pulsos generados por el oscilador principal que es un cristal de cuarzo

79

Microcontroladores

CMO FUNCIONAN LOS TEMPORIZADORES?

80

Los pulsos generados por el oscilador de cuarzo son llevados al circuito una vez por cada ciclo de mquina directamente o por el pre-escalador, lo que aumenta el nmero en el registro del temporizador. Microcontroladores

UTILIZAR UN PREESCALADOR EN FUNCIONAMIENTO DEL TEMPORIZADOR

EL

Un pre-escalador es un dispositivo electrnico utilizado para dividir la frecuencia por un factor predeterminado. Esto quiere decir que se necesita llevar 1, 2, 4 o ms pulsos a su entrada para generar un pulso a la salida.
Microcontroladores

81

UTILIZAR UNA INTERRUPCIN EN FUNCIONAMIENTO DEL TEMPORIZADOR

EL

Si el registro del temporizador es de 8 bits, el mayor nmero que se puede escribir en l es 255. Si se excede este nmero, el temporizador se reinicia automticamente y el conteo comienza de nuevo en cero. Esto es denominado desbordamiento o sobreflujo (overflow).
Microcontroladores

82

TEMPORIZADOR (WATCHDOG)

PERRO

GUARDIN

83

El perro guardin es un temporizador conectado a un oscilador RC completamente independiente dentro del microcontrolador. Si el perro guardin est habilitado, cada vez que cuenta hasta el mximo valor en el que ocurre el desbordamiento del registro se genera una seal de reinicio del microcontrolador y la ejecucin de programa inicia en la

Microcontroladores

CONVERTIDOR

A/D

Un convertidor analgico-digital es un circuito electrnico encargado de convertir las seales continuas en nmeros digitales discretos. En otras palabras, este circuito convierte un nmero real en un nmero binario y se lo enva a la CPU para ser procesado.

84

Microcontroladores

Codificacin analgica a digital

85

Microcontroladores

CONVERTIDOR

A/D

Resolucin depende del nmero de BITS. A mayor nmero de BITS, menor error.

86

Microcontroladores

Actividad 4: Arquitectura de microcontroladores PIC16F887

Objetivo: Diferenciar gamas de microcontroladores mediante anlisis de sus partes funcionales

87

Arquitectura de Sistemas Microprocesados

31/01/2013

Caractersticas PIC16F887

Arquitectura RISC Los datos se pueden grabar ms de 1.000.000 veces 35 instrucciones Instrucciones son uni-ciclo excepto por las 368 bytes de memoria RAM de ramificacin Convertidor A/D: Frecuencia de operacin 0-20 MHz 14 canales Oscilador interno de alta precisin resolucin de 10 bits Rango de frecuencia de 8MHz a 31KHz 3 temporizadores/contadores seleccionado por software independientes Voltaje de la fuente de alimentacin de 2.0V Temporizador perro guardin a 5.5V Mdulo comparador analgico con Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 Dos comparadores analgicos V, 32 KHz) 50nA (en modo de espera) Referencia de voltaje fija (0.6V) Ahorro de energa en el Modo de Referencia de voltaje programable en el suspensin chip 35 pines de entrada/salida Mdulo PWM incorporado Resistencias pull-up programables Mdulo USART mejorado individualmente por software Soporta las comunicaciones seriales RS Interrupcin al cambiar el estado del pin 485, RS-232 y LIN2.0 Memoria ROM de 8K con tecnologa FLASH Auto deteccin de baudios El chip se puede re-programar hasta Puerto Serie Sncrono Maestro (MSSP) 100.000 veces Soporta los modos SPI e I2C Opcin de programacin serial en el circuito 256 bytes de memoria EEPROM 88 Arquitectura de Sistemas 31/01/2013 Microprocesados

Descripcin de PINOUT PIC16F887

La mayora de los pines del microcontrolador PIC16F887 son multipropsito. Por ejemplo, la asignacin RA3/AN3/Vref+/C1IN+ para el quinto pin del microcontrolador indica que ste dispone de las siguientes funciones:

RA3 Tercera entrada/salida digital del puerto A AN3 Tercera entrada analgica Vref+ Referencia positiva de voltaje C1IN+ Entrada positiva del comparador C1

Estas funciones de los pines no se pueden utilizar simultneamente, sin embargo se pueden cambiar en cualquier instante durante el funcionamiento mediante SW.
89 Arquitectura de Sistemas Microprocesados 31/01/2013

Memoria en PIC16F887

Memoria ROM:

El PIC16F887 tiene 8Kb de memoria ROM (en total 8192 localidades). Como la memoria ROM est fabricada con tecnologa FLASH, su contenido se puede cambiar al proporcionarle un voltaje de programacin especial (13V). El contenido de esta memoria est permanentemente guardado al apagar la fuente de alimentacin. Sin embargo, a diferencia de la ROM, el contenido de la EEPROM se puede cambiar durante el funcionamiento del microcontrolador. Posee 256 localidades que pueden ser cambiados y utilizados durante el funcionamiento.
Arquitectura de Sistemas Microprocesados 31/01/2013

Memoria EEPROM:

90

Memoria en PIC16F887

Memoria RAM: Se compone de dos partes: registros de propsito general y en los registros de funciones especiales (SFR). Todos estos registros se dividen en cuatro bancos de memoria. Los dos grupos de registros se ponen a cero al apagar la fuente de alimentacin, adems estn fabricados de la misma forma y se comportan de la manera similar.
91 Arquitectura de Sistemas Microprocesados 31/01/2013

Sistema de interrupciones

Al aparecer una peticin de interrupcin lo primero que hace el microcontrolador es ejecutar la instruccin actual despus de que se detiene el proceso de ejecucin de programa. Como resultado, la direccin de memoria de programa actual se apila automticamente y la direccin por defecto (predefinida por el fabricante) se escribe en el contador de programa. La localidad en la que el programa contina con la ejecucin se le denomina vector de interrupcin. En el caso del microcontrolador PIC16F887 esta direccin es 0x0004h.

Al reconocer la fuente de interrupcin y al terminar de ejecutar la rutina de interrupcin el microcontrolador alcanza la instruccin RETFIE, toma la direccin de la pila y contina con la ejecucin de programa desde donde se interrumpi.

MIKROC reconoce una rutina de interrupcin que se ejecutar como la funcin void interrupt(). El cuerpo de la funcin, o sea, rutina de interrupcin, debe ser escrito por el usuario.

92

void interrupt() { // Interrupt routine incremented by 1}

cnt++ ;

// Interrupt causes variable cnt to be


31/01/2013

Arquitectura de Sistemas Microprocesados

Sistema de interrupciones

93

Arquitectura de Sistemas Microprocesados

31/01/2013

Principales registros SFR: STATUS

Contiene el estado aritmtico de datos en el registro W, el estado RESET, los bits para seleccionar el banco para los datos de la memoria. IRP - Registro de seleccin de Banco usado para direccionamiento indirecto 1 - Bancos 0 y 1 son activos (00h-FFh) 0 - Bancos 2 y 3 son activos (00h-1FFh) RP1, RP0 - Registro de seleccin de banco usado para direccionamiento directo. TO - Time-out bit bit de salida del temporizador perro guardin 1 - Despus de encender el uC, o ejecutarse CLRWDT o ejecutarse la instruccin SLEEP 0 - Despus de acabarse el tiempo del WDT. PD - Power-down bit: 1 - Despus de encender el microcontrolador, despus de ejecutar la instruccin CLRWDT, 0 Despus de ejecutarse la instruccin SLEEP que pone al microcontrolador en el

modo de bajo consumo. Z - Zero bit (bit cero): 1 - El resultado de una operacin lgica o aritmtica es 0; 0 El resultado de una operacin lgica o aritmtica es distinto de 0. DC - Digit carry/borrow bit (bit de acarreo/prstamo de dgito) cambia al sumar o al restar si ocurre un "desbordamiento" 1 - Hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado. 0 - No hubo acarreo del cuarto bit de orden bajo (nibble bajo) en el resultado. C - Carry/Borrow bit cambia al sumar o al restar si ocurre un "desbordamiento" en el resultado, o sea si el resultado es mayor de 255 . 1 - Ocurri acarreo en el bit ms significativo (MSB) del resultado. 0 - No ocurri acarreo en el bit ms significativo (MSB) del resultado.

IRP 7
94

RP1 6

RP0 5

TO 4

PD 3

Z 2

DC 1

C 0

Arquitectura de Sistemas Microprocesados

31/01/2013

Entrada o salida en puertos

Si deseamos configurar el puerto A con la siguiente asignacin:


RA0 RA1 RA2 RA3 RA4 RA5 RA6 salida salida salida salida entrada entrada entrada

Posibles instrucciones a utilizar

ADCON1 = 6; \\ instruccin indispensable para usar el puerto A y el puerto E como entrada o salida de datos digitales TRISA = 0b01110000; TRISA = 0x70; TRISA = 112;

Principales registros SFR: OPTION

96

Arquitectura de Sistemas Microprocesados

31/01/2013

Principales registros SFR: INTCON

97

Arquitectura de Sistemas Microprocesados

31/01/2013

Principales registros SFR: INTCON

98

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 5: Acondicionamiento de seales

Objetivos: Establecer parmetros de medicin e interface mediante el estudio de acondicionamiento de seales a microcontroladores. El control de procesos depende de la obtencin de informacin de entrada, su evaluacin y la ejecucin de la accin correspondiente. En control industrial, la mayora de las veces la informacin de entrada involucra el monitoreo de dispositivos de campo que admiten dos estados posibles. Un interruptor es un ejemplo comn de dispositivo de dos estados. O est abierto o est cerrado.
Microcontroladores


99

Acondicionamiento de seales

Interruptores: activan o desactivan seales de entrada

100

Microcontroladores

Conexin elctrica de interruptores

101

Conectados directamente a los puertos Se recomienda proceso anti rebote


Microcontroladores

Acondicionamiento seales digitales

102

Microcontroladores

Interruptor reflectivo

Las seales ingresan por cortes de luminosidad en receptor

103

Microcontroladores

Acondicionamiento de seales a cargas

Microcontroladores se conectan a cargas elctricas mayores mediante dispositivos actuadores, cumpliendo secuencias, considerando retardos debido a inercias mecnicas, retardos en activaciones, etc
104 Microcontroladores

Acondicionamiento de seales a cargas

105

Microcontroladores

Acondicionamiento salidas digitales

106

Microcontroladores

Control de procesos continuos

Circuitos retroalimentados, la salida se compara con la entrada.


Microcontroladores

107

Sensores de temperatura

Transductores: convierten seales fsicas en seales elctricas. Sensores: miden seales sin convertirlas en otra magnitudes, contienen a los transductores

108

Microcontroladores

Sistemas continuos = retroalimentados

109

Microcontroladores

Control sistemas continuos con PIC

110

Microcontroladores

Actividad 6: Programacin de PIC en C

Objetivos:

Definir la estructura de un programa en C mediante la descripcin de etapas en lenguaje de alto nivel para microcontroladores

111

Lenguajes de programacin

El uC ejecuta el programa cargado en la memoria Flash, se denomina el cdigo ejecutable. Dependiendo de la arquitectura, el cdigo binario est compuesto por palabras de 12, 14 o 16 bits de anchura, que se interpreta por la CPU como una instruccin a ser ejecutada durante el funcionamiento. Se les denominan Conjunto de instrucciones. El cdigo ejecutable se representa con nmeros hexadecimales denominada cdigo Hex. En los microcontroladores PIC con las palabras de programa de 14 bits de anchura, el conjunto de instrucciones tiene 35 instrucciones diferentes.

112

Microcontroladores

Lenguaje ensamblador (ASSEMBLER)

Las instrucciones consisten en abreviaturas con significado y a cada instruccin corresponde una localidad de memoria. Un programa denominado ensamblador compila (traduce) las instrucciones del lenguaje ensamblador a cdigo mquina (cdigo 113

Microcontroladores

Desventajas de ASSEMBLER

Una sola operacin en ensamblador consiste en muchas instrucciones, hacindolo muy largo y difcil de manejar. Cada tipo de microcontrolador tiene su propio conjunto de instrucciones. Un programador tiene que conocer el hardware del microcontrolador para escribir un programa.

114

Microcontroladores

Lenguaje alto nivel vs. ASSEMBLER

115

Microcontroladores

Lenguaje C

El lenguaje C dispone de todas las ventajas de un lenguaje de programacin de alto nivel (anteriormente descritas) y le permite realizar algunas operaciones tanto sobre los bytes como sobre los bits (operaciones lgicas, desplazamiento etc.). C est estandarizado (el estndar ANSI)

116

Microcontroladores

CARACTERSTICAS PRINCIPALES DEL MIKROC

Este lenguaje es muy similar al C estndar, no obstante en determinados aspectos difiere del ANSI estndar en algunas caractersticas. Algunas de estas diferencias se refieren a las mejoras, destinadas a facilitar la programacin de los microcontroladores PIC, mientras que las dems son la consecuencia de la limitacin de la arquitectura del hardware de los PIC

117

Microcontroladores

FASES DE COMPILACIN

118

El archivo fuente contiene el cdigo en MIKROC. El preprocesador se utiliza automticamente por el compilador al iniciarse el proceso de la compilacin. El compilador busca las directivas del preprocesador (que siempre empiezan por #) dentro del cdigo y modifica el cdigo fuente de acuerdo con las directivas. En esta fase se llevan a cabo inclusin de archivos, definicin de constantes y macros etc, lo que facilita el proceso. El analizador sintctico (parser) elimina toda la informacin intil del cdigo (comentarios, espacios en blanco). Compilador traduce el cdigo a un archivo binario denominado archivo .mcl. El enlazador (linker) recupera toda la informacin requerida para ejecutar el programa de los archivos externos y la agrupa en un solo archivo (.dbg). Adems, un proyecto puede contener ms de un archivo fuente y el programador puede utilizar funciones predefinidas y agrupadas dentro de los archivos denominados libreras. Por ltimo, el generador .hex produce un archivo .hex. Es el archivo que se va a cargar en el microcontrolador.
Microcontroladores

FASES DE COMPILACIN

119

Microcontroladores

ESTRUCTURA DE PROGRAMA
Por ejemplo: 1. Activar y configurar el convertidor A/D incorporado; 2. Medir el valor analgico; 3. Calcular temperatura; y 4. Enviar los datos en el formato apropiado al LCD.

120 Microcontroladores

ESTRUCTURA DE PROGRAMA

121

Microcontroladores

122

Microcontroladores

Datos en MIKROC

Cada dato utilizado en el programa debe tener su tipo especificado. Esto permite al compilador conocer el tamao de dato (nmero de bytes requerido en la memoria) y su representacin. Hay varios tipos de datos que se pueden utilizar en el lenguaje de programacin mikroC dependiendo del tamao de dato y del rango de valores.

123

Microcontroladores

Datos en MIKROC

Al aadir un prefijo (calificador) a cualquier tipo de dato entero o carcter, el rango de sus posibles valores cambia as como el nmero de los bytes de memoria necesarios. Por defecto, los datos de tipo int son con signo, mientras que los de tipo char son sin signo. El calificador signed (con signo) indica que el dato puede ser positivo o negativo. El prefijo unsigned indica que el dato puede ser slo positivo. Note que el prefijo es opcional.

124

Microcontroladores

Tipo entero (int)

Hexadecimal: el nmero empieza con 0x (o 0X). Decimal (base 10): El primer dgito no puede ser 0. En este formato, se puede introducir el signo de nmero (+ o -). Por ejemplo: 569, -25, +1500. Binario: cuando un entero empieza con 0b (o 0B) se representan como una serie de bits (0 y 1). Por ejemplo: 0B10011111

125

Microcontroladores

Tipo punto flotante (float)

El tipo punto flotante (float) se utiliza para los nmeros reales con el punto decimal. Los datos de tipo float se pueden representar de varias maneras. Un dato float es siempre consigno (signed).

126

Microcontroladores

Tipo carcter (char)

El tipo char es considerado como un entero por el compilador. No obstante, se utiliza normalmente para los datos de tipo carcter. Un dato de tipo carcter est encerrado entre comillas y codificado en un carcter ASCII.

127

Microcontroladores

VARIABLES Y CONSTANTES

Una variable es un objeto nombrado capaz de contener un dato que puede ser modificado durante la ejecucin de programa. En C, las variables tienen tipo, que significa que es necesario especificar el tipo de dato que se le asigna a una variable (int, float etc.). Las variables se almacenan en la memoria RAM y el espacio de memoria que ocupan (en bytes) depende de su tipo.

128

Microcontroladores

VARIABLES Y CONSTANTES

Una constante tiene las mismas caractersticas que una variable excepto el hecho de que su valor asignado no puede ser cambiado durante la ejecucin de programa. A diferencia de las variables, las constantes se almacenan en la memoria Flash del microcontrolador para guardar el mayor espacio posible de memoria RAM. El compilador las reconoce por el nombre y el prefijo const. En mikroC, el compilador reconoce automticamente el tipo de dato de una constante, as que no es necesario especificar el tipo adicionalmente.

129

Microcontroladores

Declaracin de variables

Cada variable debe ser declarada antes de ser utilizada en el programa. Como las variables se almacenan en la memoria RAM, es necesario reservar el espacio para ellas (uno, dos o ms bytes)

<tipo> variable1, variable2, variable3; unsigned int peso ; // Declarar una variable llamada peso peso = 20 ; // Asignar el valor 20 a la variable ;peso

130

Microcontroladores

Declaracin de constantes

las constantes deben ser declaradas antes de ser utilizadas en el programa. En mikroC, no es obligatorio especificar el tipo de constante al declararla. Por otra parte, las constantes deben ser inicializadas a la vez que se declaran. El compilador reconoce las constantes por su prefijo const utilizado en la declaracin. Dos siguientes declaraciones son equivalentes:
const int MINIMUM = -100; // Declarar constante MINIMUM const MINIMUM = -100; // Declarar constante Microcontroladores MINIMUM

131

mbito de variables y constantes

Una variable o una constante es reconocida por el compilador en base de su identificador. Un identificador tiene significado si el compilador lo puede reconocer. El mbito de una variable o una constante es el rango de programa en el que su identificador tiene significado.

132

Microcontroladores

OPERADORES

Un operador es un smbolo que denota una operacin aritmtica, lgica u otra operacin particular. Operador aritmtico: +, -, *, /, % Operador de asignacin: asignan valores a las variables

133

Microcontroladores

OPERADORES

OPERADORES DE INCREMENTO Y DECREMENTO: Las operaciones de incremento y decremento por 1 se denotan con "++" y "--". Estos caracteres pueden preceder o seguir a una variable. En primer caso (++x), la variable x ser incrementada por 1 antes de ser utilizada en la expresin. De lo contrario, la variable se utilizar en la expresin antes de ser aumentada por 1. Lo mismo se aplica a la operacin de decremento.

134

Microcontroladores

Operadores

OPERADORES RELACIONALES Los operadores relacionales se utilizan en comparaciones con el propsito de comparar dos valores. En mikroC, si una expresin es evaluada como falsa (false), el operador devuelve 0, mientras que si una oracin es evaluada como verdadera (true), devuelve 1.

135

Microcontroladores

Operadores

OPERADORES LGICOS Hay tres tipos de operaciones lgicas en el lenguaje C: Y (AND) lgico, O (OR) lgico y negacin - NO (NOT) lgico. Los operadores lgicos devuelven verdadero (1 lgico) si la expresin evaluada es distinta de cero. En caso contrario, devuelve falso (0 lgico) si la expresin evaluada equivale a cero.

136

Microcontroladores

Operadores

OPERADORES DE MANEJO DE BITS A diferencia de las operaciones lgicas que se realizan sobre los valores o expresiones, las operaciones de manejo de bits se realizan sobre los bits de un operando. Se enumeran en la siguiente tabla:

137

Microcontroladores

ESTRUCTURAS DE CONTROL

ESTRUCTURAS CONDICIONALES Las condiciones son ingredientes comunes de un programa. Las condiciones permiten ejecutar una o varias sentencias dependiendo de validez de una expresin. En otras palabras, Si se cumple la condicin (...), se debe hacer (...). De lo contrario, si la condicin no se cumple, se debe hacer (...). Los operandos condicionales if-else y switch se utilizan en las operaciones condicionales. Una sentencia condicional puede ser seguida por una sola sentencia o por un bloque de sentencias a ser ejecutadas.
Microcontroladores

138

ESTRUCTURAS DE CONTROL

OPERADOR CONDICIONAL if-else El operador if se puede utilizar solo o asociado al operador else (if-else). Ejemplo del operador if: if(expresin) operacin;

139

if(expresin) operacin1 else operacin2; Si operacin1 u operacin2 est compuesta, escriba una lista de sentencias encerradas entre llaves. Por ejemplo: if(expresin) { ... // ... // operacin1 ...} // else operacin2
Microcontroladores

Estructuras de control

Operador Switch A diferencia de la sentencia if-else que selecciona entre dos opciones en el programa, el operador switch permite elegir entre varias opciones. La sintaxis de la sentencia switch es:

140

Microcontroladores

A menudo es necesario repetir una cierta operacin un par de veces en el programa. Un conjunto de comandos que se repiten es denominado un bucle de programa. Cuntas veces se ejecutar, es decir cunto tiempo el programa se quedar en el bucle, depende de las condiciones de salir del bucle.

BUCLES

Bucle While El bucle while se parece a lo siguiente: while(expresin){ comandos ... }

while(1){ // En vez de "while(1)", se puede escribir "while(true)" ... // Expresiones encerradas entre llaves se ejecutarn ... // repetidamente (bucle infinito) } 141 Microcontroladores

BUCLES

Bucle For El bucle for se parece a lo siguiente: for(expresin_inicial; expresin_de_condicin; cambiar_expresin) { operaciones ... } La ejecucin de esta secuencia de programa es similar al bucle while, salvo que en este caso el proceso de especificar el valor inicial (inicializacin) se realice en la declaracin. La expresin_ inicial especifica la variable inicial del bucle, que ms tarde se compara con la expresin_ de_condicin antes de entrar al bucle
Microcontroladores

142

Bucles

Bucle Do-while El bucle do-while se parece a lo siguiente: do operacin while (cambiar_condicin); La expresin cambiar_condicin se ejecuta al final del bucle, que significa que operacin se ejecuta como mnimo una vez sin reparar en que si la condicin es verdadera o falsa. Si el resultado es distinto de 0 (verdadero), el procedimiento se repite.

143

Microcontroladores

Ejemplos de bucles

144

Microcontroladores

Ejemplos de bucles

145

Microcontroladores

Ejemplos de bucles

146

Microcontroladores

SENTENCIAS DE SALTO

SENTENCIA BREAK A veces es necesario detener y salir de un bucle dentro de su cuerpo. La sentencia break se puede utilizar dentro de cualquier bucle (while, for, do while) y en las sentencias switch tambin. En stas la sentencia break se utiliza para salir de las sentencias switch si la condicin case es verdadera. En este ejemplo, Esperar est parpadeando en la pantalla LCD hasta que el programa detecte un uno lgico en el pin 0 del puerto PORTA.

147

Microcontroladores

Sentencias de salto

148

Microcontroladores

Sentencias de salto

SENTENCIA CONTINUE La sentencia continue colocada dentro de un bucle se utiliza para saltar una iteracin. A diferencia de la sentencia break, el programa se queda dentro del bucle y las iteraciones continan.

149

Microcontroladores

Sentencias de salto

SENTENCIA GOTO La sentencia goto le permite hacer un salto absoluto al otro punto en el programa. Esta caracterstica se debe utilizar con precaucin ya que su ejecucin puede causar un salto incondicional sin hacer caso a todos los tipos de limitaciones de anidacin. El punto destino es identificado por una etiqueta, utilizada como un argumento para la sentencia goto. Una etiqueta consiste en un identificador vlido seguido por un colon (:).
Microcontroladores

150

Sentencias de salto

151

Microcontroladores

FUNCIONES

Una funcin es una subrutina que contiene una lista de sentencias a realizar. La idea principal es dividir un programa en varias partes utilizando estas funciones para resolver el problema inicial con ms facilidad. Una funcin se ejecuta cada vez que se llame dentro de otra funcin. En C, un programa contiene como mnimo una funcin, la funcin main(), aunque el nmero de funciones es normalmente mayor. Al utilizar funciones el cdigo se hace ms corto ya que es posible llamar una funcin tantas veces como se necesite. En C, el cdigo normalmente consiste en muchas funciones.
Microcontroladores

152

Ejemplos de funciones

Definicin de funcin de presentacin de datos en DISPLAY de 7 segmentos


char Binario_7seg(char digit); Proceso en la funcin: char Binario_7seg(char digit){ switch (digit) { case 0: return 0x3F; 0. case 1: return 0x06; 1. case 2: return 0x5B; case 3: return 0x4F; case 4: return 0x66; case 5: return 0x6D; case 6: return 0x7D; case 7: return 0x07; case 8: return 0x7F; case 9: return 0x67; }

//funcin 7 segmentos

//Definicin de la funcin.

//0x3F es el cdigo 7-segmentos del


//0x06 es el cdigo 7-segmentos del

153

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplos de funciones

Funcin BUTTON: elimina el efecto de rebote (BOUNCING) que se produce al presionar un pulsador. Instruccin:

(Button(&PORTA,4,1,0)) Parmetros: &PORTA: puerto de conexin del pulsador 4: Pin del puerto 1: Tiempo de retardo en milisegundos 0: nivel lgico cuando est presionado

154

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplos de funciones

Funcin de habilitacin de resistencias PULL-UP internas del puerto B NOT_RBPU_bit=0

155

Arquitectura de Sistemas Microprocesados

31/01/2013

Conexin DISPLAY LCD y PIC

156

Arquitectura de Sistemas Microprocesados

31/01/2013

Funciones para conexin PIC - LCD


Funcin Lcd_Init() Lcd_Out(fila, columna, texto) Lcd_Out_CP(texto) Lcd_Chr(fila, columna, carcter) Lcd_Chr_CP(carcter) Lcd_Cmd(comando) Descripcin Inicializa mdulo LCD Presenta texto en posicin indicada Presenta texto en posicin de cursor Presenta carcter en posicin indicada Presenta carcter en posicin del cursor Enva comando al LCD

157

Arquitectura de Sistemas Microprocesados

31/01/2013

Funciones para comandar PIC - LCD


Comando LCD _LCD_FIRST_ROW _LCD_SECOND_ROW _LCD_CLEAR Descripcin Mueve el cursor a la 1ra fila Mueve el cursor a la 2da fila Borra la pantalla

_LCD_RETURN_HOME _LCD_CURSOR_OFF
_LCD_UNDERLINE_ON _LCD_BLINK_CURSOR_ON _LCD_MOVE_CURSOR_LEFT _LCD_MOVE_CURSOR_RIGHT _LCD_TURN_ON _LCD_TURN_OFF _LCD_SHIFT_LEFT _LCD_SHIFT_RIGHT 158

Retorna el cursor a su origen. Apaga el cursor


Enciende el cursor de subrayado Enciende el cursor con parpadeo Mueve el cursor a la izquierda sin modificar la RAM del LCD Mueve el cursor a la derecha sin modificar la RAM del LCD Enciende el mdulo LCD Apaga el mdulo LCD Desplaza la pantalla a la izquierda sin modificar la RAM del LCD Desplaza la pantalla a la derecha Arquitectura de Sistemas 31/01/2013 modificar la RAM del LCD Microprocesados sin

Definicin de BITS para conexin LCDPIC


sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit;
159 Arquitectura de Sistemas Microprocesados 31/01/2013

Conexin LCD - PIC


LCD1
LM016L

VSS VDD VEE

RS RW E 4 5 6

1 2 3

C1
22p

U2 X1
4MHz 13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

C2
22p

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

160

Arquitectura de Sistemas Microprocesados

7 8 9 10 11 12 13 14

31/01/2013

D0 D1 D2 D3 D4 D5 D6 D7

Ejemplo: presentacin de caracteres


void main(){ Lcd_Init(); Lcd_Chr_Cp('S'); Lcd_Chr_Cp('E'); Lcd_Chr_Cp('M'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('N'); Lcd_Chr_Cp('A'); Lcd_Chr_Cp('R'); Lcd_Chr_Cp('I'); Lcd_Chr_Cp('O'); Lcd_Chr(2,1,'1'); Lcd_Chr(2,8,'2'); Lcd_Chr(2,15, '3'); // Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { } }

//Inicializa el LCD.

//fija posicin para valores

//Apaga cursor

161

Arquitectura de Sistemas Microprocesados

31/01/2013

Presentacin de cadenas de texto


Char Texto1[20]= Sistemas void main(){ Lcd_Init(); LCD. Lcd_Out_Cp(Seminario UTSAM); Lcd_Out(2,1,Texto1); // Lcd_Cmd(_LCD_CURSOR_OFF); cursor while(1) { } }
162 Arquitectura de Sistemas Microprocesados

//Inicializa el

//Apaga

31/01/2013

Presentacin de valores numricos

Funciones de conversin de valores numricos:

Librera CONVERSIONS: conversin de valor numrico a lnea de caracteres. IntToStr(Entrada entera, Salida caracteres) FloatToStr(entrada flotante, Salida carcteres)

163

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplo de presentacin de valores numricos


char Texto1[20]="Sistemas"; int Entero=123; float Decimal=3.14; void main(){ Lcd_Init(); Lcd_Out(1,1,"Entero:"); IntToStr(Entero,Texto1); Lcd_Out(1,8,Texto1); FloatToStr(Decimal,Texto1); Lcd_Out(2,1,"Decimal:"); Lcd_Out(2,10,Texto1); Lcd_Cmd(_LCD_CURSOR_OFF); while(1) { } }
164

//Inicializa el LCD.

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplo: contador con LCD

Se presiona un pulsador conectado a RA4, lo que provoca el incremento de un contador que se visualiza en el centro de la segunda lnea, si supera el conteo de 100, se reinicia el registro contador en 0. Uso de funciones:

Declaracin de variables Button Comandos para LCD

165

Arquitectura de Sistemas Microprocesados

31/01/2013

Contador en LCD

166

Arquitectura de Sistemas Microprocesados

31/01/2013

Comunicaciones con PIC

Permiten establecer transporte de datos con otros dispositivos tales como: memorias, sensores, ordenadores, e incluso otros microcontroladores. Con el fin de realizar las comunicaciones seriales, algunos microcontroladores cuentan con mdulos seriales como: IC, SPI, USART, y USB.

167

Arquitectura de Sistemas Microprocesados

31/01/2013

Comunicaciones Seriales
IC es ideal para la comunicacin con memorias seriales como la 24LC64, 24LC128, 24LC512, entre otras. SPI permite establecer comunicaciones con unidades de almacenamiento masivo como las memorias SD. USART permite hacer comunicaciones con dispositivos como sensores, mdulos de transmisin y recepcin XBee, ordenadores personales, mdulos GPS, y otros micros. USB que est incorporado en unos pocos micros, como el 18F2550, y el 18F4550, permite hacer la comunicacin con un ordenador personal por medio de un puerto USB, definido como HID o dispositivo 168 Arquitectura de Sistemas 31/01/2013 de interfaz humana. Microprocesados

Modulo serial IC

MikroC contiene una librera para este protocolo denominada I2C El protocolo IC, se caracteriza por tener una lnea de datos bidireccional y una lnea de reloj con drenador abierto. Por este motivo en estos dos pines se debe usar una resistencia de pull-up, generalmente de 10K. Este usa una condicin de inicio, un bloque de direccin para los dispositivos en la red, un bloque de datos y una condicin de fin. De igual manera usa las condiciones de repeticin de inicio y un bit de reconocimiento o acknowledge denotado como ACK.
169 Arquitectura de Sistemas Microprocesados 31/01/2013

Funciones para I2C


I2C1_Init(const unsigned long clock): inicializa los pines de comunicacin en el PIC, y ajusta la velocidad de comunicacin a la velocidad que denote el parmetro clock. unsigned short I2C1_Start(void): genera la condicin de inicio y retorna 0 si no hay ningn error en la transmisin, de otro forma retorna un valor diferente de 0. void I2C1_Repeated_Start(void): genera la repeticin de inicio. unsigned short I2C1_Is_Idle(void): se usa para identificar si el bus de datos est ocupado, y retorna 1, si el bus est disponible o retorna 0, si est ocupado. 170 Arquitectura de Sistemas 31/01/2013

Microprocesados

Funciones para I2C

unsigned short I2C1_Rd(unsigned short ack): lee un dato del bus de datos y enva la confirmacin ack por el bus. Si ack vale 1 la confirmacin es positiva y si es 0 la confirmacin es negativa o NO ACK. unsigned short I2C1_Wr(unsigned short data ): est funcin enva el dato data por el bus y retorna 0 si la transmisin fue exitosa, o algo diferente de 0 si suceden errores. void I2C1_Stop(void): Genera la condicin de final en el bus de comunicacin.

171

Arquitectura de Sistemas Microprocesados

31/01/2013

W/R en memoria serial 24LC00 en IC2

Escritur a

Lectura

172

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplo de protocolo IC2

173

Arquitectura de Sistemas Microprocesados

31/01/2013

Mdulo USART

Comunicacin serial asncrona Requiere un solo medio de transmisin para enviar informacin, y no requiere un medio para el reloj o sincronismo; lo deben asumir independientemente cada uno de los elementos, el transmisor y el receptor. Comunicacin full-duplex, para este propsito se usan dos medios de transmisin dedicados, uno solo para transmitir y uno solo para recibir. Velocidad de transmisin debe estar definida con el mismo valor en los dos dispositivos que se comunican, est por defecto en casi toda comunicacin es de 9600 bps.
174 Arquitectura de Sistemas Microprocesados 31/01/2013

Trama de datos USART

La comunicacin sncrona cuenta con las siguientes caractersticas: un bit de inicio o de start, que siempre es un 0 lgico, 8 o 9 bits de datos para el caso puntual de los PIC, y 1, 1.5 o 2 bits de fin o stop.

175

Arquitectura de Sistemas Microprocesados

31/01/2013

Protocolo RS-232

Este protocolo se conoce como RS232 Los niveles de tensin elctrica son diferentes al microcontrolador. El protocolo RS232, representa el valor de un 0 lgico con una tensin de +12 voltios, y el valor de un 1 lgico con -12 voltios. Se usa un conector DB9, que tiene 9 pines.

176

Arquitectura de Sistemas Microprocesados

31/01/2013

PINOUT de conector DB9

177

Arquitectura de Sistemas Microprocesados

31/01/2013

CI MAX-232

178

Arquitectura de Sistemas Microprocesados

31/01/2013

Librera UART en MIKROC

UART1_Init(const unsigned long baud_rate): Est funcin inicializa el mdulo USART, y establece la velocidad de comunicacin definida en el parmetro: baud_rate. char UART1_Data_Ready(): determina si hay un dato listo para ser ledo, en el bfer de llegada del mdulo, si la funcin retorna 1 el dato puede ser ledo, de lo contrario no hay datos nuevos en el bfer. char UART1_Tx_Idle(): establece si el bfer de transmisin se encuentra ocupado enviando un dato, para esto retorna 1 si el bfer est ocupado, o 0 si el mdulo est disponible para enviar un nuevo dato. char UART1_Read(): retorna el valor del bfer de entrada, es decir que sirve para leer un dato de entrada.
179 Arquitectura de Sistemas Microprocesados 31/01/2013

Librera UART en MIKROC

UART1_Read_Text(char *Output, char *Delimiter, char Attempts): lee una cadena de caracteres y la guarda en el apuntador Output, el apuntador Delimiter, es un apuntador a una cadena de caracteres que contiene el texto definido como fin de la cadena de texto de entrada, el parmetro Attempts, define la longitud de la cadena de caracteres del delimitador de fin de cadena Delimiter.

180

Arquitectura de Sistemas Microprocesados

31/01/2013

Librera UART en MIKROC

UART1_Write(char _data): transmite el dato _data ingresado en el parmetro de entrada, por la USART. UART1_Write_Text(char * UART_text): Transmite una cadena de texto finalizada con el carcter nulo o 0. Est cadena de texto es entregada por medio del parmetro UART_text.

181

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplo comunicacin mdulo UART

182

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 9: aplicaciones USART

Objetivo: Definir los modos de funcionamiento de mdulo UART de microcontroladores PIC, mediante configuracin de parmetros de comunicacin con PC para diseo de aplicaciones bsicas. Actividad: Testeo de BITS en puerto B y presentacin de estado en monitor de PC.

183

Arquitectura de Sistemas Microprocesados

31/01/2013

Lectura de BITS y presentacin en PC


C6
22p

J1 U1 X1
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 5 9 4 8 3 7 2 6 1 3 C1T1OUT R1IN T2OUT R2IN VS+ VSC2+ 4 C214 13 7 8 2 6 1u TXD

C7
22p

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

DSW1
8 7 6 5
OFF ON

1 2 3 4

+
1 C1+ 11 12 10 9 T1IN R1OUT T2IN R2OUT

C1
1u

U2

CONN-D9M RXD

DIPSW_4

+5V
RTS

C3

CTS

C2
1u

MAX232 5

C5 C4
1u 1u

184

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad grupal

Los estudiantes disearan la siguiente aplicacin basada en MIKROC que responda a las siguientes necesidades de datos enviados desde la PC Al enviar 1: activa LED1 Al enviar 2: activa LED2 Al enviar 3: activa LED1 y LED2 Al enviar 4: activa LED1 y despus de 3 segundos LED2 Al enviar 0: desactiva cualquiera de los LEDS activos

185

Arquitectura de Sistemas Microprocesados

31/01/2013

Mdulo USB

186

Arquitectura de Sistemas Microprocesados

31/01/2013

Mdulo USB

Disponible en PIC como 18F2550 y 18F4550, destinan pines exclusivos para esta comunicacin. La conexin USB puede entregar una alimentacin de 5 voltios con una corriente mxima de 500mA, esto significa que si el desarrollo no supera este consumo, no es necesario implementar una fuente de poder externa. Para la simulacin es necesario activar puerto virtual de PROTEUS ISIS, en la siguiente direccin:

C:/labcenter Electronics/Proteus 7 Professional/USB Drivers/installer.exe

DRIVERS vlidos para sistemas operativos de 32 BITS. 187 Arquitectura de Sistemas 31/01/2013
Microprocesados

Esquema de simulacin

188

Arquitectura de Sistemas Microprocesados

31/01/2013

Funciones de librera USB en MIKROC

Hid_Enable(unsigned *readbuff, unsigned *writebuff);

Configura el mdulo USB, y establece la comunicacin con la computadora. Incluye los parmetros de entrada readbuff y writebuff, que son apuntadores a los arreglos de memoria que guardan y transmiten la informacin por el puerto USB. Retorna la cantidad de datos listos para ser ledos del puerto USB.

unsigned char Hid_Read(void);

unsigned short Hid_Write(unsigned unsigned short len);

*writebuff,

Escribe en el puerto USB, la cantidad de bytes definidos en el parmetro len, que estn consignados en el apuntador writebuff. Deshabilita el uso del puerto USB.
Arquitectura de Sistemas Microprocesados 31/01/2013

void Hid_Disable(void);

189

Actividad en clase: Simulacin PIC - USB

Realizar actividad por estudiante establecida en documento PDF respecto a comunicacin USB entre PIC y puerto virtual.

190

Arquitectura de Sistemas Microprocesados

31/01/2013

Modulacin por ancho de pulso (PWM)

La Modulacin por Ancho de Pulso (PWM = Pulse Width Modulation) es una tcnica para simular una salida analgica con una salida digital. El control digital se usa para crear una onda cuadrada, una seal que conmuta constantemente entre encendido y apagado. Este patrn de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios (siempre encendido) simplemente variando la proporcin de tiempo entre encendido y apagado. A la duracin del tiempo de encendido (ON) se le llama Ancho de Pulso (pulse width). Para variar el valor analgico cambiamos, o modulamos, ese ancho de pulso.
191 Arquitectura de Sistemas Microprocesados 31/01/2013

PWM

192

Arquitectura de Sistemas Microprocesados

31/01/2013

PWM en PIC

En este modo, el pin CCP1 produce una salida PWM de hasta 10 bits de resolucin, se tienen hasta 1024 opciones de configuracin del ciclo de trabajo. Este pin tiene que configurarse como salida por medio del registro TRISB. Se caracteriza por una base de tiempo (perodo) y un tiempo durante el cual la salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del perodo.

193

Arquitectura de Sistemas Microprocesados

31/01/2013

PWM en PIC

El perodo se especifica escribiendo en el registro PR2 y se puede calcular con la siguiente frmula:

Cuando TMR2 es igual a PR2, se producen los tres siguientes eventos en el prximo ciclo de incremento:

194

El registro TMR2 es borrado. El pin CCP1 se pone en 1 (excepto si el ciclo de trabajo es 0%). El ciclo de trabajo PWM es movido desde el registro CCPR1L al registro CCPR1H.
Arquitectura de Sistemas Microprocesados 31/01/2013

Ciclo de trabajo PWM

El ciclo de trabajo se especifica escribiendo en el registro CCPR1L (los 8 MSbs) y en los bits CCP1CON<5:4> (los 2 LSbs). Este valor de 10 bits se representa como: CPR1L: CCP1CON<5:4>. La siguiente frmula permite el clculo del ciclo de trabajo:

En los bits CCPR1L: CCP1CON<5:4>se puede escribir en cualquier momento, pero el ciclo de trabajo no es movido hacia CCPR1H hasta que se produce una coincidencia entre TMR2 y PR2 (es decir, se completa el perodo). En el modo PWM, el registro CCPR1H es de 195 Arquitectura de Sistemas 31/01/2013 solo lectura. Microprocesados

Ciclo de trabajo PWM

La mxima resolucin PWM (bits) para una determinada frecuencia PWM est dada por la siguiente frmula:

196

Arquitectura de Sistemas Microprocesados

31/01/2013

Funciones de mikroC para PWM


PWM1_Init(frecuencia): Inicializa el mdulo PWM con un ciclo de trabajo igual a 0. La frecuencia PWM se expresa en Hz (tomar en cuenta las frecuencias permitidas de acuerdo a la frecuencia del oscilador FOSC). PWM1_Set_Duty(ciclo de trabajo): Establece el ciclo de trabajo desde 0 hasta 255 (resolucin de 8 bits). Donde 0 es 0%, 127 es 50% y 255 es 100%. Se pueden calcular otros valores del ciclo de trabajo con la frmula (Porcentaje*255)/100. PWM1_Start( ): Inicia la generacin de la seal PWM. 197 PWM1_Stop( ): Detiene la generacin de la seal Arquitectura de Sistemas 31/01/2013

Microprocesados

Ejemplo PWM

Con una frecuencia de oscilador (FOSC) de 4MHz se tiene un perodo (TOSC) de 0,25 us; si el prescaler del Timer2 tiene un valor de 1, entonces se pueden calcular los perodos mnimo y mximo PWM y las frecuencias mxima y mnima permitidas, respectivamente. El perodo mnimo se obtiene cuando el registro PR2 tiene un valor de 0, por lo tanto: TPWMmn=(0+1)x4x0,25x1=1 us Y la frecuencia mxima ser: fPWMmx=1MHz El perodo mximo se obtiene cuando el registro PR2 tiene un valor de 255: TPWMmx=(255+1)x4x0,25x1=256 us Y la frecuencia mnima ser:fPWMmn=3.906Hz En el siguiente ejemplo se trabaja con una frecuencia PWM de 5kHz.
198 Arquitectura de Sistemas Microprocesados 31/01/2013

Esquema PWM
LCD1
LM016L

VSS VDD VEE

RS RW E 4 5 6

+5V
1 2 3 7 8 9 10 11 12 13 14 RB1 RB2 RB0 RB3
(+)

D0 D1 D2 D3 D4 D5 D6 D7

12V

RB[4..1]

D1
1N4007

MOTOR 12V 10Amax

U3
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 RB0 RB1 RB2 RB3

R2
620

U2
1 6 5 2 4

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

Q1 R3
10 IRFZ44N

R1
10k

4N25

R4
91k

VELOCIDAD

199

Arquitectura de Sistemas Microprocesados

31/01/2013

Aplicaciones PWM: movimiento rotacional en robot mvil


Movimiento de ruedas: velocidad mediante PWM Direccin: control diferencial Sentido: DRIVERS, puentes H Lgica de programacin define operacin de 200 recorrido.

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 12: Mdulo ADC

Objetivos

Definir las etapas de conversin analgica a digital mediante la determinacin del proceso de adquisicin de datos en relacin a registros afectados lo que permitir la interpretacin de instrucciones en Lenguaje C para este procedimiento. Cmo percibe las condiciones de su entorno un sistema microcontrolado? Cmo codifica parmetros no elctricos un microcontrolador?

Reflexin:

Todo lo que se puede medir se puede controlar.


201 Arquitectura de Sistemas Microprocesados 31/01/2013

Mdulo Convertidor Analgico Digital (ADC)

202

Arquitectura de Sistemas Microprocesados

31/01/2013

Mdulo ADC en PICs

La familia de microcontroladores PIC16F87X, disponen de un mdulo de conversin Analgico/Digital que tiene cinco entradas para los dispositivos de 28 pines y ocho para los otros dispositivos de la familia. A travs de la entrada analgica se aplica la seal analgica a un condensador de captura y retencin (sample and hold) que despus se introduce en el convertidor. El convertidor A/D que es de aproximaciones sucesiva da como resultado una palabra de 10 bits. Permite al microcontrolador sensar al entorno.
203 Arquitectura de Sistemas Microprocesados 31/01/2013

Muestreo y retencin (SAMPLE & HOLD)

Tomar una muestra de la seal: Es como un interruptor electrnico cuya nica funcin es dejar pasar la seal anloga a convertir, este paso ser por un pequeo instante de tiempo, solo lo necesario para que el retenedor quede cargado al mismo nivel de voltaje de la seal de entrada. Cuantificar y Codificar: Una vez que la seal esta lista en el retenedor, el modulo de control SAR (Successive-approximation-register), inicia el proceso de cuantificacin y codificacin directa.

204

Arquitectura de Sistemas Microprocesados

31/01/2013

Muestreo y retencin (SAMPLE & HOLD)

205

Arquitectura de Sistemas Microprocesados

31/01/2013

Mdulo ADC en PICs

Tomar una muestra de una seal anloga en un instante de tiempo, cuantificarla y darle un cdigo digital que representa la cantidad de niveles a los cuales pertenece la muestra.

206

Arquitectura de Sistemas Microprocesados

31/01/2013

Valores mximos y mnimos de ADC

El mdulo del convertidor A/D puede seleccionar como tensin de referencia la interna, es decir entre VDD y masa o bien una externa que se introduzca entre RA3/AN3/ VREF+ y RA2/AN2/VREF-. La mxima tensin aplicada a la patilla VREF+ (RA3/AN3) podr ser de VDD+0,3V y la mnima de VDD- 2,5V. En cuanto a la tensin VREF(RA2/AN2) la mnima tensin ser VSS-0,3V y la mxima VREF+ - 2V, as por ejemplo, si la tensin de alimentacin es de 5V, la tensin en RA3/AN3 no podr exceder de 5V. Por lo que la mxima tensin en la VREF- ser de 3V. Siempre se ha de cumplir que VREF+ - VREF 2V.
207 Arquitectura de Sistemas Microprocesados 31/01/2013

Registros en ADC

El mdulo conversor A/D tiene asociados cuatro registros:


ADRESH : Parte alta del resultado de la conversin ADRESL : Parte baja del resultado de la conversin ADCON0: Registro de Control 0 ADCON1, Registro de Control 1

Los pines del PORTA pueden configurarse como entradas analgicas (RA, tambin puede ser entrada de tensin de referencia) o como E/S digital. Los registros ADRESH: ADRESL contienen los 10 bits resultado de la conversin A/D. Cuando se completa la conversin A/D, el resultado se guarda en los registros ADRESH:ADRESL y se pone a cero el bit GO/DONE y el flag de fin de conversin ADIF (PIR1<6>) se pone a 1.
208 Arquitectura de Sistemas Microprocesados 31/01/2013

Proceso mdulo ADC


1.
1.

Configurar el mdulo conversor A/D:


Configurar los pines que actan como entradas analgicas, las seales que harn de tensin de referencia la que trabajarn como E/S digitales (ADDCON1) Seleccionar el canal de entrada A/D (ADCON0). Seleccionar la fuente de la seal de reloj para la conversin A/D (ADCON0). Activar el mdulo de conversin A/D (ADCON0)

2. 3.

4.

2.
1. 2. 3.

Activar si, se desea, la interrupcin del mdulo conversor A/D


Poner a cero el bit ADIF Poner a uno el bit ADIE Poner a uno los bits habilitadores GIE y PEIE

3.
209

Esperar el tiempo requerido para la adquisicin


Arquitectura de Sistemas Microprocesados 31/01/2013

Proceso mdulo ADC


1.
1.

Inicio de la conversin
Poner a 1 el bit GO/#DONE (ADCON0)

2.
1.

Tiempo de espera para terminar la conversin A/D que puede detectarse por:
Exploracin de bit GO/#DONE , que al finalizar la conversin toma el valor "0" Esperar que se produzca una interrupcin si se ha programado al finalizar la conversin.

2.

210

Arquitectura de Sistemas Microprocesados

31/01/2013

Librera ADC en MIKROC


unsigned int ADC_Read(unsigned short channel); Inicializa el mdulo A/D para operar con el oscilador interno RC. Retorna un nmero de 10 bits como resultado de la conversin.

211

Arquitectura de Sistemas Microprocesados

31/01/2013

Ejemplo: Lectura de voltaje.


LCD1

Se mide el voltaje de una fuente de DC y se presenta su valor en LCD

LM016L

VSS VDD VEE

RS RW E 4 5 6

VT(15V max)

1 2 3

BAT1
3.5V

R2
20k

U2
13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30

R1
10k

RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/T0CKI/C1OUT RA5/AN4/SS/C2OUT RC0/T1OSO/T1CKI RE0/AN5/RD RC1/T1OSI/CCP2 RE1/AN6/WR RC2/CCP1 RE2/AN7/CS RC3/SCK/SCL RC4/SDI/SDA MCLR/Vpp/THV RC5/SDO RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 PIC16F877A

212

Arquitectura de Sistemas Microprocesados

31/01/2013

7 8 9 10 11 12 13 14

D0 D1 D2 D3 D4 D5 D6 D7

Actividad 13: Interconexin con sensores

Objetivo: analizar el funcionamiento de sensores mediante la comunicacin con PIC en lenguaje lo que permitir el desarrollo de aplicaciones de control bsicas

Reflexin: Qu variables fsicas se pueden medir? Cmo se pueden medir estas variables? Cmo se comunican con microcontrolador?

213

Arquitectura de Sistemas Microprocesados

31/01/2013

Entorno de desarrollo con sensores

214

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor de temperatura LM35

Es un dispositivo activo de 3 terminales que permite adquirir la temperatura ambiente en rangos de -55 a 150 Es de fcil implementacin dado que solo cuenta con dos terminales de polarizacin, y una salida de voltaje directamente proporcional a la temperatura. Este sensor puede ser polarizado de 4 a 30 voltios y tiene una salida de 10m voltios por cada grado Celsius.
215 Arquitectura de Sistemas Microprocesados 31/01/2013

Sensor de temperatura

Para realizar la lectura del voltaje de salida del sensor se implementa en el microcontrolador el mdulo ADC. La mxima salida del sensor es 1,5 voltios, cuando la temperatura es 150 grados Celsius. Por esto es importante cambiar el valor de referencia positiva del convertidor anlogo digital, con el fin de mejorar la resolucin de la medida de voltaje. Para el ejemplo de este captulo se configurar el voltaje de referencia positivo del ADC, en 2,5 voltios.

216

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor de temperatura

Cambiando la referencia positiva a 2,5 voltios el convertidor entregar un resultado binario de 1023 cuando el voltaje a convertir es de 2,5 voltios. Para el caso de este sensor, se ver definido por las siguientes relaciones: Donde Radc es el resultado binario de la conversin AD. De est ecuacin se puede deducir que el voltaje Vadc, ledo por el 217 convertidor AD, es:

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor de temperatura

Trabajando con la relacin del sensor que es: 10m voltios por cada grado Celsius, se puede plantear la siguiente ecuacin:

Donde n es la temperatura en grados Celsius, que est registrando el sensor, de est ecuacin se puede deducir que la temperatura n es:
Obtenemos la ecuacin:
218 Arquitectura de Sistemas Microprocesados 31/01/2013

Simulacin de sensor de temperatura

219

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 14: Sensores de distancia

Objetivo: Caracterizar el funcionamiento de sensores de distancia mediante el tratamiento de algoritmos para deteccin de mediciones provenientes de estos sensores para su futura aplicacin en medicin de distancias

220

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensores de distancia: Infrarrojos

Permiten medir una longitud desde el punto de ubicacin del sensor hasta un obstculo puesto en un punto dentro del rango de trabajo del sensor. Con un rango de 3 centmetros a 3.3 metros, es una atraccin para cualquier elemento robtico y proyectos de automatizacin. Sensor GP2D12, este dispositivo usa un rayo de luz infrarroja y su reflejo para determinar la longitud.

221

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor Infrarrojo GP2D12

Descripcin fsica y PINOUT

222

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor Infrarrojo GP2D12


Este tipo de sensores cuentan con un comportamiento no lineal, esto quiere decir que la salida no obedece a una funcin de transferencia lineal. Se realiza una interpolacin con una cantidad finita de puntos conocidos de la funcin. 223

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor Infrarrojo GP2D12


Ejemplo de medicin: Tenemos y es distancia, x voltaje del sensor. Escogemos dos puntos donde la funcin se aproxime a la escogida. Resolvemos el sistema con los valores de las constantes: A = 34,76546392 B = -4,793814433
224 Arquitectura de Sistemas Microprocesados 31/01/2013

Sensor Infrarrojo GP2D12

Parametrizar la funcin: x representa el voltaje de salida del sensor que no supera 2,5 voltios, la referencia del convertidor AD, se puede ajustar Remplazando 225 Vad: x por
Arquitectura de Sistemas Microprocesados 31/01/2013

Sensor Infrarrojo GP2D12

226

Arquitectura de Sistemas Microprocesados

31/01/2013

El Sensor Ultrasnico de Distancia

227

Arquitectura de Sistemas Microprocesados

31/01/2013

Sensor Ultrasnico de Distancia PING

El sensor enva un breve silbido con su altavoz ultrasnico y mide el tiempo de regreso del eco a su micrfono ultrasnico. El PIC empieza envindole un pulso para iniciar la medicin. Luego, el sensor espera lo suficiente para que el programa del PIC inicie un comando de lectura de Pulso. Entonces, al mismo tiempo que silba un tono de 40 kHz, le enva una seal alta al PIC. Cuando detecta el eco con su micrfono ultrasnico, cambia la seal alta de regreso a seal baja.
228 Arquitectura de Sistemas Microprocesados 31/01/2013

Sensor Ultrasnico de Distancia PING

229

Arquitectura de Sistemas Microprocesados

31/01/2013

Actividad 16: Actuadores y potencia

Objetivos:

Describir funcionamiento de dispositivos de potencia, mediante conexin de componentes elctricos de carga a microcontrolador.

Los actuadores son dispositivos elctricos o electrnicos que permiten crear un cambio fsico sobre una variable. Est pueden ser temperatura, velocidad, presin, luminosidad, humedad, posicin angular o lineal, entre otras. Los actuadores DC, son aquellos como motores, servomotores, lmparas incandescentes, solenoides, relevadores, entre otros.
230 Arquitectura de Sistemas Microprocesados 31/01/2013

Relevadores

Son dispositivos electromecnicos, que tienen un electroimn con el cual se cierra o se abre un circuito elctrico por medio de uno o varios contactos. Los relevadores son ideales para aislar los circuitos de potencia con la etapa de control electrnico. Bajo rendimiento, dado que no pueden hacer cambios de estado veloces, y con el uso constante los contactos elctricos se deterioran con el tiempo.
231 Arquitectura de Sistemas Microprocesados 31/01/2013

Uso de relevadores con uC PIC

232

Arquitectura de Sistemas Microprocesados

31/01/2013

Uso de relevadores con uC PIC

Opto acopladores:

233

Arquitectura de Sistemas Microprocesados

31/01/2013

Motores DC

Permiten movimiento a travs de cargas inductivas. Podemos controlar velocidad.

Velocidad mediante PWM

234

Arquitectura de Sistemas Microprocesados

31/01/2013

Conexin PIC a motor DC

235

Arquitectura de Sistemas Microprocesados

31/01/2013

Motores DC

Sentido de giro:

Mediante puente H

236

Arquitectura de Sistemas Microprocesados

31/01/2013

Motores paso a paso

Se componen de varias bobinas lo que permite un control en el giro correspondiente al nmero de paso de activacin Se requiere activar un secuencia en las entradas de las bobinas. Control desde 1,8 o menos.

237

Arquitectura de Sistemas Microprocesados

31/01/2013

Tipos de motores PAP

238

Arquitectura de Sistemas Microprocesados

31/01/2013

Secuencias en motores PAP (STEPPER)

239

Arquitectura de Sistemas Microprocesados

31/01/2013

Conexin PIC a motor PAP

240

Arquitectura de Sistemas Microprocesados

31/01/2013

Conexin PIC a motor PAP

241

Arquitectura de Sistemas Microprocesados

31/01/2013

Motores Servo

Son sistemas integrados que tienen un control de posicin angular, y un sistema mecnico de piones para ofrecer mayor fuerza pero menor velocidad. Un servomotor tiene incorporado un control de posicin angular, que puede ser gobernado por medio de una seal PWM, cuentan con un terminal de tres pines para la alimentacin, la referencia y la seal de control PWM.

242

Arquitectura de Sistemas Microprocesados

31/01/2013

Conexin PIC a servomotor

243

Arquitectura de Sistemas Microprocesados

31/01/2013

PROGRAMACIN GRFICA DE MICROCONTROLADORES

244

Arquitectura de Sistemas Microprocesados

31/01/2013

Para qu sirven los diagramas de flujo

El diagrama de flujo es la representacin grfica del algoritmo o proceso. Se utiliza en disciplinas como la programacin, la economa, los procesos industriales y la psicologa cognitiva.
245 Microcontroladores: Ing. Vctor Medina G

Definicin

Es una representacin grfica que desglosa un proceso en cualquier tipo de actividad a desarrollarse tanto en empresas industriales o de servicios y en sus departamentos, secciones u reas de su estructura organizativa. Se trata de una muy til herramienta para poder entender correctamente las diferentes fases de cualquier proceso y su funcionamiento, por tanto, permite comprenderlo y estudiarlo para tratar de mejorar sus procedimientos.
246 Microcontroladores: Ing. Vctor Medina G

Ventajas

Ventajas de los Diagramas de Flujo

247

Favorecen la comprensin del proceso a travs de mostrarlo como un dibujo. Un buen diagrama de flujo remplaza varias pginas de texto. Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re procesos, los conflictos de autoridad, las responsabilidades, los cuellos Medina G Microcontroladores: Ing. Vctor de

ESTRUCTURA DE PROGRAMA EN MODO GRFICO

Permite programar microcontroladores mediante diagramas de flujo, que se traducen en cdigo C o ASSEMBLER

248

Microcontroladores: Ing. Vctor Medina G

Plan de trabajo modo grfico

249

Arquitectura de Sistemas Microprocesados

31/01/2013

Plan de trabajo modo grfico

250

Diseo del programa fuente. Escogiendo y arrastrando los diferentes iconos de comandos disponibles, vamos dibujando el organigrama o diagrama de flujo de nuestra aplicacin. Podemos ajustar los diferentes parmetros y propiedades asociados a ellos. Diseo del sistema. Dispone de una gran variedad de perifricos tpicos como leds, interruptores, pantallas LCD, etc. Simulacin del programa. Podemos ejecutar el programa paso a paso, icono a icono, analizar los resultados obtenidos sobre los componentes del sistema, editar y/o visualizar las variables del programa o ejecutar la simulacin en tiempo real. Descargar y grabar el microcontrolador. Con un nico botn podemos compilar, ensamblar y grabar el programa ejecutable obtenido sobre la memoria fsica del microcontrolador.
Arquitectura de Sistemas Microprocesados 31/01/2013

Actividad 19: ENTORNO DE TRABAJO FLOWCODE

251

Microcontroladores: Ing. Vctor Medina G

Herramientas en FLOWCODE

Herramientas de ingreso

Permite ejecutar tareas relacionadas con la adquisicin de datos procedentes de los Puertos del controlador. En el campo Variable indicamos en qu variable se va a guardar el valor ledo desde el Puerto de entrada. Podremos crear, editar y borrar variables de 8 bits, de 16, de cadenas ASCII o strings y variables para almacenar nmeros en coma flotante. La lectura de un Puerto de entrada puede hacerse a nivel de un bit nico o a nivel del puerto completo. Lectura enmascarada, es decir qu bits de ese puerto son los que nos interesa leer. En el ejemplo se leen los bits 0,2 y 3 del Puerto A.
252 Arquitectura de Sistemas Microprocesados 31/01/2013

Herramienta de salida
Permite ejecutar operaciones relacionadas con los Puertos de salida del controlador. En Mostrar Nombre podemos aadir el comentario deseado. En el campo Variable o Valor introducimos directamente el valor de salida o bien el nombre de la variable que contiene el valor que deseamos sacar. Mediante el campo Puerto se selecciona el puerto de salida, la escritura se puede realizar a nivel de bit nico o a nivel de Puerto completo. Arquitectura de Sistemas 253

Microprocesados

31/01/2013

Herramienta de temporizacin

Permite realizar todo tipo de temporizaciones basadas en la frecuencia de trabajo del sistema que hemos seleccionado mediante las opciones del proyecto. En el campo Mostrar Nombre, podemos incluir un comentario. En el campo Tiempo de Demora o Variable introducimos el valor a temporizar. Este valor se puede indicar directamente, o bien indicando el nombre de la variable que lo contiene.
254 Arquitectura de Sistemas Microprocesados 31/01/2013

Herramienta de decisin

255

Se trata de la clsica toma de decisiones. Se realiza una determinada evaluacin y, en funcin del resultado, el flujo del programa va por un camino o por otro. En el campo En Caso de Que se establece la condicin. Esto es equivalente a evaluar si la lnea RA0 de la puerta A est a nivel lgico 1 o no. En caso afirmativo, el curso de la ejecucin se desva por la derecha. En caso contrario la ejecucin contina su curso. Podemos activar (o no) el campo Intercambiar Si y No. En este caso el desvo del curso de la ejecucin se produce si NO se da la condicin establecida.

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta de decisin

Las condiciones pueden estar formadas por nmeros y/o variables y uno de los siguientes operadores:

256

( ) Parntesis =, <> Igual a, diferente a. +, -, *, /, MOD Adicin, sustraccin, multiplicacin, divisin y mdulo. <, <=, >, >= Menor que, menor que o igual a, mayor que, mayor que o igual a. >>, << Desplazamiento a la derecha, desplazamiento a la izquierda. NOT, AND, OR, XOR Funciones lgicas: NOT, AND, OR u OR exclusiva
Arquitectura de Sistemas Microprocesados 31/01/2013

Herramientas de decisin mltiple


En este caso se pueden evaluar hasta once posibles condiciones. Resultan especialmente tiles a la hora de personalizar el programa para que reaccione de formas diferentes basndose en una variable de entrada. En el campo Expresin se indica el nombre de la variable cuyo contenido se desea evaluar, Entradas en el ejemplo. Los campos Caso, cuando se activan, permiten determinar con qu valores hay que comparar el contenido de la variable Entradas: 1, 4, 2 o 7. Cuando coincide uno de ellos, el flujo de ejecucin del programa toma un camino u otro. Si noArquitectura de Sistemas 31/01/2013 coincide con ninguno, la 257 ejecucin sigue su curso. Microprocesados

Herramientas de decisin mltiple

258

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta punto de conexin

Permite establecer el punto de conexin de destino al que debe dirigirse el flujo del programa. En el campo Ir a Punto de Conexin asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta Bucle.

259

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta ir a punto de conexin

Esta herramienta se emplea junto con la anterior. Permite establecer el punto de conexin de destino al que debe dirigirse el flujo del programa. En el campo Ir a Punto de Conexin asignamos un nombre o etiqueta del punto de destino. En el ejemplo hemos asignado la etiqueta Bucle

260

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta punto de conexin

261

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta Bucle

Esta herramienta de Bucle se emplea para repetir una tarea, bien de forma incondicional o indefinida, o bien hasta que se cumplan las condiciones indicadas. Esta herramienta siempre se muestra como dos iconos, uno de inicio y otro de final, donde se alojan los comandos de programa que forman el bucle.

262

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta Bucle

Los comandos encerrados dentro de un bucle se pueden ejecutar mientras se produzca una condicin (Bucle Mientras) o hasta que se produzca esa condicin (Bucle Hasta). En el momento en que se cumpla esta condicin, el bucle finaliza y el flujo del programa reanuda su curso. Las condiciones se pueden evaluar y comprobar si se cumplen, al Principio del bucle o al Final del mismo. Los comandos o instrucciones que componen un bucle tambin se pueden ejecutar un nmero determinado de veces. Para ello, activamos e indicamos en el campo Recuento de bucle, el nmero de veces deseado (entre 1 y 255).
263 Arquitectura de Sistemas Microprocesados 31/01/2013

Herramienta MACRO

Una macro es una funcin o una subrutina, que est compuesta de cualquiera de los comandos o iconos disponibles y/o tambin de otras macros. En el campo Mostrar Nombre podemos escribir un comentario. En el campo Macro podemos ver una lista con todas las macros disponibles. Seleccionamos la que necesitemos en un momento dado. Mediante el botn Crear Nuevo Macro accedemos a una ventana que nos permite definir una nueva Macro. Con el botn OK&Editar Macro podemos editar una Macro. Es decir, describir los componentes que debe ejecutar para realizar una determinada tarea.
264 Arquitectura de Sistemas Microprocesados 31/01/2013

Herramienta MACRO de componentes

FlowCode incluye una serie de componentes o perifricos con los que podemos construir, para su simulacin, el circuito elctrico de nuestra aplicacin. Estos componentes se colocan en el Panel de Montaje, en donde se establecen sus propiedades y conexiones con el controlador. Cada componente tiene asociadas, segn sus caractersticas, un nmero determinado de funciones o Macros para su control. Cuando empleamos la herramienta Macro de Componentes y hacemos doble clic sobre ella, aparece una ventana de propiedades. En ella disponemos de un listado con todos los componentes que hubiera en ese momento en el panel de montaje y accedemos a todas las funciones asociadas a los mismos. En la figura, vemos que hay dos componentes: un interruptor SWITCH(0) y un led LED(0). Al seleccionar por ejemplo, el SWITCH(0), a la derecha, en la ventana Macro, aparecen las funciones a l asociadas. Hay tres:

LeerEstado. Lee el estado de la lnea de entrada a la que est conectado el SWITCH(0) y los deposita en la variable de retorno que se indica en el campo Valor de Retorno(BYTE). 2. EsperarHastaAlto. Espera a que la lnea de entrada a la que est conectado el SWITCH(0) se ponga a nivel 1. En este momento finaliza la Macro o funcin, que no retorna ningn valor. 3. EsperarHastaBajo. Espera a que la lnea de entrada a la que est conectado el SWITCH(0) se ponga a nivel 0. En este momento finaliza la Macro o funcin, que no retorna ningn valor.
Arquitectura de Sistemas Microprocesados 31/01/2013

265

Herramienta MACRO de componentes

266

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta de clculo
Permite insertar operaciones lgico/aritmticas en nuestros programas. En el campo Mostrar Nombre podemos escribir el comentario que deseemos. En el campo Clculos describimos los clculos a realizar. El botn Variables nos abre una ventana donde podemos crear, editar, borrar y seleccionar distintas variables. Con el botn Funciones accedemos a todas las funciones lgico/ 267 Arquitectura de Sistemas Microprocesados aritmticas disponibles.

31/01/2013

Herramienta secuencia

La herramienta de Manipulacin de Secuencia permite manipular y operar con cadenas de caracteres ASCII. En el campo Funciones de editamos las operaciones a realizar con una o varias cadenas de caracteres. El botn Variables nos permite crear, borrar, editar o usar variables de secuencia o cadenas. El botn Funciones nos presenta una lista con todas las funciones disponibles para el manejo de secuencias o cadenas de caracteres.
268 Arquitectura de Sistemas Microprocesados 31/01/2013

Herramienta interrupcin
FlowCode 4 tambin soporta la activacin/desactivacin de algunas de las interrupciones ms relevantes del microcontrolador seleccionado. Aunque no estn disponibles todas las que tiene el controlador, si estn las ms representativas. Con el botn Propiedades se selecciona el evento deseado para esa interrupcin. Por ejemplo, en el caso de la interrupcin externa INT, podemos seleccionar el flanco ascendente o descendente. En el campo Llamar al Macro se indica qu Macro o funcin se debe ejecutar cada vez que se produzca la interrupcin. Con el botn Crear Nuevo Macro creamos una nueva funcin. Con el botn OK & Editar Macro editamos el contenido de la Macro. Es decir, dibujamos el organigrama de tareas que esa Macro debe ejecutar. El funcionamiento es muy similar al empleado en la herramienta Arquitectura de Sistemas Macro. de componente 31/01/2013 269

Microprocesados

Herramienta interrupcin

270

Arquitectura de Sistemas Microprocesados

31/01/2013

Herramienta cdigo C

Puede haber casos en que el lenguaje como tal no pueda realizar ciertas tareas. Por ello, este tipo de lenguajes siempre tienen una puerta abierta que nos permita insertar nuestro propio cdigo fuente en C o en ensamblador, para resolver aquellas tareas que FlowCode no pueda realizar directamente. Disponemos as de la herramienta Cdigo C.

271

Arquitectura de Sistemas Microprocesados

31/01/2013

Macros de Perifricos

Comunes:

Led. Coloca un led en el panel de montaje. LEDarray. Coloca una barra de hasta ocho diodos leds. SWITCHbank. Coloca un banco de hasta ocho interruptores. SWITCH. Interruptor sencillo. ADC. Coloca un potencimetro para emular una entrada analgica. LCDDisplay. Inserta una pantalla LCD alfanumrica.
Arquitectura de Sistemas Microprocesados 31/01/2013

272

Macros de Perifricos

Entradas: KeyPad. Teclado matricial de hasta 4 x 4. SWITCHbank. Coloca un banco de hasta ocho interruptores. SWITCH. Interruptor sencillo ADC. Coloca un potencimetro para emular una entrada analgica.
273 Arquitectura de Sistemas Microprocesados 31/01/2013

Macros de Perifricos

Salidas:

274

Led7seg. Coloca el clsico display de 7 segmentos con punto decimal. Led. Coloca un led en el panel de montaje. LEDarray. Coloca una barra de hasta ocho diodos leds. GLCD. Pantalla grfica. LCD Display. Inserta una pantalla LCD alfanumrica. Led7seg4. Inserta un conjunto de 4 displays de 7 segmentos conectados en paralelo.

Arquitectura de Sistemas Microprocesados

31/01/2013

Macros de Perifricos

Comunicaciones:

275

LinMaster: Uso de Macros y funciones que implementan el protocolo Lin en modo Master para la transferencia de datos. SPI_Legacy: Protocolo SPI para la transferencia de datos. One_Wire: Protocolo One_Wire para la transferencia de datos. I2C_Master. Protocolo I2C en el modo Master para la transferencia de datos. CAN2: Protocolo CAN2. RS232: Estndar RS232 para la transferencia de datos. Lin_Slave. Protocolo Lin en modo Slave para la transferencia de datos. CAN: Protocolo CAN.
Arquitectura de Sistemas Microprocesados 31/01/2013

Macros de Perifricos

WIRELESS

IrDA Comunicacin mediante infrarrojos. RFID. Identificacin por radiofrecuencia. Zigbee. Comunicacin por radiofrecuencia segn el protocolo Zigbee Bluetooth. Comunicacin por radiofrecuencia segn el protocolo Bluetooth.

276

Arquitectura de Sistemas Microprocesados

31/01/2013

Macros de Perifricos

Perifricos

277

USBSerial: Dispositivo USB para la comunicacin serie. TCP_IP: Transferencia de datos segn el estndar TCP_IP. USBHID: Dispositivo USB como dispositivo de interface humano (HID). MIDI: Comunicacin en tiempo real entre diferentes dispositivos como controladores musicales o instrumentos. FAT16: Diseado para usarse junto con tarjetas de memoria MMC/SD para configurar el sistema de localizacin de archivos (FAT) y empleo de los mismos. WebServer: Podemos disear aplicaciones basadas en servicios de pginas web. USBSlave: Dispositivo USBArquitectura de Sistemas esclavo.
Microprocesados

31/01/2013

Macros de Perifricos

MECHATRONICS

Stepper. Para la simulacin de aplicaciones que controlan un motor paso a paso PWM. Componente cuyas Macros o funciones podemos emplear para generar y visualizar seales PWM moduladas en anchura. Speech. Permite el diseo de aplicaciones con sntesis de voz. Servo. Para la simulacin de aplicaciones que controlan un servo motor
Arquitectura de Sistemas Microprocesados 31/01/2013

278

Consideraciones previas al diseo con microcontroladores

279

Arquitectura de Sistemas Microprocesados

31/01/2013

Solucionar problemas con uso de TICs

280

Arquitectura de Sistemas Microprocesados

31/01/2013

Diseo de aplicaciones con microcontroladores


281

Interpretar y formular el problema Disear una solucin Identificar los recursos para obtener la solucin. Organizarnos como equipo de trabajo Programar las tareas para llevar a cabo la solucin Ejecutar la solucin Evaluar la solucin Presentar la Solucin
Microcontroladores

Anlisis Funcional - Estructural

Analizar: Descomposicin mental del objeto de estudio en sus partes integrantes, con el objetivo de relevar su composicin y estructura as como su descomposicin en elementos ms simples.

282

Arquitectura de Sistemas Microprocesados

31/01/2013

Anlisis Funcional - Estructural

Dado que los productos de la tecnologa pueden ser bienes (objetos), procesos o servicios, el anlisis de productos revestir distintas formas segn sea el tipo de producto a analizar. Un producto puede ser sujeto a diferentes tipos de anlisis, como el anlisis morfolgico, funcional, estructural, de funcionamiento, econmico, tecnolgico, comparativo, relacional, del surgimiento y evolucin histrica del producto.

283

Arquitectura de Sistemas Microprocesados

31/01/2013

Anlisis Funcional - Estructural

Las diversas etapas del mtodo de anlisis surgen como respuesta a interrogantes que normalmente un observador crtico se planteara frente a los objetos en general y a un objeto en particular. La secuenciacin de las etapas no ser estrictamente lineal, sino que habr idas y vueltas. En muchos casos el proceso ser recursivo y se plantear la necesidad de reconsiderar etapas ya tratadas.

284

Arquitectura de Sistemas Microprocesados

31/01/2013

Fases del mtodo

Fase de reconocimiento y anlisis del problema, necesidad o situacin

El anlisis del problema se centra en plantear los interrogantes cuyas respuestas se buscarn a lo largo del proceso de anlisis. Algunos de lo interrogantes que se pueden plantear, teniendo en cuenta las caractersticas del producto (que puede ser tangible o intangible), los objetivos buscados y lo que se intenta priorizar.
Anlisis del producto donde se hace una descripcin ms precisa de los elementos que lo componen

Fase de sntesis

Fase de conclusin

285

Anlisis de las relaciones del producto con su entorno, con la estructura sociocultural.
Arquitectura de Sistemas Microprocesados 31/01/2013

Anlisis Funcional - Estructural


Anlisis funcional Est centrado en la funcin que cumple el objeto. Se llama funcin a la manera en que el objeto cumple el propsito para el cual fue concebido y construido. Debemos analizar el repertorio de funciones elementales que el objeto debe cumplir para satisfacer los requerimientos que motivaron su creacin (especificaciones). Anlisis estructural Se busca reconocer la estructura del objeto (modo en que estn dispuestas las partes), confeccionar el listado de componentes, determinar la misin de cada uno y las relaciones entre ellos. La estructura formal (relaciones descripciones vinculadas a la forma del objeto) no se obtiene de la simple captacin sensorial, sino que es una construccin intelectual del observador, resultado de un anlisis y de una bsqueda de las relaciones entre las partes de ese todo que es el objeto.
286 Arquitectura de Sistemas Microprocesados 31/01/2013

Consideraciones previas PIC


Anlisis de entradas y salidas. Condiciones de trabajo del sistema

Lugar de emplazamiento:

Interno, externo Manual, automtico, semiautomtico

Modos de operacin:

Maniobras de operacin:

Sensores, controladores y actuadores


Microcontroladores

287

Ejemplo de evaluacin a discapacitado

288

Arquitectura de Sistemas Microprocesados

31/01/2013

Seleccin de componentes:

Inversin del sistema Arquitectura del sistema propuesto

Cableado, inalmbrico TTL, CMOS PIC, ATMEL, INTEL

Tecnologa de componente

Seleccin de controlador:

Sensores e interfaces en entradas Actuadores y controladores en salidas


289 Microcontroladores

Ejemplo de seleccin de componentes


Se propone disear el modelo de estacin remota de control de indicadores en una estacin minera, con las siguientes condiciones: Se medirn gases en el aire, minerales en fuentes de agua y temperatura en los trayectos de mina Los datos sern almacenados en una micro SD Todos los das a la misma hora en medianoche, los datos son enviados va red GSM a un servidor central en Guayaquil con BACKUP en QUITO. Estos datos se almacenan en documento de texto para ser revisados por el supervisor regional al da siguiente. La plataforma de servicio debe ser OPEN SOURCE Se armarn grupos de 3 estudiantes para proponer el modelo de la estacin remota. Tendrn el siguiente puntaje 3 puntos, al definir los sensores que se van a utilizar 3 puntos si definen el sistema de subida de datos y especificaciones del servidor central y BACKUP 4 puntos si definen la plataforma de servicio y SOFTWARE de tratamiento de datos 290 Arquitectura de Sistemas 31/01/2013
Microprocesados

Aplicaciones GSM - PIC

291

Arquitectura de Sistemas Microprocesados

31/01/2013

Potrebbero piacerti anche