Ejemplos con PIC C, compilador C para PICs

SCM Hacker . Sección Software
Número: 16

El Magazine electrónico de SCM

International

Control de un display LCD desde C

Para tener información técnica del PIC C visite la pagina web haciendo click aquí

 
SCM home
SCM International , le provee puerta a puerta a todo el mundo!
Consultas
Cursos
PLCs
Sensores
Micros
Robótica
Alambres Musculares

¿Requiere de desarrollos a medida? o la integración de un sistema?

On-line Book Store

Compre los mejores libros. Ahorre! Pague menos y con costos de envío reducidos!

Electrónica - Mecánica - Micros - Robótica


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;
    }

}

Copyright © 2000   SCM International, Inc. All rights reserved.

Por favor, lea cuidadosamente los términos y condiciones descriptas para el uso de   notas de aplicación, materiales, e información de este sitio.

Home page de SCM International SCM Hacker Magazine home page Quiere visitar el menú de herramientas para desarrollo para micros?

Esquema

picc1.gif (6495 bytes)