2. 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
3. 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
4. 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
5. 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
7. 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
8. 8
Cada fabricante de microcontroladores oferta un
elevado número de modelos diferentes, desde los
más sencillos hasta los más sofisticados.
DIFERENCIA ENTRE MICROCONTROLADOR
Y MICROPOCESADOR
9. 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
10. 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
11. PROCESADOR O CPU
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
Es el elemento más importante del
microcontrolador y determina sus principales
características, tanto a nivel de hardware
como de software
13. 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
14. ARQUITECTURA VON NEUMANN
Limitación:
Longitud de las instrucciones por el bus
de datos (varios accesos a memoria para
instrucciones complejas).
velocidad de operación (bus único para
datos e instrucciones) e impide
superponer ambos tiempos de acceso.
14
16. 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
17. El alto rendimiento que poseen los
microcontroladores se debe a tres
técnicas:
◦ Arquitectura Harvard
◦ Arquitectura RISC
◦ Segmentación
17
18. MEMORIA DE PROGRAMA (ROM)
1. ROM con máscara
2. OTP (One Time Programmable)
3. EPROM
4. EEPROM
5. FLASH
18
Esta diseñado para que en su memoria de
programa se almacenen todas las instrucciones
del programa de control.
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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
33. 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
35. 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
39. 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
40. 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
41. 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
42. 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
44. 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
45. FRECUENCIA DE FUNCIONAMIENTO
45
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.
46. TIPOS DE OSCILADORES
OSCILADOR TIPO RC
Un oscilador formado por una resistencia
y un condensador
46
47. 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
48. TIPOS DE OSCILADORES
OSCILADOR TIPO XT
Es un resonador de cristal o resonador
para frecuencias estándar, comprendida
entre 100KHz y 4MHz.
48
49. 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
51. 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
52. 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
53. 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
54. 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
55. 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
56. MEMORIA DE PROGRAMA
El PIC16C84 utiliza una memoria de
programa del tipo EEPROM, capaz de ser
escrita y borrada eléctricamente.
El PIC16F84 utiliza una memoria tipo
Flash.
56
58. 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
59. 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
62. 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
63. 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
64. MEMORIA DE DATOS RAM
64
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.
65. DIRECCIONAMIENTO DE LA
MEMORIA DE DATOS
DIRECCIONAMIENTO
DIRECTO
El operando que utiliza
la instrucción en curso
se referencia mediante
su dirección que viene
incluida en el código
OP. El banco a acceder
lo determinan los bits
RP0 y RP1 del registro
ESTADO
RP0
65
ESTADO
Código OP de instrucción
Selecciona un banco
selecciona la dirección en el banco
66. DIRECCIONAMIENTO DE LA
MEMORIA DE DATOS
Direccionamiento
indirecto
Se usa cuando una
instrucción se utiliza
como operando el
registro INDF, que
ocupa la dirección 0 de
ambos bancos, el bit de
más 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
posición.
66
IRP
FSR
7 6 0
Selección del
banco
Selección de
dirección
67. 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.
69. 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
70. EL REGISTRO DE ESTADO
IRP RP1 RP0 TO# PD# Z DC C
70
7 0
•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
71. 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
72. 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
73. 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
74. 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
75. 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
76. 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)
77. 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.
78. 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
79. 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.
80. 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.
81. REGISTRO OPTION
La misión principal de este registro es
controlar TMR0 y el Divisor de frecuencia.
82. REGISTRO OPTION
PS2:PS0 Valor con el que actúa el
Divisor de frecuencia
PSA Asignación del divisor de frecuencia
(1=WDT 0= TMR0)
IRRBP# INTEDG TOCS TOSE PSA PS2 PS1 PS0
83. 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)
84. 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
85. 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
86. 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
87. 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