logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kod w asemblerze 8051: przewijanie napisu HELLO na LCD DSM51 z prawej na lewo

himen_18 15 Mar 2007 09:18 5366 1
REKLAMA
  • #1 3679999
    himen_18
    Poziom 2  
    Posty: 2
    Potrzebuje program napisany w asemblerze na dsm51 o następującym dzielaniu: Napis HELLO ma przejechac na wyswietlaczu LCD z prawej do lewej. Wiem ze powinienem uwaz na lekcji, ale uwiezcie mi ze to by nic nie dalo, jak ktos wie jak ma wygladac ten program to niech mi napisze. z gory dzieki
  • REKLAMA
  • Pomocny post
    #2 3681365
    prokopcio
    Poziom 29  
    Posty: 2027
    Pomógł: 39
    Ocena: 143
    ale możesz wykorzystywać wewnętrzne funkcje DSM51 czy masz wklepaś instrukce obsługi wyświetlacza komenda po komendzie? Jeśli to drugie to mogę pomóc ale musisz wypisać gdzie i jak jest podpięty konkretnie wyświetlacz i ile ma linii/znaków...

    Dodano po 6 [minuty]:

    masz gotowca:

    
    ;************************************************
    ; WY—WIETLACZ ALFANUMERYCZNY LCD - ANIMACJA (dla dsm 51 !!!)
    ;************************************************
    
    	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,#5
    	LCALL	DELAY_100MS	;co 0.5 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	'Tutaj wpisz co ma krążyć od Prawej do lewej !!!',0
    
    
    
REKLAMA