田苗法
基于VB與PIC單片機實時溫度檢測系統設計與仿真
田苗法
(安徽機電職業技術學院,安徽 蕪湖 241000)
文章采用DS18b20作為溫度傳感器,將溫度信號轉變為電信號送給PIC單片機,再由單片機通過串口通信將溫度值送給PC機,并在VB界面中用實時動態曲線將溫度變化趨勢展示出來,通過PC機就可以直觀地監測被測對象的溫度及變化曲線。最后,通過電路仿真軟件proteus和虛擬串口軟件(Virtual Serial Port Driver)對該系統進行了仿真,驗證了該系統是正確的,并具有較強的實用性和現實意義。
VB;PIC單片機;溫度檢測系統;設計與仿真
本設計下位機采用16F877A單片機,該單片機內置USRT串口通信模塊,利用該模塊可以更方便地跟PC機進行通信,簡化了C程序代碼設計。利用DS18B20將溫度轉變為電信號,然后發給單片機,單片機對數據進行分析和計算等處理,通過串口將數據傳輸給PC機,在PC機與單片機之間要用電平轉換芯片MAX232進行電平轉換。在PC機上采用VB進行編程,在VB窗體上顯示溫度值并通過動態曲線實時顯示溫度的變化趨勢。圖1為該系統的數據流程圖。

圖1 數據流程示意圖
2.1PIC16F877A單片機
PIC16F877A單片機是美國Microchip公司生產的8位單片機,具有獨特的RISC結構,即數據總線和指令總線分離的哈佛結構,該結構具有執行效率高和速度快等優點[1]。另外,片內帶有EEPROM、A/D轉換器、USART通信模塊、MSSP通信模塊等,功能強大,可以簡化外圍硬件電路設計和程序設計。本次電路設計應用了其內部的USRT串口通信功能模塊,將溫度信號經過MAX232電平轉換后上傳給PC機。

圖2 PIC16F877A引腳示意圖
2.2 溫度傳感器DS18B20
DS18B20是DALLAS公司生產的單總線式數字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強等優點,特別適用于構成多點溫度測控系統,可直接溫度信號轉化成串行數字信號給單片機處理[2]。如圖3所示,它具有3個引腳,溫度測量范圍為-55~+125℃,測溫精度可達0.0625℃。單片機還可以用一根端口線與多個DS18B20通信,占用端口少,可節省大量的引線和邏輯電路。

圖3 DS18B20引腳示意圖
2.3電平轉換芯片MAX232
MAX232是美信公司專門為電腦的RS-232標準串口設計的單電源電平轉換芯片,使用+5v單電源供電。PC機是用正負電壓來表示邏輯狀態,與TTL以高低電平表示邏輯狀態的規定不同。因此,為了實現計算機與TTL器件連接,必須在RS-232電路 與TTL電路之間進行電平和邏輯關系的變換。目前廣泛使用集成電路轉換器件,MAX232芯片就是其中一種,可完成TTL與RS-232電路之間的雙向電平轉換。

圖4 MAX232引腳示意圖
3.1硬件電路設計
應用電路仿真軟件proteus對硬件電路進行了設計與仿真,圖5所示,其中DS18B20的數據線與單片機RB6端口連接,R1為該單總線的上拉電阻。COMPIM可以使proteus在仿真環境下的系統與實際物理環境直接交互,這種模型稱為物理接口模型(PIM),即Proteus中的電路通過COMPIM組件與PC機進行數據交換,但還需要安裝虛擬串口驅動軟件Virtual Serial Port Driver,簡稱VSPD,這個驅動軟件可以模擬出兩個虛擬串口,并將這個兩個串口連接。 在仿真環境下,COMPIM組件與單片機之間不接MAX232,但在實際電路設計中要串接接MAX232。

圖5 proteus電路設計圖與仿真
3.2系統軟件設計
該系統軟件設計包括下位機軟件設計和上位機軟件設計。
下位機采用C語言編程,通過mplab軟件和picc編譯器生成可執行文件,然后下載到單片機中。該程序實現了單片機與DS18B20進行通信,包括啟動DS18B20進行溫度轉換和讀取溫度值,并且把溫度值通過COMPIM組件發給上位機。編程中采用PIC單片機內置的USRT串口通信模塊,設置串口通信的波特率為9600,無奇偶校驗位和一個停止位[3]。
上位機采用VB語言編程,利用VB中提供的MSComm控件實現與Proteus進行數據交換。程序代碼如下:
Private Sub Form_Load()'串口通信初始化程序
MSComm1.CommPort = 1'選擇com1端口
MSComm1.InputLen = 0'設置input一次讀取緩沖區所有內容
MSComm1.InputMode = 1'設置以二進制形式讀取數據
MSComm1.InBufferCount = 0'清空接收緩沖區內容
MSComm1.InBufferSize = 1024'設置接收緩沖區空間大小為1024字節
MSComm 1.Settings = "9600,n,8,1"'設置波特率為9600,無奇偶校驗和1個停止位
MSComm 1.RThreshold = 1'每收到一個字節就產生中斷,觸發oncomm事件
MSComm1.PortOpen = True'打開通信端口
End Sub
Private Sub MSComm1_OnComm()'在文本框中顯示溫度值程序
inputdata = ms1.Input
For i = LBound(inputdata) To UBound(inputdata)
temp = temp & inputdata(i)
Next i
Text1.Text = temp & "℃"
End Sub
通過以上程序接收從單片機發過來的數據,再通過一個文本框將溫度值顯示在窗體上,并借助坐標系,將溫度變化曲線顯示出來,該曲線可以直觀地展示溫度的變化趨勢。如圖6所示:

圖6 VB窗體實時溫度變化曲線顯示
該系統實現了單片機與PC機之間通過串口進行數據交換,在PC機上直觀地顯示出溫度的實時變化曲線。通過對系統進行仿真與調試,證明該系統設計是正確的,具有較強的實用性,并且電路硬件接線簡單,測量精度高,溫度測量范圍廣泛,誤差較小,可廣泛應用于對溫度的檢測和控制等領域。
[1] 徐瑋,沈建良,莊建清.PIC單片機快速入門[M].北京:北京航空航天大學出版社,2010.
[2] 彭偉.單片機C語言程序設計實訓[M].北京:北京航空航天大學出版社,2010.
[3] 李學海.PIC單片機實用教程—提高篇[M].北京:北京航空航天大學出版社,2002.
Detection system’s design and simulation based on the real-time temperature of VB and PIC single chip microcomputer
By taking DS18b20 as a temperature sensor, temperature signals are transited into electric signal which firstly transited to PIC single chip microcomputer and then sent the temperature to PC through serial communication. In addition, this temperature variation trend can be reflected with real-time dynamic curve on VB interface. The temperature and its changing curves of monitored objects can be directly observed through PC. In the end, with circuit simulation software proteus and virtual serial port driver to simulate this system,it is verified that this system is correct and with strong practicability and practical significance.
VB; PIC single chip microcomputer; temperature detecting system; design and simulation
TP311
A
1008-1151(2016)02-0027-02
2016-01-10
田苗法(1984-),男,山東菏澤人,供職于安徽機電職業技術學院汽車工程系,研究方向為汽車電子與電控技術。