Jednoduché zapojení s 89c2051 - problém

Problémy s návrhem, konstrukcí, zapojením, realizací elektronických zařízení

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
Fibik
Příspěvky: 23
Registrován: 13 led 2005, 01:00

Jednoduché zapojení s 89c2051 - problém

#1 Příspěvek od Fibik »

Zapojil jsem podle obrázku (viz níže) a uspěšně jsem naprogramoval jednoduchý blikač do Atmelu 89c2051. A nefunguje mi to. Tak jsem to zkoušel naprogramovat aby blikal na celým portu P1 a taky bezuspěšně. (program byl převzat z knížky od Matouška) Kde vlastně dělám chybu? Jak poznám, že ten procesor je funkční? (Na programátoru ezoflash jsem otestoval tak, že jsem kliknul na verify a read chip -> operace šli).

Sice to vypadá úlpně jednoduše, ale přesto nemohu na to přijít proč to nejde :oops:

Obrázek

Uživatelský avatar
jezevec
Hlavní moderátor
Hlavní moderátor
Příspěvky: 5414
Registrován: 13 čer 2004, 02:00
Bydliště: Břeclavsko
Kontaktovat uživatele:

#2 Příspěvek od jezevec »

Sice Atmel nedělám, ale všeobecně, schema nám moc neřekne, je potřeba uveřejnit zdrojový kód, jinak ti nikdo neporadí.

Uživatelský avatar
Fibik
Příspěvky: 23
Registrován: 13 led 2005, 01:00

#3 Příspěvek od Fibik »

Zde je zdroják:

Kód: Vybrat vše

LED	equ	P1.2		;vystup LED
;------------------------------

	setb	LED

zacatek:cpl	LED
	mov R3,#167
cas_1: 	mov R2,#171
cas_2:	mov R1,#16
cas_3: 	djnz R1,cas_3
   	djnz R2,cas_2
   	djnz R3,cas_1
   	sjmp	zacatek

end
Ale jak to zkouším dál a jinak. (Jinak zkouším programovat v Bascomu -> je jazyk jednodušší a výsledek žádný)

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#4 Příspěvek od ZdenekHQ »

U Atmelů je dobrý umístit program až od adresy 30H příkazem org 30h, protože dole jsou umístěný přerušení a pokud se z jakýhokoliv důvodu vyvolá nežádoucí přerušení, tak to reti zas "vrátí zpátky". Po resetu by sice měly být nastavený výchozí hodnoty včetně zakázanýho přerušení, ale je lepší je přesně definovat.

Co se týká hardware, je lepší přidat k resetovacímu elytu odpor do země, už jsem viděl pár atmelů, co se bez odporu neresetly (protože elyt se nabíjel moc pomalu a vyvolal nějakej hazardní stav, i když podle katalogu by neměl.)

Na začátek programu dej clr Led, tím zjistíš, jestli je port OK.

V praxi je lepší blikat přes přerušní, tohle zbytečně zabírá výkon procesoru.

Jo, a Led je bit !

Kód: Vybrat vše


Led   bit   P1.2      ;vystup LED 

Start:
       org 0h
       jmp Zacatek
      
      ;tady jsou skoky na obsluhu přerušení
       
       org 30h
       reti 
Zacatek:
       ; hlavni program
       
       clr Led

Smycka2:
       mov r5,#30   ;30 x 10ms
Smycka:
       call Wt_10ms
       djnz r5,Smycka
       cpl Led

       jmp Smycka2

       ;konec programu

       ;CEKACI SMYCKY
Wt_100u:
      mov r7,#50
Sm100:
      djnz r7,Sm100  ;2us pri 12mhz
      ret

Wt_10ms:
      mov r6,#100
Sm101:
      call Wt_100u    ;100 x 100us
      djnz r6,Sm101
      ret
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Fibik
Příspěvky: 23
Registrován: 13 led 2005, 01:00

#5 Příspěvek od Fibik »

Tak to si určitě vyzkouším.

Jaký význam má $MOD52 -> je to důležitý to tam psát?

Já jsem začal programovat v Bascomu kvůli jednoduššímu programování (mohli byste mi zkontrolovat ten kód)

Kód: Vybrat vše

$regfile "89c2051.dat"

Dim A As Bit
Dim B1 As Bit
A = 1
B1 = 0

Do
     P1.2 = A
     Waitms 500
     P1.2 = B
     Waitms 500
Loop
End

Uživatelský avatar
Mibeus
Příspěvky: 54
Registrován: 17 črc 2005, 02:00

#6 Příspěvek od Mibeus »

ale skus tento kod.
Mne to frci vzdy



led bit p1.2
mov p1,#0h
mov p3,#0h

start: clr led
call delay
setb led
call delay
ajmp start

delay: djnz r7,$
djnz r6,$-2
ret

end




Ak ti nepojde ani toto tak mas problem s programovanim.

Ja pouzivam TAFE programato a soft ICprog obojo najdes na nete.
Ten programator vyde asi tak na 50 az 100 korun.

Uživatelský avatar
Fibik
Příspěvky: 23
Registrován: 13 led 2005, 01:00

#7 Příspěvek od Fibik »

Mibeus píše: ....
Ak ti nepojde ani toto tak mas problem s programovanim.

Ja pouzivam TAFE programato a soft ICprog obojo najdes na nete.
Ten programator vyde asi tak na 50 az 100 korun.
No to mi neříkej!!! Programátor jsem sestavil na netu http://www.ezoflash.com a podle mě to fachá dobře (aspoň si to myslím)

Má někdo všeobecnou radu, jak poznám, že ten mikroprocesor funguje???

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#8 Příspěvek od ZdenekHQ »

Např. tak, že tam naprogramuješ jen

mov p1,#0
mov p3,#0

Když zkratuješ resetovací kondík, měly by být na všech portech LOG1. Až zkrat zrušíš, měly by se nastavit do LOG0.

Kdyby byl mrtvej, tak nepůjde ani naprogramovat.
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Uživatelský avatar
Mibeus
Příspěvky: 54
Registrován: 17 črc 2005, 02:00

#9 Příspěvek od Mibeus »

No mrtvi nemusi byt.Ja som sa asi mesiac trapil s ICprogom,kym sa mi podarilo zistit,ze ak verifikujem program v procesore tak ho dosaha a nic nejde.Ten programator mrknem.Vydel som ich uz dost.Tak jeden naviac nezaskodi.Len kde konkretne na tej stranke je.Pripadne hod schemu na sklo.


ZdenekHQ: hej ale nech tam prida aspon jeden volny prikaz.(Ani za svet si nespomeniem ako sa vola myslim ze NOP).

Romaxik

#10 Příspěvek od Romaxik »

Jak tak koukam na to zapojeni, tak bych rekl, ze tam chybi odpor z vyvodu 1-RST na GND, cca 10k. Jinak program musi fungovat

Uživatelský avatar
Fibik
Příspěvky: 23
Registrován: 13 led 2005, 01:00

#11 Příspěvek od Fibik »

ZdenekHQ píše:Např. tak, že tam naprogramuješ jen

mov p1,#0
mov p3,#0

Když zkratuješ resetovací kondík, měly by být na všech portech LOG1. Až zkrat zrušíš, měly by se nastavit do LOG0.

Kdyby byl mrtvej, tak nepůjde ani naprogramovat.
Tak jsem to zkusil a jde to, jak mi tady píšeš. Ale přesto mi nejde to blikání, to asi bude chyba mezi klavesnicí a židlí :cry:

Uživatelský avatar
Mibeus
Příspěvky: 54
Registrován: 17 črc 2005, 02:00

#12 Příspěvek od Mibeus »

Jak vravi moj kolega chyba je v medzikuse.

Nic sa neboj.Bol y v tom cert aby to nefungovalo.
Daj mi tvoj mail a ja ti tam poslem taky maly zazracni program,ktory simuluje velku 51.Je to pod dosom a pracuje to s programom pisanom v assembleri.

\_Honza_/

#13 Příspěvek od \_Honza_/ »

I když o programování x51 nevím vubec nic (dìlám AVR + PIC). Mám podezøení, že bude problém s oscilátorem - špatnì pøipojený nebo poškozený krystal, pøípadnì nevhodnì nastavené konfiguracní bity (jestli vùbec tenhle typ procesoru nìco takového má :-)

Uživatelský avatar
Mibeus
Příspěvky: 54
Registrován: 17 črc 2005, 02:00

#14 Příspěvek od Mibeus »

hmm,s krystalom hadam ani nie,no mozno by bodlo dat tie kondiky 22 az 33 pF.Tych osemnast sa mi zda malo.
A z nastavovanim konfiguracnych bitov je zbytocne si lamat hlavu pri takomto programe.

A aby som nezabudol na reset daj este odpor voci zemi zhruba 1kohm.

Uživatelský avatar
ZdenekHQ
Administrátor
Administrátor
Příspěvky: 25593
Registrován: 21 črc 2006, 02:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#15 Příspěvek od ZdenekHQ »

Ten malej atmel kmitá bez problémů i bez kondenzátorů. A kdyby oscilátor nekmital, tak mu neprojde ten můj test. Tenhle problém nechápu, ale ten můj program v simulátoru funguje bez problémů.
Jinak Bascom neznám, píšu všechno v assembleru a občas je toho 50 stran...
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]

Odpovědět

Zpět na „Řešení problémů s různými konstrukcemi“