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

Problem z wyświtlaczem do Nokii 3310

bongo1986 06 Lip 2008 18:18 1568 2
REKLAMA
  • #1 5317440
    bongo1986
    Poziom 2  
    Mam problem z uruchomieniem wyświetlacza do Nokii 3310(raczej jego podróbki). Wyświetlacz jest sprawny, podłączony do portu lpt wyswietla wszystko poprawnie, jednakże podłączony do avr-a "milczy jak grób". Stan logiczny 1 na wszystkich lianiach wynosi 3.5 V, 0 to 0.7 V(czyli zgodnie z dokumentacja).Wg mnie efektem wykonania poniższego kodu powinno być wyświetlenie śmieci znajdujących sie w pamięci sterownika wyświetlacza, jednak nie ma zadnej widocznej reakcji wyświetlacza...Ma ktoś jakiś pomysł ?

    
    sbi PORTD, OE
    	sbi DDRD, OE
    	cbi PORTD, OE
    	sbi PORTD, RES
    	sbi DDRD, RES
    	cbi PORTD, RES
    	sbi PORTA, 0
    	ldi R16, 100
    	ldi R17, 10
    	rcall Czekaj_ms
    	sbi PORTD, RES
    	cbi PORTA, 0
    
  • REKLAMA
  • Pomocny post
    #3 5318435
    krzych41
    Poziom 15  
    Jeśli nie ma nic na wyświetlaczu, a wyświetlacz jest sprawny, to żle go inicjalizujesz (co za wyraz!). Moja procedura wygląda tak:

    
    ;
    ; PISZ_D - zapis bajtu danych do RAM wyświetlacza.
    ;
    ; PISZ_K - zapis komendy sterującej wyświetlaczem
    ;	WE: BuZDa - bajt do zapisu
    ;	WY: -
    ;	ZMIENIA: BuZDa, LiBit.
    ;
     PISZ_K:
     		 cbi	PORTB,N_DC				;zeruj D/C - będzie wysyłana komenda
    		 rjmp	PISZ0
     PISZ_D:
     		 sbi	PORTB,N_DC				;ustaw D/C - będą wysyłane dane
     PISZ0:
    		 ldi	LiBit,8					;do przesłania 8 bitów
    		 cbi	PORTB,N_SCE				;zezwolenie na przyjęcie danych/rozkazu
     PISZ1:	 cbi	PORTB,N_SCLK			;opadające zbocze sygnału zegarowego
    		 lsl	BuZDa					;C<--R7<--R6,...,R0<--0
    		 brcs	PISZ3					;skok, jeśli C=1
    		 cbi	PORTB,N_SDIN			;C=0, wyślij 0
     PISZ2:	 sbi	PORTB,N_SCLK			;narastające zbocze sygnału zegarowego
     		 dec	LiBit
    		 brne	PISZ1					;jeśli nie koniec bajtu
    		 sbi	PORTB,N_SCE				;koniec - zapis zabroniony
    		 ret
     PISZ3:	 sbi	PORTB,N_SDIN			;C=1, wyślij 1
    		 rjmp	PISZ2
    ;
    ; N_INIT - procedura inicjacji wyświetlacza
    ;
    ; CLRLCD - procedura wygaszania całego wyświetlacza
    ;	WE: - 
    ;	WY: - 
    ;	ZMIENIA: BuZDa, LiPet.
    ;
     N_INIT:
     		 sbi	PORTD,N_WZAS			;załącz zasilanie wyświetlacza
    		 ldi	LiPet,0x06				;opóźnienie 6*5,15 ms = 31 ms
    		 rcall	DEL1
    		 cbi	PORTB,N_RES				;podaj sygnał RESETU wyświetlacza
    		 nop
    		 nop
    		 nop
    		 nop
    		 sbi	PORTB,N_RES				;koniec RESETU (min. to 100ns)
    		 ldi	BuZDa,0x21				;przełącz na komendy rozszeraone
    		 rcall	PISZ_K
    		 ldi	BuZDa,0xC8				;ustaw kontrast
    		 rcall	PISZ_K
    		 ldi	BuZDa,0x06				;ustaw współczynnik korekcji temperaturowej
    		 rcall	PISZ_K
    		 ldi	BuZDa,0x13				;ustaw współczynnik multipleksowania 1:48
    		 rcall	PISZ_K
    		 ldi	BuZDa,0x20				;przeł. na komendy stand., adresowanie poz.
    		 rcall	PISZ_K
    		 ldi	BuZDa,0x0C				;konfiguracja: tryb standardowy
    		 rcall	PISZ_K
     CLRLCD:
    		 ldi	TempH,0x40				;zeruj licznik wierszy
    		 mov	Buf_Y,TempH
    		 ldi	TempH,0x80				;zeruj licznik kolumn
    		 mov	Buf_X,TempH
    		  ;wygaś cały wyświetlacz (2*0xFC = 504 D)
    		 ldi	LiPet,0xFC				
    		 rcall	GasPx
    		 ldi	LiPet,0xFC
    		 rcall	GAS
    		 ret
    ;
    ; DELAY - procedura opóźniająca około 5,15 ms
    ; DEL1 - procedura opóźniające LiPet*5,15 ms. Dodatkowo na wejściu
    ;		  do procedury należy podać mnożnik 5,15 ms (LiPet)
    ;	WE: - lub LiPet (dla DEL1)
    ;	WY: -
    ;	Zmienia: LiPet, TempH, TempL
    ;
     DELAY:  ldi    LiPet,1     			;opóźnienie 5,15 ms
     DEL1:   ldi    TempH,0x10				;opóźnienie {LiPet*5,15 ms}
             mov    TempL,TempH
             ldi    TempH,0x11
     DEL2:   nop
             nop
             dec    TempL
             brne   DEL2                	;skocz, jeśli nie zero
             dec    TempH
             brne   DEL2               		;skocz jeśli nie zero
             dec    LiPet
             brne   DEL1
             ret
    

    Jeśli coś niejasne, pytaj!
REKLAMA