DS18B20溫度感測器程式設計

2021-10-23 03:33:07 字數 1505 閱讀 6436

本程式對應的開發板為藍橋杯嵌入式開發板stm32f103rbt6,為中型mcu。ds18b20是單線介面數字溫度感測器,具體特徵如下圖。

ds18b20包括寄生電源電路、64位rom和單線介面電路、暫存器、eeprom、8位crc生成器和溫度感測器等。寄生電源電路可以實現外部電源供電和單線寄生供電,64位rom中存放的48位序列號用於是吧同一單線 上連線的多個ds18b20,以實現多點測溫。

64位rom**的格式為:

8位crc校驗碼+48位序列號+8位系列碼(0x28)

其中8位crc校驗碼是48位序列號和8位系列碼的crc校驗碼。

連線:p4.6(pa6)-p3.6(tdq)

程式:ds18b20.c

#include "stm32f10x.h"

#include "ds18b20.h"

#define delay_us(x) delay((x)*72/5)

void delay(unsigned int n)

void ds18b20_init_x(void)

//void mode_input1(void )

void mode_output1(void )

//uint8_t ow_reset(void)

uint8_t ow_bit_io( uint8_t b )

uint8_t ow_byte_wr( uint8_t b )

while( --i );

return b;}//

uint8_t ow_byte_rd( void )

unsigned char dsb_read(void)

主程式

#include "stm32f10x.h"

#include "lcd.h"

#include "ds18b20.h"

u32 timingdelay = 0;

void delay_ms(u32 ntime);

unsigned long tick_ms;

unsigned char string[20];

unsigned char sec,sec1;

unsigned char dsb_val;

void dsb_proc(void);

int main(void)

}void dsb_proc(void)

}void systick_handler(void)

void delay_ms(u32 ntime)

溫度感測器 DS18B20

1.實物圖 2.64位 激 光刻唯讀儲存器 開始8位 28h 是產品型別標號,接著的48位是該ds18b20自身的序列號,最後8位是前面56位的迴圈冗餘校驗碼 光刻rom的作用是使每乙個ds18b20都各不相同,這樣就可以實現一根匯流排上掛接多個ds18b20的目的 3.溫度暫存器 高位元組的前5位...

溫度感測器DS18B20使用

因為乙個專案用到了ds18b20溫度感測器,剛開始使用之處,第一次對單線感測器進行控制,毫無經驗,也是碰了一頭灰,摔了一些坑。總結一下使用心得。ds18b20是單線數位化溫度感測器。溫度採集的控制介面為1位,通過該位可進行溫度資料的讀取,以及9 12位解析度的設定,對應的精度為0.5 c 0.016...

溫度感測器DS18B20讀寫

1.復位 主機傳送480us 960us的低電平,然後設定埠為高電平,釋放匯流排。溫度感測器接收到復位訊號,等待15 60us,拉低匯流排,發出60 240us的復位應答脈衝。主機讀取匯流排電平是否為低,如果為低,則判定溫度感測器復位。2.讀1bit資料 主機產生乙個下降沿,低電平維持至少1us,之...