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

5 . interpreta las instrucciones y el cambio de datos que las ejecuta.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).

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 .

8 . desde los más sencillos hasta los más sofisticados.DIFERENCIA ENTRE MICROCONTROLADOR Y MICROPOCESADOR Cada fabricante de microcontroladores oferta un elevado número de modelos diferentes.

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 .

Memoria de lectura y escritura para guardar los datos. Procesador o CPU.ARQUITECTURA INTERNA 1. 4. 2. Recursos auxiliares (Módulos para el control de periféricos) 10 . 5. Líneas de E/S para los controladores de periféricos. Memoria no volátil para contener el programa. 3.

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 . tanto a nivel de hardware como de software Existen dos arquitecturas.PROCESADOR O CPU Es el elemento más importante del microcontrolador y determina sus principales características.

ARQUITECTURA VON NEUMANN Algunas familias de microcontroladores como la INTEL-51 y la Z80 12 .

ARQUITECTURA VON NEUMANN Existe una sola memoria. accedidos con un bus de dirección. donde coexisten las instrucciones de programa y los datos. 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).  velocidad de operación (bus único para datos e instrucciones) e impide superponer ambos tiempos de acceso. 14 .

15 .ARQUITECTURA HARVARD Utilizada en sistemas embebidos en general.

◦ Paralelismo implícito. segmentación del procesador (pipe-line) 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.

 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. ROM con máscara OTP (One Time Programmable) EPROM EEPROM FLASH 18 . 2. 1. 4. 5. 3.

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 .

OTP (One Time Programmable) Sólo se puede grabar una vez por parte del usuario. 20 . Se aconseja este tipo de memoria para prototipos finales.MEMORIA DE PROGRAMA (ROM) 2 .

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.MEMORIA DE PROGRAMA (ROM) 3. 21 .

22 . pero el borrado es mucho más sencillo al poderse efectuar de la misma forma que el grabado. EEPROM La grabación es similar a las memorias OTP y EPROM.000 de ciclos de escritura/borrado.MEMORIA DE PROGRAMA (ROM) 4. Garantizan 1.000. eléctricamente. o sea.

Pueden ser programadas con las mismas tensiones de alimentación del microcontrolador. pero suelen disponer de mayor capacidad que estas últimas. FLASH Se puede escribir y borrar en circuito al igual que la EEPROM.MEMORIA DE PROGRAMA (ROM) 5. 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

y derivados del PIC1650. PIC “Peripheral Interface Controller”. El PIC de 8 bits se desarrollo para el año 1975 28 . originalmente desarrollado por la división de microelectrónica de General Instruments.LOS MICROCONTROLADORES PIC Los 'PIC' son una familia de microcontroladores tipo RISC (Reduced Instruction Set Computer) fabricados por Microchip Technology Inc.

29 . excepto las de salto que tardan el doble.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.

Lo cual se refleja en el encapsulado.LA FAMILIA DE LOS PIC Se divide en cuatro gamas: Gama enana. gama media y gama alta. y en el número de aplicaciones. la complejidad interna y de programación. 30 . Sus diferencias radica en: El numero de instrucciones y longitud El número de puertos y funciones. gama baja.

.NOMENCLATURA DE LOS PIC’S PIC nnLLLxxx nn: Un número propio de la gama del PIC Código de letras donde la primera indica la tensión de alimentación y las otras dos el tipo de memoria que utiliza LLL: Xxx: Número que indica el modelo del 31 PIC.

NOMENCLATURA DE LOS PIC’S 32 .

GAMA ENANA PIC 12C(F)XXX. 33 . 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.

GAMA ENANA Características de los modelos PIC16C5X 34 .

GAMA BAJA O BASICA     Mejores relaciones coste/prestaciones.5V 33 instrucciones con formato de 12bits. Encapsulados con 18 y 28 pines Pueden alimentarse con una tensión 2. 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.  39 . puertas de comunicación serie y paralelo  Arquitectura abierta.

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 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 : 80mAPuerta A y 150mA-Puerta B  Corriente máxima 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 .

le corresponde un ciclo de instrucción de 400ns. Se aplica la técnica de segmentación o Pipeline 44 . Ciclo de instrucción: 4x100ns=400ns Todas las instrucciones del PIC se realizan en un ciclo de instrucción menos las de salto.FRECUENCIA DE FUNCIONAMIENTO Cuando un PIC16X8X funciona a 10MHz.

45 . 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.FRECUENCIA DE FUNCIONAMIENTO Q1: Se incrementa el contador de programa.

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 .

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

El cristal de cuarzo o el resonador cerámico se coloca entre los pines OSC1 y OSC2 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.

ESQUEMA MINIMO DE MONTAJE DEL PIC16F84 50 .

2. La mayoría de los registros de estado y control del procesador toman un estado conocido y determinado.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. 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 .

 53 .  La ALU. efectúa sus operaciones lógicoaritmé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.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.

 Memoria de datos formada por dos áreas. Camino de datos con la ALU de 8 bits y un registro de trabajo W. una RAM aloja 22 registros de (SFR).ARQUITECTURA INTERNA DEL PIC16C84 Consta de siete bloques fundamentales:  Memoria de programa EEPROM 1K x 14bits. 54  . 36 registros (GPR) y tipo EEPROM de 64 bytes.

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

 56 . capaz de ser escrita y borrada eléctricamente.MEMORIA DE PROGRAMA  El PIC16C84 utiliza una memoria de programa del tipo EEPROM. El PIC16F84 utiliza una memoria tipo Flash.

.

58   . LIFO. La pila es una zona aislada de las memorias de instrucciones y datos. el último valor guardado es el primero que sale.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.

El contenido del nivel superior de la Pila se saca al ejecutar las instrucciones RETURN. RETLW Y RETFIE.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.  59 .

CONTADOR DE PROGRAMA Y PILA 60 .

MEMORIA DE DATOS RAM Área de RAM estática o SRAM Área EEPROM .

Son los encargados del control del procesador y sus recursos. SFR: Tiene 24 posiciones de tamaño byte. GPR: Tiene 36 posiciones de tamaño byte .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).

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

64 . En el PIC 16C84 solo se hallan implementadas físicamente las primeras 48 posiciones de cada banco.MEMORIA DE DATOS RAM Se halla dividida en dos bancos (banco 0 y banco 1) de 128 bytes cada uno.

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 ESTADO RP0 Selecciona un banco Código OP de instrucción selecciona la dirección en el banco 65 .

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

En uno se incluyen aquellos que controlan el núcleo del microcontrolador (ESTADO. etc) Y el otro la operatividad de recursos auxiliares y periféricos. INTCON.MEMORIA DE DATOS RAM SFR: Se clasifican en dos grupos . . OPTION.

REGISTROS ESPECIFICOS SFR .

Avisar las incidencias del resultado de la ALU (C. Z) 2. RP0 y RP1) Ocupa la dirección 3 tanto del banco 0 como del banco 1 de la memoria de datos RAM Misiones: 69 . Indican el estado de Reset (TO# y PD#).EL REGISTRO DE ESTADO   1. DC. Seleccionan el banco a acceder en la memoria de datos (IRP. 3.

addwf y addlw. 1 no hay llevada y 0 sí 0: No se ha producido acarreo 70 . También cuando es resta subwf y sublw.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.

De interés en operaciones BCD. 0: El resultado de una operación lógicoaritmética no ha sido 0. 71  . Z: cero 1: El resultado de una operación lógicoaritmética ha sido 0.EL REGISTRO DE ESTADO  DC: Acarreo llevada en el cuarto bit.

72 . 0: Mediante la ejecución de la instrucción sleep.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: Cuando se produce el desbordamiento del perro guardian (Watchdog) 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.

de forma que cuando vale:1 se accede al banco 1.EL REGISTRO DE ESTADO  RP1-RP0: Selección de banco de direccionamiento directo Como el PIC16X84 solo tiene dos bancos emplea únicamente a RP0. Después de un RESET. RP0 vale 0. 74 .

Al disponer de solo dos bancos no se usa este bit y debe programarse como cero. 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.

REGISTROS TRISA Y TRISB Se encuentran en el banco 1. TRIS B: Configura el puerto B (Entrada/ salida) . 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. luego hay que configurar el registro ESTADO para acceder a ellos.

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

líneas E/S digitales configurables de forma independiente. RA3-RA0. puede funcionar como entrada de los impulsos de reloj para el TMR0 .PUERTAS DE E/S  PUERTA A Consta de 5 líneas RA4-RA0. RA4/T0CKI. además de E/S.

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

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. .PUERTAS DE E/S  PUERTA B RB0/INT también puede actuar como línea de petición de interrupción.

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

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  TOSE tipo de flanco T0CKI (1=Incrementa TMR0 flanco descendente.

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

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. 85 .UTILIZANDO UN MICROCONTROLADOR Los microcontroladores se programan en un lenguaje de programación llamado Ensamblador (Assembler). Lenguajes de tipo visual.

Permitiendo un acceso más amplio al control físico del hardware. 86  .UTILIZANDO UN MICROCONTROLADOR  Lenguaje de bajo nivel: El usuario se acerca un poco más al lenguaje máquina. 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.

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. El listado de instrucciones de microchip (el fabricante del microcontrolador) son las siguientes: 87  . emular el programa y poder grabarlo para implementarlo en el circuito correspondiente.

SET DE INSTRUCCIONES 88 .

SET DE INSTRUCCIONES 89 .

Sign up to vote on this title
UsefulNot useful