LCD HD44780 - kan bara skriva på en rad?
Postat: 23 december 2011, 21:28:17
Hej!
Jag kan skriva ut en text på rad ett sen när jag ska byta till rad två och skriva ut en text där så försvinner texten på rad ett.
I detta exemplet är tanken att B skall skrivas på rad ett och C på rad två. Tyvärr kommer bara C ut på rad två.
nån som ser nått fel i sättet jag anger adress på?
Tog inte med subrutinen put_data men det den gör är att skicka data (det värde som ligger i CHAR) till LCD:n och ge Dataöverföringspuls.
Jag kan skriva ut en text på rad ett sen när jag ska byta till rad två och skriva ut en text där så försvinner texten på rad ett.
I detta exemplet är tanken att B skall skrivas på rad ett och C på rad två. Tyvärr kommer bara C ut på rad två.
Kod: Markera allt
main call init ;Initiering PIC
call init_lcd ;Initiering LCD
call to_row_1 ;byter rad till rad 1
movlw 'B'
movwf CHAR
call to_row_2 ;byter rad till rad 2
movlw 'C'
movwf CHAR
call put_data
end_loop goto end_loop
;Byter rad till rad 1
to_row_1 bcf RS ;Anger att det är en instruktion
movlw 0x80 ;Adress till första platsen på 1:a raden
movwf CHAR
call put_data
bsf RS
return
;Byter rad till rad 2
to_row_2 bcf RS ;Anger att det är en instruktion
movlw 0xC0 ;Adress till första platsen på 2:a raden
movwf CHAR
call put_data
bsf RS
return
Tog inte med subrutinen put_data men det den gör är att skicka data (det värde som ligger i CHAR) till LCD:n och ge Dataöverföringspuls.