Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
Microprocesador
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.
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
13
de operacin (bus nico para datos e instrucciones) e impide superponer ambos tiempos de acceso.
14
ARQUITECTURA HARVARD
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
17
ROM con mscara OTP (One Time Programmable) EPROM EEPROM FLASH
18
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
20
21
22
23
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.
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
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
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:
PIC.
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
Mejores relaciones coste/prestaciones. Encapsulados con 18 y 28 pines Pueden alimentarse con una tensin 2.5V 33 instrucciones con formato de 12bits.
35
36
GAMA MEDIA
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
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
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
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
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
53
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
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
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
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
60
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 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
65
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
66
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
DC
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.
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
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
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
REGISTRO OPTION
IRRBP# INTEDG TOCS
TOSE
PSA PS2
PS1
PS0
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
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