www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LCD an 8bit Bus


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen atmega128 an den habe ich nun ein 20x4 zeichen LCD mit 
einem HD44780 Controller. Leider zeigt das Display nur die erste Zeile, 
hell die 2. Dunkel, die 3. hell und die 4. dunkel an. Nun hab ich 
gelesen das man den Controller erst Initialisieren muss aber leider 
funktioniert das mit meinem Bascom Code nicht.

Autor: Joachim B. (jojo84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was erwartest du jetzt?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach wie traurig. Und woher denkst du soll jetzt irgend jemand
wissen was du falsch machst?

Möglichkeiten:

a) Programm falsch
b) Falsch angeschlossen
c) Beides zusammen

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NAgeschlossen habe ich es wie hier 
http://www.rn-wissen.de/index.php/LCD-Modul_am_AVR

Der Code in Bascom
'-----------------------------------------------------------------------------------------
'name                     : lcd.bas
'copyright                : (c) 1995-2005, MCS Electronics
'purpose                  : demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME
'                           CURSOR, DISPLAY
'micro                    : Mega8515
'suited for demo          : yes
'commercial addon needed  : no
'-----------------------------------------------------------------------------------------

$regfile = "m128def.dat"                                    ' specify the used micro
$crystal = 4000000                                          ' used crystal frequency
$baud = 19200                                               ' use baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40                                             ' default use 40 for the frame space


'--------------------------------------------------------------

'                 (c) 1995-2005 MCS Electronics

'--------------------------------------------------------------

'  file: LCD.BAS

'  demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR, HOME

'        CURSOR, DISPLAY

'--------------------------------------------------------------



'note : tested in bus mode with 4-bit on the STK200

'LCD   -   STK200

'-------------------

'D4         D4

'D5         D5

'D6         D6

'D7         D7

'WR         WR

'E          E

'RS         RS

'+5V        +5V

'GND        GND

'V0         V0

'   D0-D3 are not connected since 4 bit bus mode is used!





'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6

Rem with the config lcdpin statement you can override the compiler settings





$lcd = &HC000

$lcdrs = &H8000

Config Lcdbus = 8



Dim A As Byte

Config Lcd = 20 * 4                                         'configure lcd screen

'other options are 16 * 2 , 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a

'When you dont include this option 16 * 2 is assumed

'16 * 1a is intended for 16 character displays with split addresses over 2 lines



'$LCD = address will turn LCD into 8-bit databus mode

'       use this with uP with external RAM and/or ROM

'       because it aint need the port pins !



Cls                                                         'clear the LCD display

Lcd "Hello world."                                          'display this at the top line

Wait 1

Lowerline                                                   'select the lower line

Wait 1

Lcd "Shift this."                                           'display this at the lower line

Wait 1

For A = 1 To 10

  Shiftlcd Right                                            'shift the text to the right

  Wait 1                                                    'wait a moment

Next



For A = 1 To 10

  Shiftlcd Left                                             'shift the text to the left

  Wait 1                                                    'wait a moment

Next



Locate 2 , 1                                                'set cursor position

Lcd "*"                                                     'display this

Wait 1                                                      'wait a moment



Shiftcursor Right                                           'shift the cursor

Lcd "@"                                                     'display this

Wait 1                                                      'wait a moment



Home Upper                                                  'select line 1 and return home

Lcd "Replaced."                                             'replace the text

Wait 1                                                      'wait a moment



Cursor Off Noblink                                          'hide cursor

Wait 1                                                      'wait a moment

Cursor On Blink                                             'show cursor

Wait 1                                                      'wait a moment

Display Off                                                 'turn display off

Wait 1                                                      'wait a moment

Display On                                                  'turn display on

'-----------------NEW support for 4-line LCD------

Thirdline

Lcd "Line 3"

Fourthline

Lcd "Line 4"

Home Third                                                  'goto home on line three

Home Fourth

Home F                                                      'first letteer also works

Locate 4 , 1 : Lcd "Line 4"

Wait 1

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>NAgeschlossen habe ich es wie hier
>http://www.rn-wissen.de/index.php/LCD-Modul_am_AVR

Fein, dann hast du es im 8Bit Modus angeschlossen
und versuchst es im 4Bit Modus zu programmieren.
Das geht natürlich nicht.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie kann ich das im 8bit Modus programmieren?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und wie kann ich das im 8bit Modus programmieren?

Mit den Codebeispielen von der Seite?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ICh hab schon diverse codes von verschiedenen Seiten versucht aber alles 
funktioniert nicht

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>ICh hab schon diverse codes von verschiedenen Seiten versucht aber alles
>funktioniert nicht

Vielleicht weniger Copy&Paste mit irgendwelchen Codes von irgendwelchen 
Seiten und mehr NAchdenken und Mitdenken?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.