藍橋杯突擊5 DS18B20溫度感測器

2021-09-11 21:27:13 字數 1334 閱讀 4836

這次學習到了ds18b20溫度感測器

由於藍橋杯比賽時給出了ds18b20的驅動程式onewire.c, 所以我們不再敘述ds18b20的時序圖.

直接上ds18b20的rom指令表:

由於開發板只有乙個溫度感測器, 所以上表中我們只有cch,44h,beh指令我們用的到.

控制思路是:先初始化ds18b20, 然後寫入指令cch,和44h,等待溫度轉化完成, 這時候感測器所採集到的溫度值儲存在了9位元組的rom中. 所以我們要再寫入指令cch和beh來獲取12位的溫度值.

其中比較重要的點就是關於12位資料的溫度值轉換問題: 12位資料中,高8位是整數資料,低4位是小數部分,精度為2的-4次方,即0.0625.

因為這次學的比較簡單, 所以我們直接貼 main.c 的**:

//在數碼管實時顯示ds18b20讀取到的溫度數值

#include #include "onewire.h"

typedef unsigned char uchar;

typedef unsigned int uint;

sbit buzz=p0^6;

sbit relay=p0^4;

uchar code table=;

uchar disbuff[8]=;

uchar displaydata=;

uchar discom,n;

void closebuzz();

void display();

void closeled();

void temppros();

//自己寫讀取溫度程式

unsigned int ds18b20readtemp();

void main()

}void closebuzz()

void closeled()

void timeoint() interrupt 1

}//自己寫讀取溫度程式

unsigned int ds18b20readtemp()

void temppros()

void display()

{ p0=0xff;

p2=(p2&0x1f)|0xe0;

p2&=0x1f;

p0=(1實驗效果為在數碼管實時顯示ds18b20讀取到的溫度數值.

藍橋杯溫度DS18b20的驅動直觀理解

對於藍橋杯比賽,很多人對於比賽官方給出的三個驅動不知道怎麼具體使用。其實官方給出的驅動是在原有的晶元基礎上做出的驅動,但是後來比賽官方對比賽專用版ct107d上使用了iap1f2k61s2轉接板,驅動的一些位置都相應的做出了該變。首先對於驅動,我們的看法是去建立乙個存在主函式的c 檔案去呼叫這個驅動...

DS18B20溫度測量

1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入開始轉換的功能命令,0x44。4.延遲大約 750 900 毫秒 1.ds18b20 復位。2.寫入跳過 rom 的位元組命令,0xcc。3.寫入讀暫存的功能命令,0xbe。4.讀入第 0 個位元組 ls byte,轉換...

DS18B20溫度換算

dsi8b20接收到溫度轉換命令後,開始啟動轉換。轉換完成後的溫度值就以16位帶符號擴充套件的二進位制補碼形式儲存在高速暫存儲存器的0,1位元組。微控制器可通過單線介面讀到該資料,讀取時低位在前,高位在後,資料格式以0 062 5 lsb形式表示。溫度值格式如表2.2.1所示,其中 s 為標誌位,對...