Vizitator s_marius Postat Ianuarie 31, 2007 Partajează Postat Ianuarie 31, 2007 Salut.Am un LCD 16X2 si vreau sa il leg la un at89s52.Am reusit sa il pornesc si sa afisez un string predefinit de mine(bineinteles ca m-am inspirat).Doresc sa imi afiseze un string format din mai multe valori stocate in locatii de memorie(de exemplu data si ora) si nu am nici cea mai mica idee.As fi profund recunoscator daca m-ar ajuta cineva cu o subrutina sau chiar doar cu niste explicatii. Link spre comentariu
aghora17 Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 In ideea ca scrii in C (altfel e cam greu), poti sa afisezi un string in care ai concatenat anterior cele 2 numere convertite cu o functie gen atoi(), in stringuri.alta sugestie ar fi sa incerci sa folosesti pointeri. am acasa ceva mai concret, asa ca da-mi un raspuns la post si asa o sa imi aduc aminte Link spre comentariu
Vizitator s_marius Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 Deci eu lucrez in assembler dar am idee si de ceva C dar pentru uc nu am scris nici un program in C dar toate au un inceput .Apropo si programarea in assembler este noua dar numai despre assembler am documentatie asa ca doar asta fac, nu ca as avea ceva impotriva C-ului. Link spre comentariu
aghora17 Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 atunci, ca sa nu trebuiasca sa iti faci functie de conversie numeric in digit, poti sa incerci sa ai cate o variabila pentru fiecare digit, si sa o incrementezi de la 0 la 9, 0 la 5 pentru minute de exemplu si pur si simplu sa le afisezi unul dupa altul. (ma rog, daca valoarea este 1, trimiti pe ecran '1' si asa mai departe), altfel e mult prea complicat de explicat in scris, cand vorbesc generic despre un mcu cu care n-am lucrat. Link spre comentariu
Vizitator s_marius Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 Multumesc pentru idee.Nu trebuie sa am cate o variabila pentru fiecare digit neaparat ... ma gandesc eu acum... ci doar o variabila pentru minute in decimal a carei valoare o impart la 10 catul sunt zecile de minute iar restul sunt unitatile de minute.Eu asa vad lucrurile am mai gasit ceva cu google si cred ca sunt pe drumul cel bun.Multumesc oricum si daca mai am o neclaritate o sa te mai intreb. Link spre comentariu
aghora17 Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 corect, e o idee mai buna. Link spre comentariu
Vizitator s_marius Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 Mi-a mai aparut o pb.Eu am o valoare hexazecimala in locatia de memorie.Imi trebuie o rutina care sa transforme hexazecimalul in codul caracterului corespunzator valorii mele.M-ar ajuta chiar si numai o idee.Multumesc anticipat. Link spre comentariu
aghora17 Postat Februarie 1, 2007 Partajează Postat Februarie 1, 2007 asta nu ar terbui sa fie o problema, din cate stiu 0b00000001 = 0x01 = 1, adica binar, hexa respectiv zecimal, si tine de compilator cum le interpreteaza. in plus valorile pana la 9 sunt echivalente in hexa si in zecimal. daca nu te-a lamurit, fii mai explicit. da un exempluar mai fi o idee, in codul ascii, cifrele sunt in ordine 0 de exemplu corespunde ascii zecimal 48, 1-49, 2-50. ai putea sa faci conversia adunand sau scazand acest 48, in functie de ce vrei sa convertesti in ce. (cifra in ascii, aduni, ascii in digit, scazi) Link spre comentariu
Vizitator s_marius Postat Februarie 2, 2007 Partajează Postat Februarie 2, 2007 Pai de exemplu : minute equ 07ch.........mov a,minutemov b,#10ddiv abin "a" am zecile de minute si in "b" am unitatile minutelorcum fac sa afisez pe lcd valoarea din a adica sa o transform din valoarea hexazecimala in cod ascii? Link spre comentariu
mitescu Postat Februarie 2, 2007 Partajează Postat Februarie 2, 2007 ;atentie afecteaza A,B,R2,R3 si flagurile (C,Z,...) hex_asc: ; convert hex A to ascii in R2(HIGH) and R3(LOW) Mov B,A Anl A,#0f0h Swap A Mov R2,A Clr C Subb A,#10 Jnc hexasc1 Mov A,#30h SJmp hexasc2hexasc1: Mov A,#37hhexasc2: Add A,R2 Mov R2,A Mov A,B Anl A,#0fh Mov R3,A Clr C Subb A,#10 Jnc hexasc3 Mov A,#30h SJmp hexasc4 hexasc3: Mov A,#37hhexasc4: Add A,R3 Mov R3,A Ret Link spre comentariu
Vizitator s_marius Postat Februarie 2, 2007 Partajează Postat Februarie 2, 2007 Multumesc pentru ajutor.Acum dupa ce am transformat hex in ascii cum construiesc stringul ce tre sa il afisez? ceva de genul string: db 'ora:',... si aici ar trebui sa pun ascii Sau alta idee. Link spre comentariu
Vizitator s_marius Postat Februarie 3, 2007 Partajează Postat Februarie 3, 2007 Am rezolvat problema multumesc tuturor pentru ajutor. 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