-         

Ergebnis 1 bis 2 von 2

Thema: LCD JM164A Ansteurung mit leichten Probs

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    21.02.2005
    Beiträge
    7

    LCD JM164A Ansteurung mit leichten Probs

    Anzeige

    hallo!

    ich hab ein 4x16 LCD, und möchte einfach einen text darauf ausgeben,..

    das ganze läuft auf einer c-Unit M 1.1 und ist mit basic geschrieben,...


    text kann ich schon am display anzeigen, aber nun blinkt der text immer wieder...

    1) wie kann ich das blinken verhindern?

    2) wie kann ich in die 2. 3. und 4. zeile schreiben?

    3) muss ich die bits zerlegen??

    ich hab das prog da,.. nur keine ahnung wie ich da was machen kann,...


    hir ist der code, hoffentlich könnt ihr mir helfen!!!!

    ' *** Daten-Definition ***
    define lcd_buf byte
    define lcd_param byte


    ' *** Definition LCD-Ports ***
    define lcd_port byteport[2]
    define lcd_rs port[14]
    define lcd_rw port[13]
    define lcd_e port[15]

    '*** ASCII-Codes ***
    define A_ &H41
    define B_ &H42
    define C_ &H43
    define D_ &H44
    define E_ &H45
    define F_ &H46
    define G_ &H47
    define H_ &H48
    define I_ &H49
    define J_ &H4A
    define K_ &H4B
    define L_ &H4C
    define M_ &H4D
    define N_ &H4E
    define O_ &H4F
    define P_ &H50
    define Q_ &H51
    define R_ &H52
    define S_ &H53
    define T_ &H54
    define U_ &H55
    define V_ &H56
    define W_ &H57
    define X_ &H58
    define Y_ &H59
    define Z_ &H5A

    '*** Programmoperationen ***

    gosub LCD_INIT
    pause 10


    lcd_param = 1 : gosub LCD_GOTOLINE ' 2, lässt anzeige blinken!!
    lcd_param = H_ : gosub LCD_WRITECHAR 'HALLO
    lcd_param = A_ : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = L_ : gosub LCD_WRITECHAR
    lcd_param = O_ : gosub LCD_WRITECHAR


    end


    '*** LCD_Interface ***

    #LCD_INIT

    lcd_port = OFF

    ' 8-Bit-Modus
    lcd_param=&H38 : gosub LCD_WRITECMD

    wieso muss ich das da machen?!?!?


    ' mit 8-Bit-Command in 4-Bit-Modus umschalten
    lcd_port=&B00000010 was gibt dieser wert?!?!?!?!?!?
    tog lcd_e 'tog -- umschalten eines digital ports
    tog lcd_e



    ' ab jetzt 4-Bit-Modus
    lcd_param = &H28 : gosub LCD_WRITECMD
    lcd_param = &H0C : gosub LCD_WRITECMD

    ' Display loeschen
    #LCD_CLS
    lcd_param = &H02 : gosub LCD_WRITECMD
    lcd_param = &H01 : gosub LCD_WRITECMD
    return

    ' Zeilenwechsel
    #LCD_GOTOLINE
    if lcd_param = 1 then lcd_param = &H80
    if lcd_param = 2 then lcd_param = &HC0
    goto LCD_WRITECMD

    ' LCD-Kommando
    #LCD_WRITECMD
    lcd_buf = OFF
    goto LCD_WRITE

    ' Zeichenausgabe
    #LCD_WRITECHAR
    lcd_buf = &B00100000

    ' Kommando oder Zeichen an Display senden
    #LCD_WRITE
    lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
    tog lcd_e
    tog lcd_e
    lcd_port = lcd_buf or (lcd_param and &H0F) ' Lo-Nibble
    tog lcd_e
    tog lcd_e
    return




    BITTE helft einen anfänger!!!!

    mfg

  2. #2
    Neuer Benutzer
    Registriert seit
    08.04.2006
    Ort
    Niesky / OT Stannewisch
    Alter
    34
    Beiträge
    3
    Hi,
    Also laut Datenblatt ist das Display bzw. dessen Contoler im 8bit oder 4bit Modus anzusteuern,d.h. Du musst nicht zwangsläufig das Display mit 4bit Betriben.
    Code:
    lcd_port=&B00000010 
    // PortB pin1 auf High (Display Löschen lt. Datenblatt)
    
    cd_param=&H38 : gosub LCD_WRITECMD
    'wieso muss ich das da machen?!?!? 
    //H38 ist (H)ex und für den 8bit Modus gedacht und wie folgt zu verstehen
    //| DB7|DB6|DB5|DB4|DB3|DB2|DB1|DB0|
    //| 128|64 | 32 |16 |  8  |  4  |  2  |  1  |
    //                       
    // weil 32+16+8 == 16*3+8 (Hex 38) 
    // Was das Bewirkt siehst du in der Doku des Controlers
    Controler Datenblatt
    Disply Datenblatt



    zum Zeilenwechsel musst zu zur DDRam Adresse 40h springen was aber auch sehr gut in der Controlerdokumentation beschrieben ist.

    gruß Axel
    #include <hirn.h>

Berechtigungen

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