Đồ án Đo và khống chế nhiệt độ với cảm biến DS18B20 hiển thị led 7 thanh

Kĩ thuật vi xử lý hiện nay rất phát triển, nó đuợc áp dụng rất nhiều vào các lĩnh vực như tự động hoá, sản suất công nghịêp và còn nhiều lĩnh vực khác nữa. So với kĩ thuật số thì kĩ thuật vi xử lý phát triển hơn rất nhìều do nó được tích hợp lại và lập trình để điều khiển. Với tính ưu việt của vi xử lý thì trong đồ án nhỏ này chúng em chỉ tiến hành dung vi xử lý để đo và khống chế nhiệt độ, đây chỉ là ứng dụng nhỏ của vi điều khiển. Với những kiến thức học được từ thầy cô giáo cộng thêm tài liệu tham khảo tuy có thể hoàn thành đồ án này nhưng không thể tránh khỏi nhiều thiếu sót, chúng em rất mong nhận đuợc sư dạy bảo của thầy cô và ý kiến đóng góp của các bạn. Chúng em chân thành cảm ơn cô giáo Nguyễn Thị Thu Hương đã dạy cho chúng em những kiến thức cơ bản để chúng em có thể hoàn thành đồ án

doc25 trang | Chia sẻ: ngtr9097 | Lượt xem: 3846 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đồ án Đo và khống chế nhiệt độ với cảm biến DS18B20 hiển thị led 7 thanh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI NÓI ĐẦU Kĩ thuật vi xử lý hiện nay rất phát triển, nó đuợc áp dụng rất nhiều vào các lĩnh vực như tự động hoá, sản suất công nghịêp và còn nhiều lĩnh vực khác nữa. So với kĩ thuật số thì kĩ thuật vi xử lý phát triển hơn rất nhìều do nó được tích hợp lại và lập trình để điều khiển. Với tính ưu việt của vi xử lý thì trong đồ án nhỏ này chúng em chỉ tiến hành dung vi xử lý để đo và khống chế nhiệt độ, đây chỉ là ứng dụng nhỏ của vi điều khiển. Với những kiến thức học được từ thầy cô giáo cộng thêm tài liệu tham khảo tuy có thể hoàn thành đồ án này nhưng không thể tránh khỏi nhiều thiếu sót, chúng em rất mong nhận đuợc sư dạy bảo của thầy cô và ý kiến đóng góp của các bạn. Chúng em chân thành cảm ơn cô giáo Nguyễn Thị Thu Hương đã dạy cho chúng em những kiến thức cơ bản để chúng em có thể hoàn thành đồ án. Mục lục Phần 1: Cơ sở lý thuyết 1, Yêu câu cần thực hiện 2 2, Tổng quan về AT89S52 2 3, Cảm biến đo nhiệt độ DS18B20 6 4, IC giải mã SN74LS247N 10 5,IC 6 cổng logic đảo 74HC14N 11 6, Led 7 thanh x4 12 Phần 2: Nội dung và trình tự thiết kế 1, Giải thuật chương trình 12 2, Mô phỏng với proteus 20 3, Vẽ mạch 20 4, Làm mạch thực tế 22 Phần 3: Kết luận ĐỀ TÀI : Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng led 7 đoạn Phần 1: Cơ Sở Lý Thuyết 1, Yêu cầu cần thực hiện Thiết kế bộ đo và khống chế nhiệt độ hiển thị bằng led 7 thanh -Mạch điện tử được thiết kế trên máy tính bằng phần mềm chuyên dụng. -Nhiệt độ do được hiển thị trên 4 led 7 đoạn. -Sai số cho phép : +-1oC. -Thao tác khống chế được mô phỏng bằng 3 led: Led đỏ ssng khi nhiệt dộ đo được nhỏ hơn nhiệt độ khống chế. Led xanh sang khi nhiệt độ môi trường bằng nhiệt độ khống chế, led vàng sang khi nhiệt độ môi trường bằng nhiêt độ khống chế. 2, Tổng quan về AT89S52 a, Cấu tạo và chức năng các khối của AT89S52. • CPU( CPU centralprocessing unit) bao gồm: + Thanh ghi tích lũy A; + Thanh ghi tích lũy phụ B; + Đơn vị logic học (ALU); + Thanh ghi từ trạng thái chương trình; + Bốn băng thanh ghi; + Con trỏ ngăn xếp • Bộ nhớ chương trình( ROM) gồm 8Kbyte Flash. • Bộ nhớ dữ liệu( RAM) gồm 256 byte. • Bộ UART, có chức năng truyền nhận nối tiếp. • 3 bộ Timer/Counter 16 bit thực hiện chức năng định thời và đếm sự kiện. • Khối điều khiển ngắt với 2 nguồn ngắt ngoài và 4 nguồn ngắt trong. • Bộ lập trình( ghi chương trình lên Flash ROM) cho phép người sử dụng có thể nạp các chương trình cho chíp mà không cần các bộ nạp chuyên dụng. • Bộ chia tần số với hệ số chia là 12. • 4 cổng xuất nhập với 32 chân. b, Chức năng các chân của AT89S52  Port 0( P0.0=>P0.7)  Port 0 gồm 8 chân, ngoài chức năng xuất nhập,port 0 còn là bus đa hợp dữ liệu và địa chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi 89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ mạch PIO… Port 1( P1.0=>P1.7) Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác. Port1 có thể xuất nhập theo bit và theo byte. Port 2( P2.0=>P2.7)  Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài. Port 3 (P3.0=>P3.7)  Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau: Bit  Tên  Chức năng   P3.0  RXD  Dữ liệu nhận cho Port nối tiếp   P3.1  TXD  Dữ liệu truyền cho Port nối tiếp   P3.2  INT0  Ngắt bên ngoài 0   P3.3  INT1  Ngắt ngoài 1   P3.4  T0  Ngõ vào của Timer/counter0   P3.5  T1  Ngõ vào của Timer/counter1   P3.6  /WR  Xung ghi bộ nhớ dữ liệu ngoài.   P3.7  /RD  Xung đọc bộ nhớ dữ liệu ngoài.   Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài. Chân ALE.:ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển. Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 7473. Chân /EA. Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài. EA=1 thì thực hiện chương trình trong RAM nội. EA=0 thực hiện ở RAM ngoài. RST( reset) Ngõ vào reset trên chân số 9. khi RST=1 thì bộ vi điều khiển sẽ được khởi động lại thiết lập ban đầu. XTAL1, XTAL2 :2 chân này được nối song song với thạch anh tần số max=33 Mhz. Để tạo dao động cho bộ vi điều khiển. Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển. cấp qua chân 20 và 40. 3, Cảm biến đo nhiệt độDS18B20. DS1820 là một sản phẩm của công ty Dallas (Hoa Kỳ), đây cũng là công ty đóng góp nhiều vào việc cho ra đời bus một dây và các cảm biến một dây. Hình dạng bên ngoài của cảm biến một dây DS1820 được mô tả trên hình 2, trong đó dạng vỏ TO-92 với 3 chân là dạng thường gặp và được dùng trong nhiều ứng dụng, còn dạng vỏ SOIC với 8 chân được dùng để đo nhiệt độ bề mặt, kể cả da người!  Hình 2: Dạng đóng vỏ và bề ngoài của cảm biến DS1820 Các đặc điểm kỹ thuật của cảm biến DS1820 có thể kể ra một cách tóm tắt như sau: Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông. Độ phân giải khi đo nhiệt độ là 9 bit. Dải đo nhiệt độ -55oC đến 125oC, từng bậc 0,5oC, có thể đạt độ chính xác đến 0,1oC bằng việc hiệu chỉnh qua phần mềm. Rất thích hợp với các ứng dụng đo lường đa điểm vì nhiều đầu đo có thể được nối trên một bus, bus này được gọi là bus một dây (1-wire bus) . Không cần thêm linh kiện bên ngoài. Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3,0 V đến 5,5 V một chiều và có thể được cấp thông qua đường dẫn dữ liệu. Dòng tiêu thụ tại chế độ nghỉ cực nhỏ. Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200 ms. Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia laze. Đầu đo nhiệt độ số DS1820 đưa ra số liệu để biểu thị nhiệt độ đo được dưới dạng mã nhị phân 9 bit. Các thông tin được gửi đến và nhận về từ DS1820 trên giao diện 1-wire, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu và một đường làm dây đất là đủ để kết nối vi điều khiển đến điểm đo. Nguồn nuôi cho các thao tác ghi/đọc/chuyển đổi có thể được trích từ đường tín hiệu, không cần có thêm đường dây riêng để cấp điện áp nguồn. Mỗi vi mạch đo nhiệt độ DS1820 có một mã số định danh duy nhất, được khắc bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS1820 có thể cùng kết nối vào một bus 1-wire mà không có sự nhầm lẫn. Đặc điểm này làm cho việc lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau trở nên dễ dàng và với chi phí thấp. Theo chuẩn 1-wire độ dài tối đa cho phép của bus là 300 m. Số lượng các cảm biến nối vào bus không hạn chế. Để nâng cao độ phân giả lên trên 9 bit ta phải tính toán thêm bằng phần mềm dựa trên các số liệu lưu trữ trên các thanh ghi nhiệt độ, COUNT REMAIN và COUNT PER C trong nhóm các thanh ghi nháp (scratchpad). việc tính toán dựa theo phương trình sau:  Khi sử dụng phương trình này cảm biến một dây DS1820 được nâng cấp trở thành một cảm biến nhiệt độ có độ phân giải cao. Bộ nhớ ROM 64–BIT Mỗi cảm biến nhiệt độ DS1820 có một dãy mã 64 bit duy nhất được lưu trữ trong bộ nhớ ROM từ khi sản xuất bằng kỹ thuật laze. Ý nghĩa của 64 bit mã được giải thích trên hình 3:  Hình 3: Nội dung dãy mã 64-bit trên bộ nhớ ROM Như vậy dãy mã được chia ra thành 3 nhóm, trong đó: Tám bit đầu tiên là mã định danh họ một dây, mã của DS1820 là 10h. 48 bit tiếp theo là mã số xuất xưởng duy nhất, nghĩa là mỗi cảm biến DS1820 chỉ có một số mã. Tám bit có ý nghĩa nhất là byte mã kiểm tra CRC (cyclic redundancy check), byte này được tính toán từ 56 bit đầu tiên của dãy mã trên ROM (xem hình 3). Để truy cập lên cảm biến một dây DS1820 ta phải sử dụng hai nhóm lệnh: các lệnh ROM và các lệnh chức năng (function commands) bộ nhớ, các lệnh này có thể được mô tả ngắn gọn như sau: Sau khi thiết bị chủ (thường là một vi điều khiển) phát hiện ra một xung presence pulse, nó có thể xuất ra một lệnh ROM. Có 5 loại lệnh ROM, mỗi lệnh dài 8 bit. Thiết bị chủ phải đưa ra lệnh ROM thích hợp trước khi đưa ra một lệnh chức năng để giao tiếp với cảm biến DS18S20. Lệnh ROM - READ ROM (33h) Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị tớ cùng đáp ứng. - MATCH ROM (55h) Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trung khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây. - SKIP ROM (CCh) Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quả khi trên bú chỉ có một cảm biến. - SEARCH ROM (F0h) Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên tớ đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm. - ALARM SEARCH (ECh) Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến. Lệnh chức năng bộ nhớ Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820. khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có thể được mô tả ngắn gọn như sau: - WRITE SCRATCHPAD (4Eh) Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện. - READ SCRATCHPAD (BEh) Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhấy của byte 0 và tiếp tục cho đến byte rhứ 9 (byte 8 - CRC). Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc. - COPYSCRATCHPAD (48h) Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM. Nếu cảm biến được sử dụng trong chế dộ cấp nguồn l bắt đầu việc đo. - CONVERT T (44h) Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0. - READ POWER SUPPLY (B4h) Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng. Đến đây ta có thể thấy là việc sử dụng các lệnh vừa trình bày là một công việc không đơn giản. 4. IC giải mã 74ls247  Đây là ic hoạt động ở mức tích cực thấp. ta có bảng sau: BCD inputs  Segment output   Display   A  B  C  D  a  b  c  d  e  f  g    0  0  0  0  0  0  0  0  0  0  1  0   0  0  0  1  1  0  0  1  1  1  1  1   0  0  1  0  0  0  1  0  0  1  0  2   0  0  1  1  0  0  0  0  1  1  0  3   0  1  0  0  1  0  0  1  1  1  1  4   0  1  0  1  0  0  1  0  0  1  0  5   0  1  1  0  1  1  0  0  0  0  0  6   0  1  1  1  0  0  0  1  1  1  1  7   1  0  0  0  0  0  0  0  0  0  0  8   1  0  0  1  0  0  0  1  1  0  0  9   5. IC cổng đảo.Đảo mức tín hiệu. Sơ đồ chân:  Trong đó: 1A,2A,3A,4A,5A,6A: dữ liệu vào 1Y,2Y,3Y,4Y,5Y,6Y: dữ liệu ra tương ứng. 6. Led 7 thanh x4.Sơ đồ chân:  Phần 2: Nội dung và trình tự thiết kế. Giải thuật chương trình .  Code chương trình:Biên dịch bằng phần mềm Keil c. #include #include #include unsigned char ou[4]; unsigned int i,j,p; unsigned char ; sbit led_xanh=P1^0; sbit led_vang=P1^1; sbit led_do=P1^2; sbit set=P3^0; sbit up=P3^2; sbit down=P3^3; unsigned int dat; unsigned char tem[9],loop=0,temp=0; sbit alarmflag=P2^1; sbit DQ = P2^1; // ket noi chan du lieu DS1820 bit a; //------Ham tre M ms------------ void DelayMs(unsigned int count) { unsigned int i; while(count) { i = 115; while(i>0) i--; count--; } } //-------tao tre U us-------- void DelayUs(int us) { int i; for (i=0; i<us; i++); } //---------------------------------------- // Reset DS1820 //---------------------------------------- bit ResetDS1820(void) { bit presence; DQ = 0; //keo DQ xuong muc thap DelayUs(29); // tre khoang 490us DQ = 1; // cho phep DQ hoat dong DelayUs(3); // tre 55 uS presence = DQ; // lay tin hieu do duoc DelayUs(25); // cho den khi ket thuc lay tin hieu 316 uS return(presence); // lai tiep tuc lay tin hieu } // 0=presence, 1 = no part //----------------------------------------- // doc 1 bit tu DS1820 //----------------------------------------- bit ReadBit(void) { unsigned char i=0; DQ = 0; // keo DQ xuong muc thap DQ=1; //dua DQ en muc 1 for (i=0; i<3; i++); // tre khoang 17us de bat dau return(DQ); // quay tro ve gia tri cua DQ } //----------------------------------------- // viet 1 bit vao DS1820 //----------------------------------------- void WriteBit(bit Dbit) { unsigned char i=0; DQ=0; DQ = Dbit ? 1:0;//DQ=1 neu DQ=Dbit DelayUs(5); // tre khoang 39 uS DQ = 1; } //----------------------------------------- //Doc 1 byte tu DS1820 //----------------------------------------- unsigned char ReadByte(void) { unsigned char i; unsigned char Din = 0; for (i=0;i<8;i++) { Din|=ReadBit()? 0x01<<i:Din; DelayUs(6); } return(Din); } //----------------------------------------- // Viet 1 byte //----------------------------------------- void WriteByte(unsigned char Dout) { unsigned char i; for (i=0; i<8; i++) { WriteBit((bit)(Dout & 0x1)); // viet tung bit Dout = Dout >> 1; } DelayUs(5); } // cai dat cau hinh cho ds18b20 //----------------------------------------- void Config(unsigned char A_th,A_tl,mode) { ResetDS1820(); WriteByte(0x4e); WriteByte(A_th); WriteByte(A_tl); WriteByte(mode); } //----------------------------------------- //—————————————– // Doc nhiet do //—————————————– void ReadTemp(unsigned char * buff) { unsigned char n; EA=0; // cam cac ngat hoat dong ResetDS1820(); WriteByte(0xcc); // bo qua ROM cua DS18B20 WriteByte(0x44); // THUC HIEN CHUYEN DOI NHIET DO while (ReadByte()==0xff); // doi cho chuyen doi nhiet do hoan chinh ResetDS1820(); //reset DS18b20 WriteByte(0xcc); // bo qua ROm cua DS18B20 WriteByte(0xbe); //Doc ket qua for (n=0; n<9; n++) // Doc 9 bit nhung chi doc tung bit mot { buff[n]=ReadByte(); // Doc DS1820 } EA=1; //Cho phep ngat } //--------------------------------------- void delay(unsigned int loop) { unsigned char x,y; for(x=0;x<loop;x++) { for(y=0;y<33;y++); } } //-----Ham hien thi len led------ void h_thi(unsigned char num) { unsigned char i=0,xoa=0; xoa=(num<100) ? 3:4; //de xoa so 0 dau tien khi nhiet do <100 for(i=1;i<xoa;i++) { ou[i]= num%10; num/=10; } for(i=0;i<xoa;i++) { P0=240&(~(128>>i))|ou[i]; delay(5); P0=255; delay(2); } } //============ham cai dat nhiet do========= void ngat0(void) interrupt 0 {DelayMs(80); dat=dat+1; h_thi(dat); while(!up) DelayMs(20); {} } void ngat2(void) interrupt 2 {DelayMs(100); dat=dat-1; h_thi(dat); while(!down) DelayMs(20); {} } //---------------Ham chinh---------- void main(void) { unsigned int m=0; dat=35; set=1 ; IE=0x85; EA=1 ; ET0=1; ET1=1; IT0=1; IT1=1; do {h_thi(dat);} while(set); while(!set); P0=255; P2=254; P1=0x00; Config(0,0,31); //cai che do 9 bit cho ds18b20 while(1) { unsigned int t; ReadTemp(&tem[0]); temp=(tem[0]>>3)|(tem[1]<<5); ou[0]=(temp&1) ? 5:0; //hien thi phan thap phan temp=temp>>1; //dich sang phai 1 bit for(loop=0;loop<255;loop++) { h_thi(temp); } t=(int) temp; if(t==dat) { led_vang=1; led_xanh=0; led_do=0; } if(t>dat) { led_xanh=1; led_do=0; led_vang=0; } if(t<dat) { led_do=1; led_xanh=0; led_vang=0; } ResetDS1820(); WriteByte(0x44); // thuc hien chuyen sang nhiet do } } Mô phỏng với proteus Vẽ mạch Sơ đồ nguyên lý trên Altium  Sơ đồ mạch in:  4,Thực hiện làm mạch thực tế. Các thành viên trong nhóm tích cực tham gia làm mạch theo phương pháp thủ công phù hợp với sinh viên. Phần 3. Kết luận. Do còn thiếu nhiều kinh nghiệm nên mạch chay thực tế còn chưa ổn định. Mạch đo nhiệt độ chính xác +-0,5oC. Sử dụng cảm biến 1wire DS18b20 với ưu điểm đường dẫn tín hiệu ra và nguồn có thể dung chung trên một dây dẫn và không chỉ chung cho một cảm biến mà nhiều cảm biến có thể dung chung đường dẫn. Do sử dụng chung đường dẫn số liệu và đường cấp điện áp nguồn nên rất thích hợp với các ứng dụng đo lường đa điểm. Ví dụ cần đo nhiệt độ của 20 căn phòng gần nhau,nếu tính trung bình mỗi điểm đo cần 4 đường dây thì ta cần tới 60 dây.trong trường hợp này cảm biến 1wire DS18B20 quả là một biện pháp kĩ thuật. Hướng phát triển của đề tài chính là giải pháp kĩ thuật đó:đo nhiệt độ đa điểm dùng cảm biến 1wire và vđk và với độ chính xác cao hơn.(0,1oC). Tµi liÖu tham kh¶o: TÀI LIỆU THAM KHẢO. Vi điều khiển cấu trúc lập trình và ứng dụng, Kiều Xuân Thực, Vũ Thị Thu Hương, Vũ Trung Kiên. Nguồn internet: