informe microcontroladores - U

Anuncio
Universidad de Chile
Facultad de Ciencias Físicas y Matemáticas
Departamento de Ingeniería Eléctrica
EL3003 – Laboratorio de Ingeniería Eléctrica
INFORME MICROCONTROLADORES
Nombre Alumnos:
Profesor
Fecha
:
:
Boris Garrido Arévalo
Javier Yarmuch Muñoz
Tomas Ogden Araya
Nelson Morales O.
1-06-2011
Santiago, Chile.
1
1. Tabla de Contenido
1.
2.
Introducción........................................................................................................................... 1
Marco teórico. ....................................................................................................................... 2
2.1. El microcontrolador. .................................................................................................. 2
2.2. Diferencias entre microprocesador y microcontrolador. .............................................. 3
2.3. Estructura básica........................................................................................................ 4
2.4. Proceso en detalle. .................................................................................................... 5
2.4.1.
Registros. ................................................................................................................ 6
2.4.2.
Unidad de control. .................................................................................................. 6
2.4.3.
Unidad aritmético-lógica. ........................................................................................ 7
2.4.4.
Buses. ..................................................................................................................... 7
2.4.5.
Conjunto de instrucciones....................................................................................... 7
2.5. Memoria. .................................................................................................................. 8
2.6. Periféricos. ................................................................................................................ 9
2.6.1.
Temporizadores y contadores. ................................................................................ 9
2.6.2.
Conversor analógico/digital..................................................................................... 9
2.6.3.
Puertos de comunicación. ....................................................................................... 9
2.6.4.
Comparadores. ..................................................................................................... 10
2.6.5.
Modulador de ancho de pulso (PWM). .................................................................. 10
2.7. Lenguaje entre el microcontrolador y nosotros. ........................................................ 11
3. Experiencia en el laboratorio y otros. ................................................................................... 14
3.1
Configuración del software. ..................................................................................... 14
3.2
Conexión del Micro controlador. .............................................................................. 14
3.3
Actividades con MCLS-Software. .............................................................................. 14
3.3.1
Parpadeo de un LED. ............................................................................................. 14
3.3.2
Tira de LEDs. ......................................................................................................... 15
3.4
Problemas. .............................................................................................................. 16
4. Conclusiones. ....................................................................................................................... 17
2
1. Introducción
En cualquier proceso de cualquier índole, ya sea este un mecanismo mecánico, de transmisión de
calor, un proceso industrial o cualquiera que sea, está presente la idea de mantener un control
sobre los mecanismos y variables involucradas para lograr una estabilidad y obtener así los
resultados esperados. Dentro de esta idea de control son importantes dos puntos, el primero es la
medición de las variables que participan el proceso y que determinan su resultado, y el segundo es
dar paso a acciones que lleven estas variables a los valores considerados adecuados. Así, pudiendo
manejar estos puntos, el proceso debería comportarse de una manera prevista y los resultados
obtenidos serán muy cercanos a los esperados, cosa muy importante ya que en muchos de estos
procesos un funcionamiento erróneo puede conllevar a pérdidas cuantiosas en cuanto a lo
económico o irremediables cuando se trata de la seguridad de las personas.
Para lograr este control se han inventado diversos sistemas, si bien la idea de control no
ha cambiado, las implementaciones para este fin si lo han hecho. Así, los primeros sistemas de
control consistían en elementos digitales discretos, pero la necesidad de ahorro de espacio y
dinero llevaron al desarrollo de dispositivos cada vez más pequeños, llegando a crearse sistemas
integrados de control, los llamados microcontroladores. Dichos microcontroladores, cada vez más
capaces y más pequeños, son los responsables del control de la mayoría de los procesos que
ocurren dentro de los aparatos modernos, estando presentes en cosas tan inimaginables como en
el sistema de frenos de un automóvil o el control de temperatura de un horno. Así, poco a poco los
estos pequeños dispositivos toman más fuerza y ganan más terreno dentro de la tecnología actual,
llegando a que en un mundo moderno la idea de un mecanismo complejo que no utilice
microcontroladores se hace impensable.
1
2. Marco teórico.
2.1.El microcontrolador.
Un microcontrolador es un circuito integrado que incluye en su interior las tres unidades
funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de
entrada y salida. La memoria del programa en forma de flash ROM a menudo se incluyen en el
chip, así como una pequeña cantidad de RAM . Estos son diseñados para aplicaciones embebidas,
en contraste con los microprocesadores utilizados en computadoras personales u otras
aplicaciones de propósito general.
Figura 1: ejemplo microcontrolador.
Los microcontroladores son utilizados en los productos controlados automáticamente y
dispositivos, tales como los sistemas de control del motor del automóvil, los dispositivos médicos
implantables, mandos a distancia, máquinas de oficina, electrodomésticos, herramientas
eléctricas, juguetes, etc. Al reducir el tamaño y el costo en comparación con un diseño que utiliza
un microprocesador independiente, memoria y dispositivos de entrada/salida.
Algunos microcontroladores pueden utilizar bits de palabras de cuatro y funcionan a la velocidad
de la frecuencia de un reloj incorporado tan bajas como 4 [kHz], de bajo consumo de energía. Por
lo general, tendrá la capacidad de conservar la funcionalidad a la espera de un evento como pulsar
un botón u otra interrupción. Otros microcontroladores pueden servir en roles críticos de
rendimiento, donde pueden necesitar que actué más como un procesador de señal digital (DSP),
con velocidades de reloj más alta y el consumo de energía.
2
2.2.Diferencias entre microprocesador y microcontrolador.
“La idea es que el circuito integrado se coloque en el dispositivo, enganchado a la fuente de
energía y de información que necesite, y eso es todo. Un microprocesador tradicional no le
permitirá hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay
que agregarle los modulos de entrada y salida (puertos) y la memoria para almacenamiento de
información.”
El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso (UCP),
también llamada procesador, de un computador. La UCP está formada por la Unidad de Control,
que interpreta las instrucciones, y el Camino de Datos, que las ejecuta.
Las patitas de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y
control, para permitir conectarle con la Memoria y los Módulos y configurar un computador
implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema
abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine.
Figura 2: ejemplo en esquema de un microprocesador.
Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener incluido todos
sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. En la práctica
cada fabricante de microcontroladores ofrece un elevado número de modelos diferentes, desde
los más sencillos hasta los más poderosos. Es posible seleccionar la capacidad de las memorias, el
número de pines, la cantidad y potencia de los elementos auxiliares, la velocidad de
funcionamiento, etc. Por todo ello, un aspecto muy destacado del diseño es la selección del
microcontrolador a utilizar.
3
Figura 3: Figura general periféricos.
El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en
su interior y sólo salen al exterior las líneas que gobiernan los periféricos.
2.3.Estructura básica.
El tamaño de la unidad central de procesamiento, la cantidad de memoria y los periféricos
incluidos dependerán de la aplicación, un ejemplo es el control de un electrodoméstico sencillo
como una batidora, utilizará un procesador muy pequeño (4 u 8 bit) por que sustituirá a un
autómata finito. En cambio un reproductor de música y/o vídeo digital (mp3 o mp4) requerirá de
un procesador de 32 bit o de 64 bit y de uno o pines de señal digital (audio y/o vídeo).
Figura 4: Esquema de un microcontrolador.
Estos dispositivos representan la inmensa mayoría de los chips de computadoras vendidos, sobre
un 50% son controladores "simples" y el restante corresponde a DSPs más especializados. Pueden
encontrarse en casi cualquier dispositivo electrónico como automóviles, lavadoras, hornos
microondas, teléfonos, etc.
Un microcontrolador difiere de una unidad central de procesamiento normal, debido a que es más
fácil convertirla en una computadora en funcionamiento, con un mínimo de circuitos integrados
externos de apoyo.
4
Los microcontroladores disponen generalmente también de una gran variedad de dispositivos de
entrada/salida, como convertidores de analógico a digital, temporizadores, UARTs y buses de
interfaz serie especializados, como I2C y otros. Frecuentemente, estos dispositivos integrados
pueden ser controlados por instrucciones de procesadores especializados. Los modernos
microcontroladores frecuentemente incluyen un lenguaje de programación integrado, como el
lenguaje de programación BASIC que se utiliza bastante con este propósito.
Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se
utiliza bastante sitio en el chip para incluir funcionalidad, como los dispositivos de entrada/salida o
la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuitería.
2.4.Proceso en detalle.
Antes de que existieran los microcontroladores, existían circuitos integrados los cuales eran muy
sistemas digitales muy complejos, los cuales si se quería hacer una pequeña modificación de
cualquier tipo, se tenia que pensar en crear grandes cambios en la configuración del hardware,
pero al avanzar los años, pero todo eso cambio con el surgimiento del primer microcontrolador (el
4004 destinado al desarrollo de las calculadoras), este tiene la capacidad de hacer cálculos
dependiendo de códigos de entrada adecuados.
Visto así, no hay nada de especial en un microprocesador; la maravilla está en que la combinación
adecuada de los códigos de entrada, su ejecución secuencial, el poder saltar hacia atrás o adelante
en la secuencia de códigos en base a decisiones lógicas u órdenes específicas, permite que la
máquina realice un montón de operaciones complejas, no contempladas en los simples códigos
básicos.
Es lógico pensar que el invento del microprocesador integrado no fue una revelación divina para
sus creadores, sino que se sustentó en los avances, existentes hasta el momento, en el campo de
la electrónica digital y las teorías sobre computación. Pero sin lugar a dudas fue “la gota que
rebalso el vaso” de la revolución científico-técnica, porque permitió desarrollar aplicaciones
impensadas o acelerar algunas ya encaminadas.
Ahora comenzaremos a ver cómo es que está hecho un procesador, no será una explicación
demasiado detallada porque desde su invención éste ha tenido importantes revoluciones propias,
pero hay aspectos básicos que no han cambiado y que constituyen la base de cualquier
microprocesador. En la Figura 'Esquema de un microcontrolador' podemos ver la estructura típica
de un microprocesador, con sus componentes fundamentales, claro está que ningún procesador
real se ajusta exactamente a esta estructura, pero aun así nos permite conocer cada uno de sus
elementos básicos y sus interrelaciones.
5
2.4.1. 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á 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.
2.4.2. 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,
6
controladores de memoria cache, controladores de buses, controladores de interrupción,
pipelines, entre otros elementos, dependiendo siempre del tipo de procesador.
2.4.3. 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.
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.
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.
2.4.4. 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.
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.
2.4.5. Conjunto de instrucciones.
Aunque no aparezca en el esquema, no podíamos dejar al conjunto o repertorio de instrucciones
fuera, 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.
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 Computer, 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
7
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.
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.
2.5.Memoria.
Memoria de programa: El microcontrolador está diseñado para que en su memoria de programa
se almacenen todas las instrucciones del programa de control. Como éste siempre es el mismo,
debe estar grabado de forma permanente.
Existen algunos tipos de memoria adecuados para soportar estas funciones, de las cuales se
describen las siguientes:
- ROM con máscara: se graba mediante el uso de máscaras. Sólo es recomendable para series muy
grandes debido a su elevado coste.
- EPROM: se graba eléctricamente con un programador controlador por un PC. Disponen de
una ventana en la parte superior para someterla a luz ultravioleta, lo que permite su borrado.
Puede usarse en fase de diseño, aunque su coste unitario es elevado.
- OTP: su proceso de grabación es similiar al anterior, pero éstas no pueden borrarse. Su bajo coste
las hacen idóneas para productos finales.
- EEPROM: también se graba eléctricamente, pero su borrado es mucho más sencillo, ya que
también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de escritura y su
consumo es elevado.
- FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar
en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas
últimas. Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo
de la vida del producto. Por sus mejores prestaciones, está sustituyendo a la memoria EEPROM
para contener instrucciones.
8
Memoria de datos: Los datos que maneja los programas varían continuamente, y esto exige que
la memoria que los contiene debe ser de lectura y escritura, por lo que la memoria RAM estática
(SRAM) es la más adecuada, aunque sea volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura y escritura no
volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona
la pérdida de la información, que está disponible al reiniciarse el programa.
2.6.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 pines del
microcontrolador. A continuación describiremos algunos de los periféricos que con mayor
frecuencia encontraremos en los microcontroladores.
2.6.1. Temporizadores y contadores.
Son circuitos sincrónicos para el conteo de los pulsos para poder tener una 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.
2.6.2. Conversor analógico/digital.
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.
2.6.3. Puertos de comunicación.
Existen distintos protocolos de comunicación, que consisten en el envio de información con sierto
tipos de señales, siertos intervalos de tiempo, en algunos casos la comunicación puede ser
bidireccional, se mencionaran algunos de los mas importantes:
9
2.6.3.1.
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.
2.6.3.2.
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.
2.6.3.3.
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 computadores personales con los monitores, para que estos últimos
informen de sus prestaciones y permitir la autoconfiguración del sistema de video.
2.6.3.4.
USB
Los microcontroladores son los que han permitido la existencia de este sistema de
comunicación. Es un sistema que trabaja por polling (monitoreo) de un conjunto de
periféricos inteligentes por parte de un amo, que es normalmente un computador
personal. Cada nodo inteligente está gobernado inevitablemente por un microcontrolador.
2.6.4. 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.
2.6.5. Modulador de ancho de pulso (PWM).
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.
10
2.7. Lenguaje entre el microcontrolador y nosotros.
Lenguaje de máquina es el sistema de códigos directamente interpretable por un circuito
microprogramable, como el microprocesador de una computadora o el microcontrolador de un
autómata. Este lenguaje está compuesto por un conjunto de instrucciones que determinan
acciones a ser tomadas por la máquina. Un programa consiste en una cadena de estas
instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente
ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o
eventos externos. El lenguaje de máquina es específico de cada máquina o arquitectura de la
máquina, aunque el conjunto de instrucciones disponibles pueda ser similar entre ellas.
Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos
únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1,
por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías
del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su
programación.
Una visión típica de la arquitectura de computadoras como una serie de capas de
abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones.
Claude Elwood Shannon, en su Analysis of Relay and Switching Circuits, y con sus experiencias en
redes de conmutación, sentó las bases para la aplicación del “álgebra de Boole” a las redes de
conmutación.
Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas
combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto
es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se
construyen sistemas lógicos cada vez más complejos.
El sistema binario, en matemáticas e informática, es un sistema de numeración en el que los
números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las
computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo que su
sistema de numeración natural es el sistema binario (encendido 1, apagado 0).
El sistema Hexadecimal, es el sistema de numeración de base 16 (empleando por tanto 16
símbolos). Su uso actual está muy vinculado a la informática y ciencias de la computación, pues
los computadores suelen utilizar el byte u octeto como unidad básica de memoria; y, debido a que
un
byte
representa
28
valores
posibles,
y
esto
puede
representarse
como
, que, según el teorema
general de la numeración posicional, equivale al número en base 16 , dos dígitos hexadecimales
corresponden exactamente (permiten representar la misma línea de enteros) a un byte.
11
En principio, dado que el sistema usual de numeración
num
es de base decimal y, por ello, sólo se
dispone de diez dígitos, se adoptó la convención de usar las seis primeras letras del alfabeto latino
para suplir los dígitos quee nos faltan. El conjunto de símbolos sería, por tanto, el siguiente:
S = {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Se debe notar que A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15. En ocasiones se emplean letras
minúsculas en lugar de mayúsculas. Como en cualquier sistema de numeración posicional, el valor
numérico de cada dígito es alterado dependiendo de su posición en la cadena de dígitos,
quedando multiplicado por una cierta potencia de la base del sistema, que en este caso es 16. Por
ejemplo: 3E0A16 = 3×163 + E×162 + 0×161 + A×160 = 3×4096 + 14×256 + 0×16 + 10×1 = 15882.
El sistema hexadecimal actual fue introducido en el ámbito de la computación por primera vez
por IBM en 1963.. Una representación anterior, con 0
0–9 y u–z,
z, fue usada en 1956 por la
computadora Bendix G-15.
Figura 5: Lenguaje de maquina hexadecimal.
El lenguaje ensamblador, o assembler (assembly language en inglés ) es un lenguaje de
programación de bajo nivel para los computadores, microprocesadores, microcontroladores,
microcontroladores y
otros circuitos integrados programables. Implementa una representación simbólica de los códigos
de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y
constituye la representación más directa del código máquina específico para cada arquitectura
legible por un programador. Esta representa
representación
ción es usualmente definida por el fabricante
de hardware, los registros del procesador, las posiciones
posicione de memoria,, y otras características del
lenguaje. Un lenguaje ensamblador es por lo tanto específico a cierta arquitectura de
computador física (o virtual). Esto está en contraste con la mayoría de los lenguajes de
programación de alto nivel,, que, idealmente son portables.
Un programa utilitario llamado ensamblador es usado para traducir sentencias del lenguaje
ensamblador al código de máquina del computador objetivo. El ensamblador realiza una
traducción más o menos isomorfa (un mapeo de uno a uno) desde las sentencias mnemónicas a
las instrucciones y datos de máquina. Esto está en contraste con los lenguajes de alto nivel, en los
cuales una sola
ola declaración gener
generalmente da lugar a muchas instrucciones de máquina.
12
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el desarrollo
del programa, controlar el proceso de ensamblaje, y la ayuda de depuración.
Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con
potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con
frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la
manipulación directa de hardware, altos rendimientos, o un uso de recursos controlado y
reducido.
Muchos dispositivos programables (como los microcontroladores) aún cuentan con el
ensamblador como la única manera de ser manipulados.
13
3. Experiencia en el laboratorio y otros.
3.1
Configuración del software.
Primero que todo, es necesario configurar el software que se utiliza para hacer funcionar y
programar el micro controlador. Al proceder con esto hubo un problema grave con la
compatibilidad del software con la versión del sistema operativo, por lo tanto se procedió a
descargar una nueva versión que contiene una actualización que sirve para hacerlo funcionar. El
software utilizado esta en http://mcls-modular.de/download/deutsch/idev310.exe .
Al instalarlo, identifica por si mismo que esta conectado un hardware conocido. Se elige el 80C535
y se continúa. Lo demás procede de la misma forma que se señala en la guía de trabajo.
3.2
Conexión del Micro controlador.
La conexión que hay entre la plataforma de trabajo y el computador es vía puerto COM. Al tener
esto conectado, se necesita que las placas estén correctamente conectadas en la plataforma y
también estén correctamente conectadas entre ellas. Al hacerlo así, se puede proceder a probar
los distintos programas que trae el software.
3.3
Actividades con MCLS-Software.
3.3.1
Parpadeo de un LED.
Primero que todo, es necesario conectar las placas de la siguiente forma:
14
Luego, al abrir el archivo blink1.asm en el programa, y después de analizar su contenido, se obtuvo
el resultado esperado. Se logró que el LED conectado al puerto P1.7 se encendiera. Ese puerto se
puede cambiar, buscándolo en el código y eligiendo el que uno quiera. Por otro lado, dentro de las
líneas de comandos, se encuentra un subprograma llamado tiempo, el cual da la orden al LED de
parpadear con cierta frecuencia. Si este subprograma no se encuentra, el LED simplemente no
parpadeará. Por último, el switch al cual se conecta, no influye en este programa, ya que al
moverse no hace ninguna variación en el LED que parpadea.
3.3.2
Tira de LEDs.
En la siguiente experiencia se necesita que se conecten las cosas de la siguiente forma:
15
Como se ve, todos los LEDs están conectados a un puerto diferente lo cual hace pensar que cada
uno se debería comportar de una forma diferente con respecto a otro.
De hecho, al abrir el programa led_II.asm en el software, se logra que los LEDs se prendan,
logrando una secuencia entre todos. Esta secuencia está determinada por una línea de comando
que contiene 8 valores, que son ceros y unos, y que está desfasada para cada LED, de forma que se
logra obtener la secuencia mencionada. Ese desfase, es controlado por el subprograma tiempo
que determina un cierto periodo entre una orden y otra. Por último, es importante señalar que en
esta experiencia, el switch si es útil. Lo que hace es hacer funcionar la secuencia al revés, es decir,
el código entra al revés por cada led, haciendo que se vea al revés el juego de luces.
3.4
Problemas.
Uno de los más grandes problemas que se tuvo, fue no poder hacer funcionar el programa en un
principio, lo cual imposibilitaba todo el desarrollo de la actividad. Pero no solo surgió ese
problema. También ocurrió que las últimas dos experiencias no estaban en el software, por lo
tanto no se pudieron concretar. Estas actividades corresponden a Encendido de Led por medio de
teclado y Conteo Hexadecimal.
16
4. Conclusiones.
Al principio, cuando aparecieron los primeros microcontroladores no se pensó que estos fuesen a
causar un gran impacto en las vidas de las personas y en el mundo, pero a medida que pasaron los
años, se fue demostrando la verdadera revolución que ocasionarían mejorando nuestras vidas.
Hoy en dia hay microcontroladores en todo lo que nos rodea, disminuyendo los espacios
requeridos por los circuito, aumento del control de los dispositivos electrónicos, etc.
Además se pudo experimentar de forma practica algunas características importantes que nos
permiten facilitarnos la vida, con una simple manipulación de led, el cual es el comienzo de robot
en industrias automatizadas, automóviles, en fin, un mundo de posibilidades incontables que van
creciendo día a día.
17
Descargar