- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 19

Thema: Keine Anzeige am LCD

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    14.08.2015
    Beiträge
    16

    Rotes Gesicht

    So jetzt habe ich die Datenleitungen verändert und versucht den Code anzupassen.
    PB7 - PA7
    PB6 - PA6
    PB5 - PA5
    PB4 - PA4

    RS - PA1
    E - PA2

    es tut sich was undzwar ich sehe am LCD schwarze Balken, schon mal ein Fortschritt.. Ich versuche ein A auszugeben : ldi mp1, 'A' , jedoch erschein kein A am LCD Bildschirm.. Muss noch weitere Fehler im Code finden, falls jemanden einen Fehler findet ...

    [CODE]

    [; Voreinstellungen
    .device Attiny26
    .nolist
    .include "tn26def.inc"
    .list

    ;Deklarationen

    ;Voreinstellungen

    .device ATtiny26
    .nolist
    .include "tn26def.inc"
    .list

    ;Deklarationen

    .def mp=R16
    .def mp1=R17
    .def mp2=R18
    .def mp3=R19

    ;Stackpointer initialisieren

    ldi mp, RAMEND
    out SP, mp

    ;Ein- und Ausgänge definieren

    ldi mp, 0b11111111
    out DDRB, mp

    ldi mp, 0b11111110
    out DDRA, mp

    ldi mp, 0b00000000
    out TCNT0, mp

    ; Initialisierung des LCD
    ;Datenleitungen

    .equ lcd_A7_ddr=DDRA
    .equ lcd_A7_port=PORTA
    .equ lcd_A7=7

    .equ lcd_A6_ddr=DDRA
    .equ lcd_A6_port=PORTA
    .equ lcd_A6=6

    .equ lcd_A5_ddr=DDRA
    .equ lcd_A5_port=PORTA
    .equ lcd_A5=5

    .equ lcd_A4_ddr=DDRA
    .equ lcd_A4_port=PORTA
    .equ lcd_A4=4

    ;LCD Enable

    .equ lcd_e_ddr= DDRA
    .equ lcd_e_port=PORTA
    .equ lcd_e=2

    ;LCD Selektionsleitung 1=Dateneingang 0=Befehlseingang

    .equ lcd_rs_ddr= DDRA
    .equ lcd_rs_port=PORTA
    .equ lcd_rs=1


    LCD_Init:

    sbi lcd_A7_ddr, lcd_A7
    sbi lcd_A6_ddr, lcd_A6
    sbi lcd_A5_ddr, lcd_A5
    sbi lcd_A4_ddr, lcd_A4

    sbi lcd_e_ddr,lcd_e
    sbi lcd_rs_ddr,lcd_rs

    ldi mp3,6

    powerupwait:

    rcall delay5ms
    dec mp3
    brne powerupwait ;nach Ablauf von 5ms Schleife verlassen

    ; dreimal hintereinander senden

    ldi mp1, 0b00000011 ;1
    rcall lcd_enable
    rcall delay5ms

    ldi mp1, 0b00000011 ;2
    rcall lcd_enable
    rcall delay5ms

    ldi mp1, 0b00000011 ;3
    rcall lcd_enable
    rcall delay5ms

    ;4-Bit-Modus einstellen

    ldi mp1, 0b00000010
    rcall lcd_enable
    rcall delay5ms

    ; Funktionen setzen
    ;DL=0-->4-Bit-Schnittstelle
    ;N=1--->zwei Zeilen
    ;F=0--->5x8 Matrix

    ldi mp1,0b00101000
    rcall LCD_command

    ;Anzeigenkontrolle ein/aus
    ;D=1 Anzeige ein
    ;C=0 Cursor aus
    ;B=0 Blinken aus

    ldi mp1,0b00001100
    rcall LCD_command


    ;fertig initialisiert

    ldi mp1,0b00000100
    rcall LCD_command

    ;Anzeige löschen

    LCD_clr:

    ldi mp1, 0b00000001
    rcall LCD_command
    rcall delay5ms

    LCD_home:

    ldi mp1, 0b00000010
    rcall LCD_command
    rcall delay5ms

    ;Datenbyte an das LCD senden

    LCD_Data:

    mov mp2, mp1
    swap mp1
    andi mp1, 0b11110000
    sbr mp1, 1<<lcd_rs
    rcall lcd_enable

    andi mp2, 0b11110000
    sbr mp2, 1<<lcd_rs
    rcall lcd_enable
    rcall delay50us

    ;Einen Befehl an das LCD

    LCD_command:
    mov mp2,mp1
    swap mp1
    andi mp1,0b11110000
    rcall lcd_enable
    andi mp2,0b11110000
    rcall lcd_enable
    rcall delay50us

    ;Enable Puls

    lcd_enable:

    sbi lcd_e_ddr,lcd_e ;enable gesetzt
    nop
    nop
    nop
    cbi lcd_e_ddr,lcd_e ;enable gelöscht
    ret

    ;Pause nach jeder Übertragung

    delay50us:

    push mp1
    ldi mp1,$10
    Loop0: dec mp1
    brne Loop0
    pop mp1
    ret


    ;Längere Pause für manche Befehle

    delay5ms:

    push mp1
    push mp2
    ldi mp1,$07
    Loop1: ldi mp2,$ED
    Loop2: dec mp2
    brne loop2
    dec mp1
    brne loop1
    pop mp1
    pop mp2
    ret

    ldi mp1, 'A'
    rcall lcd_data]

    - - - Aktualisiert - - -

    Tut mir leid, ich schaffe es immer noch net einen code richtig einzufügen..Also # und dann kommt , in welchem Feld füge ich nun den Code?
    Geändert von sisi (08.09.2015 um 14:43 Uhr)

Ähnliche Themen

  1. Keine Anzeige bei 20*4 LCD-Display
    Von Funkpeter im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 15
    Letzter Beitrag: 19.10.2014, 13:19
  2. [ERLEDIGT] Atmega32 ==> Atmega1284p - keine Anzeige mehr im Display
    Von tc-maxx im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 16.05.2011, 15:01
  3. RN-Control und GLCD mit Touch keine Anzeige
    Von MueThoS im Forum Bauanleitungen, Schaltungen & Software nach RoboterNetz-Standard
    Antworten: 9
    Letzter Beitrag: 19.03.2008, 18:53
  4. LED ANzeige
    Von markus1990 im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 04.03.2006, 02:28
  5. LED Anzeige
    Von Elektronikus im Forum Elektronik
    Antworten: 24
    Letzter Beitrag: 15.02.2005, 19:10

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress