1. Trang chủ
  2. » Giáo Dục - Đào Tạo

slide bài giảngckỹ thuật điều khiển ghép nối thiết bị ngoại vi chương 6b

10 44 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 586,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.comĐỊNH DẠNG DỮ LiỆU... ĐỊNH DẠNG DỮ LiỆU... Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ

Trang 1

GIAO TiẾP ONEWIRE

Trang 2

GiỚI THIỆU

Trang 3

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com

ĐỊNH DẠNG DỮ LiỆU

Trang 4

ĐỊNH DẠNG DỮ LiỆU

Trang 5

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com

XÂY DỰNG CÁC LỆNH CƠ BẢN

//báo chân giao tiep I2C

#defne DQ P0_3    

//hàm reset

unsigned char

Init_DS18B20(void)

{

DQ = 0;

Delay(60); //480us

DQ = 1;

Delay(8); 64us,

presence = DQ;

Delay(50); // 400us,

DQ = 1;

return (presence);

}

void WriteOneChar(unsigne

d char dat) {

unsigned char i = 0;

for (i = 0; i < 8; i++) {

DQ = 0;

Delay(1); //<15us dat >>= 1; //CY

DQ = CY;

Delay(6); //> 45us

DQ = 1;

} }

unsigned char ReadOneChar(void) {unsigned char i = 0;

unsigned char dat = 0;

DQ = 1;

for (i = 0; i < 8; i++) {DQ = 0;

dat >>= 1;

DQ = 1;

_nop_();

_nop_();

if (DQ == 1) dat |= 0x80;

Delay(6); //> 45us

DQ = 1;

}return (dat);

}

Trang 6

ỨNG DỤNG: ĐO NHIỆT ĐỘ DÙNG DS18B20

- Sử dụng 1 chân DQ để truyền thông

- Độ phân giải từ 9 đến 12 bit

- Dãi nhiệt độ -55 đến 125

Trang 7

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com

CÁC LỆNH

CÁC LỆNH ROM:

-SEACH ROM (F0H): Tìm số lượng ds18b20 nối vào mạch

-READ ROM (33H): Đọc 8 byte liên quan đến mã xuất xưởng (để xử lý

bus có nhiều cảm biến), chỉ dùng lệnh này khi trên mạch có 1 cảm biến

-MATCH ROM (55H): cùng với 64bit để chọn ra 1 cảm biến cụ thể

-ALARM SEACH (ECH): giống SEACH ROM, nhưng cảm biến chỉ phản

hồi khi nhiệt độ vượt quá ngưỡng quy định

•Sau khi sử dụng các lệnh ROM để xác định 1 cảm biến cụ thể thì sử

dụng đến nhóm lệnh chức năng

CÁC LỆNH CHỨC NĂNG:

Trang 8

ĐỊNH DẠNG KẾT QuẢ

Trang 9

Cao Nguyễn Khoa Nam - Khoa Điện - Trường Cao đẳng Công nghệ Đà Nẵng caonam@gmail.com

LẬP TRÌNH

if (Init_DS18B20() == 0)

{

WriteOneChar(0xCC); // SKIP ROM

WriteOneChar(0x44); // CONVERT

}

if (Init_DS18B20() == 0)

{

WriteOneChar(0xCC); // SKIP ROM

WriteOneChar(0xBE); // READ SCRATCHPAD

temp_data[0] = ReadOneChar();

temp_data[1] = ReadOneChar();

Temperature_conver();

}

Trang 10

LẬP TRÌNH

void Temperature_conver()

{

unsigned char minus = 0;

if (temp_data[1] > 127) //Nhiệt độ âm (dạng bù 2)

{

temp_data[0] = (~temp_data[0]) + 1;//chuyển lại dạng số dương (bù 1 +1)

if ((~temp_data[0]) >= 0xff)

temp_data[1] = (~temp_data[1]) + 1;

else

temp_data[1] = ~temp_data[1];

minus = 1;

}

}

Ngày đăng: 23/05/2020, 11:56

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm