999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VB與單片機的溫度測控系統設計

2010-04-12 00:00:00吳愛萍
現代電子技術 2010年8期

摘 要:介紹基于PC機和單片機溫度測控系統的設計方案。上位PC機利用VB 6.0中的MSComm通信控件發送控制命令和接收數據與處理,用戶界面友好。下位AT89S51單片機進行實時數據的采樣并發送給上位機,用匯編語言編寫程序。現場通信試驗表明,該系統通信可靠,對提高工控領域的自動化水平有積極作用。

關鍵詞:PC機; 單片機; MSComm控件; 串行通信

中圖分類號:TP274文獻標識碼:B

文章編號:1004-373X(2010)08-0208-03

Design of Temperature Monitoring SystemBased on VB and Single Chip Microcomputer

WU Ai-ping

(School of Automation, Nanjing Institute of Technology, Nanjing 211100, China)

Abstract:The design of the temperature monitoring system based on PC and single chip microcomputer is presented. The transmission of control commands and the data reception and processing are performed in the upper computer by using the MSComm communication control component in VB6. 0. The user′s interface is good. The real-time data is collected and transmitted to the upper computer by the lower computer AT89S51 which is controlled by assembler language. Communication experimentation in spot shows this monitoring system is reliable. This system has active significance to improve automatization level of industry field.

Keywords:PC; single chip microcomputer; MSComm control component; serial communication

0 引 言

在現代測控系統中,由于PC機具有強大的數據處理能力和良好的用戶交互界面,單片機具有較強的現場抗干擾能力及良好的性價比[1],因此以PC機為上位機實施用戶控制和以單片機為下位機進行實時數據采集的分布式智能化控制系統無疑具有很好的應用前景[2]。本文中單片機實現了溫度檢測,具有較好的實時性;PC機完成了數據顯示、存儲及統計分析,繪制了實時溫度曲線,并對系統目前所處狀況做出了評判。兩者之間以串行口進行通信聯絡。

1 數據采集系統的硬件基礎

該系統的下位機選擇Atmel公司的AT89S51單片機作為控制核心,負責采集現場溫度值。溫度傳感器將溫度轉換為電壓信號,經模/數轉換器ADC0809轉換成8位數字量,并經AT89S51的P1口進入單片機保存。上位PC機通過串行口與下位機聯絡,向下位機發送控制命令和接收下位機上傳的數據以及進行人機交互。上位機采用VB 6.0進行人機交互界面設計,并利用其MSComm控件實現與下位機簡單而高效的串行通信。充分發揮了單片機在實時數據采集和PC機對圖形處理、顯示以及數據庫管理上的優點[3],使得單片機的應用已不僅僅局限于傳統意義上的自動監測或控制,而是形成了以網絡為核心的分布式多點系統的發展趨勢[4]。

由于上下位機串行口工作電平不一致,它們之間通過MAX232芯片將單片機TTL電平轉換為RS 232電平,構成如圖1所示的系統結構框圖。

圖1 溫度檢測系統結構框圖

2 VB環境下串行通信的實現方法

VB可視化界面的設計風格具有簡單、易學、高效的特點,已成為眾多開發人員采用的工具,且被廣泛應用到各個領域[5]。VB的MSComm通信控件,只需用戶編寫少量的程序代碼即可完成通信軟件的開發過程[6]。

2.1 MSComm控件簡介[7]

MSComm控件是Microsoft公司提供的串行通信ActiveX控件,MSComm控件通過串行口發送和接收數據,為應用程序提供串行通信功能。MSComm通信控件的主要屬性如下:

(1) CommPort屬性用于設置或返回通信連接端口。在設計時,CommPort屬性值可以設置成從1~16的任何數(缺省值為1)。

(2) Settings屬性用于設置初始化參數。以字符串的形式設置或返回聯機速率、奇偶校驗、數據位、停止位等4個參數。其格式為:“BBBB,P,D,S”。其中,BBBB表示聯機速率;P表示奇偶校驗位檢查方式;D表示數據位數;S表示停止位數。該系統設其為“9600,N,8,1”。

(3) Portopen屬性用于設置或返回通信串口的狀態(開或關)。Portopen屬性為Boolean類型,當值為True時,表示打開串口;當值為False時,表示關閉串口,并清空接收和發送緩沖區。

(4) Input屬性用于從接收緩沖區讀取數據。

(5) Output屬性用于向發送緩沖區寫入數據。

(6) InputMode屬性用于讀取或設置從接收緩沖區讀取數據的格式,當InputMode=0時,數據以文字形式讀取;當InputMode=1時,數據以二進制形式讀取。

2.2 上位機程序設計

上位機主要負責發送控制命令,以及數據的接收、處理、計算、數據的顯示等功能。上位機程序分為四個部分:界面設計、程序初始化、數據通信、數據處理。程序流程如圖2所示。

圖2 上位機程序流程圖

主操作界面主要分為四個組成部分,如圖3所示。為使界面清晰明了,用frame控件將其隔開。

其中,溫度界限部分主要用來顯示用戶自己設定的溫度上下限;數據接收部分采用外部控件MSFlexGrid來顯示已經接收過來的數據;統計計算部分用來顯示對數據分析后的結果,如最大值、最小值、平均值等,最后對當前系統狀況作出綜合評判;溫度曲線部分顯示當前所有溫度的變化情況,每個溫度值對應曲線突出的一點,其中兩條虛線內的點代表溫度值在界限范圍內,兩條虛線外的兩個點則表示該溫度值超出了界限范圍。

圖3 用戶操作界面及運行實例圖

進入主界面后,用戶首先單擊“開始聯絡”,此時上位機會向下位機發出聯絡信號,下位機受到預先設定的聯絡信號后,會將數據發送過來;然后單擊“接收數據”命令,此時會在MSFlexGrid控件中按先后順序依次顯示接收到的數據;在進行數據處理之前,用戶可根據自身需求進行溫度界限的設定,僅單擊“界限設置”命令即可實現;最后進行數據處理,單擊相應命令按鈕后,會在界面繪出當前溫度曲線,并計算出各種統計參數。

2.3 串口通信初始化程序

該程序主要用于對數據緩沖區以及串口部分的初始化,如串口的選擇、串口的數據格式等。這部分程序的代碼如下:

MSComm1.CommPort = 1′使用COM1串口

MSComm1.Settings = \"9600,n,8,1\" ′定義串口數據格式:波特率9 600 b/s,

無奇偶校驗,8位數據,1位停止位

MSComm1.OutBufferCount = 0′清空發送緩沖區

MSComm1.InBufferCount = 0′清空接收緩沖區

MSComm1.PortOpen = True′打開串口

MSComm1.InputMode = 1′通過Input屬性以二進制形式取回數據

MSComm1.InputLen = 0′Input屬性一次讀取緩沖區內全部數據

2.4 上位機通信程序

該程序由數據發送(聯絡信號)和數據接收組成。兩部分程序分別寫在對應的命令按鈕“開始聯絡”、“接收數據”的Click事件下。具體程序代碼如下:

上位機發送命令程序:

Private Sub cmdstart_Click()

Dim outdata(1) As Byte′定義一個字節型數組outdata

outdata(1) = HAA′給其賦值16進制數AA

buf = \" \"′定義字符串變量buf,初始化為空串

buf = MSComm1.Input′清空輸入緩沖區

MSComm1.Output = outdata′將聯絡信號AA送至輸出緩沖區

End Sub

上位機數據接收程序:

Private Sub cmdreceive_Click()

Dim inbuf() As Byte′定義字節型動態數組接收數據

inbuf = MSComm1.Input′接收輸入緩沖區的數據

num = UBound(inbuf)′求數組上界

ReDim indata(0 To num) As Integer′定義相同長度的整型數組,顯示后為十進制數

For i = 0 To num′給數組賦值

indata(i) = inbuf(i)

Next i

For j = 0 To num′將數據送MSFlexGrid顯示

MSFlexGrid1.Col = 0

MSFlexGrid1.Row = j + 1

MSFlexGrid1.Text = FormatMYM(indata(j),\"0.0\")

Next j

End Sub

3 下位機通信軟件設計

下位機程序包括初始化部分、數據采集和接收聯絡信號部分、數據發送部分。

AT89S51單片機串行通信由定時器Tl作為波特率發生器,其波特率與PC機一致。數據的傳送格式為8位數據位和1位停止位。采用查詢方式發送和接收數據,定時器T1設置為工作模式2,串行口設置為工作方式1[8]。

該設計將通信速率設置為9 600 b/s,SMOD=0,單片機晶振頻率為11.059 2 MHz,此時定時器T1的初值應被設為:

X=256-11.059 2×106×(SMOM+1)384×9 600=253=FDH

3.1 接收上位機命令程序

接收上位機命令程序:

REV_WAIT:

JBC RI,REV;等待上位機聯絡信號

SJMP REV_WAIT;無聯絡則繼續等待

REV:

MOV A,SBUF;獲取聯絡信號

XRL A,#0AAH;與AA相比較

JNZ REV_WAIT;不是AA則繼續等待

3.2 數據發送程序

數據發送程序:

SEND:

MOV R1,#30H; R1指向緩存區首址

MOV R6,#14H;R6為計數器

SEND_BEG:

MOV A,@R1;發送一個數據字節

MOV SBUF,A

INC R1;修改緩存區地址

SEND_WAIT:

JBC TI,SEND_LOOP;判斷該字節的數據是否發完

SJMP SEND_WAIT;未發完則繼續等待

SEND_LOOP:

DJNZ R6,SEND_BEG;計數器減1不為0則繼續發送數據

JMP START;重新開始下一輪的通訊

4 結 語

單片機與上位機的通信在工業控制現場的應用比較廣泛[9],利用VB提供的通訊控件MSComm對上位機進行編程比使用API函數編程更簡單靈活[10]。本文通過具體實例分析了計算機與單片機之間的通信方法。調試結果證明,該方案切實可行,能夠確保通信的穩定,具有重要的現實意義。

參考文獻

[1]季華, 肖興明. 基于VB與單片機串行通訊的數據采集系統設計[J]. 煤炭工程, 2007(12): 134-136.

[2]張慧賢, 趙嚴峰. FP93溫控儀與計算機的串行通信[J]. 微計算機信息,2008, 24(27): 130-131.

[3]劉艷美. VB實現PC機與單片機(8051)的串行通訊[J]. 自動化技術與應用, 2007, 26(2): 94-96.

[4]肖漢敏, 馮毅. 串行通信在實時數據采集系統中的應用[J]. 微計算機信息, 2007, 23(13): 104-105.

[5]陳欣琳, 王海峰. PC機和MCS-51單片機之間的串行通信[J]. 中國科技信息, 2009(13): 86-87.

[6]董紅政, 王忠勇. 基于MSComm控件實現串行通信的方法[J]. 微計算機信息, 2007, 23(27):145-147.

[7]岳學軍, 陳珊. 基于單片機與串行通信的電子密碼鎖設計[J]. 云南農業大學學報, 2009(1):154-157.

[8]王勇, 葉敦苑. 基于AT89S51的便攜式實時溫度監測儀[J]. 儀表技術與傳感器, 2006(4):15-26.

[9]魏慶濤. 單片機在爐溫控制中的應用[J]. 現代電子技術, 2006, 29(7): 119-120.

[10]徐志如, 崔繼仁. 基于單片機的溫度智能測控系統的設計[J]. 傳感器與微系統, 2006(5): 52-54.

作者簡介: 吳愛萍 女,1968年出生,碩士研究生,副教授。研究方向為智能控制及應用。

主站蜘蛛池模板: 呦系列视频一区二区三区| 国产成人一二三| 亚洲国产欧洲精品路线久久| 久久黄色影院| 91毛片网| 免费看a毛片| 国产视频a| 日韩欧美成人高清在线观看| 午夜福利网址| 99伊人精品| 国产精品亚洲精品爽爽| 91国内在线观看| 精品国产美女福到在线直播| 在线国产毛片手机小视频| 99精品福利视频| 久久综合九色综合97婷婷| 国产精品视频3p| 在线看AV天堂| 在线中文字幕网| 欧美色丁香| 自慰高潮喷白浆在线观看| 色噜噜综合网| 国产精品视频导航| 精品三级网站| 爱色欧美亚洲综合图区| 成人精品区| 国产小视频网站| 国产jizzjizz视频| 在线a视频免费观看| 青青青国产免费线在| 久久国产精品娇妻素人| 怡春院欧美一区二区三区免费| 亚洲国产理论片在线播放| 青青久久91| 91久久夜色精品国产网站| 一级毛片免费的| 青青热久免费精品视频6| 亚洲国产黄色| 成人日韩视频| 国产va视频| 亚洲综合二区| 亚洲欧美成人综合| 午夜限制老子影院888| 一级毛片在线播放免费| 欧美不卡视频在线| 激情无码字幕综合| 欧美日本视频在线观看| 日韩精品久久无码中文字幕色欲| 久久semm亚洲国产| 欧美久久网| 国产91高清视频| 亚洲精品视频免费| 国产H片无码不卡在线视频| 国产麻豆永久视频| 亚洲色图另类| 午夜国产精品视频| 天天躁夜夜躁狠狠躁躁88| 日本AⅤ精品一区二区三区日| 中文成人在线视频| 亚洲成年人片| 久久精品国产国语对白| 久久夜色撩人精品国产| 国产成人综合亚洲欧美在| 国产91熟女高潮一区二区| 在线欧美国产| 亚洲啪啪网| 青青草国产精品久久久久| 福利一区三区| 99偷拍视频精品一区二区| 久久精品人妻中文视频| 99精品热视频这里只有精品7| 国产超碰在线观看| 国产色网站| 亚亚洲乱码一二三四区| 国产青青草视频| 日本午夜精品一本在线观看| 亚洲天堂伊人| 5555国产在线观看| 午夜在线不卡| 中文无码日韩精品| 免费A∨中文乱码专区| 一级毛片免费的|