PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 4 X 27 LCD-Modul mit 2 controller wie ansteuern?



PREDATOR32
22.11.2009, 17:17
hallo leute!
ich habe mir dieses display von pollin bestellt " LCD-Modul WINTEK WD-C2704M-1HNN "

und da sind 2 (HD44780-kompatible) controller drauf. und die haben jeweils einen eigen "E" pin ! einen für die untere hälfte und einen für die obere! jetzt ist die frage wen ich das an einem µc (Mega32) anschliessen will kan ich dan die beiden E-pins einfach an einem port am µc anschliessen? oder muss ich das über die programmierung (bascom) einstellen?

also:

E1 = Portc.1 , E2 = Portc.2

ausserdem steht dort:
- Ansteuerung über 4-Bit- oder 8-Bit-Datenbus

momentan sieht die configuration so aus:


Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Initlcd
Cursor Off

muss ich dan dort einfach noch 4 weitere ports eintragen für den 8bit modus? also Db8 = Portc.6 usw?

das ich Config Lcd = 16 * 2 auf Config Lcd = 27 * 4 stellen muss versteht sich von selbst.

und wo ist überhaubt der vorteil von 8 bit übertragung?

danke soweit

mat-sche
23.11.2009, 19:37
Hi!

in dem untenstehenden Code siehst Du die Ansteurung:




$regfile = "m32def.dat" 'ATmega 32
$crystal = 16000000 'Quarz: 8 MHz
$baud = 19600
$hwstack = 32 'hardware stack
$swstack = 10 'software stack
$framesize = 40 'frame space



'################################################# ##########################
'Die Baudrate für RS232 Ausgabe.

Dim ___lcdno As Bit

Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Portb.5 , Rs = Portb.6 , E2 = Portb.7
'Config Lcdmode = Port
'Config Lcdbus = 4 '4 bit mode
Config Lcd = 40 * 4
Initlcd


Do
'If Taster = 1 Then



___lcdno = 0 'Ober Displayhälfte initialisieren, wenn das Display zwei LCD-Controller besitzt
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "** RN-CONTROL Zeile 1 **"
Waitms 10
Locate 2 , 1
Lcd "** RN-CONTROL Zeile 2 **"
Waitms 10
' Else
Cls

___lcdno = 1 'Dies ist nur notwendig wenn das Display zwei LCD-Controller besitzt
Initlcd
Cursor Off
Cls
Locate 1 , 1
Lcd "** RN-CONTROL Zeile 3 **"
Waitms 10
Locate 2 , 1
Lcd "**** RN-CONTROL Zeile 4 ** "

'End If
Wait 1

Loop

End


in der Zeile : config Lcdpin = Pin siehst Du, dass Du mit 2 Portpins getrennt die Enable Pins anschließen musst. Der Vorteil einer 8bit Übertragung könnte ich nur in der Übertragungsgeschwindigkeit mir erklären, habe aber bisher nur immer mit 4 bit gearbeitet.
Viel Spass beim ausprobieren :), jedenfalls lief dann bei mir das LCD!

Gruß MAT

PREDATOR32
24.11.2009, 13:02
ahh vielen dank

aha also wen ich das richtig verstehe muss ich immer vor der ausgabe ___lcdno = 1 bzw. ___lcdno = 0 davorsetzen um sozusagen zwischen obere und untere hälfte umzuschalten... ok verstehe vielen dank

dan lag ich ja mit meiner vermutung garnicht so falsch... :-)

jo das mit den 8 bit werd ich mal testen was das bringt ausser ports zu verbrauchen. ich denke auch das das nur geschwindigkeits vorteile hat was vieleicht bei messwerten oder sowas besser sein dürfte aber bei meiner momentanen anwendung brauch ich keine hohe geschwindigkeit.

gruss predator32767