You are on page 1of 6

Cc c im k thut ca cm bin DS18B20 c th k ra mt cch tm tt nh sau:

S dng giao din mt dy nn ch cn c mt chn ra truyn thng.


C th o nhit trong khong -55 -> +125 oC.Vi khong nhit l -10C to
+85C th chnh xc 0.5C.C chc nng cnh bo nhit vc qua gi tr cho
trc.
in p s dng : 3 5.5 V,c th cu hnh m ha nhiu t 9 12 bit s bit cng
ln th chnh xc cao hn.Thi gian chuyn i nhit ti a l 750ms cho m ha
12 bit
Dng tiu th ti ch ngh cc nh.
Mi cm bin c mt m nh danh duy nht 64 bit cha trong b nh ROM trn chip
(on chip), gi tr nh phn c khc bng tia laze.
Nu cu hnh cho DS18B20 theo 9,10,11,12 bit th ta c chnh xc tng ng l :
0.5C , 0.25C ,0.125C, 0.0625C.Theo mc nh ca nh sn xut nu chng ta khng
cu hnh ch chuyn i th n s t cu hnh l 12 bit.
Khi bt u chuyn i nhit th chn DQ s c ko xung mc thp v khi chuyn
i xong th mc cao.Nh vy ta s cn c vo hin tng ny xc nh khi no
chuyn i xong nhit .

II.Cc tp lnh ca ds18b20


- READ ROM (33h)
Cho php c ra 8 byte m khc bng laser trn ROM, bao gm: 8 bit m nh tn linh
kin (10h), 48 bit s xut xng, 8 bit kim tra CRC. Lnh ny ch dng khi trn bus c 1
cm bin DS1820, nu khng s xy ra xung t trn bus do tt c cc thit b t cng
p ng.
- MATCH ROM (55h)
Lnh ny c gi i cng vi 64 bit ROM tip theo, cho php b iu khin bus chn ra
ch mt cm bin DS1820 c th khi trn bus c nhiu cm bin DS1820 cng ni vo.
Ch c DS1820 no c 64 bit trn ROM trung khp vi chui 64 bit va c gi ti mi
p ng li cc lnh v b nh tip theo. Cn cc cm bin DS1820 c 64 bit ROM
khng trng khp s tip tc ch mt xung reset. Lnh ny c s dng c trong trng
hp c mt cm bin mt dy, c trong trng hp c nhiu cm bin mt dy.
- SKIP ROM (CCh)
Lnh ny cho php thit b iu khin truy nhp thng n cc lnh b nh ca DS1820
m khng cn gi chui m 64 bit ROM. Nh vy s tit kim c thi gian ch i
nhng ch mang hiu qu khi trn b ch c mt cm bin.
- SEARCH ROM (F0h)
Lnh ny cho php b iu khin bus c th d tm c s lng thnh vin t ang
c u vo bus v cc gi tr c th trong 64 bit ROM ca chng bng mt chu trnh d
tm.
- ALARM SEARCH (ECh)
Tin trnh ca lnh ny ging ht nh lnh Search ROM, nhng cm bin DS1820 ch
p ng lnh ny khi xut hin iu kin cnh bo trong php o nhit cui cng.
iu kin cnh bo y c nh ngha l gi tr nhit o c ln hn gi tr TH
v nh hn gi tr TL l hai gi tr nhit cao nht v nhit thp nht c t
trn thanh ghi trong b nh ca cm bin.
Sau khi thit b ch (thng l mt vi iu khin) s dng cc lnh ROM nh a ch
cho cc cm bin mt dy ang c u vo bus, thit b ch s a ra cc lnh chc
nng DS1820. Bng cc lnh chc nng thit b ch c th c ra v ghi vo b nh nhp
(scratchpath) ca cm bin DS1820. khi to qu trnh chuyn i gi tr nhit o
c v xc nh ch cung cp in p ngun. Cc lnh chc nng c th c m t
ngn gn nh sau:

- WRITE SCRATCHPAD (4Eh)


Lnh ny cho php ghi 2 byte d liu vo b nh nhp ca DS1820. Byte u tin c
ghi vo thanh ghi TH (byte 2 ca b nh nhp) cn byte th hai c ghi vo thanh ghi
TL (byte 3 ca b nh nhp). D liu truyn theo trnh t u tin l bit c ngha nht
v k tip l nhng bit c ngha gim dn. C hai byte ny phi c ghi trc khi thit
b ch xut ra mt xung reset hoc khi c d liu khc xut hin.
- READ SCRATCHPAD (BEh)
Lnh ny cho php thit b ch c ni dung b nh nhp. Qu trnh c bt u t bit c
ngha nhy ca byte 0 v tip tc cho n byte rh 9 (byte 8 CRC). Thit b ch c
th xut ra mt xung reset lm dng qu trnh c bt k lc no nu nh ch c mt
phn ca d liu trn b nh nhp cn c c.
- COPYSCRATCHPAD (48h)
Lnh ny copy ni dung ca hai thanh ghi TH v TL (byte 2 v byte 3) vo b nh
EEPROM. Nu cm bin c s dng trong ch d cp ngun l bt u vic o.
- CONVERT T (44h)
Lnh ny khi ng mt qu trnh o v chuyn i gi tr nhit thnh s (nh phn).
Sau khi chuyn i gi tr kt qu o nhit c lu tr trn thanh ghi nhit 2 byte
trong b nh nhp Thi gian chuyn i khng qu 200 ms, trong thi gian ang chuyn
i nu thc hin lnh c th cc gi tr c ra u bng 0.

- READ POWER SUPPLY (B4h)


Mt lnh c tip sau lnh ny s cho bit DS1820 ang s dng ch cp ngun nh
th no, gi tr c c bng 0 nu cp ngun bng chnh ng dn d liu v bng 1
nu cp ngun qua mt ng dn ring.

Code c DS18b20
void Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1;
delay_18B20(8);
DQ = 0;
delay_18B20(80);
DQ = 1;
delay_18B20(14);
x=DQ;
delay_18B20(20);
}
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i)
{
DQ = 0;
dat>>=1;

DQ = 1;
if(DQ)
dat|=080;
delay_18B20(4);
}
return(dat);
}
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i)
{
DQ = 0;
DQ = dat&001;
delay_18B20(5);
DQ = 1;
dat>>=1;
}
}
void ReadTemp(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned char t=0;
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(044);
delay_18B20(100);
Init_DS18B20();
WriteOneChar(0xCC);
WriteOneChar(0xBE);
delay_18B20(100);
a=ReadOneChar();
b=ReadOneChar();
nhiet_thuc=b<<4;
nhiet_thuc+=(a&0xf0)>>4;

You might also like