|
|
En este ejemplo le mostraremos como controlar un display LCD inteligente con un
microcontrolador PIC, desarrollando una apliacion en PIC C. El algoritmo utilizara un
protocolo de 4 bits . En este ejemplo se utilizara un display de una linea por 16
caracteres. El programa mostrara el mensaje "Contando:" seguido por un numero
que se incrementa en 1 por cada ciclo..
El programa le mostrara el uso de de los comandos pragmas, la
inclusion de archivos, el operador @, la multiplicacion, la inclusion de archivos,
division, la funcion mod , strings, manejo de tablas y algunas cosas mas. En cada
ciclo cambia de estado el pin 18.Esto causara que el led conectado a este destelle.
Ver diagrama
//
// Copyright 1998 Grich RC Inc. All rights reserved.
//
#pragma INCLUDE_DIR C:\picc\include\
#include "16F84.h"
#define RETURN_HOME 0x2
int porta @ 0x5;
int portb @ 0x6;
int trisa @ 0x85;
int trisb @ 0x86;
unsigned int d;
clock()
{
portb |= 1 << 6;
portb &= ~(1 << 6);
}
putchar(unsigned int c)
{
d = c >> 4;
d = d | 16;
portb = d;
clock();
pause(1);
portb = (c & 15) | 16;
clock();
pause(1);
}
pause(t)
long t;
{
while( t ) {
for(d = 0 ; d < 255 ; d++ );
t--;
}
}
init(int c)
{
portb = c;
clock();
pause(2);
}
main()
{
char * ptr;
char * init_data;
long i;
int b;
trisb = 0;
portb = 0;
init_data = "\x2\x2\x0\x0\xc\x0\x6\x0\x2\x99";
pause(1000);
while( @init_data != 0x99 ) {
init(@init_data);
pause(8);
init_data++;
} /* end while */
trisa = 0;
i = 0;
while(1) {
init(RETURN_HOME/16); /* return home command */
pause(1);
init(RETURN_HOME%16);
pause(4);
ptr = "Counting: ";
while( @ptr != '\0' ) {
putchar(@ptr);
pause(2);
ptr++;
}
/* c = (i & 7) + '0'; */
/* putchar(((i/1000)%10) + '0');*/
putchar(((i/100)%10) + '0');
putchar(((i/10)%10) + '0');
putchar((i%10)+'0');
putchar(' ');
b = i*3;
putchar(((b/10)%10) + '0');
putchar(((i*3)%10) + '0');
porta &= ~2;
pause(300);
i++;
porta |= 2;
}
}
|