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
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
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
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.
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.
 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.
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.
EJEMPLOS
Lenguaje
Proteus
Lenguaje
PIC C
Lenguaje
Visual Basic
Lenguaje
Assembler
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
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
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
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
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
 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
Programación de microcontroladores

Programación de microcontroladores

  • 2.
    Los principiantes enelectró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 ejecutael 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 unentorno 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 enC 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 lenguajeC 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 VisualBasic 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 elproceso 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.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
    Normalmente los programasse 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 arewritten 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 existeel 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 PICestá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 intentarsiempre 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: Esel 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