Vizitator yo9hnh Postat Decembrie 11, 2009 Partajează Postat Decembrie 11, 2009 Poate multi dintre voi ati realizat montaje in care se foloseste un afisaj 1 x 16 si nu functioneaza corect.Adica apar doar primele 8 caractere si restul pana la 16 nu mai afiseaza nimic.Si ati mai observat ca pe spatele afisajului apare seria DEM16101.Problema se datoreaza din cauza secventei de initializare.Mai mult ca sigur ati initializat afisajul exact cum se specifica in fisa de catalog a acestuia si tot va intrebati de ce nu functioneaza corect. Eu am gasit solutia si vreau sa o impartasesc si cu altii.Asa cum am spus problema sta in initializare.Afsajul se initializeaza ca si cele 2 x 8,pentru ca arhitectura interna a unui afisaj 1x16 este identica cu arhitectura unui 2x8.Si acum mai intervine o problema.Daca vreau sa scriu ceva pe afisaj de la caracterul 9 mai intai trebuie sa ii specific manual adresa caract. 9 Si ca sa fie mai concret va pun si niste cod in asamblare : CALL D40ms ; wait 40 ms until VCC reaches at 5V BCF PORTC,0 ; CLEAR RS BCF PORTC,1 ; CLEAR RW// CHOOSE INSTRUCTIONS MOVLW B?00111100? ; SET DISPLAY ? 2 line mode,FONT : 5 X 11 MOVWF PORTB ; CALL ENABLEPULSE ; ENABLE Pulse CALL DELAY50 ; wait 50 us MOVLW B?00001111? ; SET DISPLAY-ON,CURSOR-ON,BLINK-ON MOVWF PORTB ; CALL ENABLEPULSE ; ENABLE Pulse CALL DELAY50 ; wait 50 us MOVLW B?00000001? ; CLEAR DISPLAY MOVWF PORTB ; CALL ENABLEPULSE ; ENABLE Pulse CALL D2ms ; 2 ms delay MOVLW B?00000110? ; ENTRY MODE SET : INCREMENT MODE,ENTIRE SHIFT OFF MOVWF PORTB ; CALL ENABLEPULSE ; ENABLE Pulse BSF PORTC,0 ; set RS BCF PORTC,1 ; clear R/W // SELECT DATA Si asta este rutina de initializare Acum ramane de afisat primele 8 caractere(sa nu uitati sa setati afisajul sa intre in modul DATA) dar nu voi mai face lucrul asta ca este destul de simplu.Pentru afisarea de la caracterul 9 trebuie setata manual adresa caracterului 9.Se intra in modul "instructiune" din afisaj.Analizati fisa de catalog si veti observa cum se transmite adresa caracterului : RS si RW - 0 , DB7 - 1 , DB6 - DB0 - pachetul de 7 biti care seteaza adresa.In fisa de catalog veti vedea adresele caracterelor.Pentru caracterul 9 adresa este in hexazecimal 40 in binar inseamna 1000000 Aici aveti un convertor online http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html pentru transformari rapide Spor la munca si sper sa va fie de folos ! Robert Link spre comentariu
ratza Postat Decembrie 11, 2009 Partajează Postat Decembrie 11, 2009 S? în?eleg c? dac? am un cod pentru 2x16 ?i-l transpun f?r? modific?ri va merge, dar cu mesajul truncat la 8 caractere? Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum