Download Estanislao Ramírez Ruiz

Document related concepts
no text concepts found
Transcript
Instituto Politécnico Nacional
Centro de Estudios Científicos y Tecnológicos
CECyT 3
“Estanislao Ramírez Ruiz “
Proyecto de Titulación:
“Cubo de leds”
Asesores: Ing. Trejo Cárdenas Eduardo
Ing. Armando Herrera Martínez
Integrantes: Sorchini Preciado Rodolfo
Hernández Vázquez Ángel Federico
Resendiz Aguilar Vianey Elizabeth
Técnico en Sistemas Digitales
6IV10
[Escribir texto]
INDICE :
Agradecimientos
Justificación
Introducción:
1.0
Introducción a la electrónica
2.0
Historia de la electrónica
3.0
Señales electrónicas
4.0
Elementos Electrónicos
5.0
Sistemas Digitales y la electrónica
6.0
Funciones digitales básicas
7.0
Estado del arte
8.0
Introducción al micro controlador
9.0
Conjunto de instrucciones
10.0
10.0 Puertos de comunicación
11.0
11.0 Historia del microcontrolador.
12.0
12.0 MICROCONTROLADORES “PIC”
13.0
13.0 CARACTAERISTICAS DEL PIC
14.0
14.0 PIC 16F886
15.0
15.0 SET DE INSTRUCCIONES PIC 16F886
16.0
16.0 Organización de la memoria de datos del PIC16F886
17.0
17.0 El registro de Opciones
[Escribir texto]
18.0
18.0 El registro de Interrupciones INTERRUPCIÓN:
19.0
19.0 MPLAB
20.0
20.0 Historia del led
21.0
21.0 Funcionamiento básico del led22.0 LED RGB
22.0
22.0 Código de programación.
Aplicación del proyecto
Conclusión
Referencias
[Escribir texto]
Agradecimientos
A mis profesores ya que sin su ayuda para aplicar los
conocimientos además de su asesoramiento para la mejoría del
proyecto a mis padres por su compromiso conmigo su apoyo
económico pero sobre todo su apoyo emocional.
A todas las personas que colaboraron para llevar esto a cabo de
inicio a fin y sobre todo a esas personas que a pesar de los fallos
nunca dudaron de su funcionamiento.
A todos ustedes les damos las gracias por su apoyo
incondicional, ya que sin sus ánimos y consejos esto no se
podría haberse realizado.
Justificación
[Escribir texto]
A lo largo de la estancia en el plantel, se han adquirido conocimientos
tanto tecnológicos como humanísticos.
Este proyecto pretende aplicar todos aquellos conocimientos
adquiridos en especifico por la carrera técnica que tenemos
ejerciendo, es decir todo aquello que aprendimos a lo largo de estos
años será aplicado de una manera que demuestre que nuestros
conocimientos están aptos para aplicarlos en la industria y a
problemas reales en un entorno laboral e industrial.
Asesorados por maestros y colegas demostraremos el nivel de
aprendizaje para poderlo aplicar en un campo de competencia, en un
ámbito laboral y entonces podernos titular como Técnicos en
sistemas digitales.
INTRODUCCIÓN
Este documento explicara de manera concisa asi como mostrara los
pasos seguidos para la realización del “cubo de leds”
[Escribir texto]
Se integraran desde los conocimientos pasados adquiridos en
materias tecnológicas como materias humanísticas para explicar el
impacto en la industria.
También se pretende de maneras breves dar una introducción a todos
los recursos y materias aplicadas, el desarrollo de software, el diseño
físico, los procesos a llevarse a cabo.
Este trabajo tiene la finalidad de resumir toda la carrera técnica por la
que hemos pasado, para llegar a este producto final.
Se trata de explicar desde una perspectiva personal, el impacto en una
perspectiva industrial, preparando técnicos que resolverán los
problemas reales de la industria en los próximos años.
1.0 Introducción a la electrónica
La electrónica es el conjunto de componentes que trabajan con
voltajes mínimos ( de mini volts a 18 volts) utilizados para manipular el
flujo de electrones que correrán por ciertos circuitos.
Estos circuitos se logran manejar, por medio de distintos elementos y
materiales es decir, se crea un entorno por el cual pueda circular los
[Escribir texto]
electrones de manera conveniente para nosotros y nuestra causa, así
llamados circuitos electrónicos.
Los circuitos por su naturaleza de bajo voltaje y por lo tanto poca
potencia mecánica están diseñados para la recepción,
almacenamiento y emisión de señales digitales.
La electrónica se ha tenido que ir renovando, mejorando para las
nuevas exigencias de las generaciones, es decir a medida de que
nosotros evolucionamos tenemos la necesidad de modificar nuestro
entorno para cubrir nuestras actividades diarias. Por eso la tecnología
a acelerado de manera impactante con la finalidad de saciar nuestras
necesidades.
Una de las dudas mas frecuentes en la sociedad es ¿cuál es la
diferencia entre la electrónica y la eléctrica ?
Bien para responder eso necesitamos las dos definiciones como tal de
cada una:
Electrónica: Utiliza los fenómenos eléctricos para trasladar
información audible, visual, etc., esta se canaliza a través de una
corriente eléctrica a base de cambios en sus características los cuales
se codifican, estos pueden ser amperaje, voltaje, frecuencia, fase, etc.
Cuando el amperaje o el voltaje se alteran de forma controlada para
conducir en forma codificada cierta información reciben el nombre de
señales.
Eléctrico: Un circuito eléctrico es una interconexión de elementos
eléctricos como resistencias, inductores, capacitores, líneas de
transmisión, fuentes de voltaje, fuentes de corriente e interruptores.
Un circuito eléctricos es una red que tiene un bucle cerrado, dando un
camino de retorno para la corriente.
Los circuitos eléctricos pueden ser analizados por métodos
algebraicos.
[Escribir texto]
Sabiendo esto podemos concluir entonces que los circuitos
electrónicos se componen de elementos mas pequeños y de menos
voltaje por lo tanto de nulo potencial mecánico, sin embargo con toda
la capacidad de producir y recibir las señales digitales, es decir la
electrónica maneja el flujo microscópico de electrones, mientras que lo
eléctrico maneja mas voltaje porque su finalidad es más luminosa,
mecánica, de trabajo.
Es decir la electrónica se utiliza para trabajos mas “discretos” que
requieren de mas elaboración debido a las señales utilizada en ella,
mientras que lo eléctrico se encarga de las instalaciones más físicas
utilizando mucho mas voltaje, ya que se requiere de una fuerza y
trabajo mucha mas grande.
2.0 HISTORIA DE LA ELECTRONICA
Nacimiento de la electrónica:
Como hacia el fin de siglo XIX ya se había inventado el micrófono, que
transforma una señal acústica en una eléctrica. Por otro lado, ya se
había inventado el audífono, aparato que transforma una señal
eléctrica en una acústica. En este sistema las voces se distorsionaban
mucho, la energía con que se emitía la onda era muy pequeña.
Además, el hecho de que la fracción de energía que llegaba al
receptor era muy pequeña, hacía difícil su funcionamiento para
distancias grandes. La solución más satisfactoria fue lograda una vez
que se inventó el tubo al vacío.
[Escribir texto]
Desde el siglo XVIII algunos investigadores habían descubierto que si
se calienta una superficie metálica, ésta emite cargas eléctricas. Sin
embargo, fue Thomas A. Edison quien volvió a "desenterrar" este
efecto en 1883, cuando trataba de mejorar su lámpara incandescente.
Este efecto, que se llamó "efecto Edison", también recibe el nombre de
termiónico. Fue el mismo Edison quien inventó un dispositivo en el
cual la carga eléctrica emitida por la superficie metálica caliente
(llamada cátodo) es recogida por otra superficie fría (llamada ánodo),
lográndose de esta forma una corriente eléctrica. En la figura 1 se
muestra cómo Edison construyó su dispositivo. Edison encerró los dos
electrodos, el ánodo y el cátodo, dentro de un tubo de vidrio al vacío
que también utilizaba para elaborar sus lámparas de iluminación.
Por otro lado, en el año de 1897 el físico inglés J. J. Thomson (18561940) descubrió la existencia de una partícula eléctricamente cargada,
el electrón. Thomson demostró experimentalmente que el electrón
tenía carga eléctrica negativa. En el año de 1906 Thomson recibió el
Premio Nóbel de Física por su descubrimiento.
En 1899 J.J. Thomson estableció que las cargas que se liberaban al
calentar la superficie metálica eran electrones.
En 1903 el físico británico John Ambrose Fleming (1849-1945) fue el
primero en encontrar una aplicación práctica del efecto Edison.
Fleming era asesor de una compañía telegráfica y le habían
encomendado la tarea de encontrar un mejor detector de ondas
electromagnéticas. L a compañía utilizó como detector de ondas un
cohesor, no muy eficaz. A partir de 1900, en algunos diseños de
receptores, se usaban cristales de galena o de pirita de hierro como
detectores que por cierto fueron las primeras componentes de estado
sólido empleadas en electrónica. Fleming recordó su trabajo anterior
sobre el efecto Edison, y encontró una solución en este tipo de
lámpara eléctrica.
El avance más importante en el desarrollo de la electrónica fue dado
por el físico estadounidense Lee de Forest (1873-1961), en 1906, al
introducir en el tubo al vacío un tercer electrodo reticulado, llamado
rejilla, que permite el paso de electrones. Esta rejilla se coloca entre el
[Escribir texto]
cátodo y el ánodo, como se ve en la figura 2. De Forest llamó a su
dispositivo audión, aunque más tarde se le llamó tríodo. Tuvo que
trabajar con diferentes dispositivos antes de conseguir el tríodo. El
tríodo lo hace incorporar la señal y amplificar su intensidad.
A partir de 1907, hasta 1912, De Forest trabajó en el diseño de un
sistema de radio, muy rústico, el cual trató de vender a los aficionados
de la radio y a las fuerzas armadas. También formó una compañía
para poder competir con la ATT en comunicaciones de larga distancia.
Su radio podía transmitir y recibir voces, pero no pudo conseguir que
sus triodos amplificaran en forma confiable.
Hacia 1912 De Forest había alcanzado cierto control en el
comportamiento del tríodo. Redujo la amplificación(el voltaje de la
batería del ánodo). Esta reducción la compensó conectando varios
triodos.
Así construyó un amplificador, De Forest propuso su venta a la ATT.
Cuando De Forest hizo la demostración de su amplificador a la ATT en
octubre de 1912, los físicos de la empresa, Harold D. Arnold, Frank
Jewett y Edwin Colpitts inmediatamente se percataron de que ese
sistema era lo que buscaban.
Dirigido por Arnold, la ATT inició un proyecto de investigación para
entender y dominar los principios físicos del funcionamiento del tríodo
y así poder construirlo eficazmente. En el transcurso de dos años
Arnold y un grupo de 25 investigadores y asistentes de la ATT
transformaron el débil y no muy confiable audión, en un amplificador
muy potente y seguro. El tríodo así mejorado hizo posible que el
servicio telefónico abarcara de costa a costa a Estados Unidos.
Otras compañías hicieron progresos significativos y la electrónica con
tubos al vacío se desarrolló de manera impresionante de 1912 a 1932.
Durante la primera Guerra Mundial se usó mucho la radio y se
construyeron tubos al vacío en grandes cantidades. Se utilizaron en
1915, en la radiotelefonía trasatlántica, para comunicar a Francia y
Estados Unidos.
[Escribir texto]
A principios de la década de 1930 se construyeron tubos al vacío con
más elementos entre el cátodo y el ánodo; éstos fueron el tetrodo, el
pentodo.
3.0 SEÑALES ELECTRONICAS
Es la representación de un fenómeno físico o estado material a través
de una relación establecida; las entradas y salidas de un sistema
electrónico serán señales variables.
En electrónica se trabaja con variables que toman la forma
de Tensión o corriente estas se pueden denominar comúnmente
señales.Las señales primordialmente pueden ser de dos tipos:
Variable analógica–Son aquellas que pueden tomar un número
infinito de valores comprendidos entre dos límites. La mayoría de
los fenómenos de la vida real dan señales de este tipo. (presión,
temperatura, etc.)
 Variable digital– También llamadas variables discretas,
entendiéndose por estas, las variables que pueden tomar un
número finito de valores. Por ser de fácil realización los
componentes físicos con dos estados diferenciados, es este el
número de valores utilizado para dichas variables, que por lo tanto

[Escribir texto]
son binarias. Siendo estas variables más fáciles de tratar (en lógica
serían los valores V y F) son los que generalmente se utilizan para
relacionar varias variables entre sí y con sus estados anteriores
4.0 ELEMENTOS DE LA ELECTRONICA
Dispositivos analógicos
 Amplificador operacional: amplificación, regulación, conversión
de señal, conmutación.
 condensador: almacenamiento de energía, filtrado,
adaptación impedancias.
 Diodo: rectificación de señales, regulación, multiplicador de
tensión.
 Diodo Zener: regulación de tensiones.
 Inductor: adaptación de impedancias.
 Potenciómetro: variación de la corriente eléctrica o la tensión.
 Relé: apertura o cierre de circuitos mediante señales de control.
 Resistor o Resistencia: división de intensidad o tensión,
limitación de intensidad.
 Transistor: amplificación, conmutación.
Dispositivos digitales
 Biestable: control de sistemas secuenciales.
 Memoria: almacenamiento digital de datos.
 Microcontrolador: control de sistemas digitales.
 Puerta lógica: control de sistemas combinacionales.
[Escribir texto]
Dispositivos de potencia
 DIAC: control de potencia.
 Fusible: protección contra sobre-intensidades.
 Tiristor: control de potencia.
 Transformador: elevar o disminuir tensiones, intensidades,
e impedancia aparente.
 Triac: control de potencia.
 Varistor: protección contra sobre-tensiones.
Ejemplo aplicación circuitos digitales.
5.0 SISTEMAS DIGITALES Y LA ELECTRONICA
Bien, empezaremos por definir que son los sistemas digitales y de que
manera se entrelaza con la electrónica.
[Escribir texto]
Los sistemas digitales son el grupo de elementos y dispositivos de
mínimo voltaje destinados a la recepción y emisión de señales
digitales, que estas a su vez manipulen información ya sea física o no
Están compuestos de circuitos digitales, los cuales son los elementos
y escenarios así como complementos para ambientar y facilitar el
paso de los micro electrones para poder conseguir asi la finalidad con
que fue creado el circuito
Estos sistemas también implica la aplicación de el algebra puesto que
mas que nada estos circuitos únicamente se basan en un lenguaje
numérico de entrada nuestro código binario, utilizado como el método
de instrucción y envió de información.
Entonces llegamos a la siguiente cuestión ¿ cómo funciona el código
binario ?
Empecemos por saber que es el código binario:
El sistema binario o sistema de numeración de base dos, es un
lenguaje utilizado en electrónica digital. En una computadora, una
persona interactua con una máquina, y ésta interpreta en su base,
únicamente código binario, por más que el usuario esté usando un
Mouse. Si en una máquina sólo interpreta, digamos “unos y ceros”,
que en realidad no sabe la máquina lo que es un uno o un cero sino
que todo es dos estados; originariamente: “pasa” o “no pasa” corriente,
aunque ahora se utilizan distintas señales como se dijo, por ejemplo lo
que interpretamos como “1” puede ser 5 volteos y lo que interpretamos
como “0” pueden ser 3 volteos. La pregunta es: ¿cómo le expreso a
una máquina el número 3? Agrupando unos y ceros. Obviamente
cuantos más valores binarios agrupemos, más números humanos se
podrán representar, y también letras; ya que deduzca que los números
que utilizamos son 10 (diez) números que al ir cambiando su orden y
cantidad, hacemos números más extensos, y lo mismo ocurre con las
letras.
Entonces para comenzar ya podemos saber que:
Para representar del 0 al 1 necesito 1 bit;
Para representar del 0 al 3 necesito 2 bit;
Para representar del 0 al 7 necesito 3 bit;
[Escribir texto]
6.0 FUNCIONES DIGITALES BASICAS
COMPUERTAS LÓGICAS
Un computador digital, como su nombre lo indica, es un sistema digital
que realiza diversas operaciones de cómputo. La palabra Digital
implica que la información que se representa en el computador por
medio de variables que toman un número limitado de valoresViscretos
o cuantizados. Estos valores son procesados íntemamente por
componentes que pueden mantener un número limitado de estados
discretos. Los dígitos decimales por ejemplo, proporcionan 10 valores
discretos ( 0 .. 9 ). Como sabemos en la práctica, los computadores
funcionan más confiablemente si sólo utilizan dos estados
equiprobables. Debido al hecho que los componentes electrónicos
atienden a dos estados ( encendido / apagado ) y que la lógica
humana tiende a ser binaria ( esto es, cierto o falsa, si o no ) se utiliza
el sistema binario y se dice que son binarias.
Los computadores digitales utilizan el sistema de números binarios,
que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. ' La
infonnación está representada en los computadores digitales en
grupos de bits. Utilizando diversas técnicas de codificación los grupos
de bits pueden hacerse que representen no solamente números
binarios sino también otros símbolos discretos cualesquiera, tales
como dígitos decimales o letras de alfabeto. Utilizando arreglos
binarios y diversas técnicas de codificación, los dígitos binarios o
grupos de bits pueden utilizarse para desarrollar conjuntos completos
de instrucciones para realizar diversos tipos de cálculos.
La información binaria se representa en un sistema digital por
cantidades físicas denominadas señales, Las señales eléctricas tales
como voltajes existen a través del sistema digital en cualquiera de dos
[Escribir texto]
valores reconocibles y representan un a variable binaria igual a 1 o 0.
Por ejemplo, un sistema digital particular puede emplear una señal de
3 [volts 1 para representar el binario "I" y 0.5 [volts 1 para el binario
"0". La siguiente ilustración muestra un ejemplo de una señal binaria.
Como se muestra en la figura, cada valor binario tiene una desviación
aceptable del valor nominal. La región íntermedia entre las dos
regiones permitidas se cruza solamente durante la transición de
estado. Los terminales de entrada de un circuito digital aceptan
señales binarias dentro de las tolerancias permitidas y los circuitos
responden en los terminales de salida con señales binarias que caen
dentro de las tolerancias permitidas.
La lógica binaria tiene que ver con variables binarias y con
operaciones que toman un sentido lógico. Es utilizada para escribir, en
forma algebraica o tabular. La manipulación y. procesamiento de
información binaria. La manipulación de información binaria se hace
por circuitos lógico que se denominan Compuertas.
Las compuertas son bloques del hardware que producen señales del
binario 1 ó 0 cuando se satisfacen los requisitos de entrada lógica. Las
diversas compuertas lógicas se encuentran comúnmente en sistemas
de computadores digitales. Cada compuerta tiene un símbolo gráfico
diferente y su operación puede describirse por medio de una función
algebraica. Las relaciones entrada - salida de las variables binarias
para cada compuerta pueden representarse en forma tabular en una
tabla de verdad.
A continuación se detallan los nombres, símbolos, gráficos, funciones
algebraicas, y tablas de verdad de ocho compuertas.
[Escribir texto]
Compuerta AND:
Cada compuerta tiene una o dos variables de entrada designadas por
A y B y una salida binaria designada por x. La compuerta AND produce
la unión lógica AND: esto es: la salida es 1 si la entrada A y la entrada
B están ambas en el binario 1: de otra manera, la salida es 0. Estas
condiciones también son especificadas en la tabla de verdad para la
compuerta AND. La tabla muestra que la salida x es 1 solamente
cuando ambas entradas A y B están en 1 . El símbolo de operación
algebraico de la función AND es el mismo que el símbolo de la
multiplicación de la aritmética ordinaria (*). Podemos utilizar o un punto
entre las variables o concatenar las variables sin ningún símbolo de
operación entre ellas. Las compuertas AND pueden tener más de dos
entradas y por definición, la salida es 1 si cualquier entrada es 1.
Compuerta OR:
La compuerta OR produce la función OR inclusiva, esto es, la salida
es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra
manera, la salida es 0. El símbolo algebraico de la función OR (+),
similar a la operación de aritmética de suma. Las compuertas OR
pueden tener más de dos entradas y por definición la salida es 1 si
cualquier entrada es 1.
Compuerta NOT (Inversor):
El circuito inversor invierte el sentido lógico de una señal binaria.
Produce el NOT,. o función complemento. El símbolo algebraico
utilizado para el complemento es una barra sobra el símbolo de la
variable binaria. Si la variable binaria posee un valor 0, la compuerta
NOT cambia su estado al valor 1 y viceversa. El círculo pequeño en la
salida de un símbolo gráfico de un inversor designa un complemento
lógico. Es decir cambia los valores binarios 1 a 0 y viceversa.
Compuerta Separador:
[Escribir texto]
Un símbolo triángulo por sí mismo designa un circuito separador no
produce ninguna función lógica particular puesto que el valor binario
de la salida es el mismo de la entrada. Este circuito se utiliza
simplemente para amplificación de la señal. Por ejemplo, un separador
que utiliza i volt para el binario 1 producirá una salida de 3 volt cuando
la entrada es 3 volt. Sin embargo, la corriente suministrada en la
entrada es mucho más pequeña que la corriente producida en la
salida. De ésta manera, un separador puede excitar muchas otras
compuertas que requieren una cantidad mayor de corriente que de
otra manera no se encontraría en la pequeña cantidad de corriente
aplicada a la entrada del separador.
Compuerta NAND:
Es el complemento de la función AND, como se indica por el símbolo
gráfico que consiste en un símbolo gráfico AND seguido por un
pequeño círculo. La designación NAND se deriva de la abreviación
NOT - AND. Una designación más adecuada habría sido AND invertido
puesto que Es la función AND la que se ha invertido.
Compuerta NOR:
La compuerta NOR es el complemento de la compuerta OR y utiliza un
símbolo gráfico OR seguido de un círculo pequeño. Tanto las
compuertas NAND como la NOR pueden tener más de dos entradas, y
la salida es siempre el complemento de las funciones AND u OR,
respectivamente.
Compuerta OR exclusivo (XOR):
La compuerta OR exclusiva tiene un símbolo gráfico similar a la
compuerta OR excepto por una línea adicional curva en el lado de la
entrada. La salida de esta compuerta es 1 si cada entrada es 1 pero
excluye la combinación cuando las dos entradas son 1. La función OR
[Escribir texto]
exclusivo tiene su propio símbolo gráfico o puede expresarse en
términos de operaciones complementarias AND, OR .
Compuerta NOR exclusivo (XOR):
El NOR exclusivo como se indica por el círculo pequeño en el símbolo
gráfico. La salida de ésta compuerta es 1 solamente si ambas
entradas son tienen el mismo valor binario. Nosotros nos referiremos a
la función NOR exclusivo como la función de equivalencia. Puesto que
las funciones OR exclusivo y funciones de equivalencia no son
siempre el complemento la una de la otra. Un nombre más adecuado
para la operación OR exclusivo sería la de una función impar; esto es,
la salida es 1 si un número impar de entrada es 1. Así en una función
OR (impar) exclusiva de tres entradas, la salida es 1 si solamente la
entrada es 1 o si todas las entradas son 1. La función de equivalencia
es una función par; esto es, su salida es 1 si un número par de
entradas es 0. Para un función de equivalencia de tres entradas, la
salida es 1 si ninauna de las entradas son 0 ( todas las entradas son
1 ) o si dos de las entradas son 0 ( una entrada es 1 Una investigación
cuidadosa revelará que el OR exclusivo y las funciones de
equivalencia son el complemento la una de la otra cuando las
compuertas tienen un número par de entradas, pero las dos funciones
son iguales cuando el número de entradas es impar. Estas dos
compuertas están comúnmente disponibles con dos entradas y
solamente en forma rara se encuentran con tres o más entradas.
[Escribir texto]
[Escribir texto]
7.0 ESTADO DEL ARTE
*circuitos lógicos secuenciales y combinatorios
Se comprenderá las compuertas básicas asi como lós
conocimientos básicos
[Escribir texto]
*arquitectura de microprocessadores
La base de conocimientos de la arquitectura del
microprocesador, asi como el software de lenguaje
ensamblador para el programado del PIC.
*microelectronica programable
Se refuerza los conocimientos ya adquiridos Del
microcontrolador y su software de aplicación
*software ( Proteus, ISIS)
Este software se utiliza para el diseño y distribución de
todos los elementos en tabla fenolica, es decir la plantilla de
líneas e interconexionesentre componentes.
8.0 INTRODUCCION AL MICROCONTROLADOR
El microcontrolador será el elemento principal con el que
desarrollaremos el proyecto, ya que con este controlaremos todas las
funciones y movimientos de dicho proyecto.
Para poder entender mas adelante las pasos a seguir hay que
entender primero que es un microcontrolador. Bien un
microcontrolador es un circuito integrado programable, capaz de
ejecutar las órdenes grabadas en su memoria. Está compuesto de
varios bloques funcionales, los cuales cumplen una tarea específica.
Un microcontrolador incluye en su interior las tres principales unidades
funcionales de una computadora: unidad central de
procesamiento, memoria y periféricos deentrada/salida.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y
,funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz,
con un consumo de baja potencia (mW o microvatios). Por lo general,
tendrá la capacidad para mantener la funcionalidad a la espera de un
evento como pulsar un botón o de otra interrupción, el consumo de
energía durante el sueño (reloj de la CPU y los periférico de la
mayoría) puede ser sólo nanovatios, lo que hace que muchos de ellos
muy adecuados para aplicaciones con batería de larga duración. Otros
microcontroladores pueden servir para roles de rendimiento crítico,
[Escribir texto]
donde sea necesario actuar más como un procesador digital de
señal (DSP), con velocidades de reloj y consumo de energía más
altos.
Al ser fabricados, la memoria ROM del microcontrolador no posee
datos. Para que pueda controlar algún proceso es necesario generar o
crear y luego grabar en la EEPROM o equivalente del
microcontrolador algún programa, el cual puede ser escrito
en lenguaje ensamblador u otro lenguaje para microcontroladores; sin
embargo, para que el programa pueda ser grabado en la memoria del
microcontrolador, debe ser codificado en sistema numérico
hexadecimal que es finalmente el sistema que hace trabajar al
microcontrolador cuando éste es alimentado con el voltaje adecuado y
asociado a dispositivos analógicos y discretos para su funcionamiento.
Registros
Son un espacio de memoria muy reducido pero necesario para
cualquier microprocesador, de aquí se toman los datos para varias
operaciones que debe realizar el resto de los circuitos del procesador.
Los registros sirven para almacenar los resultados de la ejecución de
instrucciones, cargar datos desde la memoria externa o almacenarlos
en ella.
Aunque la importancia de los registros parezca trivial, no lo es en
absoluto. De hecho una parte de los registros, la destinada a los datos,
es la que determina uno de los parámetros más importantes de
cualquier microprocesador. Cuando escuchamos que un procesador
es de 4, 8, 16, 32 o 64 bits, nos estamos refiriendo a procesadores
que realizan sus operaciones con registros de datos de ese tamaño, y
por supuesto, esto determina muchas de las potencialidades de estas
máquinas.
Mientras mayor sea el número de bits de los registros de datos del
procesador, mayores serán sus prestaciones, en cuanto a poder de
cómputo y velocidad de ejecución, ya que este parámetro determina la
potencia que se puede incorporar al resto de los componentes del
sistema, por ejemplo, no tiene sentido tener una ALU de 16 bits en un
procesador de 8 bits.
Por otro lado un procesador de 16 bits, puede que haga una suma de
16 bits en un solo ciclo de máquina, mientras que uno de 8 bits deberá
[Escribir texto]
ejecutar varias instrucciones antes de tener el resultado, aun cuando
ambos procesadores tengan la misma velocidad de ejecución para sus
instrucciones. El procesador de 16 bits será más rápido porque puede
hacer el mismo tipo de tareas que uno de 8 bits, en menos tiempo.
Unidad de control
Esta unidad es de las más importantes en el procesador, en ella recae
la lógica necesaria para la decodificación y ejecución de las
instrucciones, el control de los registros, la ALU, los buses y cuanta
cosa más se quiera meter en el procesador.
La unidad de control es uno de los elementos fundamentales que
determinan las prestaciones del procesador, ya que su tipo y
estructura, determina parámetros tales como el tipo de conjunto de
instrucciones, velocidad de ejecución, tiempo del ciclo de máquina,
tipo de buses que puede tener el sistema, manejo de interrupciones y
un buen número de cosas más que en cualquier procesador van a
parar a este bloque.
Por supuesto, las unidades de control, son el elemento más complejo
de un procesador y normalmente están divididas en unidades más
pequeñas trabajando de conjunto. La unidad de control agrupa
componentes tales como la unidad de decodificación, unidad de
ejecución, controladores de memoria cache, controladores de buses,
controlador de interrupciones, pipelines, entre otros elementos,
dependiendo siempre del tipo de procesador.
Unidad aritmético-lógica
Como los procesadores son circuitos que hacen básicamente
operaciones lógicas y matemáticas, se le dedica a este proceso una
unidad completa, con cierta independencia. Aquí es donde se realizan
las sumas, restas, y operaciones lógicas típicas del álgebra de Boole.
Actualmente este tipo de unidades ha evolucionado mucho y los
procesadores más modernos tienen varias ALU, especializadas en la
realización de operaciones complejas como las operaciones en coma
flotante. De hecho en muchos casos le han cambiado su nombre por
el de “coprocesador matemático”, aunque este es un término que
surgió para dar nombre a un tipo especial de procesador que se
conecta directamente al procesador más tradicional.
[Escribir texto]
Su impacto en las prestaciones del procesador es también importante
porque, dependiendo de su potencia, tareas más o menos complejas,
pueden hacerse en tiempos muy cortos, como por ejemplo, los
cálculos en coma flotante.
Esto no siempre funciona, puesto que se necesita de un termoresistor
para compensar su registro de memoria, por lo que este termoresistor
se puede sustituir por un transductor se presencia, para que su
memoria de registro no sea complaciente para su velocidad de
registro.
Buses
Son el medio de comunicación que utilizan los diferentes componentes
del procesador para intercambiar información entre sí, eventualmente
los buses o una parte de ellos estarán reflejados en los pines del
encapsulado del procesador.
En el caso de los microcontroladores, no es común que los buses
estén reflejados en el encapsulado del circuito, ya que estos se
destinan básicamente a las E/S de propósito general y periféricos del
sistema.
Existen tres tipos de buses:
Dirección: Se utiliza para seleccionar al dispositivo con el cual se
quiere trabajar o en el caso de las memorias, seleccionar el dato que
se desea leer o escribir.
Datos.
Control: Se utiliza para gestionar los distintos procesos de escritura
lectura y controlar la operación de los dispositivos del sistema.
9.0Conjunto de instrucciones
Aunque no aparezca en el esquema, no podíamos dejar al conjunto o
repertorio de instrucciones fuera de esta fiesta, porque este elemento
determina lo que puede hacer el procesador.
Define las operaciones básicas que puede realizar el procesador, que
conjugadas y organizadas forman lo que conocemos como software.
El conjunto de instrucciones vienen siendo como las letras del
alfabeto, el elemento básico del lenguaje, que organizadas
adecuadamente permiten escribir palabras, oraciones y cuanto
programa se le ocurra.
[Escribir texto]
Existen dos tipos básicos de repertorios de instrucciones, que
determinan la arquitectura del procesador: CISC y RISC.
CISC, del inglés Complex instruction set computing, Computadora de
Conjunto de Instrucciones Complejo. Los microprocesadores CISC
tienen un conjunto de instrucciones que se caracteriza por ser muy
amplio y que permiten realizar operaciones complejas entre operandos
situados en la memoria o en los registros internos. Este tipo de
repertorio dificulta el paralelismo entre instrucciones, por lo que en la
actualidad, la mayoría de los sistemas CISC de alto rendimiento,
convierten las instrucciones complejas en varias instrucciones simples
del tipo RISC, llamadas generalmente microinstrucciones.
Dentro de los microcontroladores CISC podemos encontrar a la
popular familia Intel 8051 y la Z80, aunque actualmente existen
versiones CISC-RISC de estos microcontroladores, que pretenden
aprovechar las ventajas de los procesadores RISC a la vez que se
mantiene la compatibilidad hacia atrás con las instrucciones de tipo
CISC.
RISC, del inglés Reduced Instruction Set Computer, Computadora con
Conjunto de Instrucciones Reducido. Se centra en la obtención de
procesadores con las siguientes características fundamentales:
Instrucciones de tamaño fijo.
Pocas instrucciones.
Sólo las instrucciones de carga y almacenamiento acceden a la
memoria de datos.
Número relativamente elevado de registros de propósito general.
Una de las características más destacables de este tipo de
procesadores es que posibilitan el paralelismo en la ejecución, y
reducen los accesos a memoria. Es por eso que los procesadores más
modernos, tradicionalmente basados en arquitecturas CISC
implementan mecanismos de traducción de instrucciones CISC a
RISC, para aprovechar las ventajas de este tipo de procesadores.
Los procesadores de los microcontroladores PIC son de tipo RISC.
Memoria
[Escribir texto]
Anteriormente habíamos visto que la memoria en los
microcontroladores debe estar ubicada dentro del mismo encapsulado,
esto es así la mayoría de las veces, porque la idea fundamental es
mantener el grueso de los circuitos del sistema dentro de un solo
integrado.
En los microcontroladores la memoria no es abundante, aquí no
encontrará Gigabytes de memoria como en las computadoras
personales. Típicamente la memoria de programas no excederá de 16
K-localizaciones de memoria no volátil (flash o eprom) para contener
los programas.
La memoria RAM está destinada al almacenamiento de información
temporal que será utilizada por el procesador para realizar cálculos u
otro tipo de operaciones lógicas. En el espacio de direcciones de
memoria RAM se ubican además los registros de trabajo del
procesador y los de configuración y trabajo de los distintos periféricos
del microcontrolador. Es por ello que en la mayoría de los casos,
aunque se tenga un espacio de direcciones de un tamaño
determinado, la cantidad de memoria RAM de que dispone el
programador para almacenar sus datos es menor que la que puede
direccionar el procesador.
El tipo de memoria utilizada en las memorias RAM de los
microcontroladores es SRAM, lo que evita tener que implementar
sistemas de refrescamiento como en el caso de las computadoras
personales, que utilizan gran cantidad de memoria, típicamente alguna
tecnología DRAM. A pesar de que la memoria SRAM es más costosa
que la DRAM, es el tipo adecuado para los microcontroladores porque
éstos poseen pequeñas cantidades de memoria RAM.
En el caso de la memoria de programas se utilizan diferentes
tecnologías, y el uso de una u otra depende de las características de
la aplicación a desarrollar, a continuación se describen las cinco
tecnologías existentes, que mayor utilización tienen o han tenido:
Máscara ROM. En este caso no se “graba” el programa en memoria
sino que el microcontrolador se fabrica con el programa, es un proceso
similar al de producción de los CD comerciales mediante
masterización. El costo inicial de producir un circuito de este tipo es
alto, porque el diseño y producción de la máscara es un proceso
costoso, sin embargo, cuando se necesitan varios miles o incluso
[Escribir texto]
cientos de miles de microcontroladores para una aplicación
determinada, como por ejemplo, algún electrodoméstico, el costo
inicial de producción de la máscara y el de fabricación del circuito se
distribuye entre todos los circuitos de la serie y, el costo final de ésta,
es bastante menor que el de sus semejantes con otro tipo de memoria.
Memoria PROM (Programmable Read-Only Memory) también
conocida como OTP (One Time Programmable). Este tipo de memoria,
también es conocida como PROM o simplemente ROM.
Los microcontroladores con memoria OTP se pueden programar una
sola vez, con algún tipo de programador. Se utilizan en sistemas
donde el programa no requiera futuras actualizaciones y para series
relativamente pequeñas, donde la variante de máscara sea muy
costosa, también para sistemas que requieren serialización de datos,
almacenados como constantes en la memoria de programas.
Memoria EPROM (Erasable Programmable Read Only Memory). Los
microcontroladores con este tipo de memoria son muy fáciles de
identificar porque su encapsulado es de cerámica y llevan encima una
ventanita de vidrio desde la cual puede verse la oblea de silicio del
microcontrolador.
Se fabrican así porque la memoria EPROM es reprogramable, pero
antes debe borrase, y para ello hay que exponerla a una fuente de luz
ultravioleta, el proceso de grabación es similar al empleado para las
memorias OTP.
Al aparecer tecnologías menos costosas y más flexibles, como las
memorias EEPROM y FLASH, este tipo de memoria han caído en
desuso, se utilizaban en sistemas que requieren actualizaciones del
programa y para los procesos de desarrollo y puesta a punto.
EEPROM (Electrical Erasable Programmable Read Only Memory).
Fueron el sustituto natural de las memorias EPROM, la diferencia
fundamental es que pueden ser borradas eléctricamente, por lo que la
ventanilla de cristal de cuarzo y los encapsulados cerámicos no son
necesarios.
Al disminuir los costos de los encapsulados, los microcontroladores
con este tipo de memoria se hicieron más baratos y cómodos para
trabajar que sus equivalentes con memoria EPROM.
[Escribir texto]
Otra característica destacable de este tipo de microcontrolador es que
fue en ellos donde comenzaron a utilizarse los sistemas de
programación en el sistema que evitan tener que sacar el
microcontrolador de la tarjeta que lo aloja para hacer actualizaciones
al programa.
Memoria flash. En el campo de las memorias reprogramables para
microcontroladores, son el último avance tecnológico en uso a gran
escala, y han sustituido a los microcontroladores con memoria
EEPROM.
A las ventajas de las memorias flash se le adicionan su gran densidad
respecto a sus predecesoras lo que permite incrementar la cantidad de
memoria de programas a un costo muy bajo. Pueden además ser
programadas con las mismas tensiones de alimentación del
microcontrolador, el acceso en lectura y la velocidad de programación
es superior, disminución de los costos de producción, entre otras.
Lo más habitual es encontrar que la memoria de programas y datos
está ubicada toda dentro del microcontrolador, de hecho, actualmente
son pocos los microcontroladores que permiten conectar memoria de
programas en el exterior del encapsulado. Las razones para estas
“limitaciones” están dadas porque el objetivo fundamental es obtener
la mayor integración posible y conectar memorias externas consume
líneas de E/S que son uno de los recursos más preciados de los
microcontroladores.
A pesar de lo anterior existen familias como la Intel 8051 cuyos
microcontroladores tienen la capacidad de ser expandidos en una
variada gama de configuraciones para el uso de memoria de
programas externa. En el caso de los PIC, estas posibilidades están
limitadas sólo a algunos microcontroladores de la gama alta, la Figura
5 muestra algunas de las configuraciones para memoria de programa
que podemos encontrar en los microcontroladores. La configuración
(a) es la típica y podemos encontrarla casi en el 100% de los
microcontroladores. La configuración (b) es poco frecuente y
generalmente se logra configurando al microcontrolador para sacrificar
la memoria de programas interna, sin embargo el Intel 8031 es un
microcontrolador sin memoria de programas interna. La configuración
(c) es la que se encuentra habitualmente en los microcontroladores
que tienen posibilidades de expandir su memoria de programas como
algunos PIC de gama alta.
[Escribir texto]
Cuando se requiere aumentar la cantidad de memoria de datos, lo
más frecuente es colocar dispositivos de memoria externa en forma de
periféricos, de esta forma se pueden utilizar memorias RAM, FLASH o
incluso discos duros como los de los ordenadores personales,
mientras que para los cálculos y demás operaciones que requieran
almacenamiento temporal de datos se utiliza la memoria RAM interna
del microcontrolador. Esta forma de expandir la memoria de datos está
determinada, en la mayoría de lo casos, por el tipo de repertorio de
instrucciones del procesador y porque permite un elevado número de
configuraciones distintas, además del consiguiente ahorro de líneas de
E/S que se logra con el uso de memorias con buses de comunicación
serie.
Interrupciones
Artículo principal: Interrupción.
Las interrupciones son esencialmente llamadas a subrutina generadas
por los dispositivos físicos, al contrario de las subrutinas normales de
un programa en ejecución. Como el salto de subrutina no es parte del
hilo o secuencia de ejecución programada, el controlador guarda el
estado del procesador en la pila de memoria y entra a ejecutar un
código especial llamado "manejador de interrupciones" que atiende al
periférico específico que generó la interrupción. Al terminar la rutina,
una instrucción especial le indica al procesador el fin de la atención de
la interrupción. En ese momento el controlador restablece el estado
anterior, y el programa que se estaba ejecutando antes de la
interrupción sigue como si nada hubiese pasado. Las rutinas de
atención de interrupciones deben ser lo mas breves posibles para que
el rendimiento del sistema sea satisfactorio, por que normalmente
cuando una interrupción es atendida, todas las demás interrupciones
están en espera.
Imagine que está esperando la visita de un amigo, al que llamaremos
Juan. Usted y Juan han acordado que cuando él llegue a su casa
esperará pacientemente a que le abra la puerta. Juan no debe tocar a
la puerta porque alguien en la casa duerme y no quiere que le
despierten.
Ahora usted ha decidido leer un libro mientras espera a que Juan
llegue a la casa, y para comprobar si ha llegado, cada cierto tiempo
[Escribir texto]
detiene la lectura, marca la página donde se quedó, se levanta y va
hasta la puerta, abre y comprueba si Juan ha llegado, si éste todavía
no está en la puerta, esperará unos minutos, cerrará la puerta y
regresará a su lectura durante algún tiempo.
Como verá este es un método poco eficiente para esperar a Juan
porque requiere que deje la lectura cada cierto tiempo y vaya hasta la
puerta a comprobar si él ha llegado, además debe esperar un rato si
todavía no llega. Y por si fuera poco, imagine que Juan no llega nunca
porque se le presentó un problema, tuvo que cancelar la cita y no pudo
avisarle a tiempo, o peor, que Juan ha llegado a la puerta un instante
después que usted la cerraba. Juan, respetando lo acordado, espera
un tiempo, pero se cansa de esperar a que le abran y decide
marcharse porque cree que ya usted no está en la casa o no puede
atenderlo. A este método de atender la llegada de Juan lo llamaremos
encuesta.
Veamos ahora otro método. En esta ocasión simplemente se recuesta
en el sofá de la sala y comienza a leer su libro, cuando Juan llegue
debe tocar el timbre de la puerta y esperar unos momentos a que le
atiendan. Cuando usted oye sonar el timbre, interrumpe la lectura,
marca la página donde se quedó y va hasta la puerta para atender a la
persona que toca el timbre. Una vez que Juan o la persona que ha
tocado el timbre, se marcha, usted regresa a su asiento y retoma la
lectura justo donde la dejó. Este último es un método más eficiente
que el anterior porque le deja más tiempo para leer y elimina algunos
inconvenientes como el de que Juan nunca llegue o se marche antes
de que usted abra la puerta. Es, en principio, un método simple pero
muy eficaz y eficiente, lo llamaremos atención por interrupción.
El primero de ellos, la encuesta, es un método eficaz, pero poco
eficiente porque requiere realizar lecturas constantes y muchas veces
innecesarias del estado del proceso que queremos atender. Sin
embargo, es muy utilizado en la programación de microcontroladores
porque resulta fácil de aprender, la implementación de código con este
método es menos compleja y no requiere de hardware especial para
llevarla adelante. Por otra parte, la encuesta, tiene muchas
deficiencias que con frecuencia obligan al diseñador a moverse hacia
otros horizontes
El mundo está lleno de situaciones; de las cuales no podemos
determinar ni cuando, ni como ni por qué se producen, en la mayoría
[Escribir texto]
de los casos lo único que podemos hacer es enterarnos de que
determinada situación, asociada a un proceso, ha ocurrido. Para ello
seleccionamos alguna condición o grupo de condiciones que nos
indican que el proceso que nos interesa debe ser atendido, a este
fenómeno, en el cual se dan las condiciones que nos interesa conocer,
lo llamaremos evento. En el segundo ejemplo vemos que para atender
a Juan, éste debe tocar el timbre, por tanto, la llegada de Juan es el
proceso que debemos atender y el sonido del timbre es el evento que
nos indica que Juan ha llegado.
El método de atención a procesos por interrupción, visto desde la
óptica del ejemplo que utilicé para mostrarlo, es más simple que el de
la encuesta, pero no es cierto, el método se complica porque requiere
que el microprocesador incorpore circuitos adicionales para registrar
los eventos que le indican que debe atender al proceso asociado y
comprender estos circuitos y su dinámica no es una tarea sencilla.
Los circuitos para la atención a las interrupciones y todas las tareas
que debe realizar el procesador para atender al proceso que lo
interrumpe son bastante complejos y requieren una visión diferente de
la que estamos acostumbrados a tener de nuestro mundo.
Los seres humanos no estamos conscientes de las interrupciones, en
nuestro organismo existen mecanismos que nos interrumpen
constantemente, para ello tenemos a nuestro sistema sensorial, pero
no somos conscientes del proceso de interrupción, aunque sí de la
atención a las interrupciones. Eso es porque incorporamos
mecanismos que nos sacan rápidamente de la tarea que estemos
haciendo para atender una situación que no puede o no debe esperar
mucho tiempo. Bien, esa misma es la idea que se incorpora en los
microprocesadores para atender procesos que no pueden esperar o
que no sabemos cuando deben ser atendidos porque ello depende de
determinadas condiciones.
La cosa se complica en la secuencia de acciones a realizar desde el
momento en que se desencadena el proceso de interrupción, hasta
que se ejecuta el programa que lo atiende, y en la secuencia de
acciones posteriores a la atención. Piense en cuantas cosas debe
hacer su organismo ante una interrupción, utilicemos el segundo
ejemplo para atender la llegada de Juan. Piense en cuantas cosas su
cerebro hace a espaldas de su conciencia, desde el momento en que
suena el timbre hasta que usted se encuentra listo (consciente de que
[Escribir texto]
es probable que Juan ha llegado) para abrir la puerta, y todo lo que su
cerebro debe trabajar para retomar la lectura después que Juan se ha
marchado. Todo eso, excepto abrir la puerta y atender a Juan, lo
hacemos de forma “inconsciente” porque para ello tenemos sistemas
dedicados en nuestro organismo, pero en el mundo de los
microcontroladores debemos conocer todos esos detalles para poder
utilizar los mecanismos de interrupción.
Los procesos de atención a interrupciones tienen la ventaja de que se
implementan por hardware ubicado en el procesador, así que es un
método rápido de hacer que el procesador se dedique a ejecutar un
programa especial para atender eventos que no pueden esperar por
mecanismos lentos como el de encuesta.
En términos generales, un proceso de interrupción y su atención por
parte del procesador, tiene la siguiente secuencia de acciones:
En el mundo real se produce el evento para el cual queremos que el
procesador ejecute un programa especial, este proceso tiene la
característica de que no puede esperar mucho tiempo antes de ser
atendido o no sabemos en que momento debe ser atendido.
El circuito encargado de detectar la ocurrencia del evento se activa, y
como consecuencia, activa la entrada de interrupción del procesador.
La unidad de control detecta que se ha producido una interrupción y
“levanta” una bandera para registrar esta situación; de esta forma si
las condiciones que provocaron el evento desaparecen y el circuito
encargado de detectarlo desactiva la entrada de interrupción del
procesador, ésta se producirá de cualquier modo, porque ha sido
registrada.
La unidad de ejecución termina con la instrucción en curso y justo
antes de comenzar a ejecutar la siguiente comprueba que se ha
registrado una interrupción
Se desencadena un proceso que permite guardar el estado actual del
programa en ejecución y saltar a una dirección especial de memoria
de programas, donde está la primera instrucción de la subrutina de
atención a interrupción.
Se ejecuta el código de atención a interrupción, esta es la parte
“consciente” de todo el proceso porque es donde se realizan las
[Escribir texto]
acciones propias de la atención a la interrupción y el programador
juega su papel.
Cuando en la subrutina de atención a interrupción se ejecuta la
instrucción de retorno, se desencadena el proceso de restauración del
procesador al estado en que estaba antes de la atención a la
interrupción.
Como podemos observar, el mecanismo de interrupción es bastante
complicado, sin embargo tiene dos ventajas que obligan a su
implementación: la velocidad y su capacidad de ser asíncrono. Ambas
de conjunto permiten que aprovechemos al máximo las capacidades
de trabajo de nuestro procesador.
Los mecanismos de interrupción no solo se utilizan para atender
eventos ligados a procesos que requieren atención inmediata sino que
se utilizan además para atender eventos de procesos asíncronos.
Las interrupciones son tan eficaces que permiten que el procesador
actúe como si estuviese haciendo varias cosas a la vez cuando en
realidad se dedica a la misma rutina de siempre, ejecutar instrucciones
una detrás de la otra.
Periféricos
Cuando observamos la organización básica de un microcontrolador,
señalamos que dentro de este se ubican un conjunto de periféricos,
cuyas salidas están reflejadas en los ojos de juan p. A continuación
describiremos algunos de los periféricos que con mayor frecuencia
encontraremos en los microcontroladores.
Entradas y salidas de propósito general
También conocidos como puertos de E/S, generalmente agrupadas en
puertos de 8 bits de longitud, permiten leer datos del exterior o escribir
en ellos desde el interior del microcontrolador, el destino habitual es el
trabajo con dispositivos simples como relés, LED, o cualquier otra
cosa que se le ocurra al programador.
Algunos puertos de E/S tienen características especiales que le
permiten manejar salidas con determinados requerimientos de
corriente, o incorporan mecanismos especiales de interrupción para el
procesador.
[Escribir texto]
Típicamente cualquier pin de E/S puede ser considerada E/S de
propósito general, pero como los microcontroladores no pueden tener
infinitos pines, ni siquiera todos los pines que queramos, las E/S de
propósito general comparten los pines con otros periféricos. Para usar
un pin con cualquiera de las características a él asignadas debemos
configurarlo mediante los registros destinados a ellos.
Temporizadores y contadores
Son circuitos sincrónicos para el conteo de los pulsos que llegan a su
poder para conseguir la entrada de reloj. Si la fuente de un gran
conteo es el oscilador interno del microcontrolador es común que no
tengan un pin asociado, y en este caso trabajan como temporizadores.
Por otra parte, cuando la fuente de conteo es externa, entonces tienen
asociado un pin configurado como entrada, este es el modo contador.
Los temporizadores son uno de los periféricos más habituales en los
microcontroladores y se utilizan para muchas tareas, como por
ejemplo, la medición de frecuencia, implementación de relojes, para el
trabajo de conjunto con otros periféricos que requieren una base
estable de tiempo entre otras funcionalidades. Es frecuente que un
microcontrolador típico incorpore más de un temporizador/contador e
incluso algunos tienen arreglos de contadores. Como veremos más
adelante este periférico es un elemento casi imprescindible y es
habitual que tengan asociada alguna interrupción. Los tamaños típicos
de los registros de conteo son 8 y 16 bits, pudiendo encontrar
dispositivos que solo tienen temporizadores de un tamaño o con más
frecuencia con ambos tipos de registro de conteo.
Conversor analógico/digital
Como es muy frecuente el trabajo con señales analógicas, éstas
deben ser convertidas a digital y por ello muchos microcontroladores
incorporan un conversor analógico-digital, el cual se utiliza para tomar
datos de varias entradas diferentes que se seleccionan mediante un
multiplexor.
Las resoluciones más frecuentes son 8 y 10 bits, que son suficientes
para aplicaciones sencillas. Para aplicaciones en control e
instrumentación están disponibles resoluciones de 12bit, 16bit y 24bit6
. También es posible conectar un convertidor externo, en caso de
necesidad.
10.0 Puertos de comunicación
[Escribir texto]
Puerto serie
Este periférico está presente en casi cualquier microcontrolador,
normalmente en forma de UART (Universal Asynchronous Receiver
Transmitter) o USART (Universal Synchronous Asynchronous Receiver
Transmitter) dependiendo de si permiten o no el modo sincrónico de
comunicación.
El destino común de este periférico es la comunicación con otro
microcontrolador o con una PC y en la mayoría de los casos hay que
agregar circuitos externos para completar la interfaz de comunicación.
La forma más común de completar el puerto serie es para comunicarlo
con una PC mediante la interfaz EIA-232 (más conocida como RS232), es por ello que muchas personas se refieren a la UART o
USART como puerto serie RS-232, pero esto constituye un error,
puesto que este periférico se puede utilizar para interconectar
dispositivos mediante otros estándares de comunicación. En
aplicaciones industriales se utiliza preferiblemente RS-485 por sus
superior alcance en distancia, velocidad y resistencia al ruido.
SPI
Este tipo de periférico se utiliza para comunicar al microcontrolador
con otros microcontroladores o con periféricos externos conectados a
él, por medio de una interfaz muy sencilla . Hay solo un nodo
controlador que permite iniciar cualquier transacción, lo cual es una
desventaja en sistemas complejos, pero su sencillez permite el
aislamiento galvánico de forma directa por medio de optoacopladores.
I2C
Cumple las mismas funciones que el SPI, pero requiere menos
señales de comunicación y cualquier nodo puede iniciar una
transacción. Es muy utilizado para conectar las tarjetas gráficas de las
computadoras personales con los monitores, para que estos últimos
informen de sus prestaciones y permitir la autoconfiguración del
sistema de vídeo.
USB
Los microcontroladores son los que han permitido la existencia de este
sistema de comunicación. Es un sistema que trabaja por polling
(monitorización) de un conjunto de periféricos inteligentes por parte de
[Escribir texto]
un amo, que es normalmente un computador personal. Cada modo
inteligente está gobernado inevitablemente por un microcontrolador.
Ethernet
Artículo principal: Ethernet.
Es el sistema más extendido en el mundo para redes de área local
cableadas. Los microcontroladores más poderosos de 32 bits se usan
para implementar periféricos lo suficientemente poderosos como para
que puedan ser accesados directamente por la red. Muchos de los
enrutadores caseros de pequeñas empresas están construidos en
base a un microcontrolador que hace del cerebro del sistema.
Can
Este protocolo es del tipo CSMA/CD con tolerancia a elevados voltajes
de modo común y orientado al tiempo real. Este protocolo es el
estándar mas importante en la industria automotriz (OBD). También se
usa como capa física del "field bus" para el control industrial.
Otros puertos de comunicación
Hay una enorme cantidad de otros buses disponibles para la industria
automotriz (linbus) o de medios audiovisuales como el i2s, IEEE 1394.
Es usuario se los encontrará cuando trabaje en algún area
especializada.
Comparadores
Son circuitos analógicos basados en amplificadores operacionales que
tienen la característica de comparar dos señales analógicas y dar
como salida los niveles lógicos ‘0’ o ‘1’ en dependencia del resultado
de la comparación. Es un periférico muy útil para detectar cambios en
señales de entrada de las que solamente nos interesa conocer cuando
está en un rango determinado de webetas
Modulador de ancho de pulsos
Los PWM (Pulse Width Modulator) son periféricos muy útiles sobre
todo para el control de motores, sin embargo hay un grupo de
aplicaciones que pueden realizarse con este periférico, dentro de las
cuales podemos citar: inversión DC/AC para UPS ,conversión digital
analógica D/A, control regulado de luz (dimming) entre otras.
Memoria de datos no volátil
[Escribir texto]
Muchos microcontroladores han incorporado este tipo de memoria
como un periférico más, para el almacenamiento de datos de
configuración o de los procesos que se controlan. Esta memoria es
independiente de la memoria de datos tipo RAM o la memoria de
programas, en la que se almacena el código del programa a ejecutar
por el procesador del microcontrolador.
Muchos de los microcontroladores PIC, incluyen este tipo de memoria,
típicamente en forma de memoria EEPROM, incluso algunos de ellos
permiten utilizar parte de la memoria de programas como memoria de
datos no volátil, por lo que el procesador tiene la capacidad de escribir
en la memoria de programas como si ésta fuese un periférico más.
11.0 Historia del microcontrolador
Ahora teniendo conocimientos de lo que es un microcontrolador,
retomaremos un poco de su historia para alcanzar mejor su
comprensión.
Las circunstancias con las que nos encontramos hoy en el campo de
los microcontroladores tienen sus raíces en el desarrollo de la
tecnología de los circuitos integrados. Este desarrollo ha hecho posible
contener cientos de miles de transistores en un solo chip. Ése era uno
de los requisitos previos para la producción de los microprocesadores,
y las primeras computadoras eran hechas agregando periféricos
externos como la memoria, timers etc. lo que aumentaba el volumen
de los circuitos integrados. Estos circuitos integrados contenían
procesador y periféricos. Así es cómo se desarrollo el primer chip que
contenía una microcomputadora, o lo que después se llegaría a
conocer como un microcontrolador.
En el año 1969, un equipo de ingenieros japoneses de la compañía
BUSICOM llegó a Estados Unidos con una idea, ellos deseaban usar
para sus proyectos pocos circuitos integrados de los que se usaban en
las calculadoras.
La proposición se hizo a INTEL, y Marcian Hoff era el responsable del
proyecto. Ya que él era quien tenia experiencia trabajando con una
computadora (PC) PDP8, se le ocurrió pensar en una solución
fundamentalmente diferente en lugar de la construcción sugerida. Esta
solución presumía que la función del circuito integrado se determinaría
[Escribir texto]
por un programa almacenado en él. Eso significaba que la
configuración sería más simple, pero que requeriría mucho más
memoria de lo que requería el proyecto que propusieron los ingenieros
japoneses.
Después de un tiempo, aunque los ingenieros japoneses probaron
soluciones más fáciles, la idea de Marcian ganó, y el primer
microprocesador nació. Para transformar esta idea en un producto ya
fabricado, Federico Faggin, se unió a
INTEL, y en sólo 9 meses tuvo éxito. INTEL obtuvo los derechos para
vender este "bloque integrado" en 1971. Primero, compraron la
licencia de la compañía BUSICOM, que no tenía idea del tesoro que
poseían. Durante ese año, apareció en el mercado un
microprocesador que se llamó 4004, este fue el primer
microprocesador de 4 bits con velocidad de 6 000 operaciones por
segundo.
No mucho tiempo después de eso, la compañía americana CTC pidió
a INTEL y Texas Instruments que hiciera un microprocesador de 8
bits. Aunque después a CTC no le interesó mas la idea, Intel y Texas
Instruments siguieron trabajando en el microprocesador y el primero
de abril de 1972, el microprocesador de 8 bits aparece en el mercado
con el nombre de 8008. Podía direccionar 16 Kb de memoria, con un
set de 45 instrucciones y una velocidad de 300 000 operaciones por
segundo. Este microprocesador es el predecesor de todos los
microprocesadores de hoy. Intel mantuvo sus desarrollos y saco al
mercado el procesador de 8 bits bajo el nombre 8080, el cual podía
direccionar 64Kb de memoria, con 75 instrucciones, a un precio de
360 dlls.
En otra compañía americana, Motorola, comprendieron rápidamente
lo que estaba sucediendo, así que ellos sacaron al mercado su
microprocesador de 8 bits, el 6800. Su constructor principal era Chuck
Peddle, y junto con el procesador, Motorola fue la primera compañía
en hacer otros periféricos como el 6820 y el 6850. En ese momento
muchas compañías reconocieron importancia de los
microprocesadores y empezaron sus propios desarrollos. Chuck
Peddle abandonó Motorola para unirse a la Tecnología MOS y se
mantuvo trabajando intensamente en el desarrollo de los
microprocesadores.
Un evento muy importante tuvo lugar en la historia de
[Escribir texto]
microprocesadores en una exhibición de WESCON en 1795 en
Estados Unidos. La Tecnología MOS anunció que estaba
comercializando los microprocesadores 6501 y 6502 a 25 dlls. cada
uno, y que los compradores podrían adquirirlos inmediatamente.
Esto era tan extraordinario, que algunas personas creyeron que era
un escándalo, considerando que los competidores estaban vendiendo
el 8080 y el 6800 a 179 dlls. cada uno. Intel y Motorola bajaron sus
precios en el primer día de la exhibición como una respuesta a su
competidor, 69.95 por microprocesador.
Motorola reclama a la Tecnología de MOS y a Chuck Peddle el
haberles copiado su 6800. La Tecnología MOS suspende la
fabricación del 6501, pero siguen produciendo el 6502. Los 6502 eran
microprocesadores de 8 bits, 56 instrucciones y la capacidad de
direccionar 64Kb de memoria directamente. Para reducir el costo, el
6502 se vuelve muy popular, así que se instala en las computadoras
tales como: KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric,
Galeb, Orao, Ultra, y muchas otras. Y muy pronto aparecieron varios
fabricantes del 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, y
Comodore quienes toman la Tecnología MOS) el cual estaba en su
momento de apogeo y se vendía a una velocidad de 15 millones de
procesadores por año. Otros, sin embargo, no se rindieron. Federico
Faggin deja Intel, y empieza su propio Zilog Inc.
En 1976, Zilog anuncia el Z80. Durante la fabricación de este
microprocesador, Faggin toma una decisión giratoria. Sabiendo que ya
se han desarrollado muchos programas para 8080, Faggin sabia que
muchos se quedarían fieles a ese microprocesador. Así que decide
diseñar un nuevo procesador que pueda ser compatible con 8080, o
que sea capaz de desarrollar todos los programas que ya se habían
escrito para el 8080. Además de estas características, se agregaron
muchas otras para que el Z80 fuera un microprocesador muy
poderoso. Podía direccionar 64 Kb de memoria, tenía 176
instrucciones, un gran número de registros, una opción para refresco
de memoria dinámica de la RAM, mayor velocidad de trabajo etc. El
Z80 fue un gran éxito y todos cambiaron del 8080 al Z80. Puede
decirse que el Z80 fue el microprocesador comercializado más
exitoso de ese tiempo. Además de Zilog, también aparecieron otros
nuevos fabricantes como Mostek, NEC, SHARP, y SGS. Z80 estaba
[Escribir texto]
en el corazón de muchas computadoras como en Spectrum, Partner,
TRS703, Z-3 etc.
En 1976, Intel propone una versión mejorada del microprocesador de
8 bits, al cual nombró 8085. Sin embargo, el Z80 era tan bueno que
Intel perdió la batalla. Aunque más procesadores aparecían en el
mercado (6809, 2650, SC/MP etc.), ya todo estaba decidido. Ya no
había grandes mejoras departe de los fabricantes para hacer algo
nuevo, así que el 6502 y el Z80 junto con el 6800 permanecieron como
los representantes principales de los microprocesadores de 8 bits de
ese tiempo.
12.0 MICROCONTROLADORES “PIC”
Ahora que ya sabemos acerca de que es un microcontrolador y nos
hemos embarcado en un poco de su historia nos concentraremos en el
micrcontrolador en especial que nosotros utilizaremos. Llamado PIC
pero como ya nos es cotumbre nos adentraremos un poco en lo que
es el PIC.
Los PIC son una familia de microcontroladores tipo RISC fabricados
por Microchip Technology Inc. y derivados del PIC1650, originalmente
desarrollado por la división de microelectrónica de General Instrument.
El nombre actual no es un acrónimo. En realidad, el nombre completo
es PICmicro, aunque generalmente se utiliza como Peripheral
Interface Controller (controlador de interfaz periférico).
El PIC original se diseñó para ser usado con la nueva CPU de 16 bits
CP16000. Siendo en general una buena CPU, ésta tenía malas
prestaciones de entrada y salida, y el PIC de 8 bits se desarrolló en
1975 para mejorar el rendimiento del sistema quitando peso de E/S a
la CPU. El PIC utilizaba microcódigo simple almacenado en ROM para
realizar estas tareas; y aunque el término no se usaba por aquel
entonces, se trata de un diseño RISC que ejecuta una instrucción cada
4 ciclos del oscilador.
[Escribir texto]
En 1985 la división de microelectrónica de General Instrument se
separa como compañía independiente que es incorporada como filial
(el 14 de diciembre de 1987 cambia el nombre a Microchip Technology
y en 1989 es adquirida por un grupo de inversores) y el nuevo
propietario canceló casi todos los desarrollos, que para esas fechas la
mayoría estaban obsoletos. El PIC, sin embargo, se mejoró con
EPROM para conseguir un controlador de canal programable. Hoy en
día multitud de PICs vienen con varios periféricos incluidos (módulos
de comunicación serie, UARTs, núcleos de control de motores, etc.) y
con memoria de programa desde 512 a 32.000 palabras (una palabra
corresponde a una instrucción en lenguaje ensamblador, y puede ser
de 12, 14, 16 ó 32 bits, dependiendo de la familia específica de
PICmicro).
[Escribir texto]
13.0 CARACTAERISTICAS DEL PIC
Juego de instrucciones y entorno de programación
El PIC usa un juego de instrucciones tipo RISC, cuyo número puede
variar desde 35 para PICs de gama baja a 70 para los de gama alta.
Las instrucciones se clasifican entre las que realizan operaciones
entre el acumulador y una constante, entre el acumulador y una
posición de memoria, instrucciones de condicionamiento y de
salto/retorno, implementación de interrupciones y una para pasar a
modo de bajo consumo llamada sleep.
Microchip proporciona un entorno de desarrollo freeware llamado
MPLAB que incluye un simulador software y un ensamblador. Otras
empresas desarrollan compiladores C y BASIC. Microchip también
vende compiladores para los PICs de gama alta ("C18" para la serie
F18 y "C30" para los dsPICs) y se puede descargar una edición para
estudiantes del C18 que inhabilita algunas opciones después de un
tiempo de evaluación.
Para el lenguaje de programación Pascal existe un compilador
de código abierto, JAL, lo mismo que PicForth para el lenguaje Forth.
GPUTILS es una colección de herramientas distribuidas bajo licencia
GPL que incluye ensamblador y enlazador, y funciona en Linux,
MacOS y Microsoft Windows. GPSIM es otra herramienta libre que
permite simular diversos dispositivos hardware conectados al PIC.
[Escribir texto]
Uno de los más modernos y completos compiladores para
lenguaje C es [mikroC], que es un ambiente de desarrollo con editor
de texto, bibliotecas con múltiples funciones para todos los módulos y
herramientas incorporadas para facilitar enormemente el proceso de
programación.
Arquitectura central
La arquitectura del PIC es sumamente minimalista. Esta
caracterizada por las siguientes prestaciones:
Área de código y de datos separadas (Arquitectura Harvard).
Un reducido número de instrucciones de longitud fija.
La mayoría de las instrucciones se ejecutan en un solo ciclo de
ejecución (4 ciclos de clock), con ciclos de único retraso en las
bifurcaciones y saltos.
Un solo acumulador (W), cuyo uso (como operador de origen) es
implícito (no está especificado en la instrucción).
Todas las posiciones de la RAM funcionan como registros de
origen y/o de destino de operaciones matemáticas y otras funciones.1
Una pila de hardware para almacenar instrucciones de regreso
de funciones.
Una relativamente pequeña cantidad de espacio de datos
direccionable (típicamente, 256 bytes), extensible a través de
manipulación de bancos de memoria.
El espacio de datos está relacionado con el CPU, puertos, y los
registros de los periféricos.
[Escribir texto]
El contador de programa esta también relacionado dentro del
espacio de datos, y es posible escribir en él (permitiendo saltos
indirectos).
A diferencia de la mayoría de otros CPU, no hay distinción entre
los espacios de memoria y los espacios de registros, ya que la RAM
cumple ambas funciones, y esta es normalmente referida como
"archivo de registros" o simplemente, registros.
Espacio de datos (RAM)
Los microcontroladores PIC tienen una serie de registros que
funcionan como una RAM de propósito general. Los registros de
propósito específico para los recursos de hardware disponibles dentro
del propio chip también están direccionados en la RAM. La
direccionabilidad de la memoria varía dependiendo la línea de
dispositivos, y todos los dispositivos PIC tienen algún tipo de
mecanismo de manipulación de bancos de memoria que pueden ser
usados para acceder memoria externa o adicional. Las series más
recientes de dispositivos disponen de funciones que pueden cubrir
todo el espacio direccionable, independientemente del banco de
memoria seleccionado. En los dispositivos anteriores, esto debía
lograrse mediante el uso del acumulador.
Para implementar direccionamiento indirecto, se usa un registro
de "selección de registro de archivo" (FSR) y uno de "registro
indirecto" (INDF): Un número de registro es escrito en el FSR,
haciendo que las lecturas o escrituras al INDF serán realmente hacia o
desde el registro apuntado por el FSR. Los dispositivos más recientes
extienden este concepto con post y preincrementos/decrementos para
mayor eficiencia al acceder secuencialmente a la información
almacenada. Esto permite que se pueda tratar al FSR como un
puntero de pila.
[Escribir texto]
La memoria de datos externa no es directamente direccionable
excepto en algunos microcontroladores PIC 18 de gran cantidad de
pines.
Tamaño de palabra
El tamaño de palabra de los microcontroladores PIC es fuente de
muchas confusiones. Todos los PICs (excepto los dsPIC) manejan
datos en trozos de 8 bits, con lo que se deberían llamar
microcontroladores de 8 bits. Pero a diferencia de la mayoría de las
CPU, el PIC usa arquitectura Harvard, por lo que el tamaño de las
instrucciones puede ser distinto del de la palabra de datos. De hecho,
las diferentes familias de PICs usan tamaños de instrucción distintos,
lo que hace difícil comparar el tamaño del código del PIC con el de
otros microcontroladores. Por ejemplo, un microcontrolador tiene 6144
bytes de memoria de programa: para un PIC de 12 bits esto significa
4096 palabras y para uno de 16 bits, 3072 palabras.
Programación del PIC
Para transferir el código de un ordenador al PIC normalmente se
usa un dispositivo llamado programador. La mayoría de PICs que
Microchip distribuye hoy en día incorporan ICSP (In Circuit Serial
Programming, programación serie incorporada) o LVP (Low Voltage
Programming, programación a bajo voltaje), lo que permite programar
el PIC directamente en el circuito destino. Para la ICSP se usan los
pines RB6 y RB7 (En algunos modelos pueden usarse otros pines
como el GP0 y GP1 o el RA0 y RA1) como reloj y datos y el MCLR
para activar el modo programación aplicando un voltaje de 13 voltios.
Existen muchos programadores de PICs, desde los más simples que
dejan al software los detalles de comunicaciones, a los más
complejos, que pueden verificar el dispositivo a diversas tensiones de
alimentación e implementan en hardware casi todas las
funcionalidades. Muchos de estos programadores complejos incluyen
ellos mismos PICs preprogramados como interfaz para enviar las
[Escribir texto]
órdenes al PIC que se desea programar. Uno de los programadores
más simples es el TE20, que utiliza la línea TX del puerto RS232 como
alimentación y las líneas DTR y CTS para mandar o recibir datos
cuando el microcontrolador está en modo programación. El software
de programación puede ser el ICprog, muy común entre la gente que
utiliza este tipo de microcontroladores. Entornos de programación
basados en interpretes BASIC ponen al alcance de cualquiera
proyectos que parecieran ser ambiciosos.
Se pueden obtener directamente de Microchip muchos
programadores/depuradores (octubre de 2005):
Un buena recopilación de herramientas de desarrollo para PICs
puede encontrarse Aquí. (Mayo de 2009).
Programadores
PICStart Plus (puerto serie y USB)
Promate II (puerto serie)
MPLAB PM3 (puerto serie y USB)
ICD2 (puerto serie y USB)
ICD3 (USB)
PICKit 1 (USB)
IC-Prog 1.06B
PICAT 1.25 (puerto USB2.0 para PICs y Atmel)
WinPic 800 (puerto paralelo, serie y USB)
PICKit 2 (USB)
PICKit 3 (USB)
Terusb1.0
[Escribir texto]
Eclipse (PICs y AVRs. USB.)
MasterProg (USB)
.
Depuradores integrados
ICD (Serie)
ICD2 (Serie ó full speed USB - 2M bits/s)
ICD3 (High speed USB - 480M bits/s)
[editar]Emuladores
Proteus - ISIS
ICE2000 (puerto paralelo, convertidor a USB disponible)
ICE4000 (USB)
PIC EMU
PIC CDlite
[editar]Características
Los PICs actuales vienen con una amplia gama de mejoras
hardware incorporadas:
Núcleos de CPU de 8/16 bits con Arquitectura Harvard
modificada
Memoria Flash y ROM disponible desde 256 bytes a 256
kilobytes
Puertos de E/S (típicamente 0 a 5,5 voltios)
Temporizadores de 8/16 bits
[Escribir texto]
Tecnología Nanowatt para modos de control de energía
Periféricos serie síncronos y asíncronos: USART, AUSART,
EUSART
Conversores analógico/digital de 8-10-12 bits
Comparadores de tensión
Módulos de captura y comparación PWM
Controladores LCD
Periférico MSSP para comunicaciones I²C, SPI, y I²S
Memoria EEPROM interna con duración de hasta un millón de
ciclos de lectura/escritura
Periféricos de control de motores
Soporte de interfaz USB
Soporte de controlador Ethernet
Soporte de controlador CAN
Soporte de controlador LIN
Soporte de controlador Irda.
[Escribir texto]
14.0 PIC 16F886
Nosotros en este caso usaremos el PIC 16F886 ya que es el
mas cómodo, así como el que dominamos mejor.
Microcontrolador de 8 bits PIC16F886
[UMPIC16F886ISP]
4.00€
Microcontrolador de 8 bits de última generación de la gama media de
Microchip.
*Encapsulado en 28 patillas dispone de:
[Escribir texto]
*24 líneas de E/S
*Velocidad de hasta 20MHz
*Reloj interno desde 31KHz hasta 8MHz
*Memoria de programa de 8192 instrucciones, RAM de 368 bytes
y EEPROM de datos de 256 bytes
*Puerta serie SSP para comunicación SPI e I2C
*Transmisor/Receptor asíncrono (USART)
*2 módulos de captura, comparación y PWM
*2 Módulos comparadores analógicos
*Convertidor ADC de 10 bits con 11 canales
*2 Timers de 8 bits y 1 de 16 bits
[Escribir texto]
15.0 SET DE INSTRUCCIONES PIC 16F886
.: NOTACION PARA NUMEROS
• Decimal : D'100' ó .100
• Hexadecimal : H'64' ó 0x64 ó 64
• Octal : O'144'
• Binario : B'01101100'
• ASCII : A'C' ó 'C'
.: NOTACION PARA REGISTROS Y LITERALES
• w : Registro W, similar al acumulador, es el registro de trabajo.
• f : Campo de 5 bits (fffff), contiene la dirección del banco de
registros, que ocupa el banco 0 del área de datos. Direcciona
uno de esos registros.
• k : Representa una constante de 8 bits.
• d : Bit del código OP de la instrucción. Selecciona el destino
donde se guarda el resultado de una operación. Si d=0, el
destino es W, y si d=1 el destino es f.
• b : Determina la posición de un bit dentro de un registro de 8
bits, (o sea, tomará valores entre 0 y 7)
[Escribir texto]
.: SIMBOLOS
• [] : Opciones.
• () : Contenido.
• => : Se asigna a ...
• <> : Campo de bits de un registro.
• E : Pertenece al conjunto ...
• Label : Nombre de la etiqueta.
• TOS : Cima de la pila con 8 niveles en la gama media.
• PC : Contador de programa que direcciona la memoria de
instrucciones.
.: FLAGS
Los Flags o banderas son marcadores, representados por bits dentro
del registro STATUS, y son:
•
Z : Flag de cero, se pone a 1 cuando una operación lógica o
aritmética da 0 (cero)como resultado. En cualquier otro caso se
pone a 0.
• C : Flag de Carry, se pone a 1 cuando la operación que le
afecta sobrepasa el nivel de representación del procesador, en
nuestro caso es de 8 BIT's , de esta manera si sumamos a
0b11111111 un 0b00000011 el resultado sería 0b00000010 y el
BIT de Carry pasaría a 1.
• DC : Flag de carry del nibble inferior, este se comporta igual que
el BIT de Carry, solo que el límite de representación son los 4
bits inferiores, de esta manera si tenemos 0b00001111 y
sumamos 0b00000111, el resultado será 0b00010110 y el BIT
de DC se pone a 1, el BIT de Carry estará a 0 al no superarse
los 8 bits y el de Z a 0 al ser el número diferente de 0.
No te preocupes si te quedan dudas respecto a los FLAGS, éstas se
aclararán a medida que vayas avanzando en el tutorial.
Ahora si, ya podemos empezar con el set de instrucciones:
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
[Escribir texto]
16.0 Organización de la memoria de datos del PIC16F886
La Memoria de datos utiliza registros implementados en la RAM.
En la RAM se alojan todos los registros destinados al funcionamiento
del procesador, manejo de los periféricos, E/S y registros de propósito
general, los cuales, pueden ser utilizados por el programador como
memoria de uso general.
La Memoria RAM costa de cuatro bancos con 128 bytes cada
uno. Para seleccionar el banco que se desee acceder de la RAM, se
emplean los Bits No. 6 y 5 del el
Registro de Estatus, los cuales se denominan <RP1
><RP0>
La selección del banco se realizas egún el código siguiente:
banco
RP1
RP0
0
0
0
1
0
1
2
1
0
3
1
1
La selección del banco se realiza según el código siguiente: Cada
bloque de memoria RAM posee una longitud fija de 128 registros de 8
bits cadauno. Todos los registros especiales y periféricos tienen una
localidad específica e invariable dentro de la memoria RAM. En cada
ciclo de ejecución estos registros se actualizan de esta forma el
usuario puede consultar en cada momento cual es el valor delos
mismos. Importante, como se ha mencionado anteriormente:
[Escribir texto]
TODO
Lo que se realiza en el microcontrolador
, todo sin excepción queda reflejado en estos registros.
Al mismo tiempo, cualquier cosa que el usuario desee hacer
sobre el microcontrolador tendrá que hacerlo leyendo o escribiendo en
estos registros.
[Escribir texto]
El registro de Estatus
Contiene los bits de status de la ALU (Unidad Aritmética y
Lógica), del RESETy los bits de selección <RP1><RP0> de los bancos
de memoria. Es el registro más utilizado de todos y sus bits están
[Escribir texto]
destinados a controlar las funciones esenciales del microcontrolador,
por ello, se encuentra ubicado en las cuartas posiciones de cada
bancode memoria. (03h, 83h, 103h y 183h).
ALU:
Referido a operaciones aritméticas y lógicas.
Z:
Señalización de cero (0)
DC:
Acarreo y débito del 4to. Bit
C:
Acarreo y débito del 8vo. bit
RESET:
Referido al tipo de re-inicialización
BANCOS MEMORIA:
Los últimos tres bits del registro de Status de mayor peso,
seutilizan para seleccionar el banco de memoria al cual se quiere
acceder. Los bits 6 y5 del registro de status pueden tener la
codificación mostrada en la siguiente tabla.
[Escribir texto]
17.0 El registro de Opciones
Es uno de los registros más utilizados, como su nombre lo indica, éste
registro permite seleccionar una serie de opciones disponibles para la
configuración del hardware en el microcontrolador PIC®. Es un
[Escribir texto]
registro de 8 bits y cada bit controla una función en el
microcontrolador. Por ejemplo:
Bit 7, RBPU:
Habilita o no las resistencias de pull_up internas del puerto B del
microcontrolador.
Bit 6, INTEDG:
Selecciona el flanco para la ocurrencia de una interrupción.
Bit 5, T0CS:
Selecciona la fuente de reloj para el TMR0 (interna y/o externa).
Bit 4, T0SE:
Selecciona el flanco para el incremento del TMR0.
Bit 3, PSA:
Selecciona si el pre-escalador será aplicado al TMR0 o al WDT.
Bit2 al Bit0:
Selecciona la magnitud del pre-escalador.
[Escribir texto]
18.0 El registro de Interrupciones INTERRUPCIÓN:
INTCON:
Es un registro de lectura y escritura, el cual, contiene varios bits de
habilitación y bandera para el TMR0, cambios de estado en el puerto B
e interrupciones externas por el pin RB0/EXT. Se encuentra duplicado
[Escribir texto]
en los cuatro bancos de memoria, ocupando las direcciones: 0Bh,
8Bh, 10Bh y 18Bh
Ante una interrupción, se guardará el valor del program counter
PC en el Stack o pila y se cargará el “PC”
con el valor 0004h, que es el vector de interrupción. La mayoría de los
periféricos incluidos en el microcontrolador son capaces de interrumpir
al CPU, cuando ello ocurre, se desencadenan los siguienteseventos:1.
El microcontrolador termina de ejecutar la instrucción en curso
(actual).2.
Se para la secuencia de ejecución regular del programa.3.
El contenido del “Program Counter” se almacena en el stack.4.
Se carga en el “Program Counter” la dirección de la rutina de
interrupción.5.
Se ejecuta la rutina de interrupción y se disminuye en un nivel el
contenido del stack 6.
Se carga de nuevo en el “Program Counter” el valor de retorno
guardadoanteriormente en el stack.7.
Se continúa con la ejecución normal del programa antes de la
interrupción.
[Escribir texto]
[Escribir texto]
19.0 MPLAB
MPLAB es un editor IDE gratuito, destinado a productos de la
marca Microchip. Este editor es modular, permite seleccionar los
[Escribir texto]
distintos microcontroladores soportados, además de permitir la grabación
de estos circuitos integrados directamente al programador.
Es un programa que corre bajo Windows y como tal, presenta las
clásicas barras de programa, de menú, de herramientas de estado, etc.
El ambiente MPLAB® posee editor de texto, compilador y simulación (no
en tiempo real). Para comenzar un programa desde cero para luego
grabarlo al μC en MPLAB® v7.XX los pasos a seguir son:
1.
Crear un nuevo archivo con extensión .ASM y nombre
cualquiera
2.
Crear un Proyecto nuevo eligiendo un nombre y ubicación
3.
Agregar el archivo .ASM como un SOURCE FILE
4.
Elegir el microcontrolador a utilizar desde SELECT DEVICE
del menú CONFIGURE
Una vez realizado esto, se está en condiciones de empezar a escribir el
programa respetando las directivas necesarias y la sintaxis para luego
compilarlo y grabarlo en el PIC.
Directivas
Las directivas son palabras reservadas para indicarle al MPLAB® que
funciones debe configurar cuando compile nuestro programa. Las
indispensables para la correcta compilación del programa son:
Directiva
Descripción
Sintaxis
CBLOCK
Defina un Bloque de
Constantes
cblock [<expr>]
#DEFINE
Defina una Etiqueta de
Substitución de Texto
define <name> [<value>]
Defina Tabla
[<label>] dt
<expr>[,<expr>,...,<expr>]
DT
define <name> [<arg>,...,<arg>]
<value>
[<label>] dt
“<text_string>”[,”<text_string>”,...]
ELSE
[Escribir texto]
Empieza el bloque
alternativo de un IF
Else
END
Fin de bloque de
programa
End
ENDIF
Fin del bloque de
Endif
condiciones ensambladas
ENDM
Fin de la definición de una Endm
Macro
ENDW
Fin de un bucle de While Endw
EQU
Define una constante
para el ensamblador
<label> equ <expr>
IF
Empieza un bloque de
código condicional
if <expr>
#INCLUDE Incluye Ficheros fuentes include <<include_file>>
adiccionales
|“<include_file>”
LIST
Opciones listado
list [<list_option>,...,<list_option>]
MACRO
Declara la Definición del
Macro
<label> macro [<arg>,...,<arg>]
ORG
Pone el Origen del
Programa
<label> org <expr>
WHILE
Realiza el bucle Mientras while <expr>
la Condición es
Verdadera
Compilación del Programa y carga al PIC
Una vez escrito y depurado el programa, se procede a la compilación.
Para esto, desde el menú PROJECT se elige la opción BUILD ALL
(construir todo) que, si no existen errores, devolverá un mensaje como
BUILD SUCCESFULL. Los errores que muestra el compilador son del
tipo sintácticos, es decir que si el programa "construido" llegara a tener
[Escribir texto]
un error, por ejemplo que esperase a que se ponga un bit en “0” y nunca
pasase, se estará en un bucle infinito a pesar de que el compilador
compilará perfectamente porque no hay error de sintaxis.
También existen mensajes y advertencias; los mensajes pueden ser, por
ejemplo, que se está trabajando en un banco de memoria que no es el
bank 0, etc. Las advertencias tienen un poco más de peso, por ejemplo:
el PIC seleccionado no es el mismo que esta definido en el programa,
etc. En ambos casos, mensajes y advertencias, la compilación termina
satisfactoriamente pero hay que tener en cuenta siempre lo que nos
dicen estos para prevenir errores.
Terminada la compilación el MPLAB® nos genera un archivo de
extensión .hex el cual es completamente entendible para el PIC. Es decir,
solo resta grabarlo al PIC por medio de una interfaz como por ejemplo el
programador Picstart Plus de microchip. Una vez completado esto, se
alimenta al mismo y el programa ya se estará ejecutando.
20.0 Historia del led
La historia del LED y su desarrollo posterior ha transcurrido en paralelo al
siglo XX. Ya en 1907, Henry Joseph Round, especialista en las
comunicaciones por radio, descubre el efecto físico de la
electroluminiscencia. Durante muchos años, su hallazgo pasó
desapercibido por la comunidad científica.
El primer diodo LED fue diseñado por Oleg Vladimirovich Losev (quien
fabricó un LED de óxido de cinc y carburo de silicio). Losev publicó los
detalles de su trabajo en 1927, en una revista científica rusa, y abrió el
camino a los posteriores descubrimientos.
Considerado como el padre del LED moderno, Nick Holonyak inventó el
primer LED que emitía en el espectro visible en 1962, cuando trabajaba
para General Electric. Quince años más tarde, ya desde su cátedra en la
[Escribir texto]
Universidad de Illinois, descubriría el láser de punto cuántico, que abrió
las puertas a las comunicaciones a través de la fibra óptica, los
reproductores de CD y numerosas aplicaciones en el mundo de la
medicina.
Respecto a la aplicación industrial del LED, fue en los años 60 y 70
cuando tuvo un gran desarrollo. En 1962, en paralelo al hallazgo de
Holonyak, sale al mercado el primer diodo luminiscente rojo. Servía como
indicador, ya que su luz todavía no era suficiente para iluminar una gran
superficie. No es hasta 1971 que están disponibles LED en otros colores:
verde, naranja y amarillo.
En la década de los 90, se desarrollaron los ultravioleta y azules, lo que
permitió crear LED de luz blanca, a través de conversión luminiscente en
1995. Este hecho y la gran luminosidad conseguida lo convierte en un
elemento muy útil en la iluminación.
El LED es un elemento que ha estado y está en continuo desarrollo.
Durante más de treinta años, ha sido utilizados como señalización e
iluminación industrial, en productos de consumo como teléfonos
inteligentes, televisiones, automóviles, ordenadores, señales de tráfico o
en el ámbito de la decoración.
Su eficacia sigue mejorando a gran velocidad y ya supera los 100 lm/W.
21.0 Funcionamiento básico del led
El funcionamiento normal consiste en que, en los materiales conductores,
un electrón al pasar de la banda de conducción a la de valencia,
pierde energía; esta energía perdida se puede manifestar en forma de
un fotón desprendido, con una amplitud, una dirección y una fase
aleatoria. El que esa energía perdida cuando pasa un electrón de la
banda de conducción a la de valencia se manifieste como un fotón
desprendido o como otra forma de energía (calor por ejemplo) depende
principalmente del tipo de material semiconductor. Cuando un diodo
semiconductor se polariza directamente, los huecos de la zona p se
mueven hacia la zona n y los electrones de la zona n hacia la zona p;
[Escribir texto]
ambos desplazamientos de cargas constituyen la corriente que circula
por el diodo.
Si los electrones y huecos están en la misma región, pueden
recombinarse, es decir, los electrones pueden pasar a "ocupar" los
huecos, "cayendo" desde un nivel energético superior a otro inferior más
estable. Este proceso emite con frecuencia un fotón en semiconductores
de banda prohibida directa (direct bandgap) con la energía
correspondiente a su banda prohibida (véase semiconductor). Esto no
quiere decir que en los demás semiconductores (semiconductores de
banda prohibida indirecta o indirect bandgap) no se produzcan emisiones
en forma de fotones; sin embargo, estas emisiones son mucho más
probables en los semiconductores de banda prohibida directa (como
el nitruro de galio) que en los semiconductores de banda prohibida
indirecta (como el silicio).
La emisión espontánea, por tanto, no se produce de forma notable en
todos los diodos y solo es visible en diodos como los ledes de luz visible,
que tienen una disposición constructiva especial con el propósito de
evitar que la radiación sea reabsorbida por el material circundante, y una
energía de la banda prohibida coincidente con la correspondiente al
espectro visible. En otros diodos, la energía se libera principalmente en
forma de calor,radiación infrarroja o radiación ultravioleta. En el caso de
que el diodo libere la energía en forma de radiación ultravioleta, se puede
conseguir aprovechar esta radiación para producir radiación visible,
mediante sustancias fluorescentes o fosforescentes que absorban la
radiación ultravioleta emitida por el diodo y posteriormente emitan luz
visible.
El dispositivo semiconductor está comúnmente encapsulado en una
cubierta de plástico de mayor resistencia que las de vidrio que
usualmente se emplean en las lámparas incandescentes. Aunque el
plástico puede estar coloreado, es solo por razones estéticas, ya que ello
no influye en el color de la luz emitida. Usualmente un led es una fuente
de luz compuesta con diferentes partes, razón por la cual el patrón de
intensidad de la luz emitida puede ser bastante complejo.
Para obtener buena intensidad luminosa debe escogerse bien la
corriente que atraviesa el led; para ello, hay que tener en cuenta que
el voltaje de operación va desde 1,8 hasta 3,8 voltios aproximadamente
(lo que está relacionado con el material de fabricación y el color de la luz
que emite) y la gama de intensidades que debe circular por él varía
según su aplicación. Valores típicos de corriente directa de polarización
de un led corriente están comprendidos entre los 10 y los 40 mA. En
[Escribir texto]
general, los ledes suelen tener mejor eficiencia cuanto menor es la
corriente que circula por ellos, con lo cual, en su operación de forma
optimizada, se suele buscar un compromiso entre la intensidad luminosa
que producen (mayor cuanto más grande es la intensidad que circula por
ellos) y la eficiencia (mayor cuanto menor es la intensidad que circula por
ellos). El primer led que emitía en el espectro visible fue desarrollado por
el ingeniero de General Electric Nick Holonyak en 1962.
A
Ánodo
B Cátodo
1 Lente/encapsulado epóxico
2 Contacto metálico
3 Cavidad reflectora
4 Terminación del semiconductor
5 Yunque
6 Plaqueta
7
8 Borde plano
[Escribir texto]
Tecnología LED/OLED
En corriente continua (CC), todos los diodos emiten cierta cantidad
de radiación cuando los pares electrón-hueco se recombinan; es decir,
cuando los electrones caen desde la banda de conducción (de mayor
energía) a la banda de valencia (de menor energía), emitiendo fotones en
el proceso. Indudablemente, por ende, su color dependerá de la altura de
la banda prohibida (diferencias de energía entre las bandas de
conducción y valencia), es decir, de los materiales empleados. Los
diodos convencionales, de silicio o germanio, emiten radiación
infrarroja muy alejada del espectro visible. Sin embargo, con materiales
especiales pueden conseguirse longitudes de onda visibles. Los ledes e
IRED, además tienen geometrías especiales para evitar que la radiación
emitida sea reabsorbida por el material circundante del propio diodo, lo
que sucede en los convencionales.
Compuestos empleados en la construcción de led´s
Compuesto
Arseniuro de galio (GaAs)
[Escribir texto]
Color
Infrarrojo
Long. de
onda
940 nm
Arseniuro de
galio y aluminio (AlGaAs)
Rojo e infrarrojo
890 nm
Arseniuro fosfuro de galio (GaAsP)
Rojo, anaranjado y
amarillo
630 nm
Fosfuro de galio (GaP)
Verde
555 nm
Nitruro de galio (GaN)
Verde
525 nm
Seleniuro de zinc (ZnSe)
Azul
Nitruro de galio e indio (InGaN)
Azul
450 nm
Carburo de silicio (SiC)
Azul
480 nm
Diamante (C)
Ultravioleta
Silicio (Si)
En desarrollo
Los primeros diodos construidos fueron los diodos infrarrojos y de color
rojo, permitiendo el desarrollo tecnológico posterior la construcción de
diodos para longitudes de onda cada vez menores. En particular, los
diodos azules fueron desarrollados a finales de los años
noventa por Shuji Nakamura, añadiéndose a los rojos y verdes
desarrollados con anterioridad, lo que permitió —por combinación de los
mismos— la obtención de luz blanca. El diodo de seleniuro de zinc puede
emitir también luz blanca si se mezcla la luz azul que emite con la roja y
verde creada por fotoluminiscencia. La más reciente innovación en el
ámbito de la tecnología led son los diodos ultravioleta, que se han
empleado con éxito en la producción de luz negra para iluminar
materiales fluorescentes.
[Escribir texto]
Tanto los diodos azules como los ultravioletas son caros respecto de los
más comunes (rojo, verde, amarillo e infrarrojo), siendo por ello menos
empleados en las aplicaciones comerciales.
Los ledes comerciales típicos están diseñados para potencias del orden
de los 30 a 60 mW. En torno a 1999 se introdujeron en el mercado
diodos capaces de trabajar con potencias de 1 vatio para uso continuo;
estos diodos tienen matrices semiconductoras de dimensiones mucho
mayores para poder soportar tales potencias e incorporan aletas
metálicas para disipar el calor (véase convección) generado por efecto
Joule.
Hoy en día, se están desarrollando y empezando a comercializar ledes
con prestaciones muy superiores a las de hace unos años y con un futuro
prometedor en diversos campos, incluso en aplicaciones generales de
iluminación. Como ejemplo, se puede destacar que Nichia Corporation ha
desarrollado ledes de luz blanca con una eficiencia luminosa de
150 lm/W, utilizando para ello una corriente de polarización directa de
20 miliamperios (mA). Esta eficiencia, comparada con otras fuentes de
luz solamente en términos de rendimiento, es aproximadamente
1,7 veces superior a la de la lámpara fluorescente con prestaciones de
color altas (90 lm/W) y aproximadamente 11,5 veces la de una lámpara
incandescente (13 lm/W). Su eficiencia es incluso más alta que la de
la lámpara de vapor de sodio de alta presión (132 lm/W), que está
considerada como una de las fuentes de luz más eficientes.3
El comienzo del siglo XXI ha visto aparecer los diodos OLED (ledes
orgánicos), fabricados con materiales polímeros orgánicos
semiconductores. Aunque la eficiencia lograda con estos dispositivos
está lejos de la de los diodos inorgánicos,y son biodegradables, su
fabricación promete ser considerablemente más barata que la de
aquellos, siendo además posible depositar gran cantidad de diodos sobre
cualquier superficie empleando técnicas de pintado para crear pantallas
en color.
El OLED (organic light-emitting diode: ‘diodo orgánico de emisión de luz’)
es un diodo basado en una capa electroluminiscente que está formada
por una película de componentes orgánicos, y que reaccionan a una
determinada estimulación eléctrica, generando y emitiendo luz por sí
mismos.
No se puede hablar realmente de una tecnología OLED, sino más bien
de tecnologías basadas en OLED, ya que son varias las que hay,
dependiendo del soporte y finalidad a la que vayan destinados.
[Escribir texto]
Su aplicación es realmente amplia, mucho más que, en el caso que nos
ocupa (su aplicación en el mundo de la informática), cualquier otra
tecnología existente.
Pero además, las tecnologías basadas en OLED no solo tienen una
aplicación puramente como pantallas reproductoras de imagen, sino que
su horizonte se amplía al campo de la iluminación, privacidad y otros
múltiples usos que se le pueda dar.
Las ventajas de esta nueva tecnología son enormes, pero también tiene
una serie de inconvenientes, aunque la mayoría de estos son totalmente
circunstanciales, y desaparecerán en unos casos conforme se siga
investigando en este campo y en otros conforme vaya aumentando su
uso y producción.
Una solución tecnológica que pretende aprovechar las ventajas de la
eficiencia alta de los ledes típicos (hechos con materiales inorgánicos
principalmente) y los costes menores de los OLED (derivados del uso de
materiales orgánicos) son los Sistemas de Iluminación
Híbridos (Orgánicos/Inorgánicos) basados en diodos emisores de luz.
Dos ejemplos de este tipo de solución tecnológica los está intentado
comercializar la empresa Cyberlux con los nombres de HWL (Hybrid
White Light: ‘luz blanca híbrida’) y HML (Hybrid Multicolor Light: ‘luz
multicolor híbrida’), cuyo resultado puede producir sistemas de
iluminación mucho más eficientes y con un coste menor que los actuales.
Aplicaciones
Los diodos infrarrojos (IRED) se emplean desde mediados del
siglo XX en mandos a distancia de televisores, habiéndose
generalizado su uso en otros electrodomésticos como equipos
de aire acondicionado, equipos de música, etc., y en general
para aplicaciones decontrol remoto, así como en dispositivos
detectores, además de ser utilizados para transmitir datos entre
dispositivos electrónicos como en redes de computadoras y
dispositivos como teléfonos móviles, computadoras de mano,
aunque esta tecnología de transmisión de datos ha dado paso
al bluetooth en los últimos años, quedando casi obsoleta
Los led´s se emplean con profusión en todo tipo de indicadores de
estado (encendido/apagado) en dispositivos de señalización (de
tránsito, de emergencia, etc.) y en paneles informativos (el
mayor del mundo, del NASDAQ, tiene 36,6 metros de altura y
está en Times Square, Manhattan). También se emplean en el
alumbrado de pantallas de cristal líquido de teléfonos móviles,
[Escribir texto]
calculadoras, agendas electrónicas, etc., así como en bicicletas
y usos similares. Existen además impresoras con led´s.
El uso de led´s en el ámbito de la iluminación (incluyendo la
señalización de tráfico) es moderado y es previsible que se
incremente en el futuro, ya que sus prestaciones son
superiores a las de la lámpara incandescente y la lámpara
fluorescente, desde diversos puntos de vista. La iluminación
con led´s presenta indudables ventajas: fiabilidad, mayor
eficiencia energética, mayor resistencia a las vibraciones, mejor
visión ante diversas circunstancias de iluminación, menor
disipación de energía, menor riesgo para el medio ambiente,
capacidad para operar de forma intermitente de modo continuo,
respuesta rápida, etc. Asimismo, con led´s se pueden producir
luces de diferentes colores con un rendimiento luminoso
elevado, a diferencia de muchas de las lámparas utilizadas
hasta ahora, que tienen filtros para lograr un efecto similar (lo
que supone una reducción de su eficiencia energética). Cabe
destacar también que diversas pruebas realizadas por
importantes empresas y organismos han concluido que el
ahorro energético varia entre el 70 y el 80% respecto a la
iluminación tradicional que se utiliza hasta ahora.5 Todo ello
pone de manifiesto las numerosas ventajas que los led´s
ofrecen en relación al alumbrado público.
Los led´s de luz blanca son uno de los desarrollos más recientes y
pueden considerarse como un intento muy bien fundamentado
para sustituir los focos o bombillas actuales (lámparas
incandescentes) por dispositivos mucho más ventajosos. En la
actualidad se dispone de tecnología que consume el 92%
menos que las lámparas incandescentes de uso doméstico
común y el 30% menos que la mayoría de las lámparas
fluorescentes; además, estos led´s pueden durar hasta 20 años
y suponer el 200% menos de costes totales de propiedad si se
comparan con las lámparas o tubos fluorescentes
convencionales.6 Estas características convierten a los ledes de
luz blanca en una alternativa muy prometedora para
la iluminación.
[Escribir texto]
También se utilizan en la emisión de señales de luz que se trasmiten
a través de fibra óptica. Sin embargo esta aplicación está en
desuso ya que actualmente se opta por tecnología láser que
focaliza más las señales de luz y permite un mayor alcance de
la misma utilizando el mismo cable. Sin embargo en los inicios
de la fibra óptica eran usados por su escaso coste, ya que
suponían una gran ventaja frente al coaxial (aún sin focalizar la
emisión de luz). Pantalla de led´s: pantalla muy brillante,
formada por filas de led´s verdes, azules y rojos, ordenados
según la arquitectura RGB, controlados individualmente para
formar imágenes vivas, muy brillantes, con un altísimo nivel de
contraste, entre sus principales ventajas frente a otras pantallas
se encuentran: buen soporte de color, brillo extremadamente
alto (lo que le da la capacidad de ser completamente visible
bajo la luz del sol), altísima resistencia a impactos.
22.0 LED RGB
[Escribir texto]
Comúnmente, existen 2 tipos de LEDs RGB. Uno de 4 patas y otro
de 2 patas. Vamos a trabajar con el de 4 patas ya que nos
permitirá mayor control. Tanto el LED de 2 patas como el de la
imagen, el de 4 patas, ambos tienen 3 diodos LED internos que
emiten tres colores diferentes Red - Green – Blue (RGB), claro;
Rojo, Verde y Azul.
EL LED de 2 patas común funciona polarizándolo en directa (“en
directa” significa polarizándolo como corresponde, el positivo
al ánodo y el negativo al cátodo) y al ser alimentado inicia una
secuencia de cambios de colores infinita (obviamente mientras
esté alimentado) a una frecuencia preestablecida por el
fabricante, ese comportamiento es determinado por un circuito
integrado que posee internamente el LED.
Según la velocidad en que trabajan automáticamente cambiando los
colores, existen LEDs de 2 patas que trabajan con una
frecuencia lenta y otros que trabajan con una frecuencia de
intercalado más lenta.
El LED de 4 patas más común es de 5mm, cristal de alta
luminosidad, ánodo común.
Ánodo común significa que, electrónicamente, la pata común a los
tres diodos internos es el Ánodo.
El LED RGB de 4 patas tiene 1 Ánodo y 3 Cátodos;
Diseño de circuitos con LEDs RGB de 4 patas
Un LED tiene ciertas características de fábrica que determinan cómo
se lo debe alimentar para que trabaje óptimamente. Son las
siguientes;
1- Tensión correcta de trabajo.
2- Consumo.
Tensiones de alimentación / consumo;
LED ROJO:
2,1V / 20mA
LED VERDE: 3,3V / 20mA
LED AZUL:
[Escribir texto]
3,3V / 20mA
22.0 Código de programación
list
p=16f886 ; list directive to define processor
#include <p16f886.inc> ; processor specific variable definitions
__CONFIG _CONFIG1, _LVP_OFF & _FCMEN_ON & _IESO_OFF
& _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_ON &
_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
;**********************************************************************
RESET_VECTOR CODE 0x0000 ; processor reset vector
nop
[Escribir texto]
goto
start
INT_VECTOR
; go to beginning of program
CODE
0x0004 ; interrupt vector location
MAIN_PROG
CODE
0x0005
TIME1
MOVLW
.50
MOVWF 0X30
AQUI MOVLW
.250
MOVWF 0X31
ACA
NOP
DECFSZ 0X31
GOTO
ACA
DECFSZ 0X30
GOTO
AQUI
RETURN
TIME2
MOVLW
.75
MOVWF 0X30
POR
MOVLW
.250
MOVWF 0X31
PAR
NOP
DECFSZ 0X31
GOTO
PAR
DECFSZ 0X30
GOTO
POR
RETURN
TIME3
MOVLW
.100
MOVWF 0X30
PA
MOVLW
.250
MOVWF 0X31
PO
NOP
DECFSZ 0X31
GOTO
PO
DECFSZ 0X30
GOTO
PA
RETURN
TIME4
MOVLW
0X10
[Escribir texto]
SEG
MOVWF
MOVLW
MOVWF
MOVLW
MOVWF
NOP
DECFSZ
GOTO
DECFSZ
GOTO
DECFSZ
GOTO
RETURN
MS
MA
0X32
.100
0X30
.250
0X31
0X31
MA
0X30
MS
0X32
SEG
start
MOVLW
0X20
MOVWF STATUS
CLRFTRISA
CLRFTRISB
CLRFTRISC
MOVLW
0X60
CLRFANSEL
CLRFANSELH
CLRFSTATUS
PRUB
MOVLW
B'11111110'
MOVWF PORTB
MOVLW
0XFF
MOVWF PORTC
MOVLW
B'11111110'
MOVWF PORTA
CALL TIME2
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
[Escribir texto]
CALL TIME4
CALL TIME4
CALL TIME4
CALL TIME4
MOVLW
0X20
MOVWF 0X40
LOCO
MOVLW
b'00010000'
MOVWF PORTC
CAPAS
CALL TIME4
RLF
PORTC
BTFSS
PORTC,7
GOTO
CAPAS
DECFSZ 0X40
GOTO
LOCO
MOVLW
0XFF
MOVWF PORTC
MOVLW
0X20
MOVWF 0X41
LUCAS
MOVLW
b'1000000'
MOVWF PORTB
MOVWF PORTA
LUCES
CALL TIME3
RRF
PORTB
BTFSS
PORTB,0
GOTO
LUCES
WORM
CALL TIME3
RRF
PORTA
BTFSS
PORTA,0
GOTO
WORM
DECFSZ 0X41
GOTO
LUCAS
GOTO
PRUB
END
; directive 'end of program'
[Escribir texto]
Aplicación de proyecto
El proyecto puede y es aplicado a la innovación tecnológica del país el
mejoramiento de la tecnología actual se busca la aplicación en la
iluminación de cualquier lugar o cualquier aparato electrónico que
funcione o necesite de un dispositivo de iluminación así como lo son
las pantallas de nueva tecnología led.
La aplicación de este proyecto no es una simple idea a largo plazo si
no que cada vez se mejora en este caso se hizo con la finalidad de
mostrar al público en general como el desarrollo tecnológico ayudara a
la economía del país así como será una de las mejores fuentes de
empleo en la creación e innovación de nuevos proyectos que
conlleven esta tecnología.
[Escribir texto]
Conclusión
Este proyecto es una gran inversión para implementar su desarrollo ya
que así estaremos a la par de países con grandes desarrollos
tecnológicos así como también el reconocimiento de la tecnología que
es desarrollada dentro del país y no en el extranjero.
Es importante recalcar que un proyecto necesita de fondos de los
mismos creadores del proyecto ya que se debe promover con
empresarios que deseen ampliar su comercio ya sea nacional e
internacional con un producto innovador que produzca un resultado
económico favorable.
Este proyecto es importante continuar mejorándolo cada vez hacerlo
más complejo y mayor control ya que así se asegura de su apoyo
económico para producir a grandes escalas y asegurar un futuro mejor
ya que con este proyecto también se busca evitar tanta contaminación
y demanda energética.
[Escribir texto]
Referencias
Albert Paul Malvino, “Principios de la electrónica”, Editorial McGraw
Hill.
Norbert R. Malik, “Circuitos electrónicos, análisis, simulación y diseño”,
Editorial Prentice.
Circuitos y Dispositivos Electrónicos, RJ Tocci, 3ª. Edición
Microcontroladores pic, Angulo Usategur José María, Matín Cuenca,
Ediciones Paraninfo, 1ª edición
Microcontroladores avanzados PIC
Controladores digitales de señales.Arquitectura, programación y
aplicaciones, García Zapiran Antonio, 1ª edición, ISBN 8497323858
Dispositivos Lógicos programables y sus aplicaciones, Mandado Pérez
Enrique.
Milman Jacob, Editorial Hispano Europea, 6ª edición.
Fundamentals of photonics, John Wiley & sons
Physics of semiconductor devices, John Wiley Interscience
Optoelectronics: an introduction, Prentice-Hall International, Wilson J. &
Hawkkes J.F.B.
[Escribir texto]