-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 22

Thema: LCD-Display HLM8070 - Probleme

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    01.07.2007
    Alter
    53
    Beiträge
    8

    LCD-Display HLM8070 - Probleme

    Anzeige

    Hallo, ich benötige mal wieder Euere Hilfe !!!
    Ich habe mir von POLLIN ein 16*4-Display besorgt. Dieses angeschlossen an einem Atmega16.

    Das Display hat folgende Anschlüsse:

    LCD-Pin Funktion

    1 GND
    2 VDD +5V
    3 Kontrast
    4 I/OC1
    5 R/W
    6 ex
    7 DB0
    8 DB1
    9 DB2
    10 DB3
    11 DB4
    12 DB5
    13 DB6
    14 DB7
    15 I/OC2


    Im Folgenden habe ich es so beschaltet:
    LCD-Pin 1 ---> GND
    LCD-Pin 2 ---> +5V
    LCD-Pin 3 ---> mittels regelbaren Widerstand der Kontrast
    LCD-Pin 5 ---> GND
    LCD-Pin 6 ---> PB5
    LCD-Pin 11 ---> PB0
    LCD-Pin 12 ---> PB1
    LCD-Pin 13 ---> PB2
    LCD-Pin 14 ---> PB3
    LCD-Pin 15 ---> PB4

    Sobald Spannung anliegt, erscheint in der ersten Zeile alles Balken. Dies' deutet ja darauf hin, daß es erst mal soweit funktioniert. Aber sonst passiert nichts !!! Kein bischen bewegt sich da.

    Und so sieht in grober Version mein kleines Testprogramm aus (das auf einem zweizeiligen Display funktioniert):

    $regfile = "m32def.dat"
    $crystal = 1000000
    Config Lcd = 16 * 4
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5
    Do
    Initlcd
    Waitms 500
    Cls
    Cursor Blink
    Locate 1 , 1
    LCD "Zeile 1"
    Locate 2 , 1
    Lcd "Zeile 2"
    waitms 500
    loop
    end

    Nun weiß ich nicht mehr weiter. Ich war auch auf der Seite:
    http://www.roboternetz.de/wissen/ind...D-Modul_am_AVR
    Die Schaltung "4-Bit Ansteuerung ohne Busy(I/O Mode)", wie dort beschrieben ist, ist mit meiner Identisch.
    Kann mir da jemand helfen? Für jeden Ratschlag bin ich sehr dankbar.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken 600px-lcdmodul_4bit_schem.png  

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    An DB0-3 MUß 0V / GND.

    Gento

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    hast du in diesem DB nachgelesen ob sich der dort verwendete Controller auch zum HD44780 kompatibel verhält, und hat der einen 4-Bit-Modus ?
    Bascom will einen HD... Kompatiblen haben.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    01.07.2007
    Alter
    53
    Beiträge
    8
    Zitat Zitat von Gento
    An DB0-3 MUß 0V / GND.

    Gento
    Gleiches Problem in Grün, wenn ich DB0...DB3 gegen GND schalte! Hat es wvt. etwas mit I/OC1 und I/OC2 zu tun? Bei mir ist I/OC2 nicht angeschlossen. Habe auch einen anderen IC genommen; hätte ja sein können, daß der IC einen Schuß weg hat.
    Bei dem anderen Display (16*2) wanderen wirre Zeichen beim Programmieren und vergleichen. Bei diesem Display jedoch ändert sich nichts; die Balken bleiben wie angewurzelt.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    01.07.2007
    Alter
    53
    Beiträge
    8
    Zitat Zitat von linux_80
    Hallo,

    hast du in diesem DB nachgelesen ob sich der dort verwendete Controller auch zum HD44780 kompatibel verhält, und hat der einen 4-Bit-Modus ?
    Bascom will einen HD... Kompatiblen haben.
    Aus diesem Datenblatt werde ich nicht schlau. In diesem Forum gibt es einen Beitrag darüber, daß auch jemand das gleiche Problem hatte. Er hat es auch hinbekommen, schrieb aber nicht, wie er es gemacht hat. Irgendwie mit Widerständen probiert. Keine Ahnung, was damit gemeint war. Also gehe ich stark davon aus, daß dieser kompatibel ist.

    In der Produktbeschreibung von Pollin steht drin:
    4-zeiliges LC-Display mit M50530 Controller. Das Display verfügt pro Zeile über je 16 Zeichen.
    Technische Daten:
    - 4 Zeilen x 16 Zeichen Text
    - integrierter M50530 Controller
    - Betriebsspannung +5 V
    - Anzeigefläche 61x18,5 mm
    Maße (BxHxT): 86x51x10 mm.

    Ich stehe vor einem Rätsel ...

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    diese Angaben beim Pollin lassen ja noch nicht auf die Kompatibilität schliessen, ich hab das DB nur mal überflogen, und ich würde sagen, das es nicht passt !
    Man kommt ja auch mit den Leitungen nicht hin die man braucht.
    Dieser Kontroller hat anscheinend 4 Register (über IO1, IO2), ein HD-kompatibler nur 2 welche über RS ausgewählt werden.

    Da wirds eine extra Lib unter Bascom brauchen.

    Edit:
    von einen 4-Bit-Modus hab ich jetzt gelesen, aber das wird trotzdem nicht HD-Kompatibel werden

    Hier hab ich was gefunden:
    http://www.mikrocontroller.net/topic/9903#65281

    noch'n Edit:
    http://www.google.de/search?hl=de&q=...le-Suche&meta=
    Der 3. Link hat ein Beispiel dafür auf der Seite in ASM und Bascom.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.08.2006
    Beiträge
    169
    Hallo,

    hab jetzt unter dem Link (von linux_80):
    http://www.frickelfritze.de/elektronik/lcd/index.html

    das hier gefunden

    Code:
    '*******************************************
    ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ';;        LCD-Routinen für M50530              ;;
    ';;        =======================              ;;
    ';;                                             ;;
    ';; Titel     : 4 Bit LCD M50530                ;;
    ';; Autor     : Arno Schweißinger               ;;
    ';; Datum     : 28.01.2007                      ;;
    ';; MC        : AtMega 8515 1MHz                ;;
    ';; Stromversorgung: MC 5V; LCD 5V & 8,2V       ;;
    ';;                                             ;;
    ';; 4bit-Interface  M50530                      ;;
    ';;                                             ;;
    ';; DB4:            PC0                         ;;
    ';; DB5:            PC1                         ;;
    ';; DB6:            PC2                         ;;
    ';; DB7:            PC3                         ;;
    ';; OC1:            PC4                         ;;
    ';; OC2:            PC5                         ;;
    ';; EX:             PC6                         ;;
    ';;                                             ;;
    ';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    '*****************************************
    
    $regfile = "m8515.dat"
    $crystal = 1000000                                          'CPU 1MHz
    
    Declare Sub Lcd_m50530_init()                               'declare the SUB program
    Declare Sub Lcd_m50530_chr(ch As Byte)
    Declare Sub Lcd_m50530_command(command As Byte)
    Declare Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte)
    Declare Sub Lcd_m50530_clear()
    Declare Sub Lcd_m50530_enable
    
    Lcd_m50530 Alias Portc
    Config Lcd_m50530 = Output
    _oc1 Alias 4
    _oc2 Alias 5
    _ex Alias 6
    
    Dim I As Byte                                               ' Zählschleife
    Dim Lcd_temp As Byte                                        ' Temp im Unterprogramm
    Dim Lcd_parameter As Byte                                   ' wird an LCD gesendet
    Dim _x As Byte                                              ' Cursor x Position
    Dim _y As Byte                                              ' Cursor y Position
    
    '-------------------------
    '      Begin Hauptprogramm
    '-------------------------
    
    Call Lcd_m50530_init
    
    _x = 10 : _y = 7
    Call Lcd_m50530_gotoxy(_x , _y)
    
    For I = 33 To 48
     Call Lcd_m50530_chr(i)
    Next I
    
    Do
     Toggle Portb.0                                            ' Takt für Spannungskaskade
    Loop
    End                                                         ' ende Hauptprogramm
    
    '-------------------------
    '      End Hauptprogramm
    '-------------------------
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_init
    
     Lcd_parameter = $d8                                       'set function mode (SF) 0b11011000
     Call Lcd_m50530_command(lcd_parameter)                    '4bit-Modus einstellen  11 -4/8bit-FONT-2xDUTY-2xRAM
    
     Lcd_parameter = $50                                       'set entry mode (SE)    0b01010000
     Call Lcd_m50530_command(lcd_parameter)                    'Cursor selbst setzen
    
     Lcd_parameter = $33                                       'set display mode (SD)  0b00110011
     Call Lcd_m50530_command(lcd_parameter)                    'Display ein, Cursor nicht anzeigen
    
     Call Lcd_m50530_clear
    End Sub
    
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_chr(ch As Byte)
     Lcd_temp = Ch
     Shift Lcd_temp , Right , 4
     Set Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
    
     Lcd_temp = Ch And $0f
     Set Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
     Waitus 20
    End Sub
    
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_command(command As Byte)
     Lcd_temp = Command
     Shift Lcd_temp , Right , 4
     Reset Lcd_temp._oc1
     Reset Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
    
     Lcd_temp = Command And $0f
     Reset Lcd_temp._oc1
     Reset Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
     Waitus 20
    End Sub
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_gotoxy(lcd_x As Byte , Lcd_y As Byte)
    
     Select Case Lcd_y
       Case 1 : Lcd_parameter = $00
       Case 2 : Lcd_parameter = $40
       Case 3 : Lcd_parameter = $80
       Case 4 : Lcd_parameter = $c0
       Case 5 : Lcd_parameter = $18
       Case 6 : Lcd_parameter = $58
       Case 7 : Lcd_parameter = $98
       Case 8 : Lcd_parameter = $d8
       Case Else : Lcd_parameter = $00
     End Select
    
     Lcd_parameter = Lcd_parameter + Lcd_x
     Decr Lcd_parameter
     Lcd_temp = Lcd_parameter
     Shift Lcd_temp , Right , 4
     Set Lcd_temp._oc1
     Set Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
    
     Lcd_temp = Lcd_parameter And $0f
     Set Lcd_temp._oc1
     Set Lcd_temp._oc2
     Lcd_m50530 = Lcd_temp
     Call Lcd_m50530_enable
     Waitus 20
    End Sub
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_clear
     Lcd_parameter = $01                                       ' 0b00000001    Display löschen
     Call Lcd_m50530_command(lcd_parameter)
     Waitms 2
    End Sub
    '-------------------------------------------------------------------------------
    Sub Lcd_m50530_enable
     Set Lcd_m50530._ex
     Waitus 1
     Reset Lcd_m50530._ex
    End Sub
    ';----------------------------------- Ende Dispay ----------------------------------------
    Damit wurde die Ansteuerung eines Displays mit M50530 Controller in Bascom realiesiert.

    Da ich leider erst Anfänger bin, was Programmierung angeht, ist es für mich nicht so recht ersichtlich, wie ich denn nun was auf das Display ausgeben kann.

    Währe echt nett, wenn mir das mal jemand mitteilen könnte da ich auch ein Display mit dem Controller hab und es gern ansteuern würde.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    hallo, der Beitrag ist ja schon ein bisschen älter, aber hat jemand eine Lösung gefunden?

    Tobias
    ...

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    10.08.2006
    Beiträge
    169

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.07.2006
    Alter
    87
    Beiträge
    627
    Danke - viele Dank!!!

    das ist perfekt - den Beitrag hab ich tatsächlich nicht gefunden trotz langem suchen!

    DANKE!!!!!

    Tobias
    ...

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •