3
Bài 10: Giao tiếp với DS18B20 XIN CHÀO CÁC BẠN! Trong bài viết này tôi xin trình bày bài toán đo và hiển thị giá trị nhiệt độ lên LCD1602 sử dụng DS18b20. I. CẤU TẠO VÀ NHỮNG ĐẶC TÍNH KỸ THUẬT CỦA DS18B20. 1.CẤU TẠO. Cảm biến đo nhiệt độ DS18b20 sử dụng chuẩn giao tiếp 1 WIRE (đường dẫn tín hiệu và đường dẫn điện áp nguồn nuôi có thể dùng chung trên một dây dẫn). Ngoài ra, nhiều cảm biến có thể dùng chung trên một đường dẫn (Rất thích hợp với các ứng dụng đo lường đa điểm). Cảm biến DS18b20 thường dùng gồm có 3 chân: VCC, GND, DATA như hình dưới: Sơ đồ kết nối: 2.ĐẶC TÍNH KỸ THUẬT.

Bài 10-Giao Tiếp Với DS18B20

Embed Size (px)

DESCRIPTION

gft

Citation preview

Bi 10: Giao tip vi DS18B20XIN CHO CC BN!Trong bi vit ny ti xin trnh by bi ton o v hin th gi tr nhit ln LCD1602 s dng DS18b20.I.CU TO V NHNG C TNH K THUT CA DS18B20.1.CU TO.Cm bin o nhit DS18b20 s dng chun giao tip 1 WIRE (ng dn tn hiu v ng dn in p ngun nui c th dng chung trn mt dy dn). Ngoi ra, nhiu cm bin c th dng chung trn mt ng dn (Rt thch hp vi cc ng dng o lng a im).Cm bin DS18b20 thng dng gm c 3 chn: VCC, GND, DATA nh hnh di:S kt ni:

2.C TNH K THUT.Cc c im k thut ca cm bin DS1820 c th k ra mt cch tm tt nh sau: phn gii khi o nhit l 9 bit . Di o nhit -55oC n 125oC, tng bc 0,5oC, c th t chnh xc n 0,1oC bng vic hiu chnh qua phn mm (C th t n cc phn gii 10 bit, 11 bit, 12 bit).in p ngun nui c th thay i trong khong rng (t 3,0 V n 5,5 V).Dng tiu th ti ch ngh cc nh.Thi gian ly mu v bin i thnh s tng i nhanh, khng qu 200 ms.Mi cm bin c mt m nh danh duy nht 64 bit cha trong b nh ROM trn chip (on chip).

II.LP TRNH O NHIT VI VI IU KHIN 89S52.Khi x l DS18b20, cc bn cn ch ti 2 nhm lnh (C th c th xem datasheet DS18b20):Lnhtruy cp ROMLnhchc nng b nh.Trong bi tp ny, x l c nhit o c t DS18b20 cc bn cn quan tm hm:-float ds18b20_readtemp(void):y l hm gip cc bn tnh ton v tr v gi tr nhit m DS18b2 o c.HTML:float ds18b20_readtemp(void){ float temp; unsigned char a,b; DS18B20_Init(); // Khoi tao DS18b20 ds18b20_writebyte(0xCC) ; // Cho phep VDK truy cap thang den cac lenh bo nho cua DS18b20 ds18b20_writebyte(0x44) ; // Khoi dong qua trinh do va chuyen doi nhiet do ra so nhi phan DS18B20_Init() ; ds18b20_writebyte(0xCC) ; ds18b20_writebyte(0xBE) ; // Cho phep doc du lieu tu bo nho DS18b20 ra ngoai a = ds18b20_readbyte(); temp=((float)(a&0x0f))/16; // Lay phan thuc cua gia tri nhiet do b = ds18b20_readbyte(); a =((a&0xf0)>>4)|((b&0x0f)