Avances tecnológicos del siglo XXI y ejemplos de estos
Programación de microcontroladores
1.
2. Los principiantes en electrónica
creen que un microcontrolador es
igual a un microprocesador. Esto
no es cierto. Difieren uno del otro
en muchos sentidos. La primera y
la más importante diferencia es su
funcionalidad. Para utilizar al
microprocesador en una aplicación
real, se debe de conectar con otros
componentes, en primer lugar, con
la memoria.
DEFINICIÓN
3. El microcontrolador ejecuta el programa
cargado en la memoria Flash. Esto se
denomina el código ejecutable y está
compuesto por una serie de ceros y unos,
aparentemente sin significado.
Dependiendo de la arquitectura del
microcontrolador, el código binario está
compuesto por palabras de 12, 14 o 16
bits de anchura. Cada palabra se
interpreta por la CPU como una
instrucción a ser ejecutada durante el
funcionamiento del microcontrolador.
CARACTERÍSTICAS
4. Proteus
Proteus es un entorno integrado diseñado para la realización
completa de proyectos de construcción de equipos electrónicos
en todas sus etapas: diseño, simulación, depuración y
construcción. Sin la utilización de la suite Proteus, el proceso
para construir un equipo electrónico basado en un
microprocesador se compone de las siguientes etapas
LENGUAJE DE PROGRAMACIÓN
5. Programación PIC en C
Bien ya tenemos nuestro primer ejemplo generado y
listo para cargarlo en nuestro simulador Proteus.
Vamos a ello: Arrancamos nuestro simulador Proteus y
pasamos a colocar nuestros dispositivos en el área de
trabajo. Empezaremos colocando el PIC, para ello
hacemos clic en el botón que pone Pick Devices según
se muestra en la figura de abajo.
6. Lenguaje C
El lenguaje C dispone de todas las ventajas de un lenguaje de
programación de alto nivel (anteriormente descritas) y le permite
realizar algunas operaciones tanto sobre los bytes como sobre
los bits (operaciones lógicas, desplazamiento etc.). Las
características de C pueden ser muy útiles al programar los
microcontroladores. Además, C está estandarizado (el estándar
ANSI), es muy portable, así que el mismo código se puede
utilizar muchas veces en diferentes proyectos.
7. Lenguaje Visual Basic
Los lenguajes de programación de alto nivel (Basic entre otros) fueron
creados. La ventaja principal de estos lenguajes es la simplicidad de
escribir un programa. Varias instrucciones en ensamblador se
sustituyen por una sentencia en Basic. El programador ya no tiene que
conocer el conjunto de instrucciones del microcontrolador utilizado. Ya
no es posible conocer exactamente cómo se ejecuta cada sentencia,
de todas formas, ya no importa. Aunque siempre se puede insertar en
el programa una secuencia escrita en ensamblador.
8. Lenguaje Assembler
Como el proceso de escribir un código ejecutable era
considerablemente arduo, en consecuencia, fue creado el
primer lenguaje de programación denominado ensamblador
(ASM). Siguiendo la sintaxis básica del ensamblador, era más
fácil escribir y comprender el código. Las instrucciones en
ensamblador consisten en las abreviaturas con significado y a
cada instrucción corresponde una localidad de memoria.
13. Normalmente los programas se escriben en el lenguaje
ensamblador cuando se requiere controlar completamente la
ejecución de programa. Como el proceso de escribir un código
ejecutable era considerablemente arduo, en consecuencia, fue
creado el primer lenguaje de programación denominado
ensamblador (ASM). El proceso de programación se hizo un poco
más complicado. Por otro lado, el proceso de escribir un programa
dejó de ser una pesadilla.
RESUMEN
14. Normally programs are written in assembly language when
required to completely control program execution. As the process
of writing executable code was considerably hard, therefore, it
was created the first programming language called Assembler
(ASM). The programming process took a little more complicated.
On the other hand, the process of writing a program ceased to
be a nightmare.
SUMMARY
15. En C existe el concepto de memoria dinámica. La memoria dinámica
es aquella que se puede reservar y liberar en tiempo de ejecución, es
decir, durante la ejecución del programa se liberará y se asignará
memoria para optimizar los recursos de la CPU, para ello se dispone
de funciones como malloc() y free(). El compilador CCS también
admite este tipo de funciones, para utilizarlas debemos de incluir el
archivo de cabecera stdlibm.h, ya veremos un ejemplo sobre la
asignación de memoria dinámica, si no utilizamos estas funciones la
reserva de memoria es estática, es decir, si declaramos un array de
nueve elementos el compilador le reservará memoria contigua a dicho
array al compilar el programa en los registros de propósito general
(GPR).
RECOMENDACIONES
16. Los microcontroladores PIC están en auge, utilizándose en proyectos
industriales, de investigación y para docencia. No tiene sentido que el
diseñador sólo pueda utilizar una única plataforma para desarrollar
aplicaciones con ellos. Parece más lógico que el diseñador utilice la que más
le convenga, o la que normalmente use. Para ello, hemos diseñado un
grabador para los microcontroladores PIC de la familia 16F87X y 16F8x, que
se puede implementar usando cualquier microcontrolador que disponga de
comunicaciones RS-232. Hemos definido un protocolo para la grabación y lo
hemos implementado en una tarjeta CT6811 y en una tarjeta prototipo con un
PIC16F876A. Se ha programado un cliente en Linux, que se comunica con el
grabador y que permite cargar programas ejecutables en la flash. El software
está bajo licencia GPL y toda la información sobre el grabador se ha liberado.
CONCLUSIONES
17. Hay que intentar siempre utilizar el tipo de dato que menos
memoria ocupe dentro de los valores que pueda utilizar la
variable. Si abusamos de los tipos grandes para almacenar
valores pequeños nos quedaremos sin memoria y en los
programas grandes es un dato que tenemos que tener en
cuenta.
APRECIACIÓN DEL EQUIPO
18. Microprocesador: Es el circuito central más complejo de un sistema informatico. A modo de
ilustración, se le suele llamar por analogía el «cerebro» de un computador. Es un circuito
integrado conformado por millones de componentes electrónicos.
Memoria Ram: Memoria principal, donde residen programas y datos, sobre la que se pueden
efectuar operaciones de lectura y escritura.
Memoria de programa: Esta memoria almacena el programa de usuario, aunque también puede
contener datos alfanuméricos y textos variables.
Convertidor A/D: Dispositivo que se encarga de convertir la señal analógica del sensor en
valores digitales procesables por la CPU de la cámara.
Oscilador: Todo microcontrolador requiere de un oscilador el cual es el encargado de definir la
velocidad con la que se procesaràn las instrucciones. El PIC 16F84A tiene cuatro posibles
configuraciones de oscilador:
LP: Cristal usado para bajo consumo de potencia
XT: Cristal de cuarzo estándar
HS: Cristal de alta velocidad
RC: Resistor/capacitor, ofrece menor precisión en el oscilador
Memoria EEPROM: EEPROM o E²PROM son las siglas de Electrically Erasable Programmable
Read-Only Memory. Es un tipo de memoria ROM que puede ser programada, borrada y
reprogramada eléctricamente
GLOSARIO DE TERMINOS