-
        

+ Antworten
Ergebnis 1 bis 5 von 5

Thema: LCD Anzeige liefert nur Müll

  1. #1
    Gast

    LCD Anzeige liefert nur Müll

    Anzeige

    Hallo Leute,
    kann mal jemand da rüberschauen? Mein LCD wird nur zugemüllt mit Buchstaben!
    Gruß Alex
    Code:
    .include "m8535def.inc"       	;Definitionsdatei einbinden m8535def.inc
    
    ;--------------------------------------------------------------------------
    ldi r16, 0x2		;Stapelzeiger eingerichtet
    out sph, r16
    ldi r16, 0x5F
    out spl, r16						
    ;--------------------------------------------------------------------------
    
    ;-----Deklarationen--------------------------------------------------------
    
    ; EN = PORTA, 7
    ; RW = PORTA, 6
    ; RS = PORTA, 5
    .SET LCD = PORTC
    ;--------------------------------------------------------------------------
    ser r16			; setzte Register auf 0xFF
    out DDRC, r16		; PortC&D als Ausgang konfiguriert
    out DDRA, r16
    call busy_flag
    
    ldi r17, 0b00111000		; 3x 8Bit initialisieren
    out LCD, r17
    call send_lcd
    call busy_flag
    call send_lcd
    call busy_flag
    call send_lcd
    
    ldi r17, 0b00001000		; Display aus
    out LCD, r17
    call send_lcd
    call busy_flag
    
    ldi r17, 0b00000001		; Display löschen
    out LCD, r17
    call send_lcd
    call busy_flag
    
    ldi r17, 0b00000110		; Entry Set
    out LCD, r17
    call send_lcd
    call busy_flag
    
    ldi r17, 0b00001100		; Display an
    out LCD, r17
    call send_lcd
    call print
    
    ende:
    jmp ende
    ;-------------------------------------------------------------
    send_lcd:
    		sbi PORTA, 7	; L/H Flanke Enable
    		nop
    		nop
    		nop
    		nop
    		cbi PORTA, 7	; H/L Flanke Enable
    		ret
    ;-------------------------------------------------------------
    busy_flag:
    		sbi PORTA, 6	; R/W & RS konfigurieren
    		cbi PORTA, 5	; fürs busy
    		sbi PORTA, 7	; Flanke Enable
    		nop
    		nop
    		nop
    		nop
    testen:
    		sbic PORTC, 7	; Busy lesen
    		rjmp testen	; polling bis frei
    		cbi PORTA, 7	; Enable auf Low
    		cbi PORTA, 6	; RS & R/W löschen für
    		cbi PORTA, 5	; weitere Konfiguration
    		ret		; raus aus warten
    ;-------------------------------------------------------------
    print:
    		ldi ZH, high(2*Text)	; Pointer adressieren
    		ldi ZL, low(2*Text)
    		sbi PORTA, 5	; RS und R/W konfigurieren
    		cbi PORTA, 6	; zum schreiben
    rw:
    	lpm r0,z+	        ; hole wert adressiert durch z in r0 und inc z
    	out PORTC, r0	; Ausgabe an Interface LCD
    	mov r16, r0	; Kopieren für Vergleich in r16
    	cpi r16,0		; Vergleich ob "0"
    	brne ok		; Keine "0"?, dann "ok"
    	ret		; doch "0", dann surüg ;-)
    ok:
    	call send_lcd	; is klar!
    	rjmp rw		; weiter Zeichenausgabe bis endlich "0"
    
    Text: .DB "initialized",0

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    14.12.2003
    Alter
    26
    Beiträge
    1.187
    Ich kenn mich mit AVRs nicht aus, aber vielleicht hast du die Datenleitungen falschrum angeschlossen.

    Matthias
    Back on the road again...

    Falls ihr wissen wollt, was ich so in meiner roboterfreien Zeit gertieben hab: www.plasmaniac.de.vu

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    13.01.2004
    Ort
    Speyer
    Alter
    42
    Beiträge
    28
    Es wäre gut, wenn Du ein Schaltplan mit veröffentlichst. Damit wir nachschauen können ob es mit der Programmierung so richtig ist.
    Und teile uns auch bitte die Typenbezeichnung des Display mit, welchen Chipsatz ist auf dem Display?

    Krischan100

  4. #4
    Gast
    So , ich habs rausgefunden.
    Die Routine zur Abfrage des Busy_flags war falsch.
    Habe das Programm auch für 8051 geschrieben und der gab auch nur Müll aus. Also mit dem 8051 funktioniert es jetzt.
    @Matthias danke für den Tipp, das wars zum Glück nicht und wenn, dann hätte ich's nicht zugegegeben - is ja oberpeinlich
    Gruß Alex

  5. #5
    Gast
    @Krischan100
    Ja danke Krischan für dein Hilfeangebot. Es leeeffft jetzt. Ich hab Rotz-und Wasser geheult

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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