Mikrokontlorer 51'

To forum jest dla wszystkich pasjonatów wiecznie młodych mikrokontrolerów '51. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
kamil23
-
Posty: 9
Rejestracja: 14 lut 2007, 21:04

Mikrokontlorer 51'

Post autor: kamil23 » 28 lut 2007, 18:22

Witam, pomoże ktos zmodyfikować ten program tak zeby wyświetlał minimum 40 znaków w jednej linii i płynął w lewo, teraz plynie ale po trzydziestu paru znakach przenosi do drugiej lini.

Kod: Zaznacz cały

LJMP    START 
    ORG    100H 
START: 

    MOV    R0,#LCDWC    ;adres wpisu instrukcji 
    MOV    R1,#LCDRC    ;adres odczytu stanu 

    MOV    A,#1        ;kasuj dane wy�wietlacza 
    LCALL    WRITE 

    MOV    A,#0FH        ;w�Ącz wy�wietlacz,kursor 
    LCALL    WRITE        ;i mruganie kursora 

    INC    R0        ;adres wpisu danych 
    MOV    DPTR,#TEXT    ;adres tekstu 

WRITE_TXT: 
    CLR    A        ;pobranie kolejnego 
    MOVC    A,@A+DPTR    ;znaku tekstu 
    JZ    TEXT_END    ;bajt=0 - koniec tekstu 

    ACALL    WRITE        ;wpisanie na wy�wietlacz 
    INC    DPTR        ;modyfikacja adresu 
                ;pobrania kolejnego znaku 
    SJMP    WRITE_TXT    ;pobierz kolejny znak 

TEXT_END: 
    DEC    R0        ;adres wpisu instrukcji 

LOOP:                ;p©tla animacji 
    MOV    A,#4 
    LCALL    DELAY_100MS    ;co 0.4 sek 
    
    MOV    A,#18H        ;obr˘t danych w lewo 
    LCALL    WRITE        ;na wy�wietlaczu LCD 

    SJMP    LOOP 

;************************************** 
;Podprogram wpisu danych lub instrukcji 
;na wy�wietlacz LCD 
;Zak�ada prawid�owe adresy w R0 i R1 

WRITE: 
    MOV    R2,A        ;przechowanie danych 
BUSY: 
    MOVX    A,@R1        ;odczytanie stanu 
    JB    ACC.7,BUSY    ;oczekiwanie na BUSY=0 
    MOV    A,R2        ;odtworzenie danych 
    MOVX    @R0,A        ;wys�anie danych 
    RET 

;************************************** 
TEXT: 
    DB    '"MicroMade"  Systemy',0
-----
Kody źródłowe zwyczajowo zamykamy tagi CODE. ZbeeGin
Ostatnio zmieniony 01 sty 1970, 1:00 przez kamil23, łącznie zmieniany 1 raz.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 28 lut 2007, 19:42

Popatrz tu.

kamil23
-
Posty: 9
Rejestracja: 14 lut 2007, 21:04

Post autor: kamil23 » 02 mar 2007, 17:21

dzięki, ale prościej się nie da?
Ostatnio zmieniony 01 sty 1970, 1:00 przez kamil23, łącznie zmieniany 1 raz.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 02 mar 2007, 18:01

Przecież to proste rozwiązanie.

kamil23
-
Posty: 9
Rejestracja: 14 lut 2007, 21:04

Post autor: kamil23 » 02 mar 2007, 19:39

jestem początkujący w te klocki, tzn. mam przepisać cały ten program z tej stronki?
Ostatnio zmieniony 01 sty 1970, 1:00 przez kamil23, łącznie zmieniany 1 raz.

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 02 mar 2007, 20:25

kamil23 pisze:jestem początkujący w te klocki, tzn. mam przepisać cały ten program z tej stronki?
No nie koniecznie. Na końcu jest link do postaci żródłowej do pobrania ze stonki. Calość zawiera kilka funkcji, których nie musisz używać, jak przykładowo włączanie i wyłączanie kursora. Jeżeli użyjesz 8-bitowego interfejsu szyny danych, to można dokonać kolejnych uproszczeń. Całość jako przykład obsługuje 4-bitową szynę danych do LCD z możliwością odczytu statusu operacji. Z drugie strony nie musisz tego kodu dołączać do swego programu. Wystarczy jak przeanalizujesz działanie procedury FMessage i Hello i ten pomysł zastosujesz u siebie.

kamil23
-
Posty: 9
Rejestracja: 14 lut 2007, 21:04

Post autor: kamil23 » 02 mar 2007, 20:41

dzięki za pomoc, spróbuje tak zrobić, ale nie wiem czy dam rade.

[ Dodano: 2007-03-02, 22:03 ]
Pomożesz,bo na jutro mam to zrobic a cos mi nie idzie?
Ostatnio zmieniony 01 sty 1970, 1:00 przez kamil23, łącznie zmieniany 1 raz.

ODPOWIEDZ