Jump to content
ELFORUM - Forumul Electronistilor
Sign in to follow this  
paul

Atmel AT89C2051

Recommended Posts

Am incercat sa assamblez, deocamdata fisierul originaj "laufschr.asm", cu "Pro-Studio 6.04" descarcat de la http://www.Batronix.com, si imi da eroarea asta (Eroare.jpg). Daca incerc sa modific acel (-1),cred ca nu va mai functiona programul cum trebe.

AVR Studio de la Atmel su are suport pt. AT89C2051, sau nu stiu eu?

Rau e sa fi prost!

Share this post


Link to post
Share on other sites

Pai , registrul B are 8 biti. Daca valoarea MODULE-1 este mai mare decat 255/8 atunci este normal sa-ti dea eroare.Presupun ca ai pus mai multe module (ce "arunca" valoarea de mai sus peste 255). Solutia este sa faci counterul pe doi octeti (din ram) eventual sa lucrezi cu registrii alternativi. Am mai spus :"Totusi daca vrei sa realizezi ceva trebuie sa si constientizezi ceea ce faci". Nu se poate sa vrei sa faci modificari fara sa stii ceea ce faci. Nu vreau sa fiu rau, dar mi-am amintit o replica dint-un film:"Nu se poate sa ingenunchezi in mijlocul autostrazii si sa scapi cu viata."Asa ca (totusi) trebuie sa studiezi prg-ul si sa faci adaptarile corespunzatoare. Nu spune nimeni ca este usor, dar tot ca o replica dintr-un film spune:"Ce nu te omoara te intareste"Incearca si vezi logica programului, dupa care, vezi ce trebuie sa modifici ( counterul de module, stack-ul de la buffer etc..) ca sa te incadrezi in cerinte.Pentru probleme punctuale (fixe) , oricand !!Mult succes !

Share this post


Link to post
Share on other sites

Aveti perfecta dreptate.Dar eu am assamblat fisierul ORIGINAL, dat de realizator, fara sa fac nici o modificare. Logic vorbind ar fi trebuit sa iasa bine. Tocmai pentru ca stiu ca nu ma pricep la programare, nici nu am incercat sa fac modificarea programului, incercind sa rezolv problema "hardware". Nici in ruptul capului nu inteleg de ce face figura cu opritul. Daca pe celui de al doilea uC il reserez, o porneste din nou. Primul (care are oscilatorul cu quartz merge perfect). Am "lins" toata documentatia (referitoare la oscilator) data de producator si nu am gasit nimic in neregula.Pacat ca restul mi-a reusit foarte bine, inclusiv reprogramare de la distanta cu un "modem" pe 433 MHz, realizat de mine.Oricun, VA MULTUMESC!

Share this post


Link to post
Share on other sites

Am incercat sa assamblez programul original, nu ca sa-l modific radical ci pentru a pune la sfirsitul programului o instructiune de "Reset", ca atunci ar merge montajul.

Share this post


Link to post
Share on other sites

hai salut!am aruncat o geana la batronix, compilatorul este C, in principiu ar trebui sa stie si asembler dar nu se stie,am gasit pe google fisierul asm de care zici, la site-ul indicat nu am reusit sa dau de el.ideea era ca acum ceva ani am folosit 8051 si aveam un compilator antic de la metalink (asm51.exe sub 60k dimensiune),compilat cu el zice '0 errors', daca vrei ti-l trimit pe mail,ruleaza sub dos si e de prin 94.sau cauti un compilaror mai modern pt familia 8051.

Share this post


Link to post
Share on other sites

Am descarcat si eu acel program. Partea proasta ca la mine, nu vrea sa mearga (Win XP). Daca ai reusit sa assamblezi cu el fisierul, te rog fa o comparatie cu fisierul original (laufschr.bin) .

Aici ai lick-ul la site: http://www.woe.onlinehome.de/e_projects.htm

Este destul de interesant!.

Share this post


Link to post
Share on other sites

asm-ul pare identic,bin-ul iese putin mai mic, cu 3 octeti.prima diferenta:daca te uiti in listing la linia 94 este un apel la adresa 027F, in bin-ul tau apelul este pt adr 0281, si rutina apelata este acolo.mai sap maine.baftaideegaseste o discheta de boot win9x sau dos, ai nevoie doar de command.com pe earulezi asm51 direct din dischetaPS: in asm am adaugat o linie cu definitiile pt port, registri etc $mod32

Share this post


Link to post
Share on other sites

am fost curios si am sapat,bin-urile sunt identice, codul iese putin mai mic pt ca un compilator respecta o instructiune de salt relativ iar celalalt o transforma in salt absolut (care e pe 3 octeti si nu pe 2).face asta de doua oride unde ai luat MAX7219? ai dat 8EUR pe bucata?

Share this post


Link to post
Share on other sites

MAX-urile se pot procura de la Capodimonte.

http://www.capodimonte.ro/catalog.php (au si reclama pe forum).

Se mai pot procura si de la Comet http://www.comet.srl.ro/main/index.html dar timpul de livrare este ceva mai mare.

Sunt cam scumpe, este adevarat, dar nu ai nevoie de alte componente pentru a comanda matricea de led-uri.

 

Nu stiu ce naiba sa mai fac cu afisajele mele?

Incerc, dar deocamdata nu prea reusesc, sa adaun la sfirsitul programului o instructiune de reset-are a microcontrolerului.

Daca dupa ce ruleaza textul, stocat in Eeprom, ii dau un Reset (hardware) reporneste din nou si afiseaza iar fara probleme textul pina la capat dar se opreste iar. Este vorba doar de al diolea afijaj. Primul care are oscilatorul cu quartz, functioneaza normal.

Share this post


Link to post
Share on other sites

Am incercat sa assamblez fisierul original "laufschr.asm" cu Asm51, dar mie imi da 50 error. Poate ca nu am facu ceva bine?Am mers in directorul "Asm51" (c:\asm51) si am scris comanda: "asm51 laufschr". A facut treaba dar mia dat 50 de erori?

Share this post


Link to post
Share on other sites

AM REUSIT !!! sa gasesc "hiba". Eepromul din al doilea afisaj sa modificat (partea proasta e ca nu stiu DE CE?). Nestiind ce sa mai fac, am zis sa schimb Eeprom-urile intre ele. SURPRIZA !!! , primul afisaj a inceput sa faca figurile pe care le facea al doilea. Am reprogramat Eepromul cu acelas text care este stocat si in al doilea si acuma totul e OK!.Al doilea microcontroler ruleaza cu semnalul de tact primit da la primul prin intermediul celor doua buffere 74LS04. Am sa-l las sa functioneze continu pina miine sa vedem cum va fi cu sincronizarea.Va tin la curent.

Share this post


Link to post
Share on other sites

este vina mea pt cele 50 de erori,pentru acest compilator trebuie adaugat fisierul cu definitiile porturilor, bitii din porturi, registrii etc-este un fisier separat mod31 sau mod32 -trebuie inclus in asm la inceputul programului cu comanda $mod31 sau32daca te uiti in asm.ul de la mine este imediat sub caseta de inceputfisierul mod32 am uitat sa-l pun in zip, drept pentru care o sa-l pun acumsucces in continuare

Share this post


Link to post
Share on other sites

Multumesc pt. ajutor. Asa merge bine. Oricum vreau sa incerc sa modific programul ca sa pot afisa si caractere romanesti. Sa vedem ce o sa iasa?Am lasat afisajele sa functioneze incontinu pina azi si nu a aparut nici un pic de desincronizare (lucrind cu aceasi frecventa de tact, teoretic nici nu avea cum sa se desincronizeve). Dar de multe ori teoria e una iar "praftica" alta.Merci mult, inca o data !

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.