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

2021-09-16 13:59:05 字數 2167 閱讀 4374

對於藍橋杯比賽,很多人對於比賽官方給出的三個驅動不知道怎麼具體使用。其實官方給出的驅動是在原有的晶元基礎上做出的驅動,但是後來比賽官方對比賽專用版ct107d上使用了iap1f2k61s2轉接板,驅動的一些位置都相應的做出了該變。

首先對於驅動,我們的看法是去建立乙個存在主函式的c 檔案去呼叫這個驅動的c檔案和**件。而不是在給出的驅動上直接書寫程式,因為那樣的程式設計思想是會使編譯很亂,不方便除錯。

首先我們先對ct107d板上的溫度感測器進行分析,首先它應用的是單匯流排協議,三條線兩條電源線--vcc與gnd,另一條是進行訊號傳輸。

一、  首先我們需要對官方給出的c檔案驅動進行修改編譯。

#include "onewire.h"

void delay_onewire(unsigned int t)  //單匯流排延時函式

}//通過單匯流排向ds18b20寫乙個位元組

void write_ds18b20(unsigned char dat)

delay_onewire(5);

}//從ds18b20讀取乙個位元組

unsigned char read_ds18b20(void)

delay_onewire(5);

}return dat;

}//ds18b20裝置初始化

bit init_ds18b20(void)

/*************************以下需要自己去寫的函式****************************************/

float rd_temperature(void)

二、接下來我們需要對官方給出的**件驅動進行修改編譯。

#ifndef __onewire_h

#define __onewire_h

#include "reg52.h"

sbit dq = p1^4; //定義單匯流排介面

void delay_onewire(unsigned int t);

void write_ds18b20(unsigned char dat);

unsigned char read_ds18b20(void);

bit init_ds18b20(void);

float rd_temperature(void);

/*****************主要是對驅動c檔案的函式進行宣告,對介面進行宣告*****************/

#endif

三、現在開始使用主程式和定時器進行顯示了。

//主呼叫程式是使用了定時器0進行數字顯示,

//想進行其他功能可以再自行新增,本文只是做出最簡單的顯示,方便初學者理解

#include "reg52.h"

#include "onewire.h"

#include "intrins.h"

#define fosc 11059200l

#define t1ms (65536-fosc/12/1000)

sbit buzzer=p0^6;

unsigned char fanhuizhi;

unsigned int count; //中斷標誌位

unsigned char code sum=;

unsigned char code was=;

unsigned char xs[2]; //顯示陣列

void gb_eupument()

void tm0_init()

void main()

}/* timer0 interrupt routine */

void tm0_isr() interrupt 1 using 1

}

以上便是對ct107d版上的ds18b20溫度感測器基於單匯流排協議的呼叫,希望多多練習。

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官方驅動的修改

雖然我還沒有參加藍橋杯的比賽,但是聽很多人說比賽的時候官方會給出一些晶元的驅動程式,有ds18b20 ds1302 iic。藍橋杯官方給出的驅動可以用是可以但是並不是那麼完善,還是需要我們稍加修改的。下面我們看一下官方給的ds18b20的驅動程式 程式說明 單匯流排驅動程式 軟體環境 keil uv...