Problemes amb pantalla LCD de Proteus?

S

Sphinx

Guest
Salam,

Jo ús LM016L Mòdul LCD en Proteus i aquest codi de controlador LCD.

El codi funciona bé per escriure alguna cosa a la primera fila només.
El codi funciona bé en row1 i row2 en la veritable prova.

Per què la ROW2 no és el treball en Proteus?

Gràcies
Ho sentim, però necessita accés per veure aquest arxiu adjunt

 
Això és perquè la majoria od mòduls LCD són molt sensibles als terminis de procediment d'inicialització.Suposo, Proteus nois només tractat de reflectir en la seva pantalla LCD model.També vaig tenir alguns problemes reals com la seva amb mòduls LCD - en algun moment després de la inicialització de UC es converteix en 1-line,
a vegades - en mode 2-línies.Des de la meva experiència, aquí és el millor procediment d'inicialització:
LCD RS = 0
Demora 15 ms
LCD DADES = 3
LCD strobe
5 ms de retard
LCD strobe
Demora 100 us
LCD strobe
5 ms de retard
LCD Escriu Comando 0x38
...

Podeu utilitzar el temporitzador HW o algun enviar aquí en el fòrum del programa per al càlcul de 8051 amb el retard habitual dels bucles.

Bona sort!

As-X.

 
Salam,

Aquí està el fitxer conté un arxiu. DSN Keil i codi font amb l'arxiu hexadecimal.

Com he dit abans que el codi funciona bé en la meva placa de prova.
Però en la fila 0 Proteus funciona només.

Gràcies
Ho sentim, però necessita accés per veure aquest arxiu adjunt

 
Sphinx

És sorprenent escoltar que l'aplicació funciona correctament amb la placa de prova!No hauria.

En la funció a continuació ho va fer el càlcul de la posició de caràcter mitjançant l'ús de fila i columna.Això està bé.
Però en LM016L la 2 ª fila comença a base de compensar 40h (hexadecimal), no a 40 (decimal) com sempre, i això
és dolent!

buit GotoXY (r BYTE, BYTE c) (

RS = 0;
DATA_BUS = 0x02; EnableLCD (255);
for (r = r * 40 c, c = 0, c <r, c )
DATA_BUS = 0x14, EnableLCD (45);
RS = 1;

)

Per tant, ha de substituir el de la present declaració:

for (r = r * 0x40 c, c = 0, c <r, c )

o aquesta encara funciona

for (r = r * 0xC0 c, c = 0, c <r, c )

fila 2 i
s'utilitzarà com de costum.

Llavors, no ho subestimar As-X diu sobre el calendari de LCD.
De fer ús de la demora en la rutina d'inicialització LCD (EnableLCD).Això està bé de nou.Però quan
s'ha inicialitzar les LCD,
en lloc d'utilitzar immediatament, jo li aconsello que llegeixi la pantalla LCD
del BUSY pavelló abans d'enviar qualsevol caràcter vàlid.
Pot ser que hagi de llegir el full de dades HD44780.

Només per ajudar-lo.
Cu

 
Salam coure,

MOLTES GRÀCIES PER LA SEVA AVÍS IMPORTANT!

Em vaig adonar que estàs aquí per principiant donat amb 20 punts extra!<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Somriure" border="0" />
Però jo no ús LM016L Mòdul LCD.
Ús Compatible amb LCD HD44780.

Vaig pensar LM016L és el mateix.

Vaig a provar la seva modificació tomrrow, i
estic segur que funcionarà.

Per últim, ¿Per què aquest codi funciona bé amb el meu LCD!

Sphinx

 
Salam Sphinx

Vostè és molt amable.Gràcies.Vaig a fer un bon ús d'aquests.

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Somriure" border="0" />Hi ha molts controladors alfanumèrics que molts fabricants diuen ser totalment compatible amb Hitachi HD44780.Futaba, Samsung i molts altres han dissenyat els controladors cheaps força per fer front als fabricants de LCD amb l'augment de la demanda quan
s'han HD44780s veritable no està disponible ja.

Crec que la raó, el codi funciona bé amb la seva pantalla LCD pot ser que el controlador no és totalment compatible.

Si voleu, podeu veure aquest enllaç, que alguns informes dels controladors de dades.

http://www.eio.com/datashet.htmCu

 

Welcome to EDABoard.com

Sponsor

Back
Top