Una biblioteca de codi de bona LCD

R

RollingEEE

Guest
Hola,
Necessito una mica de codis LCD per 8.051 i AVR de microcontroladors en c
/ El codi ha de ser molt portable, i que els retards també ha de ser independent de la freqüència de l'oscil lador per garantir la portabilitat.i la biblioteca hauria de tenir totes les funcions estàndard de C com printf, posa, gotoxy, així com funcions addicionals com el cursor a sobre...

Nota: En realitat volen fer de la biblioteca, així que si algú està interessat, podem fer-ho junts

 
Procyon AVRlib C-Language funció de biblioteca per als processadors Atmel AVR.Escrit per Pascal Stang
Descarregar AVRlib (amb documents i exemples de codi)
<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" />AVRlib (fitxer zip, 1,5 MB, el diumenge 29 d'octubre 2006),<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" />AVRlib (Win32 paquet d'instal lació, 1.5MB, el diumenge 29 d'octubre 2006)
 
si agradable.Ara vull un LCD basat en la col.lecció de 8051.

 
<img src="http://www.edaboard.com/images/smiles/icon_arrow.gif" alt="Arrow" border="0" />Yet Another 8051-a-LCD d'interfície
 
d'aquest Codi de 8051 és bona, però els ports són gairebé fix, no flexible, sense un canvi dràstic en el codi.Vaig tractar d'usar-lo amb S52, pantalla LCD de 16x04, i Raisonace IDE (RIDE), però no va funcionar
Last edited by RollingEEE a 15 febrer 2007 17:52, editat 1 cop en total

 
T 'agradaria adjuntar la seva Raisonace 8.051 el codi font del controlador LCD?Vaig a comprovar-ho

 
la col.lecció de exemple, l'ús microc

/************************************************* **************************
;
; Aquest mòdul es presenta aquí només per servir com una mostra per
; 8.051 el desenvolupament del programa.BiPOM Electronics ofereix aquest mòdul com és i
, No garanteix la seva funcionalitat o idoneïtat per a un propòsit particular.
, Si us plau correu electrònic preguntes i suggeriments a info (at) bipom.com;
;
; Mòdul: lcd.c
;
; Versió: 1.01
;
; Descripció: rutines de la interfície per a la conducció d'un alfanumèrics
; Mòdul de pantalla de cristall líquid 8.051 utilitzant micro-controlador.
; LCD és impulsada per només 4 línies de dades (4-bit mode)
;
; Aquest programa està escrit utilitzant Micro-compilador de C de
; Dunfield Desenvolupament de Sistemes.
;
* /# Include <8051io.h>
# Include <8051bit.h> / * conjunt de bits / macros clar * /
# Include <8051reg.h># Define P3.5 LEA / * Llegir i escriure = SET = RESET * /
# Define STROBE P3.4 / * DADES STROBE (habilitat) * /
# Define CTRL P3.7 / * bit de control (CONTROL = RESET & DATA = SET) * /InitLCD void ();
void WriteCtrl (valor unsigned char);
void writeData (valor unsigned char);
void WriteCommon (valor unsigned char);
void WriteLCD (unsigned char * message);
CursorHome void ();
void CursorSet (POS unsigned char);main ()
(
/ * Inicialitzar la pantalla LCD com la primera cosa que * /
InitLCD ();

/ * Escriu un missatge simple a la pantalla LCD * /
CursorHome ();
WriteLCD ( "Hola");

/ * Mantingui el missatge durant 2 segons (1 segon sobre MINI-MAX/51-C) * /
retard (2000);

/ * Esborrar la pantalla LC * /
CursorHome ();
WriteLCD ( "");

/ * Exemple d'escriptura a qualsevol lloc de la pantalla * /
CursorSet (5);
WriteData ( 'x');
WriteData ( 'I');
WriteData ( 'z');
)/************************************************* **************************
; Funció: InitLCD
;
; Descripció: Inicialitza la pantalla LCD
;
; Entrades: cap
;
Retorna: Res
;************************************************* *************************/
void InitLCD ()
(
/ * Espera una mica després d'encendre * /
retard (200);

/ * Inicialitzar la pantalla LCD per al mode de 4 bits * /
WriteCtrl (3);
retard (50);

WriteCtrl (3);
retard (10);

WriteCtrl (3);
retard (10);

WriteCtrl (2);
retard (10);

/ * Ajust de funcions * /
WriteCtrl (2);
retard (10);

WriteCtrl (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Fresc" border="0" />

;
retard (10);

/ * Display OFF * /
WriteCtrl (0);
retard (10);

WriteCtrl (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Fresc" border="0" />

;
retard (10);

/ * Mostra ON * /
WriteCtrl (0);
retard (10);

WriteCtrl (0x0F);
retard (10);

/ * Mode d'entrada * /
WriteCtrl (0);
retard (10);

WriteCtrl (6);
retard (10);

/ * Clear Screen * /
WriteCtrl (0);
retard (10);

WriteCtrl (1);
retard (100);

/ * Inici del cursor * /
WriteCtrl (0);
retard (10);

WriteCtrl (2);
retard (100);
)void CursorSet (POS unsigned char)
(
WriteCtrl (

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Fresc" border="0" />

;
retard (1);

WriteCtrl (pos);
retard (1);
)

void CursorHome ()
(
/ * Inici del cursor * /
WriteCtrl (0);
retard (1);

WriteCtrl (2);
retard (1);
)

void WriteLCD (unsigned char * message)
(
unsigned char i;

for (i = 0; i <20; i )
(
if (! missatge )
break;

WriteData (missatge );
)
)

void WriteCtrl (valor unsigned char)
(
clrbit (CTRL);

WriteCommon (valor);
)

void writeData (valor unsigned char)
(
setbit (CTRL);

WriteCommon (valor>> 4);
WriteCommon (valor);
)

void WriteCommon (valor unsigned char)
(
clrbit (LEA);

valor = valor & 0x0F;

valor = valor <<2;
valor | = 0xc3;

P1 = valor;

setbit (STROBE);
retard (1);
clrbit (STROBE);
setbit (LEA);

retard (1);
)

records

 
budhy va escriure:

T 'agradaria adjuntar la seva Raisonace 8.051 el codi font del controlador LCD?
Vaig a comprovar-ho
 

Welcome to EDABoard.com

Sponsor

Back
Top