基于單片機的多路測溫儀系統(tǒng)設(shè)計
摘要:提出了基于AT89S51單片機和數(shù)字溫度傳感器DS18B20組成的多路溫度檢測系統(tǒng),介紹了主要元器件的工作原理,詳細給出了硬件設(shè)計過程和軟件程序流程圖。此系統(tǒng)穩(wěn)定性強、檢測精準度高、價格低廉,在自動控制領(lǐng)域具有廣闊的應(yīng)用前景。
本文引用地址:http://butianyuan.cn/article/201610/309049.htm0 引言
溫度檢測與控制技術(shù)在現(xiàn)階段的工業(yè)、農(nóng)業(yè)和居民日常生活中都具有廣泛的應(yīng)用。精確的溫度檢測和準確的溫度控制是保證各類生產(chǎn)順利開展以及居民生活方便快捷的基本條件。系統(tǒng)采用AT89S51單片機作為控制器,可靠性高、體積小、價格低廉;采用DS18B20作為多路溫度采集的傳感器,電路簡單、測量精度高、穩(wěn)定性好。
1 系統(tǒng)總體設(shè)計方案
整個多路溫度檢測系統(tǒng)如圖1所示,主要由計算機控制系統(tǒng)(上位機)、單片機測控系統(tǒng)(下位機)、多路溫度傳感器、功能模塊系統(tǒng)等部分組成。本系統(tǒng)在需要對溫度監(jiān)控與測量的地方放置數(shù)字溫度傳感器,通過單總線將若干個溫度傳感器連接在一起。單片機按照單總線協(xié)議對各個傳感器進行控制并采集溫度信息,同時通過串口與上位機進行通信,同時單片機測控系統(tǒng)還可以增加顯示電路部分、按鍵設(shè)置部分、數(shù)據(jù)存儲部分等,可以在現(xiàn)場進行參數(shù)的顯示與設(shè)置。上位機系統(tǒng)通過串口接收下位機上傳的數(shù)據(jù),通過上位機軟件進行實施顯示與控制。
2 系統(tǒng)硬件原理設(shè)計
2.1 主控電路設(shè)計
多路溫度檢測系統(tǒng)的主控電路采用的是現(xiàn)階段廣泛使用的AF89S51單片機作為核心控制芯片。該芯片為低功耗、高性能的8位單片機,片內(nèi)有4KB可系統(tǒng)編程的Flash程序存儲器,既可使用常規(guī)編程器也可在系統(tǒng)編程(ISP),片內(nèi)有128B數(shù)據(jù)存儲器,兼容標準8051指令系統(tǒng)及引腳,4.0~5.5V工作電壓范圍,全靜態(tài)工作模式0Hz~33MHz,有低功耗空閑和掉電工作模式,看門狗及雙數(shù)據(jù)指針。AT89S51單片機包括兩個最基本電路:時鐘電路與復(fù)位電路。本系統(tǒng)通過MAX232芯片與上位機RS-232串口連接。
2.2 顯示電路設(shè)計
顯示電路采用可以采用數(shù)碼管顯示和液晶顯示兩種方案。數(shù)碼管顯示的特點是顯示亮度高、編程操作簡單、成本低,但顯示信息少、功耗大,如采用動態(tài)掃描占用CPU資源多,而液晶顯示可以顯示更多的信息,同時耗電量低,硬件接口也較為簡單,本系統(tǒng)采用液晶顯示模式,使用市場上常見的LCD1602液晶,P0口進行數(shù)據(jù)傳輸,P2口連接液晶的RS、RW、EN三個引腳。
2.3 按鍵電路設(shè)計
本系統(tǒng)按鍵采用觸點式機械按鍵,由于其造價低、控制簡單,普遍應(yīng)用于電子產(chǎn)品中。按鍵與單片機接口采用非編碼矩陣鍵盤,可以通過P1口的8個引腳連接4×4矩陣鍵盤,方便輸入0~9數(shù)字以及其它功能鍵。
2.4 數(shù)據(jù)存儲電路設(shè)計
數(shù)據(jù)存儲芯片采用ATMEL公司AT24系列的2線串行EEPROM芯片,它是低功耗CMOS存儲器,具有工作電壓寬、擦寫次數(shù)多、寫入速度快等特點。存儲芯片與單片機相連時,只需占用單片機的兩個I/O端口線作為數(shù)據(jù)線和時鐘線,如果只連接一片芯片,只需將地址線接地即可。
2.5 單總線溫度傳感器
溫度傳感器采用市場上應(yīng)用廣泛、接口簡單的DS18B20溫度傳感器,其特點是采用單總線的接口方式,與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊;測量溫度范圍寬、測量精度高,DS18B20的測量范圍為-55℃~+125℃;多個DS18B20可以并聯(lián)在一條單線上,實現(xiàn)多點測溫;內(nèi)置A/D轉(zhuǎn)換器,直接輸出9~12位被測溫度值。本系統(tǒng)所有DS18B20的DQ引腳并連在一個I/O端口上,外接一個4.7~10kΩ的上拉電阻。
系統(tǒng)硬件原理圖如圖2所示。
3 系統(tǒng)軟件程序設(shè)計
數(shù)字溫度傳感器DS18B20是采用由一條數(shù)據(jù)線實現(xiàn)數(shù)據(jù)雙向傳輸?shù)膯慰偩€協(xié)議方式。該協(xié)議定義了三種通信時序:初始化時序、讀時序、寫時序。而AT89S51單片機在硬件上并不支持單總線協(xié)議,因此必須采用軟件方式模擬單總線協(xié)議時序來完成與DS18B20間的通信。
3.1 單總線協(xié)議
單總線協(xié)議的所有時序都是將主機作為主設(shè)備,單總線器件作為從設(shè)備。每次命令和數(shù)據(jù)的傳輸都是從主機主動寫時序開始,如果要求單總線器件傳輸數(shù)據(jù),則在進行寫命令之后,主機啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是以低位在先的串行方式進行。
3.1.1 初始化時序
主機首先發(fā)出一個480~960μs的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480 μs時間內(nèi)對總線進行檢測,如果有低電平出現(xiàn),說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平,說明總線上無器件應(yīng)答。如圖3所示。
3.1.2 寫時序
寫周期最少為60 μs,最長不超過120 μs。寫周期一開始作為主機先把總線拉低1μs表示寫周期開始。隨后若主機想寫0,則繼續(xù)拉低電平最少60 μs直至寫周期結(jié)束,然后釋放總線為高電平。若主機想寫1,在一開始拉低總線電平1 μs后就釋放總線為高電平,一直到寫周期結(jié)束。而作為從機的DS18B20則在檢測到總線被拉低后等待15 μs,然后從15 μs到45 μs開始對總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。如圖4所示。
3.1.3 讀時序
對于讀數(shù)據(jù)操作時序也分為讀0時序和讀1時序兩個過程。讀時隙是從主機把單總線拉低之后,在1μs之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測到總線被拉低1 μs后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機在一開始拉低總線1μs后釋放總線,然后在包括前面的拉低總線電平1μs在內(nèi)的15 μs時間內(nèi)完成對總線進行采樣檢測,采樣期內(nèi)總線為低電平則確認為0。采樣期內(nèi)總線為高電平則確認為1。完成一個讀時序過程,至少需要60 μs才能完成。如圖5所示。
3.2 軟件程序設(shè)計
系統(tǒng)軟件設(shè)計采用模塊化設(shè)計方法,采用工程上使用比較普遍的C51語言編寫程序。其中,采集溫度時要對多個DS18B20進行操作,按照前面所述的操作時序,依照以下步驟對多個溫度傳感器進行溫度采集:初始化;搜索ROM命令;匹配ROM命令;發(fā)送溫度轉(zhuǎn)換命令;讀取溫度值;判斷是否訪問完畢;依次循環(huán)。系締程序流程圖如圖6所示。
4 結(jié)束語
本多路測溫儀系統(tǒng)實用性強,能很好地巡回采集多路溫度信息,并能及時傳送給上位機,具有速度快、精度高、易擴展等優(yōu)點。此系統(tǒng)所采用的傳感器全為數(shù)字化芯片,大大簡化了結(jié)構(gòu),降低了成本。本系統(tǒng)可以應(yīng)用于農(nóng)業(yè)溫室大棚,可以實時監(jiān)測植物生長環(huán)境變化,也可以應(yīng)用于工業(yè)車間,測量各部分工作環(huán)境溫度。結(jié)合此系統(tǒng)的設(shè)計思路,可以將傳感器修改為其它種類的測量器件,采集不同種類的物理量,具有很強的推廣價值。
評論