基于單片機的多路測溫儀系統設計
摘要:提出了基于AT89S51單片機和數字溫度傳感器DS18B20組成的多路溫度檢測系統,介紹了主要元器件的工作原理,詳細給出了硬件設計過(guò)程和軟件程序流程圖。此系統穩定性強、檢測精準度高、價(jià)格低廉,在自動(dòng)控制領(lǐng)域具有廣闊的應用前景。
本文引用地址:http://dyxdggzs.com/article/201610/309049.htm0 引言
溫度檢測與控制技術(shù)在現階段的工業(yè)、農業(yè)和居民日常生活中都具有廣泛的應用。精確的溫度檢測和準確的溫度控制是保證各類(lèi)生產(chǎn)順利開(kāi)展以及居民生活方便快捷的基本條件。系統采用AT89S51單片機作為控制器,可靠性高、體積小、價(jià)格低廉;采用DS18B20作為多路溫度采集的傳感器,電路簡(jiǎn)單、測量精度高、穩定性好。
1 系統總體設計方案
整個(gè)多路溫度檢測系統如圖1所示,主要由計算機控制系統(上位機)、單片機測控系統(下位機)、多路溫度傳感器、功能模塊系統等部分組成。本系統在需要對溫度監控與測量的地方放置數字溫度傳感器,通過(guò)單總線(xiàn)將若干個(gè)溫度傳感器連接在一起。單片機按照單總線(xiàn)協(xié)議對各個(gè)傳感器進(jìn)行控制并采集溫度信息,同時(shí)通過(guò)串口與上位機進(jìn)行通信,同時(shí)單片機測控系統還可以增加顯示電路部分、按鍵設置部分、數據存儲部分等,可以在現場(chǎng)進(jìn)行參數的顯示與設置。上位機系統通過(guò)串口接收下位機上傳的數據,通過(guò)上位機軟件進(jìn)行實(shí)施顯示與控制。

2 系統硬件原理設計
2.1 主控電路設計
多路溫度檢測系統的主控電路采用的是現階段廣泛使用的AF89S51單片機作為核心控制芯片。該芯片為低功耗、高性能的8位單片機,片內有4KB可系統編程的Flash程序存儲器,既可使用常規編程器也可在系統編程(ISP),片內有128B數據存儲器,兼容標準8051指令系統及引腳,4.0~5.5V工作電壓范圍,全靜態(tài)工作模式0Hz~33MHz,有低功耗空閑和掉電工作模式,看門(mén)狗及雙數據指針。AT89S51單片機包括兩個(gè)最基本電路:時(shí)鐘電路與復位電路。本系統通過(guò)MAX232芯片與上位機RS-232串口連接。
2.2 顯示電路設計
顯示電路采用可以采用數碼管顯示和液晶顯示兩種方案。數碼管顯示的特點(diǎn)是顯示亮度高、編程操作簡(jiǎn)單、成本低,但顯示信息少、功耗大,如采用動(dòng)態(tài)掃描占用CPU資源多,而液晶顯示可以顯示更多的信息,同時(shí)耗電量低,硬件接口也較為簡(jiǎn)單,本系統采用液晶顯示模式,使用市場(chǎng)上常見(jiàn)的LCD1602液晶,P0口進(jìn)行數據傳輸,P2口連接液晶的RS、RW、EN三個(gè)引腳。
2.3 按鍵電路設計
本系統按鍵采用觸點(diǎn)式機械按鍵,由于其造價(jià)低、控制簡(jiǎn)單,普遍應用于電子產(chǎn)品中。按鍵與單片機接口采用非編碼矩陣鍵盤(pán),可以通過(guò)P1口的8個(gè)引腳連接4×4矩陣鍵盤(pán),方便輸入0~9數字以及其它功能鍵。
2.4 數據存儲電路設計
數據存儲芯片采用ATMEL公司AT24系列的2線(xiàn)串行EEPROM芯片,它是低功耗CMOS存儲器,具有工作電壓寬、擦寫(xiě)次數多、寫(xiě)入速度快等特點(diǎn)。存儲芯片與單片機相連時(shí),只需占用單片機的兩個(gè)I/O端口線(xiàn)作為數據線(xiàn)和時(shí)鐘線(xiàn),如果只連接一片芯片,只需將地址線(xiàn)接地即可。
2.5 單總線(xiàn)溫度傳感器
溫度傳感器采用市場(chǎng)上應用廣泛、接口簡(jiǎn)單的DS18B20溫度傳感器,其特點(diǎn)是采用單總線(xiàn)的接口方式,與微處理器連接時(shí)僅需要一條口線(xiàn)即可實(shí)現微處理器與DS18B20的雙向通訊;測量溫度范圍寬、測量精度高,DS18B20的測量范圍為-55℃~+125℃;多個(gè)DS18B20可以并聯(lián)在一條單線(xiàn)上,實(shí)現多點(diǎn)測溫;內置A/D轉換器,直接輸出9~12位被測溫度值。本系統所有DS18B20的DQ引腳并連在一個(gè)I/O端口上,外接一個(gè)4.7~10kΩ的上拉電阻。
系統硬件原理圖如圖2所示。

3 系統軟件程序設計
數字溫度傳感器DS18B20是采用由一條數據線(xiàn)實(shí)現數據雙向傳輸的單總線(xiàn)協(xié)議方式。該協(xié)議定義了三種通信時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。而AT89S51單片機在硬件上并不支持單總線(xiàn)協(xié)議,因此必須采用軟件方式模擬單總線(xiàn)協(xié)議時(shí)序來(lái)完成與DS18B20間的通信。
3.1 單總線(xiàn)協(xié)議
單總線(xiàn)協(xié)議的所有時(shí)序都是將主機作為主設備,單總線(xiàn)器件作為從設備。每次命令和數據的傳輸都是從主機主動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線(xiàn)器件傳輸數據,則在進(jìn)行寫(xiě)命令之后,主機啟動(dòng)讀時(shí)序完成數據接收。數據和命令的傳輸都是以低位在先的串行方式進(jìn)行。
3.1.1 初始化時(shí)序
主機首先發(fā)出一個(gè)480~960μs的低電平脈沖,然后釋放總線(xiàn)變?yōu)楦唠娖?,并在隨后的480 μs時(shí)間內對總線(xiàn)進(jìn)行檢測,如果有低電平出現,說(shuō)明總線(xiàn)上有器件已做出應答。若無(wú)低電平出現一直都是高電平,說(shuō)明總線(xiàn)上無(wú)器件應答。如圖3所示。

3.1.2 寫(xiě)時(shí)序
寫(xiě)周期最少為60 μs,最長(cháng)不超過(guò)120 μs。寫(xiě)周期一開(kāi)始作為主機先把總線(xiàn)拉低1μs表示寫(xiě)周期開(kāi)始。隨后若主機想寫(xiě)0,則繼續拉低電平最少60 μs直至寫(xiě)周期結束,然后釋放總線(xiàn)為高電平。若主機想寫(xiě)1,在一開(kāi)始拉低總線(xiàn)電平1 μs后就釋放總線(xiàn)為高電平,一直到寫(xiě)周期結束。而作為從機的DS18B20則在檢測到總線(xiàn)被拉低后等待15 μs,然后從15 μs到45 μs開(kāi)始對總線(xiàn)采樣,在采樣期內總線(xiàn)為高電平則為1,若采樣期內總線(xiàn)為低電平則為0。如圖4所示。

3.1.3 讀時(shí)序
對于讀數據操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)隙是從主機把單總線(xiàn)拉低之后,在1μs之后就得釋放單總線(xiàn)為高電平,以讓DS18B20把數據傳輸到單總線(xiàn)上。DS18B20在檢測到總線(xiàn)被拉低1 μs后,便開(kāi)始送出數據,若是要送出0就把總線(xiàn)拉為低電平直到讀周期結束。若要送出1則釋放總線(xiàn)為高電平。主機在一開(kāi)始拉低總線(xiàn)1μs后釋放總線(xiàn),然后在包括前面的拉低總線(xiàn)電平1μs在內的15 μs時(shí)間內完成對總線(xiàn)進(jìn)行采樣檢測,采樣期內總線(xiàn)為低電平則確認為0。采樣期內總線(xiàn)為高電平則確認為1。完成一個(gè)讀時(shí)序過(guò)程,至少需要60 μs才能完成。如圖5所示。

3.2 軟件程序設計
系統軟件設計采用模塊化設計方法,采用工程上使用比較普遍的C51語(yǔ)言編寫(xiě)程序。其中,采集溫度時(shí)要對多個(gè)DS18B20進(jìn)行操作,按照前面所述的操作時(shí)序,依照以下步驟對多個(gè)溫度傳感器進(jìn)行溫度采集:初始化;搜索ROM命令;匹配ROM命令;發(fā)送溫度轉換命令;讀取溫度值;判斷是否訪(fǎng)問(wèn)完畢;依次循環(huán)。系締程序流程圖如圖6所示。

4 結束語(yǔ)
本多路測溫儀系統實(shí)用性強,能很好地巡回采集多路溫度信息,并能及時(shí)傳送給上位機,具有速度快、精度高、易擴展等優(yōu)點(diǎn)。此系統所采用的傳感器全為數字化芯片,大大簡(jiǎn)化了結構,降低了成本。本系統可以應用于農業(yè)溫室大棚,可以實(shí)時(shí)監測植物生長(cháng)環(huán)境變化,也可以應用于工業(yè)車(chē)間,測量各部分工作環(huán)境溫度。結合此系統的設計思路,可以將傳感器修改為其它種類(lèi)的測量器件,采集不同種類(lèi)的物理量,具有很強的推廣價(jià)值。
評論