隨著現代信息技術的高速發展,數據采集方面的技術也在不斷地向前發展,并在信息技術中占有重要地位,是否及時準確采集數據以及數據是何方式采集都成為關注的焦點。隨著嵌入式技術的不斷發展,各種數據采集系統不斷應用于各個領域。溫度采集在智能家居、工業控制、智能農業等方面都應用。本溫度采集系統下位機采用STC89C52單片機為主控制器,采用DS18B20溫度傳感器采集溫度,上位機使用VB編寫程序,通過串口采集數據,存入Access數據庫,并實時在界面上顯示溫度變化曲線。
1 系統的整體設計
本溫度采集系統的總體框圖如圖1所示,系統下位機即單片機系統采用的是現成的開發板,開發板上自帶了DS18B20的溫度傳感器,開發板也自帶了能夠維持單片機正常工作的外圍電路;上位機用的Microsoft Visual Basic 6.0中文版集成開發環境和Microsoft Office Access 2003數據庫開發軟件。
2 上位機的設計與實現
上位機設計的主要重難點在于串口從下位機接收到數據和把數據送到數據庫里并把數據實時用曲線顯示出來。上位機總體設計流程圖如圖2所示。
從串口接收數據主要采用Mscomm32.ocx控件,在Microsoft Visual Basic 6.0中添加該控件,需要設置COM口(可修改)、波特率(9600)、數據位(8)、停止位(1)、校驗位(0)等,通過OnComm()事件驅動方式接收數據。
數據庫采用的是Microsoft Office Access 2003,先要建立數據庫,建立的數據庫如圖3所示,有4個字段,分別是編號、溫度、采集日期、采集時間,數據類型對應的為自動編號、數字、文本、文本。
在Microsoft Visual Basic 6.0中編程對數據庫Access進行操作,首先連接數據源,然后打開數據庫并設置相應的數據操作,接著更新數據庫,最后關閉數據庫,在實際的操作中通過控件Adodc與控件Datagrid連接,以實現數據源與界面顯示相聯系。
2.1 主要設計步驟
1)先在VB開發環境下新建一個EXE工程,然后再在窗體上安放一些必須的控件,如按鈕(Command)控件、文本框(Textbox)等;
2)在添加部件里添加Microsoft conmm control 6.0、Microsoft datagrid control 6.0和Microsoft ADO data control 6.0在這3個控件;
3)在數據庫軟件中新建數據庫,并新建一個表temp;
4)連接數據庫Access,并測試是否連接成功;
5)通過Adodc與Datagrid連接起來,實現數據源與界面顯示聯系起來;
6)通過Command按鈕與數據庫的查找、刪除、修改和添加聯系起來,能夠實現相應的功能;
7)通過picturebox控件實現繪圖的功能;
8)使串口數據與數據庫和picturebox控件連接起來。
2.2 上位機程序設計(程序段)
2.2.1 串口處理程序
2.2.2 將數據寫到數據庫中
3 下位機的設計與實現
3.1 下位機硬件以及原理
溫度采集系統下位機采用STC89C52單片機為主控制器,采用DS18B20溫度傳感器采集溫度,硬件電路圖如圖4所示。
STC89C52單片機具有:
1)它是MCS-51系列單片機的派生產品,在指令系統、硬件結構和片內資源上與標準8052單片機完全兼容,DIP40封裝系列與8051兼容均為Pin-to-Pin,使用時容易掌握;
2)高速(最高時鐘頻率90 MHz)、低功耗、價格低、穩定可靠、應用廣泛、通用性強,在系統/在應用可編程(ISP,IAP),不占用戶資源。本系統利用STC89C52單片機的1個中斷,2個定時器以及P0~P3 4個端口。采用外部11.059 2 MHz晶振,并使用30 pF的電容接地,以提高系統的穩定性和可靠性。
DS18B20具有:1)只要求一個I/O口即可實現通信;2)在DS18B20中的每個器件上都有獨一無二的序列號;3)實際應用中不需要外部任何元器件即可實現測溫;4)測量溫度范圍在-55~125℃之間;5)數字溫度計的分辨率用戶可以從9位到12位選擇;6)內部有溫度上、下限告警設置。
DS18B20的使用方法:DS18B20采用的是1—Wire總線協議方式,而對單片機STC89C52來說,我們必須采用軟件的方法來模擬單總線的協議時序來完成對DS18B20芯片的訪問。由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。
3.2 軟件設計
軟件設計重點是把溫度采集回來并正確的采集回來的溫度通過串口發送出去,軟件設計流程圖如圖5所示。
軟件開始初始化各種端口以及定時器、串口等,在判斷是否有中斷產生,如果接收到X,則開始發送數據,如果接收到字符S,則停止發送數據,否則判斷是否到達0.5 s的間隔,如果達到,開始采集溫度并將數據發送出去,否則繼續判斷是否有中斷產生。
4 測試結果
圖6為本溫度采集系統的實際運行的效果圖。
5 結論與前景
本溫度采集系統通過單片機能夠采集到DS18B20溫度傳感器采集到的數據,并用串口實時的傳送到上位機;上位機有實時接收數據的能力,并將實時接收到的數據存入Access數據庫里;能夠實時地把溫度曲線顯示到界面上;數據庫具有編號、日期、時間以及溫度4個屬性;數據庫具有查找、修改、刪除、添加以及查找首記錄、下一條記錄、上一條記錄和末記錄的功能;能夠記錄開始時間、結束時間和時間差;顯示當前時間和日期。
責任編輯:gt
-
單片機
+關注
關注
6035文章
44554瀏覽量
634697 -
溫度傳感器
+關注
關注
48文章
2940瀏覽量
156027 -
控制器
+關注
關注
112文章
16335瀏覽量
177818
發布評論請先 登錄
相關推薦
評論