Sari la conținut
ELFORUM - Forumul electronistilor

Modificare fisier hex


Ionelc

Postări Recomandate

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
  • Răspunsuri 9
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Mondan

    4

  • Ionelc

    4

  • izua

    2

Top autori în acest subiect

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

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

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

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

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

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări