forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
DS18B20 + AT2051

 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052
 
Jirka
Nováček
Nováček


Založen: 4.12.2007
Příspěvky: 4

PříspěvekZaslal: 05 prosinec 2007, 10:53    Předmět: DS18B20 + AT2051 Citovat

Dobry den. Chtel bych se zeptat. Mam problem s cidlem ds18b20 pripojenym k AT2051 24mHz a nevim si s nim uz rady. V programu se snazim precist obsah pameti cidla a poslat na seriovy port. Problem je ze mi stale chodi jen 4A 26 HEX Kdyz chci identifikacni cislo cidla tak mi to vypise 00 01 4A 26 HEX prvni 4 bajty dalsi nesnimam. Uz jsem v koncich,stravil jsem nad tim pres 20 hodin studovanim casovani a dvakrat jsem prepsal cely program.Mam tolik ruznych verzi ze uz ani nevim co jsem kde udelal za zmeny. Vypis posledni verze programu.Omluvte chaos v programu,teprve zacinam.Nevladnu anglictinou ,vychazel jsem pouze z informaci na HW.cz a http://sweb.cz/ok2jnj/ds18b20.htm bohuzel ani kombinaci informaci z techto dvou stranek nevedlo k zadnemu vysledku.
Nektere casti programu jsou jeste pozustatek po zmenach v prubehu odladovani tak se nedeste. Budu vdecny za jakoukoli radu Jirka.
$modxx51
;krystal 24MHz
ds1820 bit p1.7
org 00h
jmp start

start:
mov th1,#243
mov tmod,#00100000b
mov scon,#01010000b
setb ea ;globalni preruseni
setb es ;preruseni od UARTu
setb tr1 ;spusteni casovace UARTu
mov pcon,#10000000b ;dvojnasobna rychlost

setb ds1820
acall init ;resetovaci impulz 500us
;testovani zarizeni na sbernici-pokud odpovi tak pokracujeme zapisem
mov r1,#15 ;ceka 15us
ceka:
djnz r1,ceka
testovani:
mov c,p1.7
jc testovani ;pokud se obevi nula pokracuje na dalsim radku

;setb ds1820
;mov a,#0
;acall serial

;prodleva od resetu 500us
acall t100us
acall t100us
acall t100us
acall t100us
acall t100us
;Vysilani
;rekalibrace
;mov a,#b8h
;acall vysilani
;nop
mov a,#0cch ;inicializace zarizeni
acall vysilani
nop
mov a,#044h ;spusti prevod teploty
;mov a,#0b8h ;rekalibrace
acall vysilani
acall t200ms ;ceka 200ms
acall t200ms ;ceka 200ms
acall t200ms ;ceka 200ms
acall t200ms ;ceka 200ms
acall init
;prodleva od resetu 500us
acall t100us
acall t100us
acall t100us
acall t100us
acall t100us
mov a,#0cch ;inicializace zarizeni
acall vysilani
;mov a,#033h
;acall vysilani
nop
mov a,#0beh ;čtení hodnot
acall vysilani
nop
acall cteni
mov r7,a
acall cteni
mov r6,a
;acall cteni
;mov r5,a
;acall cteni
;acall serial
;mov a,r5
;acall serial
mov a,r6
acall serial
mov a,r7
acall serial


jmp $


init: ;resetovaci pulz 500us
push psw
clr ds1820 ;nastaveni 0 na sbernici
mov r0,#5 ;casova prodleva 500us
t500uss:
mov r1,#100 ;100us
cas0:
djnz r1,cas0
djnz r0,t500uss
setb ds1820 ;log 1 na sbernici
acall t100us
pop psw
ret

vysilani:
mov r4,#8
rotace:
setb ds1820
nop
nop
nop
rrc a
jc log0
;pokud je log.1
clr ds1820 ;zarizeni stahne sbernici k nule a nejpozdeji do 15us ji opet uvolni
mov r1,#15 ;ceka 15us
cas1:
djnz r1,cas1
setb ds1820 ;uvolneni sbernice ,do 15us by zarizeni melo zacit vzorkovat (delka time slotu je 60 - 120us)
mov r1,#45 ;45us
cas2:
djnz r1,cas2
djnz r4,rotace
ret
log0:
;pokud je log.0
;zapis 0 je jednodussi .stahne sbernici k nule alespon na 60 us,coz je delka time slotu,vzorkovat zarizeni zacne zhruba po 30us
clr ds1820
mov r1,#60 ;ceka 60us
cas3:
djnz r1,cas3
setb ds1820
mov r1,#10 ;ceka 10us
cas4:
djnz r1,cas4
djnz r4,rotace
ret

cteni:
;cteni dat ze zbernice
clr a
mov r3,#8 ;pocet bitu
cteniopak:
setb ds1820
nop
nop
nop
clr ds1820
mov r1,#6 ;ceka 6us
cas5:
djnz r1,cas5
setb ds1820
mov r1,#9 ;ceka 9us
cas6:
djnz r1,cas6
mov c,ds1820
rrc a
mov r1,#55 ;ceka 55us
cas7:
djnz r1,cas7
djnz r3,cteniopak
ret

serial:
mov sbuf,a
jnb ti,$
clr ti
ret

t100us:
mov r1,#100
cas8:
djnz r1,cas8
ret

t200ms:
mov r2,#200
cas9:
acall t100us
djnz r2,cas9
ret
end
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Jirka
Nováček
Nováček


Založen: 4.12.2007
Příspěvky: 4

PříspěvekZaslal: 07 prosinec 2007, 22:08    Předmět: Citovat

Vyreseno,prosim o smazani Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 08 prosinec 2007, 1:08    Předmět: Citovat

Není nutné mazat (pokud to z nějakého důvodu opravdu nepotřebuješ)...

V čem byl problém?

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Jirka
Nováček
Nováček


Založen: 4.12.2007
Příspěvky: 4

PříspěvekZaslal: 10 prosinec 2007, 22:22    Předmět: Citovat

Hlavni problem byl v instrukci JC pro testovani nuly pri vysilani kodu. Melo tam byt JNC = otestuj nulu a skoc na log0.Takhle to skakalo presne naopak a misto vysilane nuly byla vysilana jednicka.
Pak tam byly jeste nejake drobnosti s casovanim.
Spis bych sem dal uz odladenej funkcni zdrojak i s dekodovanim teploty,to si myslim ze by pomohlo vic jak hledat chyby v tom mem starem Smile
Nejhorsi je ze kdyz nad tim clovek stravi pres 20 hodin hledanim chyby tak si jednoho chybejiciho pismenka nevsimne.Musel jsem si dat den pauzu a pak me to trklo hned zezacatku Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
administrator
hlavní administrátor
hlavní administrátor


Založen: 2.1.2006
Příspěvky: 758
Bydliště: Ostrava

PříspěvekZaslal: 10 prosinec 2007, 22:52    Předmět: Citovat

Jirka napsal:
... Musel jsem si dat den pauzu a pak me to trklo hned zezacatku Smile


To je naprosto nejlepší způsob - pamatuji si, jak jsem se snažil dva dny rozchodit sériovou komunikaci mezi několika mikrokontroléry. Dal jsem si den pauzu a nakonec jsem čtvrtý den zjistil, že mám špatné (nevyhlazené) napájecí napětí. Vložil jsem do obvodu kondenzátor a najednou to fungovalo Very Happy.

_________________
Rudolf Veselý
Administrátor webu http://www.mcontrollers.com/ a fóra http://forum.mcontrollers.com/.
Pravidla fóra mcontrollers.com.

You can do everything in assembler, but no one wants to program in assembler anymore.
... Yukihiro Matsumoto

Rudolf Vesely on LinkedIn
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
matejko
Anonymní





PříspěvekZaslal: 15 duben 2008, 16:25    Předmět: AT2051 Citovat

Zdravim. ja som zaciatocnik v tejto oblasti. Chcem sa opytat kde najdem c o najviac o mikrokontrolery AT2051...?? odpoved na frenky3001 (zavináč) azet.sk

Arrow administrator: příspěvek byl upraven
(upravil jsem zápis emailu - ochrana před SPAMem)
Návrat nahoru
 

 
piityy
Profesionál
Profesionál


Založen: 1.4.2008
Příspěvky: 2139

PříspěvekZaslal: 15 duben 2008, 16:56    Předmět: Citovat

Nejspis na strankach vyrobce Wink Pokud mas na mysli AT89C2051, tak je to http://www.atmel.com
datasheet: http://www.atmel.com/dyn/products/product_card.asp?part_id=1938

Pokud znas obecne x51, znas i tenhle procesor s tim rozdilem, ze ma pouze brany P1 a P3 (s tim souvisi i nemoznost pripojeni externich RAM/ROM), a pin P3.6 neni vyveden na pouzdru, ale je interne pripojen na vystup komparatoru umisteneho na P1.0 a P1.1

Vnitrni struktura je stejna...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> 8051 / 8052 Časy uváděny v GMT + 2 hodiny
 
Strana 1 z 1
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)