基于VB和Access的溫度采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3 下位機(jī)的設(shè)計(jì)與實(shí)現(xiàn)
3.1 下位機(jī)硬件以及原理
溫度采集系統(tǒng)下位機(jī)采用STC89C52單片機(jī)為主控制器,采用DS18B20溫度傳感器采集溫度,硬件電路圖如圖4所示。本文引用地址:http://butianyuan.cn/article/194986.htm
STC89C52單片機(jī)具有:
1)它是MCS-51系列單片機(jī)的派生產(chǎn)品,在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,DIP40封裝系列與8051兼容均為Pin-to-Pin,使用時(shí)容易掌握;
2)高速(最高時(shí)鐘頻率90 MHz)、低功耗、價(jià)格低、穩(wěn)定可靠、應(yīng)用廣泛、通用性強(qiáng),在系統(tǒng)/在應(yīng)用可編程(ISP,IAP),不占用戶資源。本系統(tǒng)利用STC89C52單片機(jī)的1個(gè)中斷,2個(gè)定時(shí)器以及P0~P3 4個(gè)端口。采用外部11.059 2 MHz晶振,并使用30 pF的電容接地,以提高系統(tǒng)的穩(wěn)定性和可靠性。
DS18B20具有:1)只要求一個(gè)I/O口即可實(shí)現(xiàn)通信;2)在DS18B20中的每個(gè)器件上都有獨(dú)一無二的序列號(hào);3)實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫;4)測量溫度范圍在-55~125℃之間;5)數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇;6)內(nèi)部有溫度上、下限告警設(shè)置。
DS18B20的使用方法:DS18B20采用的是1—Wire總線協(xié)議方式,而對(duì)單片機(jī)STC89C52來說,我們必須采用軟件的方法來模擬單總線的協(xié)議時(shí)序來完成對(duì)DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對(duì)讀寫的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫時(shí)序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。
3.2 軟件設(shè)計(jì)
軟件設(shè)計(jì)重點(diǎn)是把溫度采集回來并正確的采集回來的溫度通過串口發(fā)送出去,軟件設(shè)計(jì)流程圖如圖5所示。
軟件開始初始化各種端口以及定時(shí)器、串口等,在判斷是否有中斷產(chǎn)生,如果接收到X,則開始發(fā)送數(shù)據(jù),如果接收到字符S,則停止發(fā)送數(shù)據(jù),否則判斷是否到達(dá)0.5 s的間隔,如果達(dá)到,開始采集溫度并將數(shù)據(jù)發(fā)送出去,否則繼續(xù)判斷是否有中斷產(chǎn)生。
4 測試結(jié)果
圖6為本溫度采集系統(tǒng)的實(shí)際運(yùn)行的效果圖。
5 結(jié)論與前景
本溫度采集系統(tǒng)通過單片機(jī)能夠采集到DS18B20溫度傳感器采集到的數(shù)據(jù),并用串口實(shí)時(shí)的傳送到上位機(jī);上位機(jī)有實(shí)時(shí)接收數(shù)據(jù)的能力,并將實(shí)時(shí)接收到的數(shù)據(jù)存入Access數(shù)據(jù)庫里;能夠?qū)崟r(shí)地把溫度曲線顯示到界面上;數(shù)據(jù)庫具有編號(hào)、日期、時(shí)間以及溫度4個(gè)屬性;數(shù)據(jù)庫具有查找、修改、刪除、添加以及查找首記錄、下一條記錄、上一條記錄和末記錄的功能;能夠記錄開始時(shí)間、結(jié)束時(shí)間和時(shí)間差;顯示當(dāng)前時(shí)間和日期。
評(píng)論