LCD 40x4

Pytania, kody i porady dotyczące nie tylko Bascom.
ODPOWIEDZ
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

LCD 40x4

Post autor: Jacek » 14 gru 2017, 21:27

Witam - Bartek czy podłączałeś może lcd typ DM4004A z Bascomem - próbowałem 2 wariantów ale lcd nie działa są 2 linie czarnych kwadratów ( 1 i 3 ) i nic nie wyświetla kody:

ten znaleziony na elektroda.pl
  1.  
  2.   '******************** Mikrokontroler *******************************************
  3. $regfile = "m16adef.dat"                                                        'typ mikrokontrolera
  4. $crystal = 16000000                                                             'częstotliwość taktowania
  5. $hwstack = 32                                                                   'stos sprzętowy
  6. $swstack = 10                                                                   'stos programowy
  7. $framesize = 40                                                                 'wielkość ramki
  8.  $lib "lcd4e2.lbx"
  9. Dim ___lcde As Byte
  10. 'Rs = PortB.0
  11. 'RW = GND
  12. 'E = PortB.2
  13. 'E2 = PortB.3
  14. 'Db4 = PortB.4
  15. 'Db5 = PortB.5
  16. 'Db6 = PortB.6
  17. 'Db7 = PortB.7
  18. Config Lcd = 40 * 2
  19. Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
  20.  
  21. Const En1 = 0
  22. Const En2 = 1
  23. En Alias ___lcde
  24.  
  25. 'start
  26.  
  27. En = En1
  28. Cls
  29. En = En2
  30. Cls
  31.  
  32. En = En1
  33. Locate 1 , 1 : Lcd "Pierwsza linia"
  34. Locate 2 , 1 : Lcd "Druga linia"
  35. En = En2
  36. Locate 1 , 1 : Lcd "Trzecia linia "
  37. Locate 2 , 1 : Lcd "Czwarta linia "
  38. Stop
  39.  
oraz ten znaleziony na niemieckim forum bascoma:
  1.  
  2.   '******************** Mikrokontroler *******************************************
  3. $regfile = "m16adef.dat"                                                        'typ mikrokontrolera
  4. $crystal = 16000000                                                             'częstotliwość taktowania
  5. $hwstack = 32                                                                   'stos sprzętowy
  6. $swstack = 10                                                                   'stos programowy
  7. $framesize = 40                                                                 'wielkość ramki
  8.     'Einbindung der LCD-Bibliothek für ein 2-Prozessor-Display
  9.      $lib "lcd4e2.lbx"
  10.     'Bascom kennt keine Display mit 27 * 4 Zeichen, daher 40 * 4 verwenden
  11.      Config Lcd = 40 * 4
  12.     'man achte auf die Ergänzung E2
  13.      Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , E2 = Portd.6 , Rs = Portd.4
  14.     ' Systemvariable der LCD-Bibliothek (wichtig, bloß nicht ändern)
  15.        Dim ___lcde As Byte
  16.     ' wählt die beiden oberen Zeilen aus
  17.      ___lcde = 0
  18.     ' löscht die beiden oberen Zeilen
  19.        Cls
  20.     ' wählt die obere Zeile aus
  21.        Upperline
  22.     ' schreibt in die erste Zeile an Position 3
  23.        Locate 1 , 3
  24.     ' den Text in Anführungszeichen
  25.        Lcd "Zeile 1"
  26.     ' wählt die zweite Zeile aus
  27.        Lowerline
  28.     ' schreibt in die zweite Zeile an Position 2
  29.        Locate 2 , 2
  30.     ' in diesem Fall den Inhalt der Variablem mit dem Namen Variable
  31.        Lcd "Variable"
  32.     ' unterdrückt den Cursor
  33.        Cursor Off
  34.     ' wählt die beiden unteren Zeilen aus
  35.        ___lcde = 1
  36.        Waitms 100
  37.        Cls
  38.        Thirdline
  39.        Locate 1 , 1
  40.        Lcd "Zeile 3"
  41.        Fourthline
  42.        Locate 2 , 1
  43.        Lcd "Zeile 4"
  44.        Cursor Off
  45.  
pozdrawiam Jacek.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: LCD 40x4

Post autor: niveasoft » 14 gru 2017, 22:57

Masz do niego notę? pdf`a? Dołącz do postu to się porówna czy to może działać.

Tak naprawdę to to wszystko nie jest skomplikowane.
Sterownik HD coś tam (nigdy tych cyfr nie zapamiętam) może sterować do 80 znaków (chyba)(czytam notę jak muszę).
Chodzi o to, że wyświetlacz 4x20 to najczesciej jeden sterownik 1x80 tylko ma adresowanie linii. Chcesz coś wyświetlić w drugiej linii to tak naprawdę adresujesz sie do 21 znaku i tam wyświetlasz.
Trzecia linia to znak 61..itd, ale na 80 znakach się to kończy.
Potem, dla większych wyświetlaczy wprowadzili dwa chipy.

Co ciekawe takie coś jak CLS mozna przeprowadzać na obydwu na raz. Tak samo inicjalizację.
Czyli jak RW mam masę, EN1 i EN2 ma masę to możesz obydwa Chipy initializować itd.. więc
Jeśli masz czarne kwadraty dalej to coś tu nie gra.

Dałbym obydwa EN do jednego pinu i wpisał Config Lcd = 20x2 albo coś podobnego.
Potem napisz "Locate 1,1 : Lcd "test"

Powinno pokazać "test" w dwóch liniach

Trzeba to jakoś rozpracować ;) Jak dalej kwadraty to coś chyba w okablowaniu.
Awatar użytkownika
Jacek
Posty: 384
Rejestracja: 25 kwie 2016, 19:14

Re: LCD 40x4

Post autor: Jacek » 14 gru 2017, 23:13

Witam - tak mam już podaje załącznik. ups wyskakuje że nieprawidłowe rozszerzenie pliku.
tutaj jest:

http://www.orientdisplay.com/products/4004A.pdf

pozdrawiam Jacek.
Awatar użytkownika
niveasoft
Posty: 1313
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: LCD 40x4

Post autor: niveasoft » 14 gru 2017, 23:19

Kolejny PDF do kolekcji. Uzbierało mi się 2,2GB tego i myślę to tu jakoś podłączyć z wyszukiwarką :D
Potestuj te moje rady z połączeniem linii E1 i E2 do zwykłego sterowania jak byś miał wyświetlacz 4x20 z jednym E (i bez dołączania biblioteki do 2E)
ODPOWIEDZ