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