Está en la página 1de 89

MICROCONTROLADORES

YESENIA RESTREPO CHAUSTRE


ING. ELECTRONICO
UFPS
11 ABRIL 2012
INTRODUCCION AL
MICROCONTROLADOR
Un poco de historia
Inicialmente cuando no existían los
microprocesadores, se requería para
el diseño de circuitos electrónicos
muchos componentes y cálculos
matemáticos. Un circuito lógico básico
requería de una gran cantidad de
elementos electrónicos basados en
transistores, resistencias, etc,

2
INTRODUCCION AL
MICROCONTROLADOR
Un poco de historia
En el año 1971 apareció el primer
microprocesador el cual originó un
cambio decisivo en las técnicas de
diseño de la mayoría 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 diseñadores de equipos electrónicos
ahora tenían equipos que podían realizar
mayor cantidad de tareas en menos
tiempo y su tamaño se redujo
considerablemente.

sin embargo, después de cierto tiempo


aparece una nueva tecnología llamada
microcontrolador que simplifica aun mas
el diseño electrónico.
4
DIFERENCIA ENTRE MICROCONTROLADOR
Y MICROPOCESADOR
Microprocesador
Es un sistema abierto con el que
puede construirse un computador con
las características que se desee,
acoplándole los módulos 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

6
DIFERENCIA ENTRE MICROCONTROLADOR Y
MICROPOCESADOR
Microcontrolador
Es un sistema cerrado que contiene un
computador completo.

Todas las partes del computador están


contenidas en su interior y solo salen
al exterior las líneas que gobiernan los
periféricos.

7
DIFERENCIA ENTRE MICROCONTROLADOR
Y MICROPOCESADOR

Cada fabricante de microcontroladores oferta un


elevado número de modelos diferentes, desde los
más sencillos hasta los más sofisticados.

8
ARQUITECTURA INTERNA
Un microcontrolador posee todos los
componentes de un computador, pero con
unas características fijas que no pueden
alterarse:
◦ Procesador
◦ Memoria de programa (No volátil)
◦ Memoria datos (lectura y escritura)
◦ Líneas E/S para los controladores de periféricos
◦ Recursos auxiliares

9
ARQUITECTURA INTERNA

1. Procesador o CPU.
2. Memoria no volátil para contener el programa.
3. Memoria de lectura y escritura para guardar los
datos.
4. Líneas de E/S para los controladores de periféricos.
5. Recursos auxiliares (Módulos para el control de
periféricos)
10
PROCESADOR O CPU
Es el elemento más importante del
microcontrolador y determina sus principales
características, tanto a nivel de hardware
como de software
Existen dos arquitecturas, se diferencian en la
forma de conexión 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 dirección, uno de
datos y uno de control.

13
ARQUITECTURA VON NEUMANN

Limitación:
 Longitud de las instrucciones por el bus de
datos (varios accesos a memoria para
instrucciones complejas).

 velocidadde operación (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 instrucción
◦ Conjunto reducido de instrucciones (RISC)
◦ Ejecución de instrucciones en un ciclo de
instrucción.
◦ Paralelismo implícito, segmentación del
procesador (pipe-line)

16
El alto rendimiento que poseen los
microcontroladores se debe a tres
técnicas:

◦ Arquitectura Harvard
◦ Arquitectura RISC
◦ Segmentación

17
MEMORIA DE PROGRAMA (ROM)
Esta diseñado para que en su memoria de
programa se almacenen todas las instrucciones
del programa de control.

1. ROM con máscara


2. OTP (One Time Programmable)
3. EPROM
4. EEPROM
5. FLASH

18
MEMORIA DE PROGRAMA (ROM)
1. ROM con máscara
Se graba durante el proceso de
fabricación mediante el uso de
“máscaras”
Se aconseja este tipo de memoria
cuando se precisan series muy
grandes

19
MEMORIA DE PROGRAMA (ROM)

2 . OTP (One Time Programmable)


Sólo 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 cápsula 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 grabación es similar a las memorias
OTP y EPROM, pero el borrado es
mucho más sencillo al poderse efectuar
de la misma forma que el grabado, o
sea, eléctricamente.
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 alimentación del
microcontrolador.

23
MEMORIA DE DATOS (RAM)
Es una memoria volátil 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 posición de memoria en la
cual se puede almacenar un dato. Es decir
que la memoria esta dividida en pequeñas
partes llamadas “Registros”.

El primer registro de una memoria


corresponde a la dirección 00H.

Hay un conjunto de registros que ya vienen


“Predefinidos” desde la fábrica.

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 señales digitales. A estos pines se
les denomina “Puerto”.

Los puertos están controlados por los


registros.

Entradas salidas de propósito general, trabajo


con dispositivos simples como relés, 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 comunicación (USB,
CAN)
Sistema de protección.
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
división de microelectrónica de General
Instruments.

PIC “Peripheral Interface Controller”.

El PIC de 8 bits se desarrollo para el año


1975

28
LOS MICROCONTROLADORES
PIC
Los microcontroladores PIC incorporan en
su procesador tres características:
 Procesador tipo RISC
 Procesador segmentado
 Arquitectura HARVARD

Con estos recursos los PIC son capaces de


ejecutar en un ciclo de instrucción 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 número de puertos y funciones.

Lo cual se refleja en el encapsulado, la


complejidad interna y de programación, y
en el número de aplicaciones.

30
NOMENCLATURA DE LOS PIC’S
PIC nnLLLxxx
nn: Un número propio de la gama del
PIC

LLL: Código de letras donde la primera


indica la tensión de alimentación y las
otras dos el tipo de memoria que utiliza

Xxx: Número que indica el modelo del


PIC.
31
NOMENCLATURA DE LOS PIC’S

32
GAMA ENANA

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

Aunque solo tienen 8 pines, pueden


destinar hasta 6 como líneas de E/S
para los periféricos porque disponen de
un oscilador interno R-C.

33
Características de los modelos PIC16C5X GAMA ENANA

34
GAMA BAJA O BASICA

Mejores relaciones coste/prestaciones.


Encapsulados con 18 y 28 pines
Pueden alimentarse con una tensión 2.5V
33 instrucciones con formato de 12bits.

35
GAMA BAJA PIC16C5X

Principales características de los modelos de


gama baja. 36
GAMA MEDIA

 Encapsulado desde 18 hasta 68 pines


 35 instrucciones de 14 bits

37
GAMA MEDIA PIC16CXXX

Características relevantes de los modelos


PIC16X8X de la gama media
38
GAMA ALTA
Alcanzan 58 instrucciones de 16 bits
Sistema de gestión de interrupciones
vectorizadas
Incluyen variados controladores de
periféricos, puertas de comunicación
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 byte-
PIC16C84 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 Máxima

41
TARJETA DE PRESENTACION DE
PIC16X84
Temporizadores : Solo uno TMR0
Líneas E/S digitales : 13 Puerta A y
Puerta B
Voltaje de alimentación : VDD de 2 a
6VDC
Corriente máxima absorbida : 80mA-
Puerta A y 150mA-Puerta B
Corriente máxima suministrada :
50mA-Puerta 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
instrucción de 400ns.
Ciclo de instrucción: 4x100ns=400ns
Todas las instrucciones del PIC se
realizan en un ciclo de instrucción
menos las de salto.
Se aplica la técnica de segmentación o
Pipeline
44
FRECUENCIA DE FUNCIONAMIENTO

Q1: Se incrementa el contador de programa.


Q2-Q3: Se produce la decodificación y la ejecución de la instrucción
Q4: Se busca el código de la instrucción 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 cerámico

47
TIPOS DE OSCILADORES
OSCILADOR TIPO XT
Es un resonador de cristal o resonador
para frecuencias estándar, comprendida
entre 100KHz y 4MHz.

48
TIPOS DE OSCILADORES
OSCILADOR TIPO LP
Oscilador de bajo consumo con cristal o
resonador diseñado para trabajar en un
rango de frecuencias de 35 a 200KHz.

El cristal de cuarzo o el resonador


cerámico se coloca entre los pines OSC1 y
OSC2

49
ESQUEMA MINIMO DE MONTAJE
DEL PIC16F84

50
REINICIALIZACION O RESET

Con un nivel lógico bajo en MCLR# el


microcontrolador se reinicializa:

1. El contador de programa se carga con la


dirección 0.
2. La mayoría 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
característica:
◦ Procesador tipo RISC
◦ Procesador segmentado
◦ Arquitectura Harvard
Una condición es la simetría 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
simultáneamente las dos fases que compone
cada instrucción

52
EN EL INTERIOR DEL
PROCESADOR
El manejo intensivo del banco de
registros, los cuales participan de una
manera muy activa en la ejecución de
instrucciones.
La ALU, efectúa sus operaciones lógico-
aritmética con dos operandos, uno es del
registro W(Work) y el otro que puede
provenir de cualquier registro o del propio
código de instrucción.

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

ElPIC16C84 utiliza una memoria de


programa del tipo EEPROM, capaz de ser
escrita y borrada eléctricamente.

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.

Lapila 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 instrucción 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 estática o SRAM

Área EEPROM
MEMORIA DE DATOS RAM
Área de RAM estática o SRAM
Donde reside el Banco de Registros
Específicos (SFR) y el banco de Registros
de Propósito General (GPR).

SFR: Tiene 24 posiciones de tamaño byte.


Son los encargados del control del
procesador y sus recursos.

GPR: Tiene 36 posiciones de tamaño byte


MEMORIA DE DATOS RAM
Área EEPROM
Es de 64 bytes donde, opcionalmente, se
pueden almacenar datos que no se pierden al
desconectar la alimentación.

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
físicamente las primeras 48
posiciones de cada banco.

64
DIRECCIONAMIENTO DE LA
MEMORIA DE DATOS
 DIRECCIONAMIENTO ESTADO
DIRECTO RP0

El operando que utiliza


la instrucción en curso Selecciona un banco
se referencia mediante
su dirección que viene
incluida en el código Código OP de instrucción
OP. El banco a acceder
lo determinan los bits
RP0 y RP1 del registro selecciona la dirección en el banco
ESTADO

65
DIRECCIONAMIENTO DE LA
MEMORIA DE DATOS
FSR
 Direccionamiento 7 6 0
indirecto
Se usa cuando una IRP
instrucción se utiliza
como operando el
registro INDF, que
ocupa la dirección 0 de Selección del
ambos bancos, el bit de banco
más peso FSR junto al
bit IRP del registro Selección de
ESTADO se encargan
de seleccionar el banco dirección
a acceder, mientras que
los 7 bits de menos
peso apuntan a la
posición.
66
MEMORIA DE DATOS RAM

SFR: Se clasifican en dos grupos .

En uno se incluyen aquellos que controlan


el núcleo del microcontrolador (ESTADO,
OPTION, INTCON, etc)

Y el otro la operatividad de recursos


auxiliares y periféricos.
REGISTROS ESPECIFICOS SFR
EL REGISTRO DE ESTADO
 Ocupa la dirección 3 tanto del banco 0
como del banco 1 de la memoria de
datos RAM
 Misiones:
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)

69
EL REGISTRO DE ESTADO
7 0

IRP RP1 RP0 TO# PD# Z DC C

•C: Acarrero / llevada en el bit de más peso


1: Se ha producido un acarreo en el bit
de más peso, addwf y addlw. También
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
interés en operaciones BCD.

Z: cero
1: El resultado de una operación lógico-
aritmética ha sido 0.

0: El resultado de una operación lógico-


aritmética no ha sido 0.

71
EL REGISTRO DE ESTADO
PD#: Power Down
1: Después de la conexión de la
alimentación al microcontrolador o al
ejecutar la instrucción clrwdt.

0: Mediante la ejecución de la instrucción


sleep.

72
EL REGISTRO DE ESTADO
TO#:Time Out
1: Después de la conexión de la alimentación 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: Selección 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.

Después de un RESET, RP0 vale 0.

74
EL REGISTRO DE ESTADO
IRP: Selección del banco en
direccionamiento indirecto

este bit junto con el bit de más 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 líneas de la Puerta


A como entradas si están a 1 y como
salidas si están a 0.
TRIS B: Configura el puerto B (Entrada/
salida)
REGISTROS TRISA Y TRISB

TRIS B: Configura las líneas de la Puerta


B como entradas si están a 1 y como
salidas si están a 0.
PUERTAS DE E/S
PUERTA A
Consta de 5 líneas RA4-RA0.
RA3-RA0, líneas E/S digitales
configurables de forma independiente.
RA4/T0CKI, además 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 líneas de la Puerta A
quedan configuradas como entradas.
PUERTAS DE E/S
PUERTA B
RB0/INT también puede actuar como línea
de petición de interrupción.

Para la grabación 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 misión 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 actúa el


Divisor de frecuencia

PSA Asignación 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 través de
T0CKI (Contador)
0= Pulsos reloj interno
(Temporizador Fosc/4)
REGISTRO OPTION
INTEDG Flanco activo por interrupción
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 programación llamado
Ensamblador (Assembler), cuya principal
característica es su altísima complejidad.
Los lenguajes de programación se
clasifican según su nivel de
programación:
Lenguaje de alto nivel: Un nivel y estilo
de escritura fácilmente legible y
comprensible por el hombre. Lenguajes
de tipo visual.
85
UTILIZANDO UN
MICROCONTROLADOR
Lenguaje de bajo nivel: El usuario se
acerca un poco más al lenguaje
máquina. Permitiendo un acceso más
amplio al control físico del hardware.
Lenguaje Ensamblador: Podríamos
considerarlo el lenguaje de más bajo
nivel
Podemos decir que los lenguajes de alto
nivel se asemejan más al lenguaje
humano y los lenguajes de bajo nivel se
asemejan más al lenguaje máquina.
86
PROGRAMACION EN
ENSAMBLADOR PIC 16F84
Para programar un PIC 16F84
necesitamos conocer las instrucciones
para generar el código 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

También podría gustarte