Tach zusammen,
folgendes Problem nach dem ersten Einschalten funktioniert die 2. Zeile
meines Displays(Reichelt Displaytech 162)nicht, drücke ich danach wie
ein irrer (1000.Mal hintereinander)auf den Resetknopf springt sie dann
doch an.
Hat jemand ne Ahnung woran das liegen könnte.
Vielleicht an der Initialisierung des LCD?
Wäre dankbar für Hilfe.
.EQU init_display = 0b00000011 ;to initialize LCD
.EQU four_bit_mode = 0b00000010 ;to initialize 4-bit
mode
.EQU clear_LCD = 0b00000001 ;loesche Anzeige
.EQU home_LCD = 0b00000010 ;return home
.EQU home_sec_line = 0b11000000 ;Cursor an den Anfang
der zweiten Zeile
.EQU set_LCD = 0b00101000 ;4 bits,2
Zeilen,5x7dots
.EQU LCD_on = 0b00001100 ;schalte LCD ein
.EQU curser_on = 0b00001110 ;schalte LCD ein,
Curser an
.EQU entry_mode = 0b00000110 ;setze Cursor
+++++Initialisiere LCD+++++++++++++++++
init_lcd:
cbi PORTA,RS ;clear steuerleitungen
cbi PORTA,RW ;
cbi PORTA,E ;
ldi temp,3 ;powerwaitup 15ms
wloop1: rcall delay_5ms ;...
dec temp ;...
brne wloop1 ;...
;***Initialize LCD
ldi buffer,init_display ;send 3-times 0x03
out PORTC,buffer ;1
rcall delay_5ms ;wait 5ms
out PORTC,buffer ;2
rcall delay_5ms ;wait 5ms
out PORTC,buffer ;3
rcall delay_5ms ;wait 5ms
ldi buffer, four_bit_mode ;activate 4-bit mode
out PORTC,buffer ;...
;***LCD-setup
ldi buffer,set_LCD ;set LCD
rcall write_instr ;...
ldi buffer,LCD_on ;switch LCD on
rcall write_instr ;...
ldi buffer,clear_LCD ;clear display
rcall write_instr ;...
ldi buffer,entry_mode ;entry_mode
rcall write_instr ;
ret
delay_5ms:
ldi ZH,HIGH(13334)
ldi ZL,LOW(13334)
wloop2: sbiw ZL,1
brne wloop2
ret
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.