em đang làm bài tập đo nhiệt độ dung 18b20 mà không biết làm thế nào. bác nào có sơ đồ nguyên lý và code C thì cho em tham khảo với ạ.
Thông báo
Collapse
No announcement yet.
8051, 18b20
Collapse
X
-
Nguyên văn bởi banhcay12345 Xem bài viếtem đang làm bài tập đo nhiệt độ dung 18b20 mà không biết làm thế nào. bác nào có sơ đồ nguyên lý và code C thì cho em tham khảo với ạ.
Code C cho bạn, nhưng mình chỉ viết cho 1 con DS18B20 trên BUS, viết nhiều con bạn tham khảo thêm trên datasheet nhé !
#define uint unsigned int
sbit DQ = P2^2;
unsigned char temp1,chucnhiet, dvnhiet;
unsigned int temp;
//----------------------------------------------
//##################DELAY#######################
//----------------------------------------------
void delay1(unsigned char time8us)
{
while(time8us--);
}
//----------------------------------------------
//++++++++++++++DS18B20++++++++++++++++++++++++
//------------------------------------------
void reset_ds18b20()
{
laplai:
DQ=1;
delay1(5);
DQ=0;
delay1(149); /* 300us */
delay1(149); /* 300us */
DQ=1;
delay1(29);/* 60us */
delay1(29);
//if(DQ==1)
//goto INIT;
//delay1(119); /* 240us */
if(DQ==0)
{
delay1(119);
goto laplai;
}
delay1(119);
delay1(119);
}
void write_ds18b20(unsigned char j)
{
unsigned char k;
for(k=0;k<8;k++)
{
DQ=1;
delay1(5);
DQ=0;
DQ=0;
DQ=j&0x01;
delay1(29); /*60us*/
j=j>>1;
}
delay1(4);
}
uint read_ds18b20()
{
unsigned char j,k=0;
for(j=0;j<8;j++)
{
DQ=0;
k=k>>1;
DQ=1; /* male D is input*/
delay1(6);/* 15us*/
if(DQ)
k=k|0x80;
delay1(22); /*45us*/
}
return k;
}
void hieu_chinh()//(uint j)
{
temp<<=8;
temp=temp|temp1;
temp=temp/16;
//tramnhiet=temp/100;
chucnhiet=(temp%100)/10;
dvnhiet=temp%10;
}
void xulynhiet_do()
{
reset_ds18b20(); //reset DS18b20 de bat dau qua trinh nhan lay nhiet do tu DS18B20
write_ds18b20(0xcc); //- SKIP ROM (CCh) : Lenh này cho phép thiet bi dieu khien truy nhap thang den các lenh bo nho cua DS1820 mà không can gui chuoi mă 64 bit ROM. Nhu vay se tiet kiem duoc thoi gian cho doi nhung chi mang hieu qua khi trên bus chi có mot cam bien.
write_ds18b20(0x44); //- CONVERT T (44h) : Lenh này khoi dong mot quá tŕnh do và chuyen doi giá tri nhiet do thành so (nhi phân). Sau khi chuyen doi giá tri ket qua do nhiet do duoc luu tru trên thanh ghi nhiet do 2 byte trong bo nho nháp Thoi gian chuyen doi không quá 200 ms, trong thoi gian dang chuyen doi neu thuc hien lenh doc th́ các giá tri doc ra deu bang 0.
reset_ds18b20(); //reset DS18b20
write_ds18b20(0xcc); //- CONVERT T (44h)
write_ds18b20(0xbe); //- READ SCRATCHPAD (BEh) : Lenh này cho phép thiet bi chu doc noi dung bo nho nháp. Quá tŕnh doc bat dau tu bit có ư nghia nhat cua byte 0 và tiep tuc cho den byte thu 9 (byte 8 - CRC). Thiet bi chu có the xuat ra mot xung reset de làm dung quá tŕnh doc bat ky lúc nào neu nhu chi có mot phan cua du lieu trên bo nho nháp can duoc doc.
temp1=read_ds18b20();
temp=read_ds18b20();
hieu_chinh();
}Last edited by tramng; 21-02-2014, 18:43.
-
thank bạn. để mình thử.bây h mình muốn hiển thị nhiệt độ lên led 7 thanh thì làm thế nào hả bạn.Nguyên văn bởi tramng Xem bài viếtSơ đồ nguyên lý cho bạn : [ATTACH]82904[/ATTACH]
Code C cho bạn, nhưng mình chỉ viết cho 1 con DS18B20 trên BUS, viết nhiều con bạn tham khảo thêm trên datasheet nhé !Last edited by banhcay12345; 24-02-2014, 12:05.
Comment
-
Nguyên văn bởi banhcay12345 Xem bài viếtthank bạn. để mình thử.bây h mình muốn hiển thị nhiệt độ lên led 7 thanh thì làm thế nào hả bạn.
Comment
Bài viết mới nhất
Collapse
-
bởi heidi123Phòng Họp Thông Minh: Cuộc cách mạng khoa học Cho Mọi doanh nghiệp
Trong kỷ nguyên số hóa, phòng họp thông minh không còn là điều viển vông. Hãy nghĩ đến 1 không gian họp nơi mọi thứ – trong khoảng âm thanh, ánh sáng đến kỹ thuật – hoạt động...-
Channel: Công nghệ internet và mạng có dây
hôm nay, 00:42 -
-
bởi thanghiCùng với sự bùng nổ của công nghệ và xu hướng chuyển đổi số, ngành điện tử đang trở thành một trong những lĩnh vực thu hút nhiều doanh nhân và nhà đầu tư. Việc thành lập công ty trong ngành này không chỉ giúi hạn ở việc sản xuất phần cứng mà còn mở rộng sang các dịch vụ...
-
Channel: Xu hướng, nhu cầu và thị trường
Hôm qua, 21:02 -
-
Trả lời cho Hỏi cách điều chế xungbởi thetungBạn cho qua cái Tờ ri gơ Sờ mít ấy ......
-
Channel: Kỹ thuật điện tử tương tự
16-12-2024, 11:26 -
-
Trả lời cho Hỏi cách điều chế xungbởi nguyendinhvanCó gì mà khó ?
Răn cưa vuông đây
...-
Channel: Kỹ thuật điện tử tương tự
15-12-2024, 23:36 -
-
Trả lời cho hỏi về tụ điệnbởi ndp62Chữ " VENT" không phải là tên hãng sx tụ đâu ,vó thế là 1 ký hiệu liên quan tụ lowesr ?
-
Channel: Điện thanh
15-12-2024, 18:24 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi bqvietTrừ trường hợp công suất (rất) thấp, hầu như tất cả các loại nguồn xung thông thường đều có tụ nhỏ 1 - 10nF nối giữa sơ cấp và thứ cấp, để thoát nhiễu và để chống hiện tượng tương tự tĩnh điện. Vụ này đã thảo luận vài...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 22:02 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi namlangnhoE thử 3 cái nguồn nó đều giống nhau. Nên e làm tiếp địa luôn.
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 19:58 -
-
Trả lời cho Thắc mắc về nguồn tổ ong 12vbởi mèomướpDạ chú sắm con át chống giật và thay nguồn tổ ong khác cho an toàn ạ. Đa phần nguồn xung đều xả nhiễu của bên thứ cấp về điện lưới qua 1 con tụ nên cảm giác tê sẽ khó xác định rõ ràng là do rò điện hay là nó vốn vậy...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 18:51 -
-
bởi namlangnhoXin chào mọi người. E có sử dụng 1 cục nguồn tổ ong 12v-30A chạy đèn led xe trà sữa. Mà thợ thi công bị rò điện nên điện rò ra khung xe. E dùng đồng hồ đo điện ở khung xe và cả output thì thấy có dòng điện xoay chiều hơn 100v. Nên chạm...
-
Channel: Điện tử dành cho người mới bắt đầu
14-12-2024, 00:12 -
-
bởi Manh.n.trCác bác cho em hỏi cách điều chế xung răng cưa sang xung vuông với ạ. Em đang thấy khó ạ...
-
Channel: Kỹ thuật điện tử tương tự
13-12-2024, 20:46 -
Comment