-         

Ergebnis 1 bis 4 von 4

Thema: LCD 44780 zeigt nur schwarze Balken

  1. #1

    LCD 44780 zeigt nur schwarze Balken

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo Leute!!
    seit 3 Tagen versuche ich mein LC-Display zum Laufen zu bringen.
    LC-Display hab ich an den AtMEga8 angeschloßen.
    Hier ist der Auszug aus dem Assemblercode!


    include "m8def.inc"
    ;---------------------------------------------------------------------------
    ; Reset and Interrupt vector ; VNr. Beschreibung
    rjmp main ; 1 POWER ON RESET


    ;---------------------------------------------------------------------------
    ; Start, Power ON, Reset
    main: ldi r16,low(RAMEND)
    out SPL,r16 ; Init Stackpointer LO
    ldi r16,high(RAMEND)
    out SPH,r16 ; Init Stackpointer HI
    rcall LCD_init
    ;---------------------------------------------------------------------------
    mainloop: rcall wait
    ldi r16, 'T'
    rcall LCD_data
    ldi r16, 'e'
    rcall LCD_data
    ldi r16, 's'
    rcall LCD_data
    ldi r16, 't'
    rcall LCD_data
    rjmp mainloop
    ;================================================= ==========================
    ;hier Unterprogramme und Interruptroutinen zuf�gen
    ;---------------------------------------------------------------------------
    wait: push r24
    ldi r24,0x13 ; hier delay einstellen 13 = ca. 20yS
    w1: subi r24,0x01
    rcall wait20ms
    brcc w1
    pop r24
    ret
    ;---------------------------------------------------------------------------
    wait5ms: ldi r16, 255
    ldi r17, 26
    w5ms: dec r16
    brne w5ms
    dec r17
    brne w5ms
    ret
    ;---------------------------------------------------------------------------
    wait20ms: ldi r16, 255
    ldi r17,104
    w20ms: dec r16
    brne w20ms
    dec r17
    brne w20ms
    ret
    ;---------------------------------------------------------------------------
    LCD_init: sbi DDRD,4 ;LCD RS = OUT
    sbi DDRD,5 ;LCD E = OUT
    sbi DDRC,0 ;LCD D4 = OUT
    sbi DDRC,1 ;LCD D5 = OUT
    sbi DDRC,2 ;LCD D6 = OUT
    sbi DDRC,3 ;LCD D7 = OUT
    cbi PORTD,4 ;LDC RS = Low
    ;warte bis PowerUp
    ldi r18,20
    powerup: rcall wait5ms
    dec r18
    brne powerup ; Power-Up Wartezyklus min 30 ms
    ; sende init 1
    ldi r16, 0b00100000 ; 4 Bit Modus aktivieren
    out PORTD, r16
    rcall LCD_enable ; Enable-Impuls
    rcall wait5ms
    ldi r16, 0b00101000
    rcall LCD_cmd ; Function Set 4 Bit, 2 Zeilen, 5x7
    rcall LCD_off
    rcall LCD_clear
    ldi r16, 0x06
    rcall LCD_cmd ; Entry Mode Set, increase+shifted
    rcall LCD_on
    ret
    ;---------------------------------------------------------------------------
    LCD_data: ldi r18,0b0000100 ;RS = hi
    rjmp LCD_out
    ;---------------------------------------------------------------------------
    LCD_cmd: ldi r18,0b0000000 ;RS = lo
    LCD_out: mov r17, r16
    swap r17
    andi r16, 0b11110000
    or r16,r18
    andi r17, 0b11110000
    or r17,r18
    out PORTD, r16
    rcall LCD_enable
    out PORTD, r17
    rcall LCD_enable
    rcall wait5ms
    ret
    ;---------------------------------------------------------------------------
    LCD_enable: sbi PORTD, 5 ; Enable high
    nop ; kurz warten
    nop
    nop
    cbi PORTD, 5 ; Enable wieder low
    ret
    ;---------------------------------------------------------------------------
    LCD_clear: ldi r16, 0b00000001 ; Display l�schen
    rcall LCD_cmd
    rcall wait5ms
    ret
    ;---------------------------------------------------------------------------
    LCD_off: ldi r16, 0b00001000
    rcall LCD_cmd
    rcall wait5ms
    ret
    ;---------------------------------------------------------------------------
    LCD_on: ldi r16, 0x0E
    rcall LCD_cmd
    rcall wait5ms
    ret

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.01.2006
    Ort
    Erlangen
    Alter
    32
    Beiträge
    210
    Wäre auch hilfreich zu wissen, wie du dein LCD angeschlossen hast

    €: Ahja, leuchtet das LCD, gibt es schwarze Balken? Oder passiert garnichts?
    Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher.
    (Albert Einstein, 1879-1955)

  3. #3
    Hallo!!
    also Ich habe Datenbits DB4-DB7 an den PORTC angeschloßen
    DB4- 0
    DB5-1
    DB6-2
    DB7-3

    dann ENABLE habe ich an den Port D angeschlosen nähmlich an den Pin5
    und RS auch an den PORT D an den Pin4

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    26
    Beiträge
    1.079
    Blog-Einträge
    1
    Wenn es nur schwarze Balken zeigt, dann kann es sein, dass eine zu große Spannung beim Kontrast hast.

    Oder du bleibst bei der Initialisierung stecken.

Berechtigungen

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