a片在线观看免费看视频_欧美婬片在线a_同性男男无遮挡无码视频_久久99狠狠色精品一区_《性妲己》电影在线观看_久久久99婷婷久久久久久_亚洲精品久久久久58_激情在线成人福利小电影_色婷婷久久综合五月激情网

0 賣盤信息
BOM詢價
您現在的位置: 首頁 > 技術方案 >工業控制 > 基于51單片機的DS18B20溫控風扇設計方案(原理圖+源碼+仿真+教程)

基于51單片機的DS18B20溫控風扇設計方案(原理圖+源碼+仿真+教程)

來源: 電路城
2021-11-25
類別:工業控制
eye 3
文章創建人 拍明

原標題:基于51單片機的DS18B20溫控風扇設計方案(原理圖+源碼+仿真+教程)

基于51單片機的DS18B20溫控風扇設計方案

一、設計背景與需求分析

在現代電子設備及工業控制領域,溫度管理是保障系統穩定運行的關鍵環節。傳統風扇控制多依賴機械式溫控開關,存在精度低、響應慢、無法智能化調節等缺陷?;?1單片機的DS18B20溫控風扇系統通過集成高精度數字溫度傳感器與微控制器,實現了環境溫度的實時監測與風扇轉速的動態調節,具有低成本、高可靠性、易擴展等優勢。本設計適用于智能家居散熱、工業設備溫控、實驗室環境調節等場景,可有效提升能源利用效率并延長設備壽命。

image.png

二、核心元器件選型與功能解析

1. 主控芯片:STC89C52單片機

  • 型號選擇:STC89C52作為增強型51內核單片機,兼容傳統AT89C52指令集,但具備ISP在線編程功能,支持USB轉串口下載,無需專用編程器。其8KB Flash存儲空間可滿足基礎溫控程序需求,32個I/O口資源豐富,便于連接外設。

  • 核心優勢

    • 抗干擾能力強,適應工業環境。

    • 低功耗設計,工作電壓范圍3.3V-5.5V,支持電池供電場景。

    • 內置看門狗定時器,提升系統穩定性。

2. 溫度傳感器:DS18B20

  • 型號選擇:DS18B20為一線制數字溫度傳感器,采用TO-92封裝,支持-55℃至+125℃寬溫域測量,精度±0.5℃。其單總線協議僅需1根數據線即可完成通信,簡化硬件設計。

  • 核心功能

    • 內部集成12位ADC,直接輸出數字信號,無需外接ADC芯片。

    • 支持寄生電源模式,可通過數據線供電,減少布線復雜度。

    • 每個器件具備唯一64位ROM編碼,支持多傳感器級聯。

3. 驅動模塊:ULN2803達林頓管陣列

  • 型號選擇:ULN2803為8通道NPN達林頓晶體管陣列,單路驅動電流500mA,耐壓50V,可承受瞬間反向電動勢。其內部集成續流二極管,適合驅動感性負載(如直流電機)。

  • 核心作用

    • 隔離單片機I/O口與電機,防止反向電流損壞芯片。

    • 提供足夠驅動能力,支持12V直流風扇全速運轉。

4. 顯示模塊:共陽極四位數碼管

  • 型號選擇:采用5641AH四位共陽極數碼管,段碼電流10mA,位碼電流5mA,亮度適中。其共陽極設計簡化驅動電路,通過三極管(如9012)實現位選控制。

  • 核心功能

    • 實時顯示環境溫度與設定閾值,分辨率0.1℃。

    • 支持動態掃描顯示,降低I/O口占用。

5. 按鍵模塊:輕觸開關

  • 型號選擇:采用6mm×6mm貼片輕觸開關,行程1.5mm,觸點壽命≥10萬次。其低功耗特性與長壽命適合嵌入式系統。

  • 核心作用

    • 提供“設置”“加”“減”三個按鍵,實現溫度閾值的手動調整。

    • 結合軟件消抖算法,避免機械抖動誤觸發。

三、硬件電路設計

1. 系統架構圖

系統由STC89C52最小系統、DS18B20測溫電路、ULN2803驅動電路、數碼管顯示電路、按鍵輸入電路及電源模塊構成。核心信號流為:DS18B20采集溫度→單片機處理→PWM輸出→ULN2803驅動風扇→數碼管顯示狀態。

2. 關鍵電路設計

(1)DS18B20接口電路

  • 接線方式:DS18B20的DQ引腳通過4.7kΩ上拉電阻接至單片機P1.0口,VDD接5V,GND接地。

  • 設計要點

    • 單總線協議需嚴格遵循時序要求,復位脈沖寬度≥480μs,響應脈沖≥60μs。

    • 多傳感器級聯時,需通過ROM命令匹配目標器件。

(2)ULN2803驅動電路

  • 接線方式:ULN2803的1-8輸入引腳接單片機P2.0-P2.7,輸出引腳接風扇正極,COM端接12V電源。

  • 設計要點

    • 風扇負極直接接地,通過控制輸入引腳電平實現啟停。

    • PWM信號通過定時器中斷生成,占空比0%-100%可調。

(3)數碼管顯示電路

  • 接線方式:段碼a-g、dp接P0口,位選1-4通過9012三極管接P1.4-P1.7。

  • 設計要點

    • 采用動態掃描方式,每位顯示時間1-5ms,避免肉眼可見閃爍。

    • 限流電阻220Ω,防止段碼電流過大損壞LED。

四、軟件系統設計

1. 主程序流程

系統上電后,初始化定時器、中斷、DS18B20及數碼管。主循環中執行以下任務:

  • 讀取DS18B20溫度值,轉換為實際溫度(公式:T=(TH*256+TL)/16)。

  • 掃描按鍵狀態,調整溫度閾值(上限THigh、下限TLow)。

  • 根據溫度與閾值比較結果,控制PWM占空比:

    • T<TLow:風扇停止(占空比0%)。

    • TLow≤T<THigh:低速運轉(占空比50%)。

    • T≥THigh:全速運轉(占空比100%)。

  • 更新數碼管顯示內容,格式為“XX.X℃”。

2. 關鍵子程序實現

(1)DS18B20驅動代碼


#include <intrins.h>

sbit DQ = P1^0;



void DS18B20_Reset(void) {

DQ = 0; _nop_(); _nop_(); _nop_(); _nop_(); // 拉低480us

DQ = 1; _nop_(); _nop_(); _nop_(); _nop_(); // 釋放15us

}



bit DS18B20_Check(void) {

bit flag;

DQ = 0; _nop_(); _nop_(); DQ = 1;

_nop_(); _nop_(); flag = DQ;

_nop_(); _nop_(); _nop_(); _nop_();

return flag;

}



float Read_Temperature(void) {

unsigned char temp_l, temp_h;

int temp;

DS18B20_Reset();

DS18B20_Check();

Write_Byte(0xCC); // 跳過ROM

Write_Byte(0x44); // 啟動轉換

Delay_ms(750);    // 等待轉換完成

DS18B20_Reset();

DS18B20_Check();

Write_Byte(0xCC);

Write_Byte(0xBE); // 讀取寄存器

temp_l = Read_Byte();

temp_h = Read_Byte();

temp = (temp_h<<8) | temp_l;

return temp * 0.0625; // 轉換為實際溫度

}

(2)PWM生成代碼


#include <reg52.h>

sbit Fan = P2^0;

unsigned char PWM_Duty = 0;



void Timer0_Init(void) {

TMOD |= 0x01;

TH0 = 0xFF;

TL0 = 0x9C; // 50μs中斷一次

ET0 = 1;

EA = 1;

TR0 = 1;

}



void Timer0_ISR(void) interrupt 1 {

static unsigned char count = 0;

TH0 = 0xFF;

TL0 = 0x9C;

count++;

if (count >= 100) count = 0; // 100級調速

if (count < PWM_Duty) Fan = 1;

else Fan = 0;

}

(3)數碼管顯示代碼


unsigned char code Seg_Table[] = {

0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,

0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71

};



void Display_Temp(float temp) {

unsigned char buf[4];

buf[0] = (unsigned char)temp / 10;    // 十位

buf[1] = (unsigned char)temp % 10;    // 個位

buf[2] = (unsigned char)(temp * 10) % 10; // 小數位

buf[3] = 0x40; // 顯示“℃”符號



for (unsigned char i = 0; i < 4; i++) {

P1 = ~(0x01 << i); // 位選

P0 = Seg_Table[buf[i]]; // 段選

Delay_ms(2);

}

}

五、Proteus仿真驗證

1. 仿真電路搭建

  • 添加STC89C52、DS18B20、ULN2803、四位數碼管、按鍵、電阻、電容等元件。

  • DS18B20的DQ引腳連接虛擬終端,便于觀察通信數據。

  • 風扇用直流電機模型替代,通過電壓表監測轉速。

2. 仿真結果分析

  • 初始狀態:數碼管顯示“25.0℃”,風扇停止。

  • 模擬升溫:通過DS18B20虛擬終端輸入溫度值30℃,風扇以50%轉速運轉。

  • 模擬高溫:輸入40℃,風扇全速運轉。

  • 閾值調整:按下“設置”鍵進入閾值調整模式,通過“加”“減”鍵修改THigh/TLow,系統響應新閾值。

六、硬件制作與調試

1. PCB設計要點

  • 采用雙層板設計,電源層與地層分開,減少干擾。

  • DS18B20數據線加粗至20mil,降低阻抗。

  • 風扇驅動部分增加散熱焊盤,防止ULN2803過熱。

2. 調試步驟

  • 電源測試:檢查5V、12V供電是否正常,無短路。

  • 單片機最小系統測試:通過LED閃爍驗證程序運行。

  • DS18B20通信測試:用邏輯分析儀捕獲單總線時序,確認數據正確性。

  • 風扇驅動測試:逐步增加PWM占空比,觀察轉速變化。

  • 整體聯調:模擬不同溫度場景,驗證系統響應。

七、優化方向與應用擴展

1. 性能優化

  • 增加溫度歷史記錄功能,通過EEPROM存儲數據。

  • 引入PID算法,提升溫控精度與響應速度。

  • 優化數碼管驅動代碼,降低CPU占用率。

2. 應用擴展

  • 增加WiFi模塊(如ESP8266),實現遠程監控與控制。

  • 添加蜂鳴器報警,當溫度超限時發出提示音。

  • 設計多路風扇控制,適用于大型設備散熱。

八、總結

本設計通過51單片機與DS18B20傳感器的結合,實現了低成本、高精度的溫控風扇系統。硬件選型兼顧性能與成本,軟件算法優化了響應速度與穩定性。Proteus仿真與實物調試驗證了系統可行性,具備實際應用價值。未來可進一步集成物聯網技術,推動智能家居與工業4.0的發展。

責任編輯:David

【免責聲明】

1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。

2、本文的引用僅供讀者交流學習使用,不涉及商業目的。

3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。

4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。

拍明芯城擁有對此聲明的最終解釋權。

相關資訊

拍明芯城微信圖標

各大手機應用商城搜索“拍明芯城”

下載客戶端,隨時隨地買賣元器件!

拍明芯城公眾號
拍明芯城抖音
拍明芯城b站
拍明芯城頭條
拍明芯城微博
拍明芯城視頻號
拍明
廣告
恒捷廣告
廣告
深亞廣告
廣告
原廠直供
廣告