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

基于VB與單片機的溫度測控系統(tǒng)設(shè)計

2010-04-12 00:00:00吳愛萍
現(xiàn)代電子技術(shù) 2010年8期

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

關(guān)鍵詞:PC機; 單片機; MSComm控件; 串行通信

中圖分類號:TP274文獻標(biāo)識碼: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 引 言

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

1 數(shù)據(jù)采集系統(tǒng)的硬件基礎(chǔ)

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

由于上下位機串行口工作電平不一致,它們之間通過MAX232芯片將單片機TTL電平轉(zhuǎn)換為RS 232電平,構(gòu)成如圖1所示的系統(tǒng)結(jié)構(gòu)框圖。

圖1 溫度檢測系統(tǒng)結(jié)構(gòu)框圖

2 VB環(huán)境下串行通信的實現(xiàn)方法

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

2.1 MSComm控件簡介[7]

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

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

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

(3) Portopen屬性用于設(shè)置或返回通信串口的狀態(tài)(開或關(guān))。Portopen屬性為Boolean類型,當(dāng)值為True時,表示打開串口;當(dāng)值為False時,表示關(guān)閉串口,并清空接收和發(fā)送緩沖區(qū)。

(4) Input屬性用于從接收緩沖區(qū)讀取數(shù)據(jù)。

(5) Output屬性用于向發(fā)送緩沖區(qū)寫入數(shù)據(jù)。

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

2.2 上位機程序設(shè)計

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

圖2 上位機程序流程圖

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

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

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

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

2.3 串口通信初始化程序

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

MSComm1.CommPort = 1′使用COM1串口

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

無奇偶校驗,8位數(shù)據(jù),1位停止位

MSComm1.OutBufferCount = 0′清空發(fā)送緩沖區(qū)

MSComm1.InBufferCount = 0′清空接收緩沖區(qū)

MSComm1.PortOpen = True′打開串口

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

MSComm1.InputLen = 0′Input屬性一次讀取緩沖區(qū)內(nèi)全部數(shù)據(jù)

2.4 上位機通信程序

該程序由數(shù)據(jù)發(fā)送(聯(lián)絡(luò)信號)和數(shù)據(jù)接收組成。兩部分程序分別寫在對應(yīng)的命令按鈕“開始聯(lián)絡(luò)”、“接收數(shù)據(jù)”的Click事件下。具體程序代碼如下:

上位機發(fā)送命令程序:

Private Sub cmdstart_Click()

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

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

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

buf = MSComm1.Input′清空輸入緩沖區(qū)

MSComm1.Output = outdata′將聯(lián)絡(luò)信號AA送至輸出緩沖區(qū)

End Sub

上位機數(shù)據(jù)接收程序:

Private Sub cmdreceive_Click()

Dim inbuf() As Byte′定義字節(jié)型動態(tài)數(shù)組接收數(shù)據(jù)

inbuf = MSComm1.Input′接收輸入緩沖區(qū)的數(shù)據(jù)

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

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

For i = 0 To num′給數(shù)組賦值

indata(i) = inbuf(i)

Next i

For j = 0 To num′將數(shù)據(jù)送MSFlexGrid顯示

MSFlexGrid1.Col = 0

MSFlexGrid1.Row = j + 1

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

Next j

End Sub

3 下位機通信軟件設(shè)計

下位機程序包括初始化部分、數(shù)據(jù)采集和接收聯(lián)絡(luò)信號部分、數(shù)據(jù)發(fā)送部分。

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

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

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

3.1 接收上位機命令程序

接收上位機命令程序:

REV_WAIT:

JBC RI,REV;等待上位機聯(lián)絡(luò)信號

SJMP REV_WAIT;無聯(lián)絡(luò)則繼續(xù)等待

REV:

MOV A,SBUF;獲取聯(lián)絡(luò)信號

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

JNZ REV_WAIT;不是AA則繼續(xù)等待

3.2 數(shù)據(jù)發(fā)送程序

數(shù)據(jù)發(fā)送程序:

SEND:

MOV R1,#30H; R1指向緩存區(qū)首址

MOV R6,#14H;R6為計數(shù)器

SEND_BEG:

MOV A,@R1;發(fā)送一個數(shù)據(jù)字節(jié)

MOV SBUF,A

INC R1;修改緩存區(qū)地址

SEND_WAIT:

JBC TI,SEND_LOOP;判斷該字節(jié)的數(shù)據(jù)是否發(fā)完

SJMP SEND_WAIT;未發(fā)完則繼續(xù)等待

SEND_LOOP:

DJNZ R6,SEND_BEG;計數(shù)器減1不為0則繼續(xù)發(fā)送數(shù)據(jù)

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

4 結(jié) 語

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

參考文獻

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

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

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

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 福利在线不卡| 91网红精品在线观看| 亚洲天堂2014| 亚洲乱强伦| 中文纯内无码H| 久久国产高清视频| 日韩高清欧美| 国产一级毛片yw| 亚洲第一精品福利| 在线无码av一区二区三区| 亚洲第一精品福利| 亚洲欧美成人在线视频| 日韩精品无码免费专网站| 中文字幕人妻av一区二区| av无码一区二区三区在线| 国产综合色在线视频播放线视| 中文字幕乱码中文乱码51精品| 亚洲欧州色色免费AV| 亚洲va视频| 久草网视频在线| 97狠狠操| 久草网视频在线| 国产欧美精品一区aⅴ影院| 成人小视频网| 亚洲无码高清免费视频亚洲| 欧美人与牲动交a欧美精品 | 成年av福利永久免费观看| 亚洲国产精品日韩欧美一区| 久草视频中文| 美女一区二区在线观看| 国产尤物jk自慰制服喷水| 日本高清有码人妻| 国产精品区视频中文字幕| 久久亚洲国产最新网站| 99视频精品在线观看| 无码综合天天久久综合网| 一级一级一片免费| 国产特一级毛片| jizz在线免费播放| 呦女精品网站| 国产精品久久久久无码网站| 国产女人18毛片水真多1| 538国产视频| 日本日韩欧美| 中文字幕调教一区二区视频| 亚洲精品爱草草视频在线| 久久香蕉国产线看精品| 五月婷婷激情四射| 欧美综合中文字幕久久| 国产自在线拍| 欧美成人免费| 亚洲精品亚洲人成在线| 亚洲 欧美 日韩综合一区| 99成人在线观看| 色亚洲激情综合精品无码视频| 国产精品午夜福利麻豆| 成人午夜福利视频| 国模粉嫩小泬视频在线观看| 日韩区欧美国产区在线观看| 露脸一二三区国语对白| 久草热视频在线| 日韩av无码精品专区| 好吊妞欧美视频免费| 亚洲成网777777国产精品| 九九精品在线观看| 中文字幕丝袜一区二区| 国产精品分类视频分类一区| 免费毛片视频| 999福利激情视频| 国产色爱av资源综合区| 久久男人资源站| 亚洲国产天堂在线观看| 久青草免费在线视频| 国产福利一区二区在线观看| 天天做天天爱夜夜爽毛片毛片| 国产99视频精品免费视频7| 中文字幕天无码久久精品视频免费 | 热久久综合这里只有精品电影| 尤物视频一区| 久久精品国产免费观看频道| 综合色区亚洲熟妇在线| 丁香婷婷久久|