Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
1,27 MB
File đính kèm
mach va code.rar
(1 MB)
Nội dung
Báo cáo môn vi điều khiển sử dụng cảm biến ds1820 đo nhiệt độ môi trường, Gửi vi điều khiển xử lý hiển thị lên hình lcd GVHD: Đoàn Thế Thảo Danh sách nhóm Nội dung Lý thuyết • Cảm biến DS18B20 • LCD 1602 • Vi điều khiển PIC16F877A Cảm biến nhiệt độ ds18B20 Phiên chống nước, chống ẩm Cảm biến nhiệt độ ds18B20 Tổng quan: • DS18B20 IC cảm biến nhiệt độ • Chỉ bao gồm chân • Đóng gói dạng TO-92 Cảm biến nhiệt độ ds18B20 • • Điện áp sử dụng: • Dòng tiêu thụ chế độ nghỉ nhỏ Đặc điểm DS18B20 sau: Cảm biến nhiệt độ ds18B20 Đặc điểm DS18B20 sau: • Lấy nhiệt độ theo giao thức dây (1wire) • Cung cấp nhiệt độ với độ phân giải config 9,10,11,12 bit • Thời gian chuyển đổi nhiệt độ tối đa 750ms cho mã hóa 12 bit (tùy theo sử dụng) Trong trường hợp không config tự động chế độ 12 bit Cảm biến nhiệt độ ds18B20 Đặc điểm DS18B20 sau: • Có thể đo nhiệt độ khoảng đến • • Với khoảng nhiệt độ đến độ xác , , , theo số bit config tương ứng bit, bit, 10 bit 12 bit Mặc định 12 bit • Có chức cảnh báo nhiệt nhiệt độ vượt ngưỡng cho phép • Có mã nhận diện lên đến 64 bit, kiểm tra nhiệt độ với nhiều IC DS18B20 mà dùng dây dẫn để giao tiếp Cảm biến nhiệt độ ds18B20 • Đo nhiệt độ từ cảm biến DS18B20 Lcd 1602 LCD 1602 16 chân chức Lcd 1602 • LCD 1602 có chế độ hiển thị: • bit • bit • Trong Project này, nhóm sử dụng chế độ hiển thị bit, với sơ đồ kết nối hình: Lcd 1602 • Tập lệnh giao tiếp với LCD chuẩn hóa thư viện CCS • Để sử dụng, ta cần khai báo #include Lcd 1602 • Một số hàm thông dụng: • lcd_init(): Khởi tạo LCD, gọi lần hàm main • lcd_gotoxy(int8 x, int8 y) : hiển thị vị trí cột x , hàng y, bắt đầu x = y = • lcd_send_byte(BYTE address, BYTE n): gửi byte n đến LCD • address = 0: thao tác lệnh • address = 1: thao tác liệu Lcd 1602 • Một số hàm thông dụng: • lcd_clear() : xóa LCD • lcd_putc(char c) : gửi ký tự lên LCD • lcd_getc(int8 x, int8 y) : đọc ký tự cột x, hàng y Code mô • Lập trình CCS-C • Mô Proteus Mạch Proteus Code ccs-c Gồm file • 1_day.c • DS18B20.c • LCD_DS18B20.c File "LCD_DS18B20.c" #include void main() #fuses NOPROTECT,NOWDT { while(1) { #use delay(clock=20M) int8 chuc, donvi, phandonvi; temperature = ds18b20_read(); #include "DS18B20.c" int8 temp; temperature = temperature*10.0; #include "LCD420.c" phandonvi = (int16) temperature%10; LCD_init(); temp = (int16) temperature/10; int temperature; LCD_gotoxy(5,1); donvi = temp%10; void hienthi(int8 chuc, int8 donvi, int8 phandonvi) LCD_putc("Welcome!"); temp = temp/10; { delay_ms(1000); chuc = temp; LCD_gotoxy(4,2); LCD_putc("\f"); hienthi(chuc,donvi,phandonvi); LCD_putc(chuc+48); LCD_gotoxy(3,1); LCD_putc(donvi+48); LCD_putc("Temperature:\n"); LCD_putc("."); LCD_putc(phandonvi+48); LCD_putc(0xDF); LCD_putc("C"); } } } int onewire_read() { int count, data; for(count=0;count[...]... 1 1 Cảm biến nhiệt độ ds18B20 Cách config độ phân giải cho DS18B20 • Cấu hình độ phân giải cho DS18B20 được quyết định bởi R1 và R0 • Ta có bảng thiết lập như sau: Thermometer Max resolution conversion time 0 9 93.75 ms 0 1 10 187.5 ms 1 0 11 375 ms 1 1 12 750 ms R1 R0 0 Cảm biến nhiệt độ ds18B20 Sơ đồ kết nối cảm biến S dụng dụng Sử nhiều 1 cảmcảm biếnbiến Cảm biến nhiệt độ ds18B20 Đọc nhiệt độ •... bộ nhớ nháp cần được đọc Cảm biến nhiệt độ ds18B20 Các lệnh chức năng • COPYSCRATCHPAD (48h) • Lệnh 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ế độ cấp nguồn thì bắt đầu vi c đo Cảm biến nhiệt độ ds18B20 Các lệnh chức năng • CONVERT (44h) • Lệnh khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân) • Sau... cảnh báo trong phép đo nhiệt độ cuối cùng 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 • Điều 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 Cảm biến nhiệt độ ds18B20 • Sau khi master sử dụng các lệnh ROM để định địa chỉ cho các cảm biến 1 dây đang được đấu vào bus, nó sẽ đưa ra... độ ds18B20 Một số lệnh trong ROM liên quan đến cảm biến DS18B20 • MATCH ROM (55h) • Đượ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 Cảm biến nhiệt độ ds18B20 Một số lệnh trong ROM liên quan đến cảm biến DS18B20 • MATCH ROM (55h) • Cảm biến DS1820 nào có 64 bit trên ROM trung khớp với chuỗi... gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo • 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 • Đượ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 Cảm biến nhiệt độ ds18B20 Một số lệnh trong ROM liên quan đến cảm biến DS18B20 • SKIP ROM (CCh) • Lệnh cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh... đổi nhiệt độ thì chân DQ sẽ được kéo xuống mức thấp và khi chuyển đổi xong thì ở mức cao • Như vậy ta sẽ căn cứ vào hiện tượng này để xác định khi nào chuyển đổi xong nhiệt độ • Lưu ý luôn phải dùng một điện trở tầm 4.7k trở lên vào chân DQ treo lên nguồn như sơ đồ mắc Lcd 1602 LCD 1602 16 chân chức năng Lcd 1602 • LCD 1602 có 2 chế độ hiển thị: • 4 bit • 8 bit • Trong Project này, nhóm sử dụng chế độ. .. này, nhóm sử dụng chế độ hiển thị 4 bit, với sơ đồ kết nối như hình: Lcd 1602 • Tập lệnh giao tiếp với LCD đã được chuẩn hóa trong thư vi n CCS • Để sử dụng, ta chỉ cần khai báo #include Lcd 1602 • Một số hàm thông dụng: • lcd_ init(): Khởi tạo LCD, gọi 1 lần trong hàm main • lcd_ gotoxy(int8 x, int8 y) : hiển thị tại vị trí cột x , hàng y, bắt đầu ở x = 1 và y = 1 • lcd_ send_byte(BYTE address,... 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 Cảm biến nhiệt độ ds18B20 Một số lệnh trong ROM liên quan đến cảm biến DS18B20 • ALARM SEARCH (ECh) 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 • Tiến hiện điều kiện cảnh báo trong phép đo. .. thể: • đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS18B20 • khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được • xác định chế độ cung cấp điện áp nguồn Cảm biến nhiệt độ ds18B20 Các lệnh chức năng • WRITE SCRATCHPAD (4Eh) • Lệnh 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) • Byte thứ hai được ghi vào thanh ghi.. .Cảm biến nhiệt độ ds18B20 Một số lệnh trong ROM liên quan đến cảm biến DS18B20 • 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 • Chỉ dùng khi trên bus có 1 cảm biến DS18B20, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị slave cùng đáp ứng Cảm biến nhiệt độ ds18B20 Một ... 1 12 750 ms R1 R0 Cảm biến nhiệt độ ds18B20 Sơ đồ kết nối cảm biến S dụng dụng Sử nhiều cảmcảm biếnbiến Cảm biến nhiệt độ ds18B20 Đọc nhiệt độ • Khi bắt đầu chuyển đổi nhiệt độ chân DQ kéo xuống... dung Lý thuyết • Cảm biến DS18B20 • LCD 1602 • Vi điều khiển PIC16F877A Cảm biến nhiệt độ ds18B20 Phiên chống nước, chống ẩm Cảm biến nhiệt độ ds18B20 Tổng quan: • DS18B20 IC cảm biến nhiệt độ. .. phép điều khiển bus chọn cảm biến DS1820 cụ thể bus có nhiều cảm biến DS1820 nối vào Cảm biến nhiệt độ ds18B20 Một số lệnh ROM liên quan đến cảm biến DS18B20 • MATCH ROM (55h) • Cảm biến DS1820