Está en la página 1de 52

Unidad 1

Microcontroladores.

Materia: Microcontroladores Alumno:


Maestro. Domitilo Martinez Andres Jesus Jimenez Perez TE170640
Hernandez

7.-”C”
Ingeniería Mecatrónica.
1.1 Diferencia entre microcomputador, microprocesador
y microcontrolador. 

La CPU es el "cerebro" del microcomputador y actúa bajo el control del programa


almacenado en la memoria. La CPU se ocupa básicamente de traer las
instrucciones del programa desde la memoria, interpretarlas y hacer que se
ejecuten. La CPU también incluye los circuitos para realizar operaciones
aritméticas y lógicas elementales con los datos binarios, en la denominada
Unidad Aritmética y Lógica (ALU: Arithmetic and Logic Unit). En un
microcomputador, la CPU no es otra cosa que el microprocesador, el circuito
integrado capaz de realizar las funciones antes mencionadas. Un
microcontrolador es un microcomputador realizado en un circuito integrado
(chip). Históricamente, los microcontroladores aparecieron con posterioridad a
los microprocesadores y han tenido evoluciones independientes.
1.1 Diferencia entre microcomputador, microprocesador
y microcontrolador. 

Los microprocesadores se han desarrollado fundamentalmente orientados al


mercado de los ordenadores personales y las estaciones de trabajo, donde se
requiere una elevada potencia de cálculo, el manejo de gran cantidad de
memoria y una gran velocidad de procesamiento. Un parámetro importante en
los microprocesadores es el tamaño de sus registros internos (8, 16, 32 ó 64 bits),
que determina la cantidad de bits que pueden procesar simultáneamente. Los
microcontroladores se han desarrollado para cubrir las más diversas aplicaciones.
Se usan en automoción, en equipos de comunicaciones y de telefonía, en
instrumentos electrónicos, en equipos médicos e industriales de todo tipo, en
electrodomésticos, en juguetes, etc.
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP), también
llamada procesador, de un computador. La UCP está formada por la Unidad de Control, que interpreta las
instrucciones, y el Camino de Datos, que las ejecuta. Las patitas de un microprocesador sacan al exterior
las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los
Módulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un
microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a
la que se destine. Un 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. Un microcontrolador es un
sistema cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden
modificar.
1.2 Características y aplicaciones de los
microcontroladores.
Hay varias características que son deseables en un microcontrolador:
l. Recursos de entrada y salida. Se requiere hacer énfasis en los recursos de
entrada y de salida del dispositivo, tales como el manejo individual de líneas de
entrada y salida, el manejo de interrupciones, señales analógicas, etc.
2. Espacio optimizado. Se trata de tener en el menor espacio posible, y a un
coste razonable, los elementos esenciales para desarrollar una aplicación. Debido
a las dimensiones de su encapsulado.
3. El microcontrolador idóneo para una aplicación. Se procura que el diseñador
disponga del microcontrolador hecho a la medida de su aplicación. Con el
hardware requerido (más o menos memoria, más o menos dispositivos de entrada
y salida, etc.) 4. Seguridad en el funcionamiento del microcontrolador. Un
componente común en los microcontroladores y que contribuye a una operación
segura es el perro guardián (WDT: Watchdog Timer), dispositivo que no existe en
los ordenadores personales.
5. Bajo consumo. Dado que hay muchas aplicaciones donde
se desea utilizar baterías como fuente de alimentación, es
altamente deseable que el microcontrolador consuma poca
energía. También interesa que el microcontrolador consuma
muy poco cuando no está realizando ninguna acción.
6. Protección de los programas frente a copias. Se trata de
proteger la información almacenada en la memoria, es
decir, el programa de la aplicación, contra lecturas furtivas
de la memoria del microcontrolador. Los microcontroladores
disponen de mecanismos que les protegen de estas acciones.
Los microcontroladores se han desarrollado para cubrir las más diversas
aplicaciones. Se usan en automoción, en equipos de comunicaciones y de
telefonía, en instrumentos electrónicos, en equipos médicos e industriales de
todo tipo, en electrodomésticos, en juguetes, etc. Los microcontroladores están
concebidos fundamentalmente para ser utilizados en aplicaciones puntuales, es
decir, aplicaciones donde el microcontrolador debe realizar un pequeño número
de tareas, al menor costo posible. En estas aplicaciones, el microcontrolador
ejecuta un programa almacenado permanentemente en su memoria, el cual
trabaja con algunos datos almacenados temporalmente e interactúa con el
exterior a través de las líneas de entrada y salida de que dispone. El
microcontrolador es parte de la aplicación: es un controlador incrustado o
embebido en la aplicación (embedded controller). En aplicaciones de cierta
envergadura se utilizan varios microcontroladores, cada uno de los cuales se
ocupa de un pequeño grupo de tareas.
1.3 Tipos de arquitecturas
computacionales.
1.3.1 Arquitecturas von Neumann y Harvard En la memoria de un ordenador, un
microcomputador o un microcontrolador, se almacenan instrucciones y datos. Las
instrucciones deben pasar secuencialmente a la CPU para su descodificación y ejecución, en
tanto que algunos datos en memoria son leídos por la CPU y otros son escritos en la memoria
desde la CPU. Puede intuirse que la organización de la memoria y su comunicación con la CPU
son dos aspectos que influyen en el nivel de prestaciones del ordenador. Las arquitecturas von
Neumann y Harvard son modelos generales del hardware de los ordenadores que representan
dos soluciones diferentes al problema de la conexión de la CPU con la memoria y a la
organización de la memoria como almacén de instrucciones y datos. La arquitectura von
Neumann toma el nombre del matemático John von Neumann que propuso la idea de un
ordenador con el programa almacenado (stored-program computer). J. von Neumann trabajó
en el equipo de diseñadores de la computadora ENIAC (Electronic Numerical Integrator and
Calculator) diseñada en la Universidad de Pennsylvania durante la Segunda Guerra Mundial.
El término arquitectura Harvard se debe al nombre del lugar donde
Howard Aiken diseñó los ordenadores Mark 1, 11, 111 y IV. Estos
ordenadores fueron los primeros en utilizar memorias separadas
para instrucciones y datos, una concepción diferente al ordenador
de programa almacenado. La arquitectura von Neumann utiliza una
memoria única para instrucciones y datos. Esto significa que con un
mismo bus de direcciones se localizan (direccionan) instrucciones y
datos y que por un único bus de datos transitan tanto instrucciones
como datos. La misma señal de control que emite la CPU para leer
un dato, sirve para leer una instrucción. No hay señales de control
diferentes para datos e instrucciones. Debe quedar claro que
aunque se use memoria ROM para almacenar el programa y RAM
para los datos, para la CPU no hay tal distinción, sino que ROM y
RAM forman un conjunto único (una memoria de lectura y escritura)
para el cual la CPU emite señales de control, de dirección y de
datos.
La arquitectura Harvard utiliza memorias separadas para instrucciones y datos.
En este caso la memoria de programa (que almacena instrucciones) tiene su bus
de direcciones (de instrucciones), su propio bus de datos (más bien es un bus de
instrucciones) y su bus de control. Por otra parte, la memoria de datos tiene sus
propios buses de direcciones, datos y control, independientes de los buses de la
memoria de programa. La memoria de programa es sólo de lectura, mientras que
en la de datos se puede leer y escribir. La arquitectura von Neumann requiere
menos líneas que la Harvard para conectar la CPU con la memoria, lo cual
significa una conexión más simple entre ambas. Pero con esta arquitectura es
imposible manipular simultáneamente datos e instrucciones, debido a la
estructura de buses únicos, algo que sí es posible en la arquitectura Harvard, que
tiene buses separados. Esto confiere a la arquitectura Harvard la ventaja de una
mayor velocidad de ejecución de los programas.
Arquitecturas (a) van Neumann y (b) Harvard. La arquitectura van Neumann
utiliza una memoria única que se conecta a la CPU mediante los buses de
direcciones (BDIR), datos (BDAT) y control (BCON). La arquitectura Harvard
utiliza memorias separadas para instrucciones y datos, las cuales se conectan a la
CPU mediante los buses de direcciones de instrucciones (BDIR-I) y de direcciones
de datos (BDIR-D), los buses de instrucciones (BINST) y de datos (BDAT) y los
buses de control de instrucciones (BCON-I) y de datos (BCON-D).
En los microcomputadores, la CPU es
un circuito integrado: el
microprocesador. La arquitectura
von Neumann requiere menos
terminales en el microprocesador
que la arquitectura Harvard. Esta
fue una razón decisiva para que
desde sus inicios los
microcomputadores basados en un
microprocesador se hayan diseñado
utilizado casi exclusivamente la
arquitectura von Neumann. En los
microcontroladores la situación es
diferente. Al estar todos los
componentes del sistema dentro del
circuito integrado, desaparece la
necesidad de minimizar el número
de terminales de la CPU, de modo
que en ellos ha predominado la
arquitectura Harvard. Los
microcontroladores PIC son un
ejemplo de sistemas con
arquitectura Harvard.
1.3.2 Arquitecturas CISC y RISC CISC (Complex Instruction Set Computer) y RISC (Reduced Instruction
Set Computer) son dos modelos generales de ordenadores, desde el punto de vista de la concepción de
su repertorio de instrucciones, lo cual repercute directamente sobre la arquitectura de la CPU. Un
ordenador CISC tiene un repertorio de instrucciones complejo y un ordenador RISC tiene un repertorio
de instrucciones reducido. Al aparecer los microprocesadores y los microcontroladores, la tendencia
inicial fue proveerlos de un repertorio de instrucciones lo más potente posible, de modo que el modelo
predominante fue el CISC. La complejidad de las instrucciones fue en aumento; en un mismo repertorio
había instrucciones que hacían operaciones muy simples, como por ejemplo mover un dato desde la
memoria al acumulador, junto a otras que efectuaban operaciones tan complejas como mover una
cadena de datos de un lugar a otro en la memoria. Las instrucciones tenían diferente longitud y los
modos de direccionamiento se hicieron cada vez más elaborados. Este aumento en la complejidad de
las instrucciones se reflejó, por supuesto, en la complejidad del hardware de la CPU, en el que se hacía
necesario dedicar un gran espacio del circuito integrado a la descodificación y ejecución de las
instrucciones. En la arquitectura RISC, la CPU dispone de un repertorio corto de instrucciones sencillas.
Cada instrucción puede realizar una operación muy simple, como mover un dato entre la CPU y la
memoria, pero a alta velocidad. Se puede lograr que todas las instrucciones tengan la misma longitud.
Hay pocos modos de direccionamiento de los datos y son aplicables a todas las celdas de la memoria de
datos. La complejidad de la CPU disminuye, de modo que es fácil aumentar la frecuencia del oscilador
de la CPU y con ello la velocidad de las instrucciones. Como tienen menos transistores, son más baratas
de diseñar y producir. Desde mediados del octavo decenio del siglo XX, ésta ha sido la tendencia
predominante en el diseño de microprocesadores y microcontroladores. Los microcontroladores PIC son
un ejemplo de dispositivos con arquitectura RISC.
1.4 Tipos de
Microcontroladores y
sus fabricantes.
Los microcontroladores de un mismo tipo
forman una familia, que se caracteriza, en
general, por tener la misma CPU y ejecutar
el mismo repertorio de instrucciones. Es lo
que se conoce como "núcleo" (core) del
microcontrolador. Los miembros de una
familia de microcontroladores tienen el
mismo núcleo, pero se diferencian en la
entrada y salida y en la memoria. Por
ejemplo, todos los microcontroladores de la
familia del 8051 (MCS51) tienen una CPU
semejante, con un grupo de registros
comunes a todos los miembros de la
familia, y ejecutan el mismo repertorio de
instrucciones. En cambio, los distintos
miembros de la familia tienen puertos de
entrada y salida y memoria diferentes, en
cantidad y tipo.
Los microprocesadores y microcontroladores se fabrican como
circuitos integrados independientes (stand-alone devices), que
contienen exclusivamente al microcontrolador o
microprocesador. Pero también el núcleo del procesador puede
estar embebido (embeddedprocessor core) en un circuito
integrado de alta escala de integración, cuya función es, en
general, configurable por el usuario. Tal es el caso de los
denominados Dispositivos Lógicos Programables (PLD:
Programmable Logic Devices), entre los que están los FPGA (Field
Programmable Gate Array). Los PLD en general y los FPGA en
particular, son circuitos de alta escala de integración que
disponen de un conjunto de elementos, cuya interconexión es
programable por el usuario. Uno de estos elementos puede ser el
núcleo de un microcontrolador o un microprocesador, cuya
conexión a cierta cantidad de memoria y a dispositivos de
entrada y salida disponibles en el PLD, es programable por el
usuario. Así se puede configurar un microcontrolador "a la
medida" de la necesidad de la aplicación, con la ventaja de ser
compatible con un microprocesad or o un microcontrolador
"estándar", como el 8051 o un PIC, pues tiene su mismo núcleo.
Hay un número elevado de compañías que fabrican
microcontroladores y microprocesadores en alguna de las
formas mencionadas anteriormente. A continuación se
presenta una relación de fabricantes de
microcontroladores y microprocesadores ( o de
dispositivos que utilizan la arquitectura de un
determinado microcontrolador o microprocesador), con el
correspondiente comentario acerca de los dispositivos que
fabrica.
• Actel. FPGA con núcleos 8051 y ARM7.
• Advanced Micro Devices (AMD). Microprocesadores
compatibles con xx86.
• Altera. FPGA con núcleos Nios 11.
• Analog Devices. Arquitecturas para procesamiento
digital de señales basadas en núcleos 8052, ARM7 y otros
procesadores.
• Applied Micro Circuits Corp. (AMCq. Arquitecturas
basadas en el microprocesador PowerPC
1.5 Componentes del microcontrolador 
Un microcontrolador combina los recursos fundamentales disponibles en un
microcomputador, es decir, la unidad central de procesamiento (CPU), la memoria y los
recursos de entrada y salida, en un único circuito integrado.

Los microcontroladores disponen de un oscilador que genera los pulsos que sincronizan
todas las operaciones internas. El oscilador puede ser del tipo RC, aunque generalmente
se prefiere que esté controlado por un cristal de cuarzo (XTAL) debido a su gran
estabilidad de frecuencia. La velocidad de ejecución de las instrucciones del programa
está en relación directa con la frecuencia del oscilador del microcontrolador.
Igual que en un microcomputador, la CPU es el
"cerebro" del microcontrolador. Esta unidad trae
las instrucciones del programa, una a una, desde
la memoria donde están almacenadas, las
interpreta (descodifica) y hace que se ejecuten.
En la CPU se incluyen los circuitos de la ALU para
realizar operaciones aritméticas y lógicas
elementales con los datos binarios. La CPU de un
microcontrolador dispone de diferentes registros,
algunos de propósito general y otros para
propósitos específicos. Entre estos últimos están
el Registro de Instrucción, el Acumulador, el
Registro de Estado, el Contador de Programa, el
Registro de Direcciones de Datos y el Puntero de
la Pila. El Registro de Instrucción (RI) almacena
la instrucción que está siendo ejecutada por la
CPU. El RI es invisible para el programador. El
Acumulador (ACC: Accumulator) es el registro
asociado a las operaciones aritméticas y lógicas
que se pueden realizar en la ALU. En cualquier
operación, uno de los datos debe estar en el ACC
y el resultado se obtiene en el ACC. El ACC no
existe en los microcontroladores PIC, que tienen
en cambio el registro W (Working Register), con
características muy parecidas a las del ACC.
El Registro de Estado (STATUS) agrupa los bits indicadores
de las características del resultado de las operaciones
aritméticas y lógicas realizadas en la ALU. Entre estos
indicadores están el signo el resultado (si es positivo o
negativo), si el resultado es cero, si hay acarreo o
préstamo, el tipo de paridad (par o impar) del resultado,
etc. El Contador de Programa (PC: Program Counter) es el
registro de la CPU donde se almacenan direcciones de
instrucciones. Cada vez que la CPU busca una instrucción en
la memoria, el PC se incrementa, apuntando así a la
siguiente instrucción. En un instante de tiempo dado, el PC
contiene la dirección de la instrucción que será ejecutada a
continuación. Las instrucciones de transferencia de control
modifican el valor del PC. El Registro de Direcciones de
Datos (RDD) almacena direcciones de datos situados en la
memoria. Este registro es indispensable para el
direccionamiento indirecto de datos en la memoria. El RDD
toma diferentes nombres según el microcontrolador. En los
PIC, el RDD es el registro FSR (File Select Register).
El Puntero de la Pila (SP: Stack Pointer) es el registro que almacena
direcciones de datos en la pila. En el capítulo 4 se estudian con
detalle la pila y el registro SP. Los microcontroladores PIC carecen
de registro SP. La memoria del microcontrolador es el lugar donde
son almacenadas las instrucciones del programa y los datos que
manipula. En un microcontrolador siempre hay dos tipos de
memoria: la memoria RAM (Random Access Memory) y la memoria
ROM (Read On.ly Memory). La memoria RAM es una memoria de
lectura y escritura, que además es volátil, es decir, pierde la
información almacenada cuando falta la energía que alimenta la
memoria. La memoria ROM es una memoria de solo lectura y no
volátil. Las diferentes tecnologías para realizar las memorias de
solo lectura (ROM, EPROM, EEPROM, OTP, FLASH) se estudian en el
capítulo 3. Tanto la memoria RAM como las memorias ROM son de
acceso aleatorio, pero la costumbre ha dejado el nombre de RAM
para las memorias de lectura y escritura. El término "acceso
aleatorio" se refiere a que el tiempo necesario para localizar un
dato no depende del lugar de la memoria donde esté almacenado.
En las memorias de acceso secuencial, en cambio, cuando más
alejado esté un dato de la posición a la que se ha accedido por
última vez, más se tarda en localizarlo.
La memoria ROM se usa para almacenar
permanentemente el programa que debe
ejecutar el microcontrolador. En la
memoria RAM se almacenan
temporalmente los datos con los que
trabaja el programa. Un número creciente
de microcontroladores dispone de alguna
memoria no volátil de tipo EEPROM para
almacenar datos fijos o que sólo sean
cambiados esporádicamente. La cantidad
de memoria ROM disponible es
normalmente muy superior a la cantidad
de memoria RAM. Esto obedece a dos
razones: la primera es que la gran
mayoría de las aplicaciones requieren
programas que manejan pocos datos;
entonces basta una memoria RAM en la
que se pueda almacenar algunas decenas
de datos. La segunda razón es que la
memoria RAM ocupa mucho más espacio
en el circuito integrado que la memoria
ROM, de modo que es mucho más costosa
que ésta.
La entrada y salida es particularmente
importante en los microcontroladores,
pues a través de ella el microcontrolador
interacciona con el exterior. Forman
parte de la entrada y salida los puertos
paralelo y serie, los temporizadores y la
gestión de las interrupciones. El
microcontrolador puede incluir también
entradas y salidas analógicas asociadas a
convertidores A/D y D / A. Tienen
particular importancia los recursos que
garantizan un funcionamiento seguro del
microcontrolador, como el denominado
perro guardián. Los puertos paralelos se
organizan en grupos de hasta 8 líneas de
entradas y salidas digitales.
Normalmente es posible manipular
individualmente las líneas de los puertos
paralelos. Los puertos serie pueden ser
de varios tipos, según la norma de
comunicación que implementen: RS-
232C, I2C, USB, Ethernet, etc.
Un requisito general para que un microcontrolador se pueda
utilizar en un gran número de aplicaciones es que tenga
muchos recursos de entrada y salida. Este requisito está
relacionado con el número de terminales del circuito
integrado. A la vez se desea tener esos recursos en un
circuito integrado lo más pequeño posible. Si cada bloque de
entrada y salida tuviera terminales exclusivos en el
microcontrolador, posiblemente no alcanzarían los
terminales o habría que fabricar microcontroladores con muy
pocos recursos de entrada y salida, en contra del interés
general. La solución para este problema es que un número
importante de terminales del circuito integrado sean
compartidos por unidades de entrada y salida diferentes. Es
decir, un mismo terminal puede estar conectado
internamente a más de un bloque de entrada y salida. Por
ejemplo, las líneas de entrada y salida de un puerto serie
pueden ser parte de las líneas de un puerto paralelo, etc.
1.5 Componentes del microcontrolador 
1.5.1 Registros
internos.
 Los registros no son localidades de
memoria, están construidos con
FilFlops y son parte del camino de
datos del CPU.
 Casi todas las instrucciones
requieren del uso de un registro y
algunas solo funcionan con un
registro en especifico.
 La lectura y escritura de los
registros es lo más rápido en un
procesador
1.5.2 Tipos y distribución de las
memorias internas.
● Flash/ROM: Puede usarse para almacenar tanto código
como datos. Se puede acceder tanto por bytes como por
palabras. Usualmente se trabaja como memoria de solo
lectura. No es volátil
● RAM: Aunque puede usarse tanto para código como para
datos, es raro usarla para código. Es volátil y al arrancar el
programa tiene valor aleatorios, por lo que debe asignarse
un valor inicial a las variables en RAM.
1.5.3 periféricos

Los periféricos se encuentran mapeados en memoria, por lo que no se requiere


instrucciones especiales para acceder a ellos.
● La mayoría de los registros de los periféricos se encuentra en el rango de 0100h
a 01FFh y solo se pueden acceder con instrucciones de 16 bits
● Registros de función especial - de 0000h a 000Fh. Solo se pueden acceder con
instrucciones de 8 bits. Ver hoja de datos MSP430G2553
1.5.4 INSTRUCCIONES DEL
MICROCONTROLADOR
 CLRWDT Pone a 0 el temporizador Watchdog.
 OPTION El contenido del acumulador se envía al registro
 OPTION SLEEP Pone el microcontrolador en SLEEP (dormir) para reducir el
consumo
 TRIS f El contenido del acumulador determina las Entradas Salidas el Puerto f.
 Ejemplo:
 Portbequ0x06
 MOVLW b’00000000’
 TRISPort; Todo el Puerto B como salidas
1.5.5 Distribución de terminales
Patas 1, 2, 3, 17 y 18 (RA0-RA4/TOCKI): Es el PORT A. Corresponden a 5 líneas
bidireccionales de E/S (definidas por programación). Es capaz de entregar niveles TTL
cuando la alimentación aplicada en VDD es de 5V ± 5%. El pin RA4/TOCKI como entrada
puede programarse en funcionamiento normal o como entrada del contador/temporizador
TMR0. Cuando este pin se programa como entrada digital, funciona como un disparador de
Schmitt (Schmitt trigger), puede reconocer señales un poco distorsionadas y llevarlas a
niveles lógicos (cero y cinco voltios). Cuando se usa como salida digital se comporta como
colector abierto; por lo tanto se debe poner una resistencia de pull-Up (resistencia externa
conectada a un nivel de cinco voltios, ...no te preocupes, mas abajo lo entenderás mejor).
Como salida, la lógica es inversa: un "0" escrito al pin del puerto entrega a la salida un "1"
lógico. Este pin como salida no puede manejar cargas como fuente, sólo en el modo
sumidero.
Pata 4 (MCLR / Vpp): Es una pata de múltiples aplicaciones, es la entrada de Reset
(master clear) si está a nivel bajo y también es la habilitación de la tensión de
programación cuando se está programando el dispositivo. Cuando su tensión es la de VDD
el PIC funciona normalmente.
Patas 5 y 14 (VSS y VDD): Son respectivamente las patas de masa y alimentación. La
tensión de alimentación de un PIC está comprendida entre 2V y 6V aunque se recomienda
nosobrepasar los 5.5V.

Patas 6, 7, 8, 9, 10, 11, 12, 13 (RB0-RB7): Es el PORT B. Corresponden a ocho líneas


bidireccionales de E/S (definidas por programación). Pueden manejar niveles TTL cuando
la tensión de alimentación aplicada en VDD es de 5V ± 5%. RB0 puede programarse además
como entrada de interrupciones externas INT. Los pines RB4 a RB7 pueden programarse
para responder a interrupciones por cambio de estado. Las patas RB6 y RB7 se
corresponden con las líneas de entrada de reloj y entrada de datos respectivamente,
cuando está en modo programación del integrado.

Patas 15 y 16 (OSC1/CLKIN y OSC2/CLKOUT): Corresponden a los pines de la entrada


externa de reloj y salida de oscilador a cristal respectivamente.
1.5.6 Reset y sus posibles fuentes
  Reset de Power-on. El MCU se resetea cuando el voltaje de suministro está debajo del
umbral de Power-on (VPOT).
 • Reset externo. El MCU se resetea cuando un nivel bajo está presente en el pin de
RESET durante más de 50 ns.
 • Reset del Watchdog. El MCU se resetea cuando el periodo del timer watchdog expira y
el watchdog está habilitado.
 Durante el reset, todos los registros de I/O se ponen a sus valores iniciales y el
programa empieza su ejecución desde la dirección $000. La instrucción puesta en la
dirección $000 debe ser la instrucción RJMP (salto relativo) a la rutina de manejo de
Reset. Si el programa nunca habilita una fuente de la interrupción, los vectores de
interrupción no se usan y el código de programa regular puede ponerse en estas
posiciones. El diagrama del circuito en la siguiente figura muestra la lógica de Reset.
La Tabla que se muestra a continuación define la temporización y los parámetros
eléctricos de la circuitería de Reset.
Fuentes de
alimentación:
 Dentro de la electrónica la fuente de
alimentación es la pieza
fundamental en un equipo o
dispositivo eléctrico (computadores,
impresoras, lavadoras). Estas tienen
la única función de recibir la corriente
alterna que entra de las tomas y
convertirla en energía continua para
alimentar a los circuitos eléctricos que
componen al equipo.
Características de la fuente de alimentación

• Las principales características de una fuente de alimentación son:


• Se encuentran en la gran mayoría de equipos que necesitan gran cantidad de corriente
eléctrica.
• Algunos cuentan con un regulador de corriente para evitar picos de corriente que generen
facturas costosas.
• Existen gran cantidad de mercas que producen fuentes de poder así que es muy fácil
acceder a una de ellas
• Los equipos cuando sufren inconvenientes eléctricos mayormente son en la fuente de
alimentación donde reciben más impacto.
• Esta pieza se empezó a descubrir gracias al auge de los “gamers”
• Las mejores fuentes de poder cuentan un regulador de electricidad, reductor de consumo
eléctrico, protector de voltaje, un sistema de almacenamiento de carga eléctrica pequeño
para seguir usando el equipo y solo se encuentra en el mercado de ordenadores.
Consumo de potencia del
Microcontrolador
El PIC16C84 está fabricado en tecnología CMOS, consume
baja potencia, y es completamente estático (si el reloj se
detiene, los datos de la memoria no se pierden). El 16F84
tiene las mismas características pero posee memoria FLASH,
esto hace que tenga menor consumo de energía, y como si
fuera poco tiene mayor capacidad de almacenamiento.

El encapsulado más común para estos microcontrolador es el


DIP (Dual In line Pin) de 18 pines, (el nuestro... ), y utiliza un
reloj de 4 MHz (cristal de cuarzo). Sin embargo, hay otros
tipos de encapsulado, por ejemplo, el encapsulado tipo
surface mount (montaje superficial) es mucho + pequeño.
1.7 Ambiente integrado de desarrollo
(IDE)
Un entorno de desarrollo integrado o IDE (acrónimo en ingles de integrated development
environment), es un programa informático compuesto por un conjunto de herramientas de
programación. Puede dedicarse en exclusiva a un solo lenguaje de programación o bien, poder
utilizarse para varios.
Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación,
es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz
gráfica (GUI).
Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación
tales como C++, PHP, Python, Java, C#, Delphi, Visual Basic, etc. En algunos lenguajes, un IDE
puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje
de programación en forma interactiva, sin necesidad de trabajo orientado a archivos de texto.
Algunos ejemplos de entornos integrados de desarrollo (IDE) son los siguientes:
 Eclipse
 NetBeans
 IntelliJ IDEA
 JBuilder de Borland
 JDeveloper de Oracle
 KDevelop
 Anjunta
 Clarion
 MS Visual Studio
 Visual C++
1.7.1 Ensamblador y compilador.
Ensamblador

Ensamblador se refiere a un tipo de programa, informático que se encarga de traducir un fichero fuente escrito en un lenguaje
ensamblador, a un fichero objeto que contiene código máquina ejecutable directamente por la máquina para la que se ha
generado.La tarea fundamental de un ensamblador es traducir un programa en lenguaje de ensamblador al código
correspondiente en lenguaje de máquina.

Tipos De Ensambladores

Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador
diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido. Ensambladores residentes: Son
aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.

Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina
microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.

Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.

Ensambladores de una fase: leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la
ejecuta si se trata de una

pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.

Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de
símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los
símbolos.
Compilador:
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de
programación a otro lenguaje de programación, generando un programa equivalente que la maquina
será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también
puede ser simplemente texto. Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje
de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de maquina). De esta manera
un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un
ser humano, para luego compilarlo a un programa más manejable por una computadora.
 Fases del compilador

Clasificación De Compiladores
 De una pasada: Examina el código fuente una vez, generando el código o programa objeto.
 Pasadas múltiples: Requiere pasos intermedios para producir código en otro lenguaje y una
pasada final para producir y optimizar el código producido durante pasos anteriores.
 Compiladores incrementales: Generan un código objeto, instrucción por instrucción cuando el
usuario teclea cada orden individual.
 Compilador cruzado: Se genera código en lenguaje objeto para una maquina diferente a la que
se está utilizando para compilar.
 Compilador con montador: Compila distintos módulos de forma independiente y después es
capaz de aplazarlos.
1.7.2 Simulador, debugger y emulador.
 SIMULADOR:

Es un aparato, por lo general informático, que permite la reproducción de un sistema. Los


simuladores reproducen sensaciones y experiencias que en la realidad pueden llegar a suceder.
Un simulador pretende reproducir tanto las sensaciones físicas (velocidad, aceleración, percepción
del entorno) como el comportamiento de los equipos de la máquina que se pretende simular. Para
simular las sensaciones físicas se puede recurrir a complejos mecanismos hidráulicos comandados por
potentes ordenadores que mediante modelos matemáticos consiguen reproducir sensaciones de
velocidad y aceleración. Para reproducir el entorno exterior se emplean proyecciones de bases de
datos de terreno. A este entorno se le conoce como "entorno sintético",

 Los simuladores más complejos son evaluados y cualificados por las autoridades competentes. En el
caso de los simuladores de vuelo la cualificación la realiza la organización de aviación civil de cada
país, que proporciona a cada simulador un código indicando su grado de realismo. En los simuladores
de vuelo de mayor realismo las horas de entrenamiento contabilizan como horas de vuelo reales y
capacitan al piloto para realizar su labor.
 EMULADOR:
Es un software que permite ejecutar programas o videojuegos en una plataforma (sea una
arquitectura de hardware o un sistema operativo) diferente de aquella para la cual
fueron escritos originalmente. A diferencia de un simulador, que solo trata de reproducir
el comportamiento del programa, un emulador trata de modelar de forma precisa el
dispositivo de manera que este funcione como si estuviese siendo usado en el aparato
original.
 DEPURADOR:
(En inglés, debugger), Es un programa usado para probar y depurar (eliminar) los errores de otros
programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar
corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran
potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será
típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo)
procesador. Algunos depuradores ofrecen dos modos de operación - la simulación parcial o
completa, para limitar este impacto.
Si es un depurador de nivel de fuente o depurador simbólico, comúnmente ahora visto en entornos
de desarrollo integrados, cuando el programa "se estrella" o alcanza una condición predefinida, la
depuración típicamente muestra la posición en el código original. Si es un depurador de bajo nivel o
un depurador de lenguaje de máquina, muestra la línea en el fuente desensamblado (a menos que
también tenga acceso en línea al código fuente original y pueda exhibir la sección apropiada del
código del ensamblador o del compilador). Un "estrellamiento" sucede cuando el programa no
puede continuar normalmente debido a un error de programación. Por ejemplo, el programa pudo
haber intentado usar una instrucción no disponible en la versión actual del CPU o haber intentado
tener acceso a memoria protegida o no disponible.
1.7.3 Equipos programadores (downloaders). 
 Un programador es una herramienta hardware que traduce información de un
 determinado lenguaje (hex, ASCII,?) en información que pueda interpretar el
 microcontrolador para el funcionamiento correcto de la placa que utilicemos.
 Características generales
 • Pueden programar distintos tipos de memorias y microcontroladores
 • Conexión serie o paralela según modelos
 • Fácilmente actualizables
 • Permiten testear circuitos integrados
 Programador Universal SCM MP−UNIV
 Programador universal expansible por software
 Soporta una amplia familia de dispositivos programables
 Función de testeo de circuitos integrados digitales
 Convertible en un emulador de ROM mediante un opcional soportando
 memorias de hasta 4Mb
 Advantech Lab TOOL −48
 Programador universal con zócalo ZIF de 48 pines DIP
 Conectado a PC por puerto paralelo
 Software para Windows 95/98/2000/NT
 Fácilmente actualizable mediante Internet
 Gran rapidez de programación (utilizando memoria flash de 8Mb)
 La programación se inicia al insertar el componente en el zócalo
 No necesita adaptadores para componentes en DIP
 Programador De Memoria Y Microcontroladores

 • Es capaz de programar diferentes tipos de memorias como EPROM,


 Flash... y microcontroladores como 8051y sus derivaciones
 • Soporta archivos en formato hexadecimal, binario,etc
 • Programa dispositivos con encapsulados DIP, QFP, LCC y PLCC
 • Incluye conversores de formato
 • Software para Dos y Windows
1.8 Herramientas de desarrollo
 Uno de los factores que más importancia tiene a la hora de seleccionar un
 microcontrolador entre todos los demás es el soporte tanto software como hardware
 de que dispone. Un buen conjunto de herramientas de desarrollo puede ser decisivo
 en la elección, ya que pueden suponer una ayuda inestimable en el desarrollo del
 proyecto.
 Las principales herramientas de ayuda al desarrollo de sistemas basados en
 microcontroladores son:
 Desarrollo del software:
 Ensamblador. La programación en lenguaje ensamblador puede resultar un tanto
 ardua para el principiante, pero permite desarrollar programas muy eficientes, ya
 que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen
 proporcionar el programa ensamblador de forma gratuita y en cualquier caso
 siempre se puede encontrar una versión gratuita para los microcontroladores más
 populares.
 Compilador. La programación en un lenguaje de alto nivel (como el C) permite disminuir el tiempo de
desarrollo de un producto. No obstante, si no se programa con cuidado, el código resultante puede ser
mucho más ineficiente que el programado en ensamblador.
 Las versiones más potentes suelen ser muy caras, aunque para los microcontroladores más populares
pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos.
 Depuración: debido a que los microcontroladores van a controlar dispositivos físicos, los desarrolladores
necesitan herramientas que les permitan comprobar el buen funcionamiento del microcontrolador cuando
es conectado al resto de circuitos.
 Simulador. Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los
simuladores permiten tener un control absoluto sobre la jecución de un programa, siendo ideales para la
depuración de los mismos. Su gran inconveniente es que es difícil simular la entrada y salida de datos del
microcontrolador.
 Tampoco cuentan con los posibles ruidos en las entradas, pero al menos, permiten el 20 paso físico de la
implementación de un modo más seguro y menos costoso, puesto que ahorraremos en grabaciones de chips
para la prueba in-situ.
 Placas de evaluación. Se trata de pequeños sistemas con un microcontrolador ya montado y que
suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el
microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil acceso a los
pines de E/S, etc. El sistema operativo de la placa recibe el nombre de programa monitor. El
programa monitor de algunas placas de evaluación, aparte de permitir cargar programas y datos
en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecución
paso a paso, monitorizar el estado del microcontrolador o modificar los valores almacenados los
registros o en la memoria.
 Emuladores en circuito. Se trata de un instrumento que se coloca entre el PC anfitrión y el
zócalo de la tarjeta de circuito impreso donde se alojará el microcontrolador definitivo. El
programa es ejecutado desde el PC, pero para la tarjeta de aplicación es como si lo hiciese el
mismo microcontrolador que luego irá en el zócalo. Presenta en pantalla toda la información tal
y como luego sucederá cuando se coloque la cápsula.
Bibliografía:
 Microcontroladores Pic; E. Martín Cuenca, J. M. Angulo Usategui, I. Angulo
 Martinéz; Paraninfo, 5ª edición, 2001.
 Microcontroladores: Fundamentos y aplicaciones con PIC; F. E. Valdés Pérez, R.
 Pallás Areny; Alfaomega; 2007.
 Microcontroladores PIC: Diseño práctico de aplicaciones, 2ª parte; J.M. Angulo
 Usategui, S. Romero Yesa, I. Angulo Martínez; McGraw Hill; 2ª edición; 2006.
 https://documents.tips/documents/23-tipos-y-distribucion-de-las-
memoriasinternas.
 Html
 Jeff Duntemann Assembly Language Step-by-Step: Programming with DOS and
Linux, Second Edition John Wiley & Sons © 2000 (613 pages).
 http://www.r-luis.xbot.es/pic1/pic02.html

También podría gustarte