Você está na página 1de 89

MICROCONTROLADORES

YESENIA RESTREPO CHAUSTRE ING. ELECTRONICO UFPS 11 ABRIL 2012

INTRODUCCION AL MICROCONTROLADOR

Un poco de historia
Inicialmente cuando no existan los microprocesadores, se requera para el diseo de circuitos electrnicos muchos componentes y clculos matemticos. Un circuito lgico bsico requera de una gran cantidad de elementos electrnicos basados en transistores, resistencias, etc,
2

INTRODUCCION AL MICROCONTROLADOR

Un poco de historia

En el ao 1971 apareci el primer microprocesador el cual origin un cambio decisivo en las tcnicas de diseo de la mayora de los equipos.
Entre los microprocesadores mas conocidos tenemos el popular Z-80 y el 8085.
3

INTRODUCCION AL MICROCONTROLADOR

Un poco de historia

Los diseadores de equipos electrnicos ahora tenan equipos que podan realizar mayor cantidad de tareas en menos tiempo y su tamao se redujo considerablemente.

sin embargo, despus de cierto tiempo aparece una nueva tecnologa llamada microcontrolador que simplifica aun mas el diseo electrnico.
4

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

Microprocesador
Es un sistema abierto con el que puede construirse un computador con las caractersticas que se desee, acoplndole los mdulos necesarios. La Unidad Central de Proceso (UCP), interpreta las instrucciones y el cambio de datos que las ejecuta.
5

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

Microprocesador

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

Microcontrolador
Es un sistema cerrado que contiene un computador completo. Todas las partes del computador estn contenidas en su interior y solo salen al exterior las lneas que gobiernan los perifricos.

DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR

Cada fabricante de microcontroladores oferta un elevado nmero de modelos diferentes, desde los ms sencillos hasta los ms sofisticados.
8

ARQUITECTURA INTERNA
Un microcontrolador posee todos los componentes de un computador, pero con unas caractersticas fijas que no pueden alterarse:
Procesador Memoria de programa (No voltil) Memoria datos (lectura y escritura) Lneas E/S para los controladores de perifricos Recursos auxiliares

ARQUITECTURA INTERNA

1. 2. 3.

4. 5.

Procesador o CPU. Memoria no voltil para contener el programa. Memoria de lectura y escritura para guardar los datos. Lneas de E/S para los controladores de perifricos. Recursos auxiliares (Mdulos para el control de perifricos)
10

PROCESADOR O CPU
Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel de hardware como de software Existen dos arquitecturas, se diferencian en la forma de conexin de la memoria al procesador y en los buses que cada una necesita: Arquitectura Von Neumann Arquitectura Harvad
11

ARQUITECTURA VON NEUMANN

Algunas familias de microcontroladores como la INTEL-51 y la Z80


12

ARQUITECTURA VON NEUMANN


Existe una sola memoria, donde coexisten las instrucciones de programa y los datos, accedidos con un bus de direccin, uno de datos y uno de control.

13

ARQUITECTURA VON NEUMANN


Limitacin: Longitud de las instrucciones por el bus de datos (varios accesos a memoria para instrucciones complejas).
velocidad

de operacin (bus nico para datos e instrucciones) e impide superponer ambos tiempos de acceso.

14

ARQUITECTURA HARVARD

Utilizada en sistemas embebidos en general.

15

ARQUITECTURA HARVARD
Memoria de datos separada de la memoria de instrucciones
Palabra de datos Palabra de instruccin

Conjunto reducido de instrucciones (RISC) Ejecucin de instrucciones en un ciclo de instruccin. Paralelismo implcito, segmentacin del procesador (pipe-line)

16

El alto rendimiento que poseen los microcontroladores se debe a tres tcnicas:


Arquitectura Harvard Arquitectura RISC Segmentacin

17

MEMORIA DE PROGRAMA (ROM)


Esta diseado para que en su memoria de programa se almacenen todas las instrucciones del programa de control.
1. 2. 3. 4. 5.

ROM con mscara OTP (One Time Programmable) EPROM EEPROM FLASH
18

MEMORIA DE PROGRAMA (ROM)


1.

ROM con mscara Se graba durante el proceso de fabricacin mediante el uso de mscaras Se aconseja este tipo de memoria cuando se precisan series muy grandes

19

MEMORIA DE PROGRAMA (ROM)


2 . OTP (One Time Programmable) Slo se puede grabar una vez por parte del usuario. Se aconseja este tipo de memoria para prototipos finales.

20

MEMORIA DE PROGRAMA (ROM)


3. EPROM En la superficie de la cpsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria a rayos ultravioleta para producir su borrado y emplearla nuevamente.

21

MEMORIA DE PROGRAMA (ROM)


4. EEPROM La grabacin es similar a las memorias OTP y EPROM, pero el borrado es mucho ms sencillo al poderse efectuar de la misma forma que el grabado, o sea, elctricamente. Garantizan 1.000.000 de ciclos de escritura/borrado.

22

MEMORIA DE PROGRAMA (ROM)


5. FLASH Se puede escribir y borrar en circuito al igual que la EEPROM, pero suelen disponer de mayor capacidad que estas ltimas. Pueden ser programadas con las mismas tensiones de alimentacin del microcontrolador.

23

MEMORIA DE DATOS (RAM)


Es una memoria voltil y se destina a guardar las variables y los datos (SRAM). Los microcontroladores disponen de capacidades de RAM comprendidas entre 20 y 512 bytes. Existen microcontroladores que disponen de memoria EEPROM para contener datos.
24

REGISTROS Y BITS
Un registro es una posicin de memoria en la cual se puede almacenar un dato. Es decir que la memoria esta dividida en pequeas partes llamadas Registros. El primer registro de una memoria corresponde a la direccin 00H.

Hay un conjunto de registros que ya vienen Predefinidos desde la fbrica.


Cada registro esta dividido en 8 partes, Bits.
25

LINEAS DE ENTRADA/SALIDA (PUERTOS)


Los microcontroladores cuentan con una serie de pines destinados a entrada y salida de datos o seales digitales. A estos pines se les denomina Puerto.

Los puertos estn controlados por los registros.


Entradas salidas de propsito general, trabajo con dispositivos simples como rels, Leds, etc.

26

RECURSOS AUXILIARES
Circuito de reloj. Temporizadores y contadores. Conversores AD y DA. Comparadores Modulador de ancho de pulsos (PWM) Puerto serie Otros puertos de comunicacin (USB, CAN) Sistema de proteccin. Estado de reposo

27

LOS MICROCONTROLADORES PIC


Los 'PIC' son una familia de microcontroladores tipo RISC (Reduced Instruction Set Computer) fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la divisin de microelectrnica de General Instruments. PIC Peripheral Interface Controller. El PIC de 8 bits se desarrollo para el ao 1975
28

LOS MICROCONTROLADORES PIC


Los microcontroladores PIC incorporan en su procesador tres caractersticas:
Procesador tipo RISC Procesador segmentado Arquitectura HARVARD

Con estos recursos los PIC son capaces de ejecutar en un ciclo de instruccin todas las instrucciones, excepto las de salto que tardan el doble.

29

LA FAMILIA DE LOS PIC


Se divide en cuatro gamas: Gama enana, gama baja, gama media y gama alta. Sus diferencias radica en: El numero de instrucciones y longitud El nmero de puertos y funciones. Lo cual se refleja en el encapsulado, la complejidad interna y de programacin, y en el nmero de aplicaciones.
30

NOMENCLATURA DE LOS PICS

PIC nnLLLxxx
nn:
Un nmero propio de la gama del PIC
Cdigo de letras donde la primera indica la tensin de alimentacin y las otras dos el tipo de memoria que utiliza

LLL:

Xxx:

Nmero que indica el modelo del


31

PIC.

NOMENCLATURA DE LOS PICS

32

GAMA ENANA
PIC 12C(F)XXX, de 8 patas (pines)

Aunque solo tienen 8 pines, pueden destinar hasta 6 como lneas de E/S para los perifricos porque disponen de un oscilador interno R-C.

33

GAMA ENANA

Caractersticas de los modelos PIC16C5X


34

GAMA BAJA O BASICA

Mejores relaciones coste/prestaciones. Encapsulados con 18 y 28 pines Pueden alimentarse con una tensin 2.5V 33 instrucciones con formato de 12bits.
35

GAMA BAJA PIC16C5X

Principales caractersticas de los modelos de gama baja.

36

GAMA MEDIA

Encapsulado desde 18 hasta 68 pines 35 instrucciones de 14 bits


37

GAMA MEDIA PIC16CXXX

Caractersticas relevantes de los modelos PIC16X8X de la gama media


38

GAMA ALTA
Alcanzan 58 instrucciones de 16 bits Sistema de gestin de interrupciones vectorizadas Incluyen variados controladores de perifricos, puertas de comunicacin serie y paralelo Arquitectura abierta.

39

EL PIC16X84
Pertenece a la familia de la gama media Tiene solo 18 pines Posee una memoria de programa de 1K palabras de 14bits cada una 64 bytes como memoria de datos auxiliar y opcional

40

TARJETA DE PRESENTACION DE PIC16X84


Memoria de programa 1Kx14 Memoria de datos RAM 36 bytePIC16C84 y de 68 byte-PIC16F84 Memoria de datos 64bytes/EEPROM Pila de 8 niveles Interrupciones 4 tipos diferentes Juego de instrucciones 35 Encapsulado Platico DIP de 18 pines Frecuencia de trabajo 10MHz Mxima
41

TARJETA DE PRESENTACION DE PIC16X84


Temporizadores : Solo uno TMR0 Lneas E/S digitales : 13 Puerta A y Puerta B Voltaje de alimentacin : VDD de 2 a 6VDC Corriente mxima absorbida : 80mAPuerta A y 150mA-Puerta B Corriente mxima suministrada : 50mAPuerta A y 100mA-Puerta B

42

ASPECTO EXTERNO
VDD VSS OSC1/CLKIN OSC2/CLKOUT MCLR9# RA0-RA4 RA4/TOCKI RB0-RB7 RB0/INT
43

FRECUENCIA DE FUNCIONAMIENTO
Cuando un PIC16X8X funciona a 10MHz, le corresponde un ciclo de instruccin de 400ns. Ciclo de instruccin: 4x100ns=400ns
Todas las instrucciones del PIC se realizan en un ciclo de instruccin menos las de salto. Se aplica la tcnica de segmentacin o Pipeline
44

FRECUENCIA DE FUNCIONAMIENTO

Q1: Se incrementa el contador de programa. Q2-Q3: Se produce la decodificacin y la ejecucin de la instruccin Q4: Se busca el cdigo de la instruccin en la memoria del programa y se carga en el registro de instrucciones.
45

TIPOS DE OSCILADORES

OSCILADOR TIPO RC Un oscilador formado por una resistencia y un condensador

46

TIPOS DE OSCILADORES

OSCILADOR TIPO HS Un oscilador que alcanza una alta velocidad entre 4 y 10MHz, basado en un cristal de cuarzo o un resonador cermico

47

TIPOS DE OSCILADORES

OSCILADOR TIPO XT Es un resonador de cristal o resonador para frecuencias estndar, comprendida entre 100KHz y 4MHz.

48

TIPOS DE OSCILADORES

OSCILADOR TIPO LP Oscilador de bajo consumo con cristal o resonador diseado para trabajar en un rango de frecuencias de 35 a 200KHz. El cristal de cuarzo o el resonador cermico se coloca entre los pines OSC1 y OSC2

49

ESQUEMA MINIMO DE MONTAJE DEL PIC16F84

50

REINICIALIZACION O RESET
Con un nivel lgico bajo en MCLR# el microcontrolador se reinicializa:
1. El contador de programa se carga con la direccin 0. 2. La mayora de los registros de estado y control del procesador toman un estado conocido y determinado.

51

EN EL INTERIOR DEL PROCESADOR


Los microcontroladores PIC incorporan tres caracterstica: Procesador tipo RISC Procesador segmentado Arquitectura Harvard Una condicin es la simetra y ortogonalidad en el formato de las instrucciones (14bits) El juego de instrucciones se reduce a 35 y con la estructura segmentada se pueden realizar simultneamente las dos fases que compone cada instruccin
52

EN EL INTERIOR DEL PROCESADOR


El manejo intensivo del banco de registros, los cuales participan de una manera muy activa en la ejecucin de instrucciones. La ALU, efecta sus operaciones lgicoaritmtica con dos operandos, uno es del registro W(Work) y el otro que puede provenir de cualquier registro o del propio cdigo de instruccin.

53

ARQUITECTURA INTERNA DEL PIC16C84


Consta de siete bloques fundamentales:

Memoria de programa EEPROM 1K x 14bits.

Memoria de datos formada por dos reas, una RAM aloja 22 registros de (SFR), 36 registros (GPR) y tipo EEPROM de 64 bytes.
Camino de datos con la ALU de 8 bits y un registro de trabajo W.
54

ARQUITECTURA INTERNA DEL PIC16C84


Diversos recursos conectados al bus de datos (Puertos E/S, TMR0, etc). Base de tiempo y circuitos auxiliares. Direccionamiento de la memoria de programa en base al Contador de Programa ligado a una pila de 8 niveles de profundidad. Direccionamiento directo e indirecto de la memoria RAM.
55

MEMORIA DE PROGRAMA

El PIC16C84 utiliza una memoria de programa del tipo EEPROM, capaz de ser escrita y borrada elctricamente. El PIC16F84 utiliza una memoria tipo Flash.

56

CONTADOR DE PROGRAMA Y PILA

El rango de direcciones que cubre el PIC16X84 en su memoria de programa llega desde 0000H a la 03FFH, 1024 posiciones.
La pila es una zona aislada de las memorias de instrucciones y datos. LIFO, el ltimo valor guardado es el primero que sale.
58

CONTADOR DE PROGRAMA Y PILA

La instruccin CALL y las interrupciones originan la carga del contenido del PC en el nivel superior de la pila. El contenido del nivel superior de la Pila se saca al ejecutar las instrucciones RETURN, RETLW Y RETFIE.

59

CONTADOR DE PROGRAMA Y PILA

60

MEMORIA DE DATOS RAM


rea de RAM esttica o SRAM
rea EEPROM

MEMORIA DE DATOS RAM


rea de RAM esttica o SRAM Donde reside el Banco de Registros Especficos (SFR) y el banco de Registros de Propsito General (GPR).
SFR: Tiene 24 posiciones de tamao byte. Son los encargados del control del procesador y sus recursos. GPR: Tiene 36 posiciones de tamao byte

MEMORIA DE DATOS RAM


rea EEPROM
Es de 64 bytes donde, opcionalmente, se pueden almacenar datos que no se pierden al desconectar la alimentacin. La zona RAM se halla dividida en dos bancos (banco 0 y banco 1) de 128 bytes cada uno

MEMORIA DE DATOS RAM

Se halla dividida en dos bancos (banco 0 y banco 1) de 128 bytes cada uno, En el PIC 16C84 solo se hallan implementadas fsicamente las primeras 48 posiciones de cada banco.

64

DIRECCIONAMIENTO DE LA MEMORIA DE DATOS

DIRECCIONAMIENTO DIRECTO El operando que utiliza la instruccin en curso se referencia mediante su direccin que viene incluida en el cdigo OP. El banco a acceder lo determinan los bits RP0 y RP1 del registro ESTADO

ESTADO
RP0

Selecciona un banco

Cdigo OP de instruccin

selecciona la direccin en el banco

65

DIRECCIONAMIENTO DE LA MEMORIA DE DATOS


FSR

Direccionamiento indirecto Se usa cuando una instruccin se utiliza como operando el registro INDF, que ocupa la direccin 0 de ambos bancos, el bit de ms peso FSR junto al bit IRP del registro ESTADO se encargan de seleccionar el banco a acceder, mientras que los 7 bits de menos peso apuntan a la posicin.

7
IRP

Seleccin del banco


Seleccin de direccin

66

MEMORIA DE DATOS RAM


SFR: Se clasifican en dos grupos . En uno se incluyen aquellos que controlan el ncleo del microcontrolador (ESTADO, OPTION, INTCON, etc) Y el otro la operatividad de recursos auxiliares y perifricos.

REGISTROS ESPECIFICOS SFR

EL REGISTRO DE ESTADO

1. Avisar las incidencias del resultado de la ALU (C, DC, Z) 2. Indican el estado de Reset (TO# y PD#). 3. Seleccionan el banco a acceder en la memoria de datos (IRP, RP0 y RP1)

Ocupa la direccin 3 tanto del banco 0 como del banco 1 de la memoria de datos RAM Misiones:

69

EL REGISTRO DE ESTADO
7 0

IRP RP1 RP0 TO# PD# Z

DC

C: Acarrero / llevada en el bit de ms peso


1: Se ha producido un acarreo en el bit de ms peso, addwf y addlw. Tambin cuando es resta subwf y sublw, 1 no hay llevada y 0 s 0: No se ha producido acarreo
70

EL REGISTRO DE ESTADO

DC: Acarreo llevada en el cuarto bit. De inters en operaciones BCD. Z: cero 1: El resultado de una operacin lgicoaritmtica ha sido 0.
0: El resultado de una operacin lgicoaritmtica no ha sido 0.
71

EL REGISTRO DE ESTADO

PD#: Power Down 1: Despus de la conexin de la alimentacin al microcontrolador o al ejecutar la instruccin clrwdt.

0: Mediante la ejecucin de la instruccin sleep.

72

EL REGISTRO DE ESTADO

TO#:Time Out
1: Despus de la conexin de la alimentacin o al ejecutarse las instrucciones clrwdt y sleep.
0: Cuando se produce el desbordamiento del perro guardian (Watchdog)

73

EL REGISTRO DE ESTADO

RP1-RP0: Seleccin de banco de direccionamiento directo Como el PIC16X84 solo tiene dos bancos emplea nicamente a RP0, de forma que cuando vale:1 se accede al banco 1. Despus de un RESET, RP0 vale 0.

74

EL REGISTRO DE ESTADO

IRP: Seleccin del banco en direccionamiento indirecto este bit junto con el bit de ms peso del Registro FSR sirven para determinar el banco de la memoria de datos seleccionado. Al disponer de solo dos bancos no se usa este bit y debe programarse como cero.
75

REGISTROS TRISA Y TRISB


Se encuentran en el banco 1, luego hay que configurar el registro ESTADO para acceder a ellos. TRIS A: Configura a las lneas de la Puerta A como entradas si estn a 1 y como salidas si estn a 0. TRIS B: Configura el puerto B (Entrada/ salida)

REGISTROS TRISA Y TRISB


TRIS B: Configura las lneas de la Puerta B como entradas si estn a 1 y como salidas si estn a 0.

PUERTAS DE E/S

PUERTA A Consta de 5 lneas RA4-RA0. RA3-RA0, lneas E/S digitales configurables de forma independiente. RA4/T0CKI, adems de E/S, puede funcionar como entrada de los impulsos de reloj para el TMR0

PUERTAS DE E/S

PUERTA A Tras un RESET todos los bits de TRISA se colocan a 1 y las lneas de la Puerta A quedan configuradas como entradas.

PUERTAS DE E/S

PUERTA B RB0/INT tambin puede actuar como lnea de peticin de interrupcin.

Para la grabacin en serie del PIC se usa el pin RB6 para impulsos de reloj y el pin RB7 para la entrada de datos.

REGISTRO OPTION

La misin principal de este registro es controlar TMR0 y el Divisor de frecuencia.

REGISTRO OPTION
IRRBP# INTEDG TOCS

TOSE

PSA PS2

PS1

PS0

PS2:PS0 Valor con el que acta el Divisor de frecuencia

PSA Asignacin del divisor de frecuencia (1=WDT 0= TMR0)

REGISTRO OPTION

TOSE tipo de flanco T0CKI (1=Incrementa TMR0 flanco descendente; 0= flanco ascendente) TOCS Tipo de reloj para el TMR0 1= Pulsos introducidos a travs de T0CKI (Contador) 0= Pulsos reloj interno (Temporizador Fosc/4)

REGISTRO OPTION

INTEDG Flanco activo por interrupcin externa(1= flanco Ascendente; 0= flanco descendente) RBPO# resistencias Pull-Up Puerta B 1= Desactivadas 0= Activadas

UTILIZANDO UN MICROCONTROLADOR
Los microcontroladores se programan en un lenguaje de programacin llamado Ensamblador (Assembler), cuya principal caracterstica es su altsima complejidad. Los lenguajes de programacin se clasifican segn su nivel de programacin:

Lenguaje de alto nivel: Un nivel y estilo de escritura fcilmente legible y comprensible por el hombre. Lenguajes de tipo visual.
85

UTILIZANDO UN MICROCONTROLADOR

Lenguaje de bajo nivel: El usuario se acerca un poco ms al lenguaje mquina. Permitiendo un acceso ms amplio al control fsico del hardware. Lenguaje Ensamblador: Podramos considerarlo el lenguaje de ms bajo nivel Podemos decir que los lenguajes de alto nivel se asemejan ms al lenguaje humano y los lenguajes de bajo nivel se asemejan ms al lenguaje mquina.
86

PROGRAMACION EN ENSAMBLADOR PIC 16F84

Para programar un PIC 16F84 necesitamos conocer las instrucciones para generar el cdigo fuente para posteriormente compilarlo por ejemplo con MPASM, emular el programa y poder grabarlo para implementarlo en el circuito correspondiente.
El listado de instrucciones de microchip (el fabricante del microcontrolador) son las siguientes:
87

SET DE INSTRUCCIONES
88

SET DE INSTRUCCIONES
89

Você também pode gostar