Índice microcontroladores PIC |
| |
Proyectos con microcontroladores PIC.
Estos microcontroladores de la empresa Microchip, son los más populares actualmente,
puede ser por tener versiones económicas de pequeño tamaño, porque tiene set de instrucciones reducidas, por la
disponibilidad de herramientas de programación y por la facilidad para grabarlo.
Si estamos diseñando un circuito compuesto por varios circuitos integrados de compuertas lógicas, temporizadores,
etc, debemos considerar que es más conveniente utilizar un microcontrolador. La cantidad de componentes externos sería
menor, el circuito impreso más sencillo, y el circuito más fácil de actualizar o modificar, así que vale la pena
aprender a usarlos.
Dentro de las cosas que debemos hacer para aprender sobre estos
microcontroladores:
1.
Leer las hojas técnicas de un microcontrolador pequeño
y económico, para empezar. Puede ser el PIC16F84A o el más reciente PIC16F716.
2.
Conseguir las herramientas de compilación y simulación. MPLAB funciona bien y está disponible gratis en la página de
Microchip.
3.
Crear programas para ejercicios sencillos y comprobarlos con el simulador.
4.
Comprar o construir un grabador. Los grabadores Pickit2 y Pickit 3 son oficiales de Microchip y son económicos.
Se conectan al PC a través de puerto USB, a través del cual también se alimentan.
Si pretendemos construirnos nuestro grabador conviene elegir alguno del
listado que funciona con icprog, este programa funciona bien y también es gratis. Además debemos asegurarnos
de contar con algún equipo antiguo con puerto paralelo o serial según requiera el grabador.
Timer 0 del 16F84.
Implementar ICSP de Microchip en nuestros proyectos.
Los protocolos de grabación serial de los microcontroladores actuales, como el ICSP
(In Circuit Serial Programming) de Microchip fueron concebidos para programar
los microcontroladores en la aplicación, es decir, sin retirar el microcontrolador
de la tarjeta, con ventajas evidentes sobre todo para producción masiva.
Es por esto que los grabadores como Pickit2 de Microchip no traen un zócalo ZIF
(Zero Insertion Force).
Cuando desarrollamos prototipos necesitaremos probar el programa del microcontrolador
en protoboard. En este caso nos conviene construir un cable con un conector "Slim" hembra de 6 pines en un extremo y en el otro puntas para el protoboard.
Podemos mantener el cable conectado al protoboard mientras no lo necesitemos para otro
proyecto.
Fig.2: Cable conexión ICSP para conectar grabador con protoboard.
Fig.3: Conexión grabador a protoboard.
De todas maneras nos va a resultar más cómodo construir este cable una sóla vez,
que retirar muchas veces el microcontrolador del protoboard para grabarlo cada
vez que se necesite corregir el programa.
Además:
- es usual que queden puentes o componentes atravesados
por encima del microcontrolador. Por ejemplo el típico condensador de 0,1uF en
los pines de alimentación.
- el cable nos permite en el futuro aprovechar la
función de depuración en circuito (In Circuit Debugger) que está disponible en
los microcontroladores de rango alto y en los más recientes de rango medio.
- con el cable podemos prescindir de una fuente de
alimentación externa y usar los 5V del USB del computador a través del grabador
para alimentar el circuito. La aplicación de Pickit2 tiene una casilla de
verificación para activar o desactivar la alimentación.
El conector del grabador tiene 6 pines. Se utilizan 5 para grabar
microcontroladores y se dejó un sexto para posibles funciones auxiliares:
- VPP Voltaje de programación.
- VDD Positivo de fuente de alimentación
- VSS Negativo de fuente de alimentación
- PGD Dato de programación.
- PGC Clock de programación.
- AUX Auxiliar.
Nota.
Pin 1 marcado con flecha blanca en Pickit2
Para grabar con éxito nuestro microcontrolador "en
circuito" debemos evitar que los componentes de nuestra aplicación, conectados
a los pines que intervienen en la grabación interfieran con las señales de
grabación.
Para el pin VPP que se conecta al MCLR del microcontrolador basta con
un circuito "Power on reset" y una resistencia de 470 Ohm para aislarse de éste.
NO SE PUEDE USAR MCLR DIRECTAMENTE A +V
Las señales PGD y PGC se conectan a RB7 y RB6 respectivamente y para
aislarse de la aplicación se puede poner resistencias en
serie si la aplicación lo permite.
En último caso si no queremos complicarnos y nos
sobran pines de IO dejamos RB6 y RB7 exclusivos para ICSP.
Fig.4: Implementar ICSP en protoboard.
Uso de interrupciones externas de microcontroladores.
Muchos de los pulsos que deseamos leer con
el microcontrolador aparecen de forma breve e inesperada. Si bien
los microcontroladores actuales pueden ejecutar
instrucciones en fracciones de microsegundo, evaluar el estado de una entrada
permanentemente a través de un "loop" no garantiza la lectura del evento. (ej
teclados, señales "Ready" de un ADC, etc.)
Para resolver este problema, los
microcontroladores disponen de un mecanismo llamado
interrupción, que en este caso serán externas, pues las hay también internas
(timers, módulos de comunicación, etc.).
Los microcontroladores PIC de Microchip
constan con una interrupción externa asociada al pin RB0 y una interrupción "on
change" (al cambio) que se activa al cambiar el estado de los pines RB7, RB6,
RB5 y RB4.
Al
producirse un cambio en un pin de entrada asociado a una interrupción, hardware
interno del microcontrolador activa un "flag". Si la interrupción está
habilitada el programa altera su flujo normal y salta a una dirección asignada,
llamada "Vector de interrupción" y a partir de esa dirección está escrito el
código a ejecutar al producirse la interrupción: "Rutina de servicio de
interrupción" o RSI o ISR. Logrando de esta manera atender inmediatamente un
evento.
Para
producir una interrupción, el pin debe estar configurado como entrada y la
interrupción debe estar habilitada en los registros correspondientes.
Para
probar el funcionamiento de la interrupción en el simulador de MPLAB de
Microchip podemos crear un "Workbook" en "Debugger/ Stimulus/ "New
Workbook". Se abre una ventana que nos permite aplicar distintos niveles a los
pines de entrada.
Hacer
click en un campo en blanco de la columna "Pin/Sfr" y aparece una flecha para
desplegar un menú, aquí elegimos el pin que nos interesa cambiar y en la
columna "Action" elegimos la acción que se le aplicará al pin. Puede ser
"Toggle" que conmuta el estado del pin.
Para
activar el estímulo elegido debemos hacer click en la casilla "Fire" de la fila
correspondiente.
Si la interrupción esta bien configurada, el
flujo del programa debe saltar al vector de interrupción al producirse
un canto de subida o de bajada, según cómo se
configuró la interrupción.
Según lo que se necesite hacer con el programa, a veces
resulta más conveniente no
habilitar la interrupción y evaluar con un "loop" el estado del flag
correspondiente a la interrupción. A diferencia del método que explicaba al
principio, de esta forma sí se asegura recibir el evento, pues aunque no sea
inmediatamente, aunque el evento desaparezca, el flag de interrupción queda
activado.
Empezando con lenguaje C para microcontrolador PIC.
Primero
aclaremos que a diferencia de terceras empresas, Microchip no tenía compilador
C para los microcontroladores pequeños, sólo para los de gama alta como la familia
PIC18 y superiores, los cuales han sido diseñados para trabajar con lenguaje C.
(Actualmente MPLABX graba microcontroladores pequeños).
El compilador C18 se baja de forma gratuita de la página de Microchip.
Aunque
el lenguaje Assembler nos permite resolver cualquier problema y debemos primero
pensar en resolverlo con Assembler, pues el microcontrolador puede ser más
económico, hay requerimientos que nos obligan a programar en un lenguaje de
nivel más alto, como lenguaje C:
-
Evitar complejos algoritmos de aritmética de
Assembler.
-
Simplificación del código y disminución del tiempo
de desarrollo.
El
costo de un uC PIC18F4550 de 40 pines está alrededor de $6.000(Chile).
Herramientas:
Debemos tener instalado en el computador MPLAB y el
compilador C18. Ambos se descargan de forma gratuita de la página de
Microchip.
Primero
debemos instalar MPLAB y después C18, el cual se instala en el raíz y
configurará a MPLAB para integrar C18 en MPLAB.
Haremos
un ejemplo muy simple con las siguientes herramientas de desarrollo:
- MPLAB versián
8.56
- C18 versión 3.36
- Aplicación
Microchip HID bootloader v2.6a
- Tarjeta de
evaluación PICDEM FS USB con uC 18F4550.
- Cable USB A a B.
El de impresoras sirve.
Para quienes deseen conseguir una de mis tarjetas compatibles PICDEM FS
USB:
Características del microcontrolador PIC18F4550:
- 40 pines
- 35 pines I/O.
- puerto USB 2.0
- 4 timers
- Salida PWM
- ADC 10 bit y 13 canales
- Arquitectura optimizada para compilador C.
- 32K memoria flash, 2048 SRAM, 256 EEPROM
Características tarjetaPICDEM FS USB:
- Conector USB tipo B
- Pulsador y LEDs incorporados en pines I/O.
- Microcontrolador PIC18F4550.
- Conector e interface serial RS232.
- Incluye bootloader HID. (Es reconocido por PC sin
necesidad de driver).
- Conector ICSP
- Incluye potenciómetro en entrada ADC.
Debemos revisar y tener una copia de estos archivos a mano:
- 39632e.pdf datasheets
de PIC18F4550
- c18_user_guide_51288j.pdf guía de usuario de C18
- p18f4550.inc definiciones de registros
Ubicados en: C:Archivos de programaMicrochipMPASM Suite
- mplab_c18_getting_started_51295f.pdf
- mplab-c18-libraries_51297f.pdf
- hlppic18configset.chm
Ubicados en C:MCC18doc
También es recomendable tener algún libro de lenguaje C ANSI aunque sea para
PC, para consultar la sintaxis, estructuras de bucles, etc.
Crear proyecto en MPLAB:
- Crear una carpeta con el nombre que le queramos dar a nuestro proyecto.
- Copiar en la carpeta archivo fuente main.c disponible en link abajo.
- Copiar en la carpeta archivo linker. Usar:
"rm18f4550 - hid bootload.lkr" para usar con Bootloader HID.
- En menú "Project" click en "Project Wizard" y en la siguiente ventana click en botón "Siguiente".
- En esta ventana elegir "PIC18F4550" y hacer click en siguiente.
6. En campo "Active
Toolsuite" elegir "Microchip C18 Toolsuite" y hacer click en siguiente.
7. Ahora click en
"Browse" y abrir la carpeta que creamos anteriormente.
8. Elegir nombre de
proyecto y click en "Guardar".
9. En esta ventana,
"Step Three" click en "Siguiente".
10. Ahora en la
ventana "Step Four" localizar la carpeta de nuestro proyecto y seleccionar cada
uno de los 2 archivos y agregarlos al proyecto haciendo click en "Add". Luego
click en "Siguiente".
11. En la ventana
"Sumary" click en "Finalizar" para crear el proyecto.
12. Nos
aparece un esquema de nuestro proyecto en estructura de árbol. Confirmar que
aparezcan
nuestros 2 archivos: main.c en "Source files" y rm18f4550 - hid
bootload.lkr en "Linker script".
Si revisamos con el explorador de archivos la carpeta de nuestro proyecto,
veremos que ahora se agregaron 3 archivos más. Estos archivos mantienen la
información sobre el proyecto. El que tiene extensión "mcw" guarda la
información de las ventanas abiertas y su distribución sobre el espacio de
trabajo. Posteriormente podemos abrir nuestro proyecto con este archivo o con
el de extensión "mcp".
13. Ahora ya estamos
en condiciones de compilar y ejecutar nuestro proyecto con "Project" "Build
All".
Si todo
está bién deberíamos obtener "Build Succeeded" en la ventana "Ouput".
Y si
revisamos en este momento, con el explorador de archivos, la carpeta de nuestro
proyecto veremos que se agregaron 3 archivos más. El que nos interesa por ahora
es el que tiene extensión "hex" pues es el que se cargará en el
microcontrolador.
Para ver en
detalle la ejecución del programa debemos aprender a usar el simulador de
MPLAB. Ver sección:
Uso de Simulador de MPLAB.
Es un ejemplo muy sencillo de la guía "Getting started" al cual se le
cambió el puerto de salida al puerto D, pues éste incorpora 4 LEDs en la
tarjeta PICDEM FS USB.
El programa configura el puerto D como salida, lo resetea, y luego lo
deja permanentemente en estado alto. Pueden modificarlo ustedes posteriormente
para dejar los LEDs permanentemente apagados.
Cargar programa al microcontrolador.
Una de las características de la tarjeta de evaluación es que ya viene
con un bootloader grabado, esto nos permite cargar el programa al
microcontrolador sin necesidad de un grabador, pues el bootloader se encarga de
recibir el archivo "hex" a través del puerto USB y hacer que el
microcontrolador se grabe a si mismo con el programa de nuestra aplicación a
continuación del espacio que ocupa el programa del "Bootloader".
El bootloader usado es el denominado HID, que es el que usa Microchip en
sus últimas bibliotecas de aplicación MAL (Microchip Aplication Library).
Este bootloader es declarado al sistema
como un dispositivo de interfaz humana (HID), los cuales Windows
reconoce directamente sin necesidad de driver.
1.
Ejecutar aplicación "HID bootloader" y nos aparecerá esta ventana:
La tarjeta de evaluación PICDEM FS USB normalmente ejecuta el programa
que se le ha cargado y si mantenemos presionado uno de sus pulsadores (S2) y
reseteamos entra al modo bootloader. Al entrar a este modo será reconocida por
el sistema y por la aplicación Bootloader, recuerden que no necesita driver, y
se habilitará el botón "Open Hex File" de la aplicación en el PC.
2.
Haciendo click
en botón "Open Hex File" podemos cargar el archivo con extensión "hex" que
generamos anteriormente.
3.
Click en
"Program/Verify" para cargar el microcontrolador con nuestro programa.
Confirmar que la operación se realizó con éxito en la parte informativa de la
ventana principal.
4.
Presionar pulsador "Reset" de la tarjeta lo que hace que salga del modo bootloader y
ejecute nuestro programa. Deben encenderse los 4 LEDs que la tarjeta tiene
conectados en el Puerto D.
A continuación analizamos el programa para que lo entienda y puedan
usarlo como plantilla y modificarlo de acuerdo a sus necesidades.
Análisis del programa.
1.
Lo que está
encerrado entre /* y */ son comentarios y aparecen en MPLAB de color gris claro:
/*Ejemplo 2 capítulo
"Getting started" "Light LED"
modificado para puerto D que tiene LEDs en tarjeta USB_BOARD_4550
XTAL = 20MHz
versión: 10 para bootloader HID
Modificado: 13 Agosto 2012
*/
2.
"//" se usa para
agregar comentarios desde que aparece hasta el final de la línea:
#pragma config PLLDIV = 5 // 20 MHz crystal/5 = 4MHZ para PLL
96MHz
A veces se usan también para deshabilitar una línea del programa sin
borrarla:
//#pragma config CP2 = OFF
3.
Los
comandos "#pragma config" le indican al
programa grabador el valor de los distintos bytes de fusibles de configuración
que tiene el microcontrolador:
#pragma config PLLDIV = 5 // 20 MHz crystal/5 = 4MHZ para PLL
96MHz
4.
Ya que el
programa bootloader ocupa permanentemente un espacio al inicio de la memoria de
programa donde se encuentran los vectores de reset e interrupción, debemos re-direccionar
estos vectores:
// (PROGRAMMABLE_WITH_USB_HID_BOOTLOADER)
#define
REMAPPED_RESET_VECTOR_ADDRESS 0x1000
extern void _startup
(void); // See c018i.c in your C18
compiler dir
#pragma code
REMAPPED_RESET_VECTOR = REMAPPED_RESET_VECTOR_ADDRESS
void _reset (void)
{
_asm goto _startup _endasm
}
5.
Con "void
main(void)" comienza nuestro programa
principal. Está encerrado entre paréntesis de llaves ô´{}"
6.
"TRISD = 0;"
configura el puerto D como salida.
7.
El valor que
asignemos a "PORTD" se verá reflejado en la salida:
PORTD = 0x0f;
Con esto los 4 bits menos significativos se activan, por lo tanto los
LEDs se encienden.
Uso de Simulador de MPLAB.
1.
Si no vemos el código fuente de nuestro programa en este momento y sólo vemos el esquema de
árbol. Hacer click en el archivo con extensión .c para abrirlo.
2.
Si seleccionamos "Debugger/Select tool" podemos ver varias herramientas de depuración. "MPLAB
SIM" no requiere hardware adicional y nos permite simular en pantalla. Elegir esta opción.
3.
Se agregará una barra con iconos que nos permiten ejecutar el programa paso a paso, de una sóla
vez, saltarse funciones, salir de éstas, etc.
Nota:
F5, F6, F7, F8, F9 corresponden a los íconos de la barra de depuración.
4.
Teniendo abierto nuestro proyecto presionar "F5" (Halt) y luego "F6" (Reset) para asegurarnos
que no haya una ejecución en progreso.
Nota:
Es necesario hacer click en la parte blanca de la ventana que contiene
el código para enfocarla y luego ejecutar los comandos de depuración.
5.
Presionar "F7" para ejecutar paso a paso.
Pasaremos por varias sentencias de funciones que implementan C18 y que
aparecen en una ventana separada. Nos concentraremos en llegar a la función
"main" de nuestro programa.
6.
En la primera línea después de la llave de apertura de main podemos hacer doble click para
poner un "Breakpoint", lo que nos permitirá ejecutar hasta este punto de una
sóla vez la próxima vez que corramos el programa desde el principio con F9.
7.
Presionar F5 y F6 para resetear, luego F9 y llegaremos al "Breakpoint". Luego podemos seguir
paso a paso.
8.
Para ver cómo cambian los registros del microcontrolador ejecutar "View/Watch":

Elegir el registro que queremos observar en la caja combo izquierda, por ejemplo para
nuestro programa "Prog2", elegir "PORTD" y luego click en el botón "Add SFR".
Ejecutemos nuevamente paso a paso observando cómo cambia el estado de "PORTD".
9.
Cuando cerremos el proyecto debemos guardar también el "Work space".
Grabación de E2PROM 93LC46 con Pickit2.
Aunque las memorias E2PROM seriales no se comunican a través de ICSP como
los microcontroladores, de todas maneras la aplicación de
Pickit2 permite grabarlas. En el archivo "pickit 2 readme.txt" (ubicado en C:
ARCHIVOS DE PROGRAMAMICROCHIPPICKIT 2 V2) se puede ver la conexión entre los pines del
grabador y los de la memoria:
PICkit 2 Pin |
93LC Device Pin (DIP) |
1 Vpp |
1 CS |
2 Vdd |
8 Vcc |
3 Gnd |
5 Vss |
4 PGD |
4 DO |
5 PGC |
2 CLK |
6 AUX |
3 DI |
|
7 PE-enabled (Vdd) |
|
6 'C' Device ORG select word size |
Nota.
No se conectaron pines 6 y 7 de E2PROM pues en Datasheet se ve que son "NC".
Fig.5: Conexión entre Pickit2 y E2PROM 93LC46.
También aparecen las conexiones para grabar memorias E2PROM de otras familias como las:
Reinstalar firmaware de Pickit2
Si por algún motivo se pierde el firmware de Pickit2 podemos recurrir a la carpeta de instalación
de Pickit2, ahí encontraremos una copia:
C:Program FilesMicrochipPICkit 2 v2"PK2V023200.hex"
Cargarlo a través de aplicación de Pickit2 en menú: "TOOLS/Download Pickit2..."
Manejo de LCD con PIC18
El circuito a implementar para conectar un display LCD a un microcontrolador no es tan
complicado, además si necesitamos mostrar información en varios dígitos, el
circuito de multiplexado de displays LEDs de 7 segmentos sería más complicado
que el de un LCD. Y por supuesto que si requerimos mostrar caracteres
alfanuméricos la elección de un display LCD es obligatoria.
Con un display LCD
podemos presentar cualquier carácter sólamente enviando su código ASCCI
correspondiente. También se puede enviar comandos al LCD para hacer algunos
efectos como parpadear o rotar.
C18 tiene una biblioteca con funciones para LCD las que nos simplifican enormemente el
trabajo. Estas funciones están hechas para displays LCD compatibles con el control Hitachi
HD44780, el cual fue muy popular por lo que muchos displays LCD actuales son fabricados para ser
compatibles con el Hitachi. Acá en Chile hay LCD compatibles en Victronics y en Olimex. En este
caso hemos elegido el GDM1602 de Olimex que se caracteriza por mostrar los caracteres como si
estuvieran en "video inverso" en fondo azul dándole gran contraste y atractivo. El ADM1602 es igual
excepto que la salida de los pines es por el lado opuesto. Esto no nos va a afectar si implementamos
las conexiones al LCD directo con cinta de cables, pero si afectará si ya tenemos un diseño en PCB
para un determinado modelo de display.
Características del display LCD GDM1602
- 16 caracteres 2 líneas.
- Se puede alimentar BKL con 5V directo a fuente de alimentación o a través de pin I/O.
- Trabaja en modo de 4 bits de datos u 8 bits.
- Modo 4 bits usa en total 7 pines I/O.
Implementación
- Implementaremos una tarjeta universal con un potenciómetro
de 10K externo para contraste y conectores para derivar alimentación al LCD.
- Elegimos trabjar en modo de 4 bits porque usa sólo 7 pines I/O. En este caso elegiremos
el puerto D .
Para configurar en modo de 4 bits y a través de puerto D debemos modificar
archivo "xlcd.h" de MCC18. Éste está ubicado en:
C:MCC18h
Originalmente xlcd.h está configurado para modo de 8 bits y para puerto
B, pero preferimos modificarlo para trabajar en modo 4 bits por su ahorro
considerable de líneas I/O y con el puerto D en vez del B, porque en el puerto
B están los pines de interrupciones externas y así podemos disponer del puerto
B para en caso de necesitarlas posteriormente en nuestro programa.
Pueden renombrar archivo xlcd.h original y copiar en la misma ubicación
archivo xlcd.h modificado que pueden bajar aquí:
Bajar xlcd.h modificado.
Hardware
Construir un cable con un conector slim hembra de 8 contactos:
- Cortar un trozo de cinta de cables gris de unos 15cm, y con 7 conductores,
idealmente que incluya el cable marcado con rojo, sino marcar un extremo con plumón.
- Poner en un extremo los terminales slim (7).
- Introducir el extremo con terminales dentro del conector slim hembra de manera que
quede el conductor marcado en un extremo y el contacto vacío en el opuesto.
En el otro extremo de la cinta de cables debes conectar con soldadura, cada uno de los
7 cables al conector del LCD según esquema:

Fig.6: Esquema conexión entre PIC18F4550 y LCD.
uC LCD PIN
RD0 DB4 11
RD1 DB5 12
RD2 DB6 13
RD3 DB7 14
RD4 E 6
RD5 RS 4
RD6 RW 5
Fig.7: Conexiones en LCD con cinta de cables.
5. El conductor marcado sera RD0
6. Abrir pista de jumper de LEDs JP2.
7.Marcar con plumón pin de RD0 en tarjeta:
Fig.8: Marca
RD0 y +V.
Ahora sólo falta las conexiones de alimentación del LCD:
1. Lo mejor es implementar el control de contraste
y derivaciones de alimentación en un pequeño trozo de tarjeta universal que
dejaremos volante:
Fig. 9: Tarjeta contraste y alimentación.
2. Los cables del conector de 3 pines con cables grises son +V, Vo y GND del LCD.
3. Los cables del conector de 2 pines con colores naranja y verde son A y
K del backlight del LCD.
4. Los cables del conector de 2 pines con colores rojo y negro son +V y GND y van a la tarjeta USB board:
- +V tenemos en un extremo de la resistencia de 1K del LED de power. Ver marca "+" en Fig 3.
- GND puede ser en el cátodo del LED indicador de power. Si miramos por debajo las pistas en
este LED, la más ancha es GND.
5. Para implementar tarjeta volante guiarse con esquema de figura 1
Software
- Crear proyecto incluyendo archivo fuente principal.
Bajar fuente LCD.
- Incluir en proyecto archivo cabecera xlcd.h
- incluir en proyecto (no incluir en carpeta de proyecto) archivos *.c de carpeta XLCD:
"MCC8srcpmc_commonXLCD
Se deben incluir en carpeta de proyecto
"Source Files". Para separar de archivo fuente principal se puede crear una sub
carpeta y en ésta incluir archivos haciendo click derecho y eligiendo "Add
files". Ver Fig. 10.
Fig.10: Carpeta XLCD
con archivos fuente.
- Obtendremos
respectivos *.o en proyecto después de compilar.
Dentro de las
funciones que nos ofrece la biblioteca de C18 para LCD de podemos distinguir:
WriteDataXLCD que
nos permite enviar un carácter para imprimir en el LCD a través de su
correspondiente código ASCCI.
Ejemplo: WriteDataXLCD("A");
enviará carácter "A" al LCD.
Si deseamos
presentar un número en el display, por ejemplo, el contenido de una variable,
primero debemos descomponer el número y luego enviar las centenas, decenas y
unidades, por ejemplo para un número de 3 cifras, y sumarle "30" en
hexadecimal. Recordemos que el LCD espera un código ASCCI y como el código
ASCCI del cero es el 30h y los dígitos del 0 al 9 están consecutivos en la
tabla ASCCI logramos presentar el dígito que deseamos. Ver programa.
putrsXLCD que
permite enviar una cadena de caracteres al display. Ejemplo:
putrsXLCD("
TEMP = ");
WriteCmdXLCD que
envía un comando al LCD. Debido que además hay que revisar si LCD está ocupado
a través de función BusyXLCD se ha creado la función comandXLCD que incluye la
función BusyXLCD.
COMANDOS DEL LCD:
ENTRY MODE SET:
Si el bit 2 del
comando que enviamos es 1 entonces estamos seleccionando el comando "Entry mode
set" que tiene el siguiente formato:
1 I/D SH
I/D: determina la
dirección hacia la cual se moverá el cursor a medida que presentamos
caracteres.
SH: determina si se
desplaza o no el display completo.
Ejemplo:
comandXLCD
(0b00000110); Cursor se desplazará hacia
la derecha y el LCD no se desplazará.
RETURN HOME:
Cursor vuelve a
posición "Home". Ejemplo:
comandXLCD
(0b0000010);
DISPLAY ON/OFF CONTROL:
Si el bit 3 es uno
entonces seleccionamos el comando "DISPLAY ON/OFF CONTROL" que tiene el
siguiente formato:
1DCB
D: determina si el
display está encendido o apagado.
C: determina si
aparece o no cursor.
B: determina si
cursor parpadea o no.
Ejemplo:
comandXLCD
(0b0001100); Display encendido,
cursor no aparece ni parpadea.
CLEAR DISPLAY:
Borra pantalla
completa. Ejemplo
comandXLCD (0b0000001);
Volver
|