You are on page 1of 89

MICROCONTROLADORES

DOCENTE: ING. CÉSAR CIRIACO MARTINEZ


MICROCONTROLADORES PIC
Sesión I
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,

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.

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.
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.
6
DIFERENCIA ENTRE MICROCONTROLADOR Y
MICROPOCESADOR

• Microprocesador

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.

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

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

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)

11
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
12
ARQUITECTURA VON NEUMANN

Algunas familias de microcontroladores


como la INTEL-51 y la Z80
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.

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.

15
ARQUITECTURA HARVARD

Utilizada en sistemas embebidos en general.

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)

17
● El alto rendimiento que poseen los
microcontroladores se debe a tres técnicas:

◦Arquitectura Harvard
◦Arquitectura RISC
◦Segmentación

18
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

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

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.

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.

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.

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.

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

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

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

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

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.


32
NOMENCLATURA DE LOS PIC’S

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.

34
GAMA ENANA

Características de los modelos PIC16C5X


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.
36
GAMA BAJA PIC16C5X

Principales características de los modelos de


gama baja.
37
GAMA MEDIA
• Encapsulado desde 18 hasta 68 pines
• 35 instrucciones de 14 bits

38
GAMA MEDIA PIC16CXXX

Características relevantes de los modelos


PIC16X8X de la gama media
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.

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

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

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

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

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

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

46
TIPOS DE OSCILADORES
• OSCILADOR TIPO RC
Un oscilador formado por una resistencia y
un condensador

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

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

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

50
ESQUEMA MINIMO DE MONTAJE DEL
PIC16F84

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.

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

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.

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.

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.

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.

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

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.

60
CONTADOR DE PROGRAMA Y PILA

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

65
DIRECCIONAMIENTO DE LA MEMORIA DE
DATOS
ESTADO

RP0

Selecciona un banco

Código OP de instrucción

selecciona la dirección en el banco

● 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
66
DIRECCIONAMIENTO DE LA MEMORIA DE
DATOS
FSR
7 6 0

IRP

Selección del
banco Selección de
dirección
● 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.

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

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

You might also like