Forum: Mikrocontroller und Digitale Elektronik ks0066 mit m8535 und bascom


von Filo (Gast)


Lesenswert?

Hallo,

habe so wie viele andere das selbe problem mit dem sch... ks00066 
kontroller...

nach tagelangem lesen und probieren bekomme ich jetzt zumindest etwas 
ausgegeben, zwar lauter müll aber der balken ist weg...

meine bisherigen erkenntnisse:
lt foren soll das ks0066 mit dem standard hd44780 kompatibel sein, bis 
auf den init vorgang

mein versuch:
ich hab lt datenblatt den init selbst versucht, und seit dem bekomme ich 
zumindest irgendwelche zeichen ausgegeben, aber nicht wirklich das was 
ich sill.. aber teile davon sind irgendwo im ganzen dabei..

derzeitiger code:
1
Config Portc = Output
2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
3
4
5
Myport Alias Portd
6
7
8
9
10
Config Lcd = 20 * 2
11
12
13
14
Waitms 150
15
16
Myport = &B00111011
17
Myport = &B00111011
18
Myport = &B00111101
19
Waitms 55
20
21
Myport = &B00111111
22
Myport = &B00111100
23
Waitms 55
24
25
Myport = &B00111111
26
Myport = &B00110111
27
Waitms 15
28
29
Myport = &B00111111
30
Myport = &B00111001
31
32
Wait 20
33
34
Lcd "Hello world."
35
Wait 1
36
37
Lowerline
38
Wait 1
39
Lcd "second line."
40
Wait 1

meist ist nur eine zeile aktiv, aber manchmal aktiviert er beide... ich 
steh echt an, und mit c oder assembler bin ich nicht wirklich 
bewandert...

besten dank

ps: die bits sind inventiert da ich stk500 hab

von Filo (Gast)


Lesenswert?

ok, etwas weiter bin ich gekommen.. hab die Zeiten verändert und den 
"entry mode set" zwei mal hintereinander ausgeführt und danach Display 
löschen Befehl (als myport.... und nicht cls) gesendet nun zeigt er dass 
an was ich will.. fast...

an erster Stelle in der ersten Zeile steht "3" und ich bekomme es nicht 
weg...

nach dem Display löschen per myport... muss ich cls ausführen dann ist 
der 3er weg, aber ohne myport.... cls führt zu Müllausgabe...

ich versteh das einfach nicht...

von holger (Gast)


Lesenswert?

>Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = 
>Portd.7 , E = Portd.3 , Rs = Portd.2

>Myport Alias Portd

Ja, immer schön auf den Port schreiben ohne die benötigten Waitstates
vom Display:

>Myport = &B00111011

Warten

>Myport = &B00111011

Warten

>Myport = &B00111101
>Waitms 55

Portd.0 und Portd.1 sind doch gar nicht angeschlossen.
Du kannst es dir also sparen da an den beiden Bits
ganz rechts zu wackeln.

von ** (Gast)


Lesenswert?

Zumindest funktioniert Deine Shift-Taste wieder :-)
Wer soll das denn lesen? (Erster Beitrag)

Wenn Du jetzt noch Deinen Quelltext kommentieren würdest, dann könnten 
Dir sicherlich mehr Leute helfen.

Ich kenne mich mit Basic nicht so aus.
In der ersten Zeile steht
1
Config Portc = Output
 Dann "nagelst" Du aber auf Portd (MyPort) rum.
1
Myport = &B00111011
2
Myport = &B00111011
Du schreibst 2 mal den gleichen Befehl.
Da fehlt noch was. "E" sollte noch gepulst werden und dann ein wenig 
warten.
Oder ist Basic so langsam?

Was bringen jeweils die letzten beiden Bits?

Ähh. Den zweiten Beitrag mag verstehen wer will.
Wo steht denn der "entry mode set" in Deinem Quelltext (Stichwort Doku)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.