上一章-藍橋杯STC基礎代碼-時鐘芯片
溫度傳感器-DS18B20
原理圖
可以看到我們用 P14一個IO口控制整個傳感器。
重要操作
1.跳過ROM
根據芯片手冊 命令爲 0xcc
2.轉換溫度
3.讀暫存器
讀取溫度流程
利用好賽方給的函數,記住要用到的命令,讀取溫度就沒有太大的問題了。
上面寫的初始化函數還有寫命令讀數據是比賽方已經給了的。
在 onewire.h
代碼
u16 ds_tempeture;
u16 Read_tempeture(void)
{
u8 low,high;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
low = Read_DS18B20();
high = Read_DS18B20();
ds_tempeture = ( high << 8) | low ;
ds_tempeture = ds_tempeture / 16; //向右 移動四位
return ds_tempeture;
}
這份代碼我通常是放在100ms時間軸裏面,已經夠了。