關於藍橋杯 ds18b20溫度感測器

2021-08-16 23:30:10 字數 706 閱讀 2945

對於ds18b20,比賽會給我們驅動**,不過,在我拿到的資料裡——也就是以往比賽給的驅動,他的驅動**有一些問題。首先是延時程式,它的延時程式是

void delay_onewire(unsigned int t)

同時,我們還要自己加乙個讀取的程式:

unsigned char rd_temperature()

char temp;

unsigned char high,low;

init_ds18b20();

write_ds18b20(0xcc);

write_ds18b20(0x44);   //啟動溫度轉化

delay_onewire(200);

init_ds18b20();

write_ds18b20(0xcc);  

write_ds18b20(0xbe);   //讀取暫存器值

low=read_ds18b20(); //低位元組

high=read_ds18b20;//高位元組

temp=high<<4;

temp|=(low>>4);

return temp;

在補完驅動以後,我們只要在主函式裡去讀取ds18b20的值然後在數碼管上顯示出來就可以了。但是,如果直接讀取顯示會出現數碼管閃爍這個問題,這是因為每次讀取的太快了,數碼管重新整理不過來。因此,我們最好加乙個定時器中斷,讓程式每隔100ms或1s去讀取一次。

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 為標誌位,對...

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

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