You are on page 1of 12

HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 1



GIAO TIP VI DS18B20 DNG PIC16F887
Xin cho tt c cc bn, hm nay ti s chia s vi cc bn cch thc o nhit dng
cm bin nhit DS18B20 hin th ln LCD16x02. Cm bin ny tr v gi tr nhit theo
dng s, c ngha l chng ta khng cn phi chuyn i ADC nh con cm bin LM35 m ch
cn c gi tr m DS18B20 tr v ri xut ra LCD l xong. c c gi tr nhit m cm
bin tr v, chng ta dng vi iu khin (vk) giao tip vi cm bin theo chun 1-dy (one-
wire).
ti ny khng cn g l mi m c. Trc y, khi ti mi bt u giao tip vi con
DS18B20 ny cng gp khng t kh khn, code trn mng kh nhiu nhng u vit bng CCS
nn thc ra ti c cng khng hiu lm. B qu ti nh c datasheet, v vn ting anh hn hp
nn va c va tra t thnh ra hi vt v.
I. u tin, ti xin ni v cm bin DS18B20.
1.1. Vi li v DS18B20
Theo nh ngun tin chnh xc nht l datasheet ca nh sn xut th trn mi con
DS18B20 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. V th cc bn c th dng nhiu con cm bin o nhit
nhiu ni v ch cn mt con vk c nhit tng con l c. i vi bi ny ti ch
dng 1 con cm bin nn cng khng cn quan tm n m a ch lm g. Thm mt s thng
tin t datasheet cc bn tham kho:
S dng giao din mt dy nn ch cn c mt chn ra truyn thng.
C th o nhit trong khong -55 +125
o
C.Vi khong nhit l -10C +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.
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.
Cm bin DS18b20 thng c s dng gm c 3 chn: VCC, GND, DATA nh hnh di:
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 2


Trong :
Vdd l chn cp ngun t 3 5.5 VDC, thng thng l 5 VDC cng ngun vi vk.
GND l chn ni mass 0 VDC
DQ l chn tn hiu, chn ny ni vi vk giao tip.
N.C l chn not connect c ngha l khng kt ni, trng.
1.2. Cch kt ni DS18B20 vi vk
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 3

cho cm bin c th lm vic th chng ta cn kt ni nh sau, theo nh sn xut th
c 3 cch kt ni, cc bn xem hnh:
Cch 1: cch ny t dng

Cch 2: cch ny hay dng nht.

Cch 3: cch ny cng t dng

1.3. Cc tp lnh ca DS18B20
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 4

- 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 bus 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
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 5

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.
i vi bi ny, chng ta ch cn quan tm n hai lnh l: read v write.
II. By gi l Vi iu Khin
i vi vk, cc bn c th dng hng no, con no cng c. y ti dng con PIC16f887
ca MICROCHIP. Phn mm vit code l MPLAB-IDE v trnh bin dch l Hi-Tech C.
Nh vy l phn cng xong, by gi ch cn vit code l c.
III. Cui cng l phn vit code
Code giao tip vi DS18B20 cng khng kh lm, cc bn chu kh theo gii.
3.1. Khi to DS18B20
y l s m nh sn xut ch cho chng ta bit cch reset v khi to DS18B20, n c y
trong datasheet.
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 6


Theo , reset v khi to DS18B20 chng ta cn: khi to chn DQ (l mt chn I/O bt k
ca vk, chn ny c ni vi chn DQ ca DS18B20. V d y ti dng chn RA4) l ng
ra, sau set chn ny mc 0 t nht l 480s, sau khi to chn DQ l ng vo ri delay
mt khong t nht l 480s.
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 7


Cc bn xem code:
void onewire_reset()
{
TDQ=0; // khi to chn DQ l ng ra
DQ =0; //set DQ l mc 0
__delay_us(500); //ch t nht l 480s
TDQ=1;DQ=1; // khi to chn DQ l ng vo
__delay_us(500); //ch t nht l 480s
}
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 8

3.2. Vit lnh xung DS18B20
gi lnh xung DS18B20 ta xem s sau:


Nh vy, ghi mc 0 th ch cn cho chn DQ ca vk xung mc 0 t nht l 60s v ln
nht l 120s. Cn ghi mc 1 th 1s <T
REC
<. T
REC
l thi gian ghi. Vy thi gian ghi l
v cng nn chng ta ly chung thi gian cho hai mc logic l 60 120s.
y l code:
void write_byte(unsigned char data)
{
unsigned char i=0; //khai bo bin i cho vng lp for
for (i=8; i>0; i--) //dng vng lp for vit 8bit xung DS18B20
{
TDQ=0; //DQ l ng ra
DQ =0; //set DQ l mc 0
DQ =(data&0x01); //so snh d liu vit 0 hoc 1 xung DS18B20
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 9

__delay_us(60); //ch mt khong thi gian DS18B20 ghi mc logic
DQ =1; // set DQ l mc 1
data>>=1; //chuyn qua bit k tip
} //lp 8 ln th chng ta ghi c 8bit
}
3.3. c gi tr nhit t DS18B20
c gi tr cng ging nh ghi, cc bn xem hnh:

Cc bn xem code lun
int read_byte()
{
unsigned char i=0;
unsigned char data =0;
for (i=8;i>0;i--)
{
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 10

TDQ=0;
DQ =0;
data>>=1;
DQ =1;
TDQ=1;DQ=1; //DQ l ng vo
if(DQ)
data|=0x80;
__delay_us(120);
}
return(data); //tr v gi tr data
}
Nh vy l xong nhng hm c bn giao tip vi DS18B20. By gi chng ta hy tp hp
chng li to thnh mt hm va khi to, ghi, c v tnh kt qu lun. Cc bn xem code:
float ds18b20_read()
{
unsigned char busy=0, temp1, temp2;
int temp3;
float result;
onewire_reset();
write_byte(0xCC); //Skip ROM, address all devices
write_byte(0x44); //Start temperature conversion
__delay_us(200);
onewire_reset();
write_byte(0xCC); //Skip ROM, address all devices
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 11

write_byte(0xBE); //Read scratchpad
temp1 =read_byte();
temp2 =read_byte();
temp3 =(temp2*256+temp1);
result =(float) temp3 / 16.0; //Calculation for DS18B20 with 0.1 deg C resolution
__delay_ms(200); // ??????
return(result);
}
Nhng cu lnh nh:
Write_byte(0xCC); cc bn quay ngc ln trn, mc 1.3. Cc tp lnh ca DS18B20 xem
0xCC l lnh g nha.
Nh vy l xong, ch cn vit thm hm main cho vk lm vic. y l hm main:
void main()
{
lcd_init();
// lcd_gotoxy(0,0);
printf("\fHOANG KHANH THAN");
__delay_ms(1000);
lcd_gotoxy(0,1);
printf(" DH-SPKT");
__delay_ms(2500);
// lcd_gotoxy(0,0);
printf("\f");
float temperature;
HONG KHNH THN

I HC S PHM K THUT TP-HCM Page 12

while(1)
{
temperature=ds18b20_read();
lcd_gotoxy(0,0);
printf("NHIET DO: %3.2f",temperature);
}
}
V phn hin th ln LCD cc bn t tham kho hoc ti source code ti:
http://www.mediafire.com/?bjjiq3886bybqr0
Nh vy l kt thc phin giao dch vi DS18B20 mt cch thnh cng tt p. Chc cc bn
thnh cng.
Mi kin ng gp hay thc mc cc bn hy gi vo email: khanhthan.hoang@gmail.com
thn i!

You might also like