Ionelc Postat Iunie 25, 2010 Partajează Postat Iunie 25, 2010 Buna ziua,Am realizat un ceas ci 16f877 si un lcd 4x20. Neavand lcd-ul cerut, am montat unul 4x16 si caracterele apar deplasate. Ma poate ajuta cineva cu modificarea fisierului hex pentru lcd-ul de 4x16 ?Multumesc anticipat Link spre comentariu
izua Postat Iunie 25, 2010 Partajează Postat Iunie 25, 2010 UAU, jal. Chestia asta e antică. Din ce m-am uitat prin sursă, ai așa: -- HD44780 driver, 2 lines, 80,C0 begining addressprocedure HD44780_line1 is HD44780_instruction( 0b_1000_0000 )end procedureprocedure HD44780_position1 ( byte in x ) is HD44780_instruction( 0b_1000_0000 + x )end procedureprocedure HD44780_line2 is HD44780_instruction( 0b_1100_0000 )end procedureprocedure HD44780_position2 ( byte in x ) is HD44780_instruction( 0b_1100_0000 + x )end procedureîn hd44780.jal, liniile 73-92 (și mai jos pentru 4 linii). Aici trebuie să modifici cu 4 în valorile binare (alea cu 0b_ în față), dar nu-mi dau seama exact în ce direcție (adică să aduni sau să scazi). Însă problema e că îți va trebui compilatorul JAL, ca să poți regenera hexul. Să modifici direct în hex e destul de complicat. Link spre comentariu
Ionelc Postat Iunie 25, 2010 Autor Partajează Postat Iunie 25, 2010 Problema e ca din setarea ceasului se poate afisa caracterul de 4x4 sau 4x3, dar nu stiu cum. Link spre comentariu
Mondan Postat Iunie 25, 2010 Partajează Postat Iunie 25, 2010 Am deschis fisierul arhiva atasat.Din imaginile atasate am observat sa ca modificare nu este foarte simpla.Ai putea pune si tu imagi sau ceva din care atat eu cat si ceilalti sa ne dam seama ce modificari apar la schimbarea tipului de afisaj.Am vazut main.hex.Am descarcat ICprog (este FREE). La configurare sa ii dai Wind Api.Selectezi procesorul , 16f877(,Settings->Device->MicrochipPIC->More->More-> More), incarci HEX-ul si dai View ->Assembler Apoi il salvezi. Programul asta recompilat va da hexul original.Asta doar daca nu stii sa ajungi la programul asm plecand de la HEX.Acum poti incerca tot felul de modificari ale programului din PIC, caci nu strici nimic.Doar sa fii atent sa ii mai pui un soclu suplimentar PIC-ului ca sa nu ii rupi picioarele de la "frecushul" de pe placa in programator.Poti sa modifici orice, si vezi efectul, asa vei invata.Eu banuiesc ca este ceva legat de adresarea caracterelor noului display, dar pana nu vad cum afiseaza nu pot sa spun nimic. Daca ar fi sa programul ar fi:; Generated by WinDis84, © Nigel Goodwin 1998. LIST P=16F84, F=INHX8M include "P16FXX.inc" ORG 0x0000 ; asamblarea incepe de la adresa 0, unde incepea oricum GOTO Label_0001 ; si continua programul normal de la eticheta Label_0001 ORG 0x0004 ; asamblarea incepe de la adresa 0004. Aici saare in cazul "satisfacerii" unei intrerupere (asta este vectorul de intrerupere) MOVWF 0x7F SWAPF STATUS , W CLRF STATUS MOVWF 0x20 MOVF PCLATH , W MOVWF 0x21 CLRF PCLATH MOVF FSR , W MOVWF 0x22 GOTO Label_0002Label_0002 MOVF 0x49 , f BTFSC STATUS , Z DECF 0x48 , f DECFSZ 0x49 , f GOTO Label_0003 MOVF 0x48 , f BTFSS STATUS , Z GOTO Label_0003;============ Aici incepe programulnormal ======================Label_0001 MOVLW 0xFF MOVWF 0x27 ; sa zicem variabila X27=ff MOVLW 0xFF MOVWF 0x28 ; X28=ff MOVLW 0xFF MOVWF 0x29 MOVLW 0xFF MOVWF 0x2A ; X29=X2a=ff MOVLW 0x0F MOVWF 0x2B Link spre comentariu
Ionelc Postat Iunie 25, 2010 Autor Partajează Postat Iunie 25, 2010 asa arata la mine Link spre comentariu
Mondan Postat Iunie 28, 2010 Partajează Postat Iunie 28, 2010 Am descarcat MPLAB.Start->Programs->Microchip->MPLAB IDE->MPASMWINSelectez programul ASM si ASSEBLEvSi selectat Processor:16f877 Link spre comentariu
Mondan Postat Iunie 28, 2010 Partajează Postat Iunie 28, 2010 compilat cu MPASMWIN trebure ca programul sursa sa fie in C:\ ca nu merge cu adresa prea lunga. Am adaugat program astfel obtinut. Trebuie schimbata extensia din txt in asm. La __config trebuie configurat in functie de montaj: ce oscilator are,... http://hobby_elec.piclist.com/e_pic877_2.htm Si apoi dupa ce gasim ASM-ul "corect" sa trecem la modificari. Nu promit sa am timp. HEX-urile le putem verifica mai inati deschise cu WordPad-ul sai apoi direct "in montaj". Deocamdata asm-ul postat da cateva erori. Link spre comentariu
izua Postat Iunie 28, 2010 Partajează Postat Iunie 28, 2010 Nu te chinui să hăcuiești în asm, e mult de muncă, plus că JALul are niște chestii foarte ciudate în compilare. Mai bine descarcă compilatorul de aici: http://jal.sourceforge.net/, după care regenerează fișierul hex (compilare), vezi dacă se comportă la fel ca originalul. Dacă totul e ok, modifică ce ti-am indicat mai sus. Problema e că pe afișoarele cu 16 de caracterel, se schimbă adresele din poziția 0, deci trebuiesc modificate și în soft. Link spre comentariu
Mondan Postat Iunie 29, 2010 Partajează Postat Iunie 29, 2010 Da, e putin cam dificil in asm.Atasez programul asm la care am ajuns. Sa imi spui daca functioneaza cu programul asta.Nu am casit nici un __config ca cel initial.Daca restul colegilor de forum ajuta la gasirea acestiu __config.In fisiserul HEX descis cu editul penultima linie este::02400E00763FF3in loc de::02400E00723FFFPe ce port este conectat LCD-ul ca nu inteleg din imagine ? Link spre comentariu
Ionelc Postat Iunie 29, 2010 Autor Partajează Postat Iunie 29, 2010 Pe portul paralel 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