本程式對應的開發板為藍橋杯嵌入式開發板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,之...