用VB實現多點測溫管理軟件系統_第1頁
用VB實現多點測溫管理軟件系統_第2頁
用VB實現多點測溫管理軟件系統_第3頁
用VB實現多點測溫管理軟件系統_第4頁
用VB實現多點測溫管理軟件系統_第5頁
已閱讀5頁,還剩45頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

摘要本文討論了單片機與PC機的串口,通過指令和數據的傳送來實現控制功能,并利用VB提供的MSComm通信控件非常方便地編寫了Windows環境下的串口通信程序,且結合實例給出了具體說明。上位機監控管理軟件采用VB編制,用戶可以通過向通訊控制總站發送命令,提取下位機溫濕度數據,完成溫度檢測。文中給出了通信協議設計,硬件設計和軟件設計。協議中有6種通信命令,適用于各種數據交換。硬件方面設計了時鐘電路和波特率配置。軟件方面完成了中斷子程序、數據交換子程序和上位機串行通訊程序的設計、編寫和調試??傮w說來,本系統上位機軟件功能齊全,系統實用性強,成本低,數據傳輸率高,容量大,可靠性好。它不僅可以應用于糧庫的監控管理,而且也可推廣到其他監控領域,因此具有廣泛的應用前景。關鍵詞:VisualBasic6.0;單片機;溫度曲線;串行通信;MSComm控件AbstractThispaperdiscussedmicrocontrollerandclustersofmouthofPCrealizecontrollingfunctionthroughorderandconveyanceofdatum,Exploito~redbyVBMSCommcommunicationcontrollingpartcanwriteWindowsbunchesofmouthfulsofcommunicationprocedureofenvironmentconvenientlyverymuch.Combineinstanceprovideconcretetoprove.ThesoftwareformasterisprogrammedwithVB,andcustomerscansendcommandstothestationtoobtainthetemperaturedataofgranary.Thepaperdesignstheserialcommunicationprotocol,thehardwareandsoftware,Therearesixcommandsthatcanapplyallkindsofdataexchangeintheserialcommunicationprotocol,Inthehardware,theclockcircuitisdesigned,andthebaudrateisconfigured.Inthesoftware,theprograms,suchastheinterruptionsubroutine,dataexchangesubroutineandthehostserialcommunicationsubroutine,aredesigned,compiledanddebugged.Inaword,thissystempossessesthemeritofpracticability,hightechnology,lowcost,highspeedandlongdistanceindatatransmittingandhighreliability.Itcanbeusednotonlyingranarymanagementbutothermonitormanagementsystem.Ithasbroadapplicationpotentialityandgreatmeaning.Keywords:VisualBasic6.0;microcontroller;temperaturecurve;serialcommunication;controllingpartofMSComm目錄TOC\o"1-5"\h\z\o"CurrentDocument"1 緒論 1\o"CurrentDocument"2 系統硬件簡介 2單片機技術簡介 2單片機技術的發展 2單片機技術的應用 2課題研究的目的和意義 4主控單片機的選擇 4熱電阻測量模塊 4\o"CurrentDocument"通信部分 5\o"CurrentDocument"3 系統上位機軟件設計 6\o"CurrentDocument"VisualBasic功能簡介和發展 6VB基本概念與VB編程環境 8VB的基本概念 8VB6.0的集成開發環境簡介 103.2.3利用VB開發應用程序的一般步驟 123.3設計中VB6.0所采用的控件 13SSTab控件的功能 13MSComm控件特點 13MSComm控件的介紹 133.4上位PC機VB通信程序設計串行通信程序設計方法 143.4.1上位機PC機端通訊軟件的實現 15溫度數據上傳部分 16VB編程程序 16\o"CurrentDocument"4 系統調試 24\o"CurrentDocument"結論 26致謝 27\o"CurrentDocument"參考文獻 28附錄 29附錄A 29部分程序清單 29附錄B 34英文原文 341緒論隨著電子技術、計算機技術、通信技術的迅速發展,工業測控領域采用先進的技術對現場的工業生產參數進行檢測、監測是實現工業自動化的重要標志。目前,多點溫度檢測技術在現代化工農業領域得到廣泛的應用,如糧庫、程控交換機室、大型溫室等場合都需要大范圍集散分布監測點對溫度進行監控。近年來單線多點數字化測量技術的發展使計算機檢測技術實現了快速、可靠、低成本、數字化與網絡化。而建立在該平臺上的檢測系統可以實現多傳感器的數據融合與處理,專家數據庫的應用可以使系統達到最佳控制狀態。溫度測量的領域十分廣泛,其實,不僅在工業領域,而且在民用領域、軍用領域,溫度的測量隨處可見。在工業領域,如電機的軸溫,膠帶滾筒的表面溫度,工業冷卻循環水溫,加熱設備的爐溫,啤酒的麥芽發酵溫度,各種化工原料在化學反應時控制的溫度等等,在民用領域,超市的食品架內溫度,人們生活空間環境的溫度,空調的控制溫度,人體的體溫檢測,冰箱、冰柜的溫度測量等等。當然,不同的場合,對測溫范圍的要求不一,即使相同的測溫范圍,測量不同的對象,其測量的精度要求也不盡相同,這些是顯而易見的,譬如,人體體溫測量,測量精度應該要求比較高,達o.i°c左右,但在測量電機的軸溫時,可能測量的允差達1C以上。傳統的測溫系統在測溫點上由傳感元件,信號調理電路、A/D轉換或T/F轉換、單片機數據采集等組成一個完整的微機系統;或采用獨立式儀表測量單元,并通過串行口與上位機通訊,系統結構復雜,成本較高。本文設計了一個由數字化測溫元件組成的單線多點溫度監控系統,該系統是由上位機和下位機兩大部分組成。下位機(單片機)完成遠程數據采集與控制,它是由單片機和LED顯示器、報警電路等組成、可以對64個測溫點進行數字化測量。溫度傳感器采集的數據通過單總線方式傳送給單片機進行數據處理;上位機具有良好的菜單操作方式,可以在線監控和顯示所有測溫點實時溫度值。并具有數據庫管理功能:實時溫度曲線和歷史溫度曲線顯示以及數據打印等功能。并為數據處理與融合,以及專家數據庫建立了一個智能化應用平臺。下位機(單片機)與上位機(PC機)通過RS-232串行口進行數據通訊。系統硬件簡介單片機技術簡介2.1.1單片機技術的發展所謂單片機(microcontroller)是指在一個集成芯片中,集成微處理器(CPU)、存儲器、基本的I/O接口以及定時/計數、通信部件,即在一個芯片上實現一臺微型計算機的基本功能。1970年微型計算機研制成功之后,隨著就出現了單片機(即單片微型計算機)。美國Intel公司1971年生產的4位單片機4004和1972年生產的雛形8位單片機8008,特別是1976年MCS-48單片機問世以來,在短短的二十幾年間,經歷了四次更新換代,其發展速度大約每二、三年要更新一代、集成度增加一倍、功能翻一番。其發展速度之快、應用范圍之廣,己達到了驚人的地步。它己滲透到生產和生活的各個領域,可謂“無孔不入”。盡管日前單片機的品種很多,但其中最具典型性的當數Intel公司的MCS-51系列單片機。MCS-51是在MCS-48的基礎上于80年代初發展起來的,雖然它仍然是8位的單片機,但其功能有很大的增強。由于PHILIPS,ATMEL,WELBORD,LG等近百家IC制造商都主產51系列兼容產品,具有品種全、兼容性強、軟硬件資料豐富等特點。因此,MCS-51應用非常廣泛,成為繼MCS-48之后最重要的單片機品種。直到現在MCS-51仍不失為單片機中的主流機型。國內尤以Intel的MCS-51系列單片機應用最廣。由于8位單片機的高性能價格比,估計近十年內,8位單片機仍將是單片機中的主流機型。單片機技術的應用隨著計算機技術的發展和在控制系統中的廣泛應用,以及設備向小型化、智能化發展,作為高新技術之一的單片機以其體積小、功能強、價格低廉、使用靈活等優勢,顯示出很強的生命力。它和一般的集成電路相比有較好的抗干擾能力,對環境的溫度和濕度都有較好的適應性,可以在工業條件下穩定工作。且單片機廣泛地應用于各種儀器儀表,使儀器儀表智能化,提高它們的測量速度和測量精度,加強控制功能。如MCS-51系列單片機控制的“船舶航行狀態自動記錄儀”、“煙葉水分測試儀”、“智能超聲波測厚儀”等。單片機也廣泛地應用于實時控制系統中,例如對工業上各種窯爐的溫度、酸度、化學成分的測量和控制。將測量技術、自動控制技術和單片機技術相結合,充分發揮其數據處理功能和實時控制功能,使系統工作處于最佳狀態,提高系統的生產效率和產品質量。從航空航天、地質石油、冶金采礦、機械電子、輕工紡織等行業的分布系統與智能控制以及機電一體化設備和產品,到郵電通信、日用設備和器械,單片機都發揮了巨大作用。其應用大致可分為以下幾方面:機電一體化設備的控制核心機電一體化是機械設備發展的方向。單片機的出現促進了機電一體化技術的發展,它作為機電產品的控制器,充分發揮其自身優點,大大強化了機器的功能,提高了機器的自動化、智能化程度。最典型的機電產品機器人,每個關節或動作部位都是個單片機控制系統數據采集系統的現場采集單元大型數據采集系統,要求數據采集的同步性和實時性要好。使用單片機作為系統的前端采集單元,由主控計算機發出采集命令,再將采集到的數據逐一送到主計算機中進行處理。如有些氣象部門、油田采油部門以及電廠等均可采用這樣的系統。分布控制系統的前端控制器在直接控制級的計算機分布控制系統(DCS)中,單片機作為過程控制中每一分部操作或控制的控制器,進行數據采集、反饋計算、控制輸出,并在上位機命令的指揮下進行相應協調工作。智能化儀表的機芯自動化儀表的智能化程度越來越高。采用單片機的智能化儀表可具有自整定、自校正、自動補償和自適應功能,還可進行數字PID調節,軟件消除電流熱噪聲等等,解決傳統儀表所不能解決的難題。單片機的應用使這種性能如虎添翼,如自動計費電度表、燃氣表中己有這方面的應用。許多工業儀表中的智能流量計,氣體分析儀、成分分析僅等也采用了這項技基于單片機的烘爐溫度自動檢測系統的研究與設計術。甚至有的保健治療儀中也采用了單片機控制。消費類電子產品控制該應用主要反映在家電領域,如洗衣機、空調器、保安系統、VCD視盤機、電子秤、IC卡、手機、BP機等。這些設備中使用了單片機機芯后,大大提高了其控制功能和性能,并實現了智能化、最優化控制。終端及外圍設備控制計算機網絡終端設備,如銀行終端、商業POS(自動收款機)以及計算機外圍設備如打印機、通信終端和智能化UPS等。在這些設備中使用單片機,使其具有計算、存儲、顯示、輸入等功能,具有和計算機連接的接口,使計算機的能力及應用范圍大大提高。本課題以單片機作為控制器之一,進一步研究單片機在自動化檢測領域中的應用。課題研究的目的和意義在工業生產中,上位機軟件占據著舉足輕重的地位。隨著4C技術(computer、control、communication、CRT)及監控軟件的發展,使用上位機監控管理系統已成為大中型控制系統的流行趨勢,以PC機作為上位機應用于控制系統中能提供一種良好的人機界面,減輕操作人員的負擔,提高管理水平。近年來,隨著計算機技術的飛速發展,給溫度的多點測量提供有力的技術支持。目前,計算機應用控制領域采用三種配置:(1)可編程序控制器(PLC),(2)微型計算機,(3)單片機。多點測溫系統,作為檢測系統的一種,采用單片機作為前段數據采集單元,對溫度進行采集和處理。應用微型計算機實現數據保存、分析統計。本課題研究開發的目的,就是要通過采用先進的上位機軟件,研究出具有我國自主知識產權的多點測溫系統。研制的多點測溫系統,可用來連續測量各點的溫度變化,準確的繪制出各個時間上的時間曲線。主控單片機的選擇主控單片機我們選用新茂的SM8952單片機。SM8952單片機是內嵌8K字節閃存的8位單片微控制器它具有多達32個I/O口,其8K的閃存既可做程序存儲空間也可以作數據存儲空間或程序數據混合空間這些硬件特征和其強大的指令系統使它應用于不同的場合因此是通用的和性能價格比高的控制器。該單片機還具有穩定性好,抗干擾等優點,非常適合本測溫系統設計的使用。熱電阻測量模塊我們采用的是PT100作為溫度傳感器。鉑電阻溫度傳感器的特點是:精度高,穩定性好性能可靠。鉑在氧化性環境中,甚至在高溫下的物理和化學性質都非常穩定。因此鉑被公認為是目前制造熱電阻的最好材料。鉑電阻主要作為標準電阻溫度計使用,也常被用在工業測量中。此外,還被廣泛地應用于溫度的基準和標準的傳遞。鉑電阻溫度計是目前測溫重復性最好的一種,它的長時間穩定的重復性可達104K,優于其他所有溫度計。目前鉑電阻的純度已經達到99.9995%。信號采集方式采用電橋。由于熱電阻安裝的地方距離測量模塊比較遠,當環境的溫度變化時其連接導線電阻也要變化。因為它與熱電阻Rt是串聯的,也就是電橋臂的一部分,所以會造成測量誤差。采用三線制接線方法就可以避免這種誤差的產生。2.5通信部分本系統采用RS-485通信方式,接口選擇芯片MAX487。MAX487是MAXIM公司生產的用于RS-485和RS—422通信的差分總線小功率收發器,它含有一個驅動器和一個接收器,具有驅動器/接收器使能功能,輸入阻抗為1/4負載(>48kW),節點數為128,即每個MAX487的驅動器可驅動128個標準負載。MAX487的驅動器設計成限斜率方式,使輸出信號邊沿不至于過陡,以避免在傳輸線產生過多的高頻分量,從而有效扼制了干擾現象。MAX487的接收靈敏度為±200MV,即接收端的差分電壓>+200MV時,接收器輸出為高電平,<-200MV時接收器輸出為低電平,介于土200MV之間時接收器輸出為不確定狀態,因此,一旦某個節點的接收器在總線空閑、傳輸線開路或短路時產生低電平,將使串行接收器找不到起始位,從而引起通信異常,為此,本系統在硬件上作了處理:將MAX487的A、B輸出端加接上拉、下拉電阻,保證在發出有效數據時所有接收器能接收到完整的數據。MAX487的數據傳輸速率為0.25Mbps,靜態工作電流為120yA,5V單電源工作,在本系統中,MAX487采用半雙工通信方式,各節點間的通信通過一對雙絞線作為傳輸介質,因雙絞線的特性阻抗為1200,因此系統在MAX487的始端和末端各接一個1200電阻以減少線路上傳輸信號的反射。由于主機與分機相隔較遠,而分機系統上電或復位又常常不在同一時刻完成,如在此時某個MAX487處于發送狀態,將占用通信總線而使其它分機無法與主機進行通信,本系統在SM8952的P3.5口與MAX487的DE端之間加接光耦TIL817,保證了系統上電復位時MAX487的DE端為“0”,有效解決了這個問題。系統上位機軟件設計工業生產中上位機軟件有很多種,本設計采用的是VB6.0作為上位機軟件。3.1VisualBasic功能簡介和發展VisualBasic(簡稱VB)是Microsoft公司開發的一種通用的基于對象的程序設計語言?!癡isual”指的是開發圖形用戶界面(GUI)的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象add到屏幕上的一點即可?!癇asic”指的是BASIC(BeginnersAll-PurposeSymbolicInstructionCode)語言,一種在計算技術發展歷史上應用得最為廣泛的語言。VisualBasic在原有BASIC語言的基礎上進一步發展,至今包含了數百條語句、函數及關鍵詞,其中很多和WindowsGUI有直接關系。專業人員可以用VisualBasic實現其它任何Windows編程語言的功能,而初學者只要掌握幾個關鍵詞就可以建立實用的應用程序。VisualBasicScriptingEdition(VBScript)是廣泛使用的腳本語言,它是VisualBasic語言的子集,可嵌入HTML語言中,用于網頁設計,如ASP(ActiveServerPage)文件。VB簡單易學,通用性強,用途廣泛。VB可以用于可以開發多媒體、數據庫、網絡、圖形等方面的應用程序。數據訪問特性允許對包括MicrosoftSQLServer和其它企業數據庫在內的大部分數據庫格式建立數據庫和前端應用程序,以及可調整的服務器端部件。有了ActiveX(TM)技術就可使用其它應用程序提供的功能,例如MicrosoftWord字處理器,MicrosoftExcel電子數據表及其它Windows應用程序。Internet能力強大,很容易在應用程序內通過Internet或intranet訪問文檔和應用程序,或者創建Internet服務器應用程序。已完成的應用程序是使用VisualBasic虛擬機真正.exe文件,可以自由發布。VB是伴隨Windows操作系統而發展的,在中國使用較廣的版本有VB4.0、VB5.0、VB6.0。VB4.0是為配合WIN95的問世于1995年推出的,既可用于編寫WIN3.X平臺的16位應用程序也可編寫WIN95平臺的32位應用程序;VB5.0主要用于編寫WIN95平臺的32位應用程序,較之VB4.0主要擴展了數據庫、ActiveX和Internet方面的功能;VB6.0是與WIN98配合于1998年推出的,進一步加強了數據庫、Internet和創建控件方面的功能。本系統軟件采用VB進行程序設計。因為visualBasic是一種功能強大的高級程序設計語言,它可以實現一些基本的簡單情況,也可以完成許多高級任務,在這里關于VB方面的一些知識都將詳略的介紹到。整個系統軟件設計將被劃分為非本質部分程序設計和本質程序設計進行分述。關于本質與非本質的劃分是基于這樣一個標準:用VisualBasic可視手段對于封皮。菜單及其它部分簡單設計稱為非本質部分設計;對用VisualBasic進行測溫。子程序,溫度顯示,存盤,讀盤,單倉數據監察這些系統所必須的高級功能程序設計稱為系統的本質程序設計。本人對于可視化VisualBasic的設計體會是:VB的優點是在非本質程序設計中有重要的反映,淡然在本質程序部分設計中也有很多較之其它語言進行程序設計所沒有的重要優點。VisualBasicforwindows是一種具有良好圖形用戶界面(GUI)的程序設計語言,同時又是一種完美支持面向對象程序設計(00P)的語言。Visual指的是開發圖形擁護(GUI)的方法,不需要像C語言那樣編寫大量代碼去描述界面元素的外觀和位置,而只要把預先建立的對象拖放到窗體上即可。這種直觀的編程方法,也叫做可視化變編程。Basic指的是(BasicBeginnersAll-PurposeSymbolicInstructionCode)語言,是-一種在計算機技術發展歷史上應用得最為廣泛的語言。而VisualBasic則綜合運用了BASIC語言的結構話特點和GUI可視化設計工具。既具有windows豐富的圖形窗口工作環境,又繼承了BASIC語言編程的簡便性。與C語言相比,不能說VB就比C語言優秀,作為C語言,其靈活簡便,對于運行環境要求不高書共知的,而VB則要求很高的配置與條件。VisualBasic是一種面向對象的程序設計(OOP),因而它具有OOP語言所具有的對象的創建機制,對象的繼承性,對象的多態性及對象的可見性等特征。所謂面向對象的程序設計是一種以對象為基礎,以事件來驅動對象執行的程序設計技術。OOP把計算過程看作為對象的分類過程加上其狀態變換的過程也就是將一個應用程序逐步劃分成互相關聯的多個對象,并且建立起與這些對象互相關聯的事件過程。通過對象對所發生的事件產生響應,并執行相應的事件過程,以引發對象狀態的改變,從而最終達到完成計算的目的。面向對象設計是一種全新的程序設計方法,它從根本上改變了傳統的程序設計模式,其基本思想是:通過建立于具體實際應用相對應的對象,并通過這些對象的組合來創建具體的應用程序。3.2VB基本概念與VB編程環境VB變成是一種面向對象的程序設計,要熟悉并掌握它必須先掌握其基本該您于編程環境。3.2.1VB的基本概念1、對象對象是代碼和數據的組合,可以作為一個單位來處理。對象可以是應用程序的一部分,比如可以是控件或窗體。整個應用程序也是一個對象。在VB中可能用到的幾種類型的對象,如表3.1所示:表3.1類型對象示例示例描述命令按鈕窗體上的控件,像命令按鈕和框架,它們都是對象窗體VisualBasic工程中的母一個窗體都是獨立的對象數據庫數據庫是對象,并且還包含其他對象,如字段、索引等圖表MicrosoftExcel中的圖表是對象VB中的每個對象都是用類定義的。用餅干模子和餅干之間的關系作比,就會明白對象和它的類之間的關系。餅干模子是類。它確定了每塊餅干的特征,比如大小和形狀。用類創建對象,對象就是餅干。類是面向對象程序設計的核心技術,可以理解成一種定義了對象行為和外觀的模板;把對象看作是類的原原本本的復制品,類具有繼承性、封裝性、多態性、抽象性。(1)屬性屬性是對對象特性的描述,VB為每一類對象都規定了若干屬性,設計中可以改變具體對象的屬性值。比如窗體的背景顏色、高度與寬度。(2)事件(Event)事件是發生在對象上的動作。事件的發生不是隨意的,某些事件僅發生在某些對象上。在VB中事件的調用形式是:PrivateSub對象名_事件名(事件內容)EndSub(3)方法(Method)方法指的是控制對象動作行為的方式。它是對象本身內含的函數或過程,它也是一個動作,是一個簡單的不必知道細節的無法改變的事件,但不稱作事件;同樣,方法也不是隨意的,一些對象有一些特定的方法。在VB里方法的調用形式是:對象名.方法名2、 屬性、方法和事件之間的關系VB對象具有屬性、方法和事件。屬性是描述對象的數據;方法告訴對象應做的事情;事件是對象所產生的事情,事件發生時可以編寫代碼進行處理。VB的窗體和控件是具有自己的屬性、方法和事件的對象。可以把屬性看作一個對象的性質,把方法看作對象的動作,把事件看作對象的響應。日常生活中的對象,如小孩玩的氣球同樣具有屬性、方法和事件。氣球的屬性包括可以看到的一些性質,如它的直徑和顏色。其它一些屬性描述氣球的狀態(充氣的或未充氣的)或不可見的性質,如它的壽命。通過定義,所有氣球都具有這些屬性;這些屬性也會因氣球的不同而不同。氣球還具有本身所固有的方法和動作。如:充氣方法(用氦氣充滿氣球的動作),放氣方法(排出氣球中的氣體)和上升方法(放手讓氣球飛走)。所有的氣球都具備這些能力。氣球還有預定義的對某些外部事件的響應。例如,氣球對刺破它的事件響應是放氣,對放手事件的響應是升空。在VB程序設計中,基本的設計機制就是:改變對象的屬性、使用對象的方法、為對象事件編寫事件過程。程序設計時要做的工作就是決定應更改哪些屬性、調用哪些方法、對哪些事件做出響應,從而得到希望的外觀和行為。3、 事件驅動模型在傳統的或“過程化”的應用程序中,應用程序自身控制了執行哪一部分代碼和按何種順序執行代碼。從第一行代碼執行程序并按應用程序中預定的路徑執行,必要時調用過程。在事件驅動的應用程序中,代碼不是按照預定的路徑執行,而是在響應不同的事件時執行不同的代碼片段。事件可以由用戶操作觸發、也可以由來自操作系統或其它應用程序的消息觸發、甚至由應用程序本身的消息觸發。這些事件的順序決定了代碼執行的順序,因此應用程序每次運行時所經過的代碼的路徑都是不同的。因為事件的順序是無法預測的,所以在代碼中必須對執行時的“各種狀態”作一定的假設。當作出某些假設時(例如,假設在運行來處理某一輸入字段的過程之前,該輸入字段必須包含確定的值),應該組織好應用程序的結構,以確保該假設始終有效(例如,在輸入字段中有值之前禁止使用啟動該處理過程的命令按鈕)。在執行中代碼也可以觸發事件。例如,在程序中改變文本框中的文本將引發文本框的Change事件。如果Change事件中包含有代碼,則將導致該代碼的執行。如果原來假設該事件僅能由用戶的交互操作所觸發,則可能會產生意料之外的結果。正因為這一原因,所以在設計應用程序時理解事件驅動模型并牢記在心是非常重要的。4、交互式開發傳統的應用程序開發過程可以分為三個明顯的步驟:編碼、編譯和測試代碼。但是VisualBasic與傳統的語言不同,它使用交互式方法開發應用程序,使三個步驟之間不再有明顯的界限。VB在編程者輸入代碼時便進行解釋,即時捕獲并突出顯示大多數語法或拼寫錯誤??雌饋砭拖褚晃粚<以诒O視代碼的輸入。除即時捕獲錯誤以外,VB也在輸入代碼時部分地編譯該代碼。當準備運行和測試應用程序時,只需極短時間即可完成編譯。如果編譯器發現了錯誤,則將錯誤突出顯示于代碼中。這時可以更正錯誤并繼續編譯,而不需從頭開始。由于VB的交互特性,代碼運行的效果可以在開發時進行測試,而不必等到編譯完成以后。3.2.2VB6.0的集成開發環境簡介VB集成開發環境(IDE——IntegratedDevelopingEnvironment)由以下元素組成:1、標題欄用于顯示正在開發或調試的工程名和系統的工作狀態(設計態、運行態、中止態)。2、菜單欄如圖3.1:文件迢)編輯⑥視圖②工程的格式?I調試?運行⑥查詢?圖表①工具⑴外接程席九?窗口⑩幫助⑩圖3.1菜單欄示意圖3、工具欄如圖3.2:澎〒色k育心9|為電俚開I口CIpII■I霸.圖嚼普法汶倉出0.D還5055.40! P「 I圖3.2工具欄示意圖在編程環境下用于快速訪問常用命令。缺省情況下,啟動VB后顯示“標準”工具欄,附加的編輯、窗體設計和調試的工具欄可以從“視圖”菜單上的“工具欄”命令中移進或移出。4、 窗體設計器用來設計應用程序的界面。啟動VB后,窗體設計器中自動出現一個名為Forml的空白窗體,可以在該窗體中添加控件、圖形和圖片等來創建所希望的外觀,窗體的外觀設計好后,從菜單中選擇“文件”-“保存窗體”-在保存對話框中給出合適的文件名(注意擴展名),并選擇所需的保存位置-確定。需要再設計另一個窗體時,單擊工具欄上的“添加窗體”按鈕即可。5、 控件(工具)箱由一組控件按鈕組成,用于設計時在窗體中放置控件。除了缺省的工具箱布局之外,還可以通過從上下文菜單中選定“添加選項卡”并在結果選項卡中添加控件來創建自定義布局。6、 彈出式(上下文)菜單在要使用的對象上單擊鼠標右鍵即可打開快捷菜單,其上會出現與當前對象相關的經常執行的操作,以加快操作速度。7、 工程管理器窗口用于瀏覽工程中所包含的窗體和模塊,還可以從中查看代碼、查看對象。8、 屬性窗口是VB中一個比較復雜的窗口,其中列出了對選定窗體和控件的屬性設置值。VB中正是通過改變屬性來改變對象的特征,如大小、標題或顏色。9、 對象瀏覽器列出工程中有效的對象,并提供在編碼中漫游的快速方法。可以使用“對象瀏覽器”瀏覽在VB中的對象和其它應用程序,查看對那些對象有效的方法和屬性,并將代碼過程粘貼進自己的應用程序。10、 對象瀏覽器右擊窗體中的對象、從工程管理器中點“查看代碼”按鈕。11、窗體布局窗口FormLayoutwindow允許使用表示屏幕的小圖象來布置應用程序中各窗體的位置。12、 立即、本地和監視窗口這些附加窗口是為調試應用程序提供的,它們只在IDE之中運行應用程序時才有效。2.3利用VB開發應用程序的一般步驟一個VB程序也稱為一個工程,由窗體、標準模塊、自定義控件及應用所需的環境設置組成。開發步驟一般如下:創建程序的用戶界面設置界面上各個對象的屬性編寫對象響應事件的程序代碼保存工程測試應用程序,排除錯誤創建可執行程序本軟件各窗體簡單介紹:本系統軟件部分包括8個窗體,1個模塊;模塊中主要包含有一些功能函數的實現。如打開,保存等等。窗體分別為封面窗體,主菜單,數據報表,單倉溫度監測,幫助。這些窗體都具有界面美觀,操作方便的優點。本系統可實現以下功能:可以設定報警溫度。可監視各個時刻的溫度??纱蛴∧硞€時刻的溫度報表。可任意查看某一倉溫度值。讀盤可對以往數據查詢??蓪斕飚敃r數據以日期命名存盤,便于管理??煞奖阃顺鰬孟到y。幫助子菜單將讓你更清楚地了解整個系統的功能。3.3設計中VB6.0所采用的控件本設計在采用VB6.0作為上位機軟件的同時,還應用了VB6.0的兩個控件。SSTab和MSCOMM控件。3.3.1SSTab控件的功能SSTab控件提供了一組選項卡,每個選項卡都可以作為其它控件的容器。在控件中,同一時刻只有一個選項卡是活動的,這個選項卡向用戶顯示它本身所包含的控件而隱藏其它選項卡中的控件。3.3.2MSComm控件特點MSComm控件是Microsoft提供的擴展控件,用于支持VB程序對串口的訪問,該控制"隱藏"了大部分串口通信的底層運行過程和許多煩瑣的處理過程,同時支持查詢方法和事件驅動通信的機制,事件驅動通信是交互方式處理串口事務的一種非常有效的方法,特別適合Windows程序的編寫.在通信過程中,當發送數據,收到數據或產生傳輸錯誤時,觸發MSComm控件的OnComm事件,然后可以通過判斷CommEvent屬性值獲得事件類型,再根據事件類型進行相應數據處理。因此用其實現微機串口的數據通信相當簡單,以很少的程序代碼就可以輕松實現串口的訪問和數據通信。3.3.3MSComm控件的介紹一般來說,用VB進行串口通信使用到的大部分都是這個MSComm這個控件,MSComm通信控件提供了一系列標準通信命令的接口,我們可以通過它可以建立串口連接、數據發送、命令發送以及監視和響應在通信過程中的事件和錯誤。MSComm這個控件在一開始的時候不是默認的出現在Toolbox中的,我們要想使用它,就必須把它從VB中調出來。首先單擊Project(工程),選擇Components(控件),接著在Control(控制)選項卡中選中MicrosoftCommControl6.0這個控件,點擊確定,這時你就能在Toolbox上看到一個小電話的圖標,它就是MSComm控件。MSComm控件提供兩種處理通信的方法:第一種是當串口發生事件或者錯誤的時候,會產生一個OnComm的事件,我們可以通過對這個事件的捕捉,進行相應的處理,這種通過對OnComm事件進行捕捉的方法稱為事件驅動方式;第二種是定時或者不定時的查詢MSComm的屬性變化,從而選擇相應的處理方式,這種方法我們稱為查詢方法。說到OnComm事件,這里就的不得不說到MSComm的另一個重要屬性--CommEvent屬性。當串口發生事件或者錯誤的時候,MSComm就為它賦不同的代碼,同時,產生一個OnComm事件。這時候,我們就可以針對不同的代碼,進行相應的處理。下面提供一些CommEvent屬性的代碼、常數及含義:CommEvent通信事件:代碼常數含義ComEvReceive接受到Rthreshold個字符。該事件將持續產生,直到用Input屬性從接受緩沖區中讀取并刪除字符。ComEvSend發送緩沖區中數據少于Sthreshold個,說明串口已經發送了一些數據,程序可以用Output屬性繼續發送數據。ComEvCTSClearToSend信號線狀態發生變化。ComEvDSRDataSetReady信號線狀態從1變到0。ComEvCDCarrierDetect信號線狀態發生變化。ComEvRing檢測到振鈴信號。ComEvEOF接受到文件結束符。CommEvent通信錯誤:代碼常數含義ComEvntBreak接受到一個中斷信號。ComEvntCTSTOClearToSend信號超時。ComEvntDSRTODataSetReady信號超時。ComEvntFrame幀錯誤。ComEvntOverrun串口超速。ComEvntCDTO載波檢測超時。ComEvntRxOver接受緩沖區溢出,緩沖區中已沒有空間。ComEvntRxParity奇偶校驗錯。ComEvntTxFull發送緩沖區溢出,緩沖區中已沒有空間。ComEvntDCB檢索串口的設備控制塊時發生錯誤。上位PC機VB通信程序設計串行通信程序設計方法在本溫度檢測系統中,上位機的主要功能有:串口通信功能設置;接收來自下位機的測溫值,并進行實時顯示;向下位機發送溫度上、下限值;實時溫度曲線和歷史溫度曲線顯示;數據庫管理功能。利用VB開發通信程序的主要方法有兩種:一種是利用VB本身提供的通信控件;另一種方法是利用WindowsAPI應用程序接口。在實踐中,利用VB通信控件的方法比調用API動態連接庫的方法更為簡便,因而本系統主要采用利用VB通信控件進行通信。VB中MSComm串口通信控件在正常的工具欄中沒有,需要在菜單"工程"的選項"部件"中添加,選擇MicrosoftCommControl6.0即可。3.4.1上位機PC機端通訊軟件的實現在Windows環境下,盡管VisualBasic6.0不能對I/O口直接進行訪問,但其包含的MSComm部件為實現多機串行通信提供了有力工具。VB6.0具有面向對象的設計方法、友好的用戶界面、簡單方便的串行通訊和實用性強等優點,無需借用其它語言就可以開發出優秀的控制系統通訊軟件。因此本系統采用VB6.0在Windows98環境下實現PC機與MCS-51系列8031單片機之間的串行通訊。VB提供了串行端口控件MSComm來為應用程序提供串行通訊,該控件屏蔽了通信過程中的底層操作,程序員應用時只需設置、監控MSComm控件的屬性和時間即可完成對串行口的初始化和數據的輸入輸出工作。MSComm控件的主要屬性如下:Commport設置并返回端口號。設計時端口號可以設置成1到16的任何數。例如:MSCmport=2,即設置當前通訊端口為COM2。Setting 設置并返回波特率、奇偶校驗、數據位、停止位。格式為:MSComm.Setting=String,String是一個包含四部分的字符串。第一部分位波特率;第二部分為奇偶校驗,N表示不校驗,E表示偶校驗,O表示奇校驗,S表示空格校驗,M表示符號校驗;第三部分為數據位數,其可選值為4,5,6,7,8;第四部分為停止位位數,其可選值為1,1.5,2;Setting屬性的缺省值為“9600,N,8,1”。Portopen設置并返回通訊端口的狀態,也可以打開和關閉端口。Input從接收緩沖區返回和刪除字符,該屬性在運行時為只讀。InputLen設置并返回每次Input屬性從接收緩沖區中讀取的字符數。InputLen屬性的缺省值為0時,Input將讀取接收緩沖區的全部內容。Output向傳送緩沖區寫數據,要傳送的數據可以是文本數據或二進制數據。CommEvent返回最近的通訊時間或錯誤。只要有通訊錯誤或事件發生時都會產生OnComm事件,CommEvent屬性中存有該錯誤或事件的數字代碼。3.4.2溫度數據上傳部分溫度數據上傳部分我們采用RS485的通信方式,該方式的優點是數據可傳輸的距離遠,由于采用土200mV電勢差來表示傳輸的邏輯,所以具有很強的抗干擾能力。在進行數據上傳之前要將MAX487的讀寫信號線置成寫,發送數據結束在將信號線置成讀。上傳數據幀格式,溫度上傳的楨格式為:起始字節為9F,通道字節用高四位表示通道號,符號字節用11表示正數,用12表示負數,溫度值第一字節的低四位表示溫度值的十位,溫度值第二字節的低四位表示溫度值的個位,溫度值第三字節的低四位表示溫度值的小數位,校驗位為從通道號開始的五個字節的和的低字節,停止字節為6F。串行口的通信波特率為9600bps,時鐘發生器用定時器1的工作方式2,采用8位自動加載模式,計數初值為0XFD,波特率不增倍,SMOD=0;下面介紹發送一個字節的方法:先將MAX487置于寫狀態,然后把要發送的數據送到SBUF里,查詢TI的狀態,如果為“0”,則繼續查詢,直到TI為“1”,表示發送的一個字節已經結束,將MAX487置于讀狀態。向上位機發送溫度子程序如表3.2:表3.2傳送數據表開始位通道號符號位十位個位小數位校驗位停止位9FXXXX000011,120000XXXX0000XXXX0000XXXXSUM6F3.4.3VB編程程序首先打開VB6.0應用程序,如圖3.3:選擇標準EXE,點擊打開進入VB6.0操作界面,點擊“Project(工程)”——選擇“Components(控件)”接著在“Control(控制)”。選項卡中選中MicrosoftCommControl6.0這個控件,點擊確定,這時你就能在Toolbox上看到一個小電話的圖標,它就是MSComm控件。圖3.3VB新建工程圖strset=“9600,N,8,1”m_I_RecvCont=0m_b_SendData=FalseMSCommTemp.CommPort=Int(ComTemp.Text)MSCommTemp.Settings=strsetMSCommTemp.InputMode=comInputModeBinaryMSCommTemp.InputLen=0MSCommTemp.Rthreshold=1MSCommTemp.PortOpen=TrueLabinfo.Caption=“系統信息:串口打開成功!”MSCommTemp.InBuffercount=0M_b_Temp_Open=True上面這段程序是用VB6.0編程語言對MSComm控件的設置。波特率為:9600奇偶校驗位為:N數據位為:8停止位為:1PrivateSubMSCommTemp_OnComm()采用MSComm控件中OnComm事件IfArr(0)=&H9FThenm_i_RecvCount=0LabInfo.Caption="系統信息:正在接收數據..."EndIf這段程序表示,數組Arr(0)接收到下位機傳送的代碼如果是“&H9F”則表示系統通訊成功,正在接收數據。IfArr(7)=&H6FThenm_i_sum=0Fori=1To7m_i_sum=m_i_sum+Arr(i)Nextichecksum=m_i_sumAnd255checksum=m_i_sumAnd127IfArr(1)>8ThenExitSubIf(Arr(2)=&HB)Thendisplay(Arr(1))=Arr(3)*10+Arr(4)+Arr(5)*0.1display(Arr(1))=display(Arr(1))*(-1)Elsedisplay(Arr(1))=Arr(3)*10+Arr(4)+Arr(5)*0.1EndIf這段程序表示,數組Arr(7)接收到下位機傳送的代碼如果是“&H6F”則表示系統通訊結束。并且只接收1—8八個通道的數據。如果通道位的代碼大于8,則程序結束。通過數組Arr(2)的代碼來判斷接收到的溫度數據的正負。如果接收到的代碼是“&HB”則表示接收到的溫度數據為負數,相反為正數。如圖3.4:判斷是甲喘昨4數據傳送流程圖圖3接收適1HPrivateSubPicture1_Paint()DimIAsIntegerPicture1.Scale(0,110)-(500,0)ForI=10To100Step10Picture1.Line(0,I)-(10,I)Picture1.CurrentY=Picture1.CurrentY+3Picture1.PrintINextIPicture1.CurrentX=0:Picture1.CurrentY=Text1.TextEndSub這段代碼是在SSTab控件上畫上一個picturebox,并根據接收到的溫度數據畫出相應的曲線。如圖3.5:100_90_80_70_6050-40—30圖3.5溫度曲線示意圖第一邇道[第二通道[第三通道[第四道道[第五通道[第責通道[100_90_80_70_6050-40—30圖3.5溫度曲線示意圖上位機采集上來的數據在Text.text文本框中顯示,如圖3.6:圖3.6溫度數據顯示圖讀存盤處理程序的編寫:在讀存盤處理程序編寫過程中,關鍵涉及兩個問題要加以討論與解決,一個是通用對話框,一個是文件的讀寫操作即屬于文件管理的內容。1、通用對話框對話框是VisualBasic應用程序與擁護進行信息交換的窗口,通過對話框可以輸入必要的信息和數據。包括三種設計方法:Msgbox和InPutBox及用CommonDialog控件設計標準窗體對話框。Msgbox功能是把消息傳遞給用戶,同時接收用戶在對話框中的選擇,使程序根據用戶的選擇來作出相應的響應。Msgbox(prompt,buttons,title,helpfile,Context])可看作輸出對話框,在交互或程序中,能反饋一些信息,進行提示擁護,其中prompt:顯示的消息字符串表達式。Buttons:顯示按鈕數目和形式以及對話框風格的數字表達式表示Title:對話框標題的字符串表達式。InPutBox:一般用作程序的輸入框,接收用戶的輸入,并根據接收到的消息,作出相應的處理。InPutBox(prompt,title,default,xpos,ypos,helpfile,context)用CommonDialog控件創建,包括打開文件,保存文件等標準對話框,在應用程序中可以用不同的顯示方法來實現顯示對話框,以便給應用程序提供信息數據,然后根據接收來的信息作出不同的處理,可以在程序中通過調用CommonDialog控件的屬性來接收用戶在對話框中輸入的信息。用法:object.showopen顯示open對話框2、文件操作所謂文件一般是指存儲在計算機外部介質上一些信息組成的集合,要求到存儲在外部介質上的數據信息,必須先按所提供的文件名找到指定的文件,然后再從該文件中讀取數據信息。用戶要向外部介質上存儲數據信息,也必須先建立一個文件,然后再向該文件輸出需要存儲的信息。文件存取的方式有順序文件和隨機文件兩種。順序文件的數據是一個接一個順序存放的,而且只提供第一個記錄的存儲位置,隨機文件的每個記錄均有固定的長度,每個記錄都有一個記錄號,在存放數據時,只要指明是第幾個記錄號,就可以把數據存入指定的位置;讀取數據時,只需要給出某一個記錄的記錄號,便能直接讀取記錄,隨機文件可以同時作輸入輸出操作,速度快。對隨機文件操作包括建立隨機文件,打開隨機文件,關閉隨機文件和讀寫隨機文件,以及對記錄的刪除和增加。建立和打開文件:openfilenameforrandomasnum寫文件 :Put#文件號,記錄號,記錄名稱讀文件 :Get#文件號,記錄號,記錄名稱PublicSubopen1()Dimopen1AsStringDimiAsIntegerOnErrorGoToopenerrorForm2.dlogopen.InitDir="d:\我的文檔\form\"Form2.dlogopen.Filter="allfiles(*.*)|*.*|datafiles(*.dat)|*.dat"Form2.dlogopen.FilterIndex=2Form2.dlogopen.ShowOpenopen1=Form2.dlogopen.FileNameIfopen1=""ThenGoToopenerrorElseOpenopen1ForRandomAs#1Get#1,1,mydate1Get#1,9,mytime1Fori=1To650Get#1,Temp(i)NextiGet#1,,tempmaxClose#1EndIfExitSubopenerror:MsgBox"未選數據文件!",vbExclamation,"讀盤錯誤"ExitSubEndSub系統調試VisualBasic6.0編程環境提供了許多運行和調試應用程序的工具,如啟動工具如,設置斷點單步執行等,程序的可視化設計和代碼編寫完成后,可以選用不同的執行方式,以對它進行執行,調試。VisualBasic本身不能診斷或者更改程序中的錯誤,但能夠提供一些調試工具來幫助用戶分析程序的運行是如何進行的,分析如何從一個過程轉到另一個過程,分析變量和對象屬性在程序運行過程是如何改變的。有了這些工具的幫助,用戶在調試程序時就可以深入觀察程序的執行過程,以了解發生了什么事或錯誤,是如何發生的。VisualBasic的調試支持包括斷點,中斷表達式,監視表達,顯示變量和屬性的值。這些調試功能可以幫助用戶處理邏輯錯誤,其調試工具可以從“Debug菜單上調用,也可以從調試工具欄中選擇。在進行上位機軟件調試中,本設計還用到了串口調試助手。它可以在一臺機器上通過PC機的兩個串口,互相發送信息。在用PC機上兩個串口進行連接時,需要將兩個九針串口的2,3針互換,把5針相連接,如圖4.1:圖4.1串口連接圖在進行VB程序調試時也可以用串口助手來模擬單片機發送數據,下圖是用串口助手模擬單片機發送的數據。9F010A0308056F串口助手的串口選擇coml,波特率選擇9600,校驗位選擇N,數據位選擇8,停止位選擇1。如圖4.2:SConMssistantV2?2ForWIN9X/NT/200083A1FF5ooo_uo_y6oOu3A1Fo_u_u_u_ySConMssistantV2?2ForWIN9X/NT/200083A1FF5ooo_uo_y6oOu3A1Fo_u_u_u_y3A1FF583o_uo_y6_uooA1FF583Ao_u_y6oooo1FF583A1o96ooo_uoFF583A1F_y6n-oooo_yF583A1FF_uon-o_u_y683A1FF5o_uooo_y6o80JA1FF58oooo_y6_uo3A1FF5Ou3oon-_y&oooA1FF580UAoo_y6oooo1FF583A1o_y6oooooFF583A1F_y6o_uo_uo-yF5Ou3A1FF_u_u_u_u_u_y6583A1FF5o_uo_uo_y6o83A1FF58ooo_u_y&oo3LA1FF583ooo96ooo6F05080A019F6F050803-0A019F6F0508030A01FF583A1FF_y6oo_u0096F583A1FF56oon-ooy6u030805OA030801OA039F01OA6F9F01056F9F08056F030805OA03089F010A6F9F01056F9F08056F030805OA030801UA039F01OA6F9F01眞空接收醫|停生顯示廳自動涪空(7十六進制顯示眼再顯委數呃更改I 選擇發送文啊發送文件計數潔零c'Acomdata選擇發送文啊發送文件計數潔零手動發送就十六進制發送手動發送r自動發送凋期改變后重選〕目動發送周期:1909毫秒-ta|STATUS:COMIOFENED>9600,N,8,1圖4.2串口助手調試圖結論歷時三個多月的畢業設計即將結束。在這期間我查閱了大量的與其相關的資料,這不但開闊了我的視野,又豐富了我的知識,同時也使我的自學能力大大提高。除此之外我也學會了怎樣調試程序,怎么樣檢查自己設計中存在的錯誤。通過三個多月的設計以及大量的實驗,本設計基本上達到了先前提出的設計技術指標,可以與硬件可靠通訊得到溫度數據,軟件運行穩定,溫度數據統計結果和溫度曲線符合真實情況。并且利用標準電阻箱進行了測試。但是由于時間關系和本人的能力與精力有限,如果要把本課題的整個系統做得十分完整,本人認為本課題還有以下幾項工作要進行:關于上位微機軟件的編制,由于在本系統中己經將通信接口作為一個選件來考慮,從系統的完整性來看,應將上位管理微機的軟件編制工作納入其中,當然,目前國內外也有不少只告訴通信的標準以及通信的數據幀格式。而上位管理微機的軟件有使用測量儀器的末端用戶自己解決。從整個測溫系統來著,總體功能是較完善的,但唯一不足的是由于條件有限,沒有實現打印報表功能。致謝通過幾個月的學習和實踐,終于完成了本次設計,在此期間,通過對上位機軟件的了解,VB6.0及其控件的學習,我進一步掌握了電子專業的技術知識,并且使所學到的知識得到了理論與實踐的相結合,為以后的學習和工作打下了良好的基礎。再本次設計過程中,我衷心感謝我的導師陳亮老師,陳老師在畢業設計期間給予我悉心的指導和幫助,引導我從畢業設計初期對課題的毫無所知到逐步的深入學習、不斷研究,熱心的幫助和鼓勵我解決設計上遇到的一些難題,培養了我正確的學習方法和研究問題的思路,以及發現問題解決問題的能力,為今后的工作、學習打下了堅實而牢固的基礎。在此對陳老師表示衷心地感謝,同時,感謝信息科學與工程分院的各位領導和老師的關心和支持,以及多年來對我孜孜不倦的培養和教誨,引導我學會了豐富的科學文化知識和解決問題的能力,使得我四年的大學生活充實和快樂,能在四年后順利的完成學業。參考文獻黃淼云,張學忠,王福成著.《VisualBasic控件應用編程實例教程》?第1版?北京希望電子出版社,2002李廣弟,朱月秀,王秀山著.《單片機基礎》.第2版?北京航空航天大學出版社,2001趙新民著.《智能儀器設計基礎基礎》.第1版.哈爾濱工業大學大學出版社,1999李建華,郭明著.《RS-232和調制解調器高級通信編程》?第1版?人民郵電出版社,2001附錄附錄A部分程序清單DimI,jAsIntegerPrivateSubPicture1_Paint()DimIAsIntegerPicture1.Scale(0,110)-(500,0)ForI=10To100Step10Picture1.Line(0,I)-(10,I)Picture1.CurrentY=Picture1.CurrentY+3Picture1.PrintINextIPicture1.CurrentX=0:Picture1.CurrentY=Text1.TextEndSubPrivateSubPicture2_Paint()DimIAsIntegerPicture2.Scale(0,110)-(500,0)ForI=10To100Step10Picture2.Line(0,I)-(10,I)Picture2.CurrentY=Picture2.CurrentY+3Picture2.PrintINextIPicture2.CurrentX=0:Picture2.CurrentY=Text2.TextEndSubPrivateSubPicture3_Paint()DimIAsIntegerPicture3.Scale(0,110)-(500,0)ForI=10To100Step10Picture3.Line(0,I)-(10,I)Picture3.CurrentY=Picture3.CurrentY+3Picture3.PrintINextIPicture3.CurrentX=0:Picture3.CurrentY=Text3.TextEndSubPrivateSubPicture4_Paint()DimIAsIntegerPicture4.Scale(0,110)-(500,0)ForI=10To100Step10Picture4.Line(0,I)-(10,I)Picture4.CurrentY=Picture4.CurrentY+3Picture4.PrintINextIPicture4.CurrentX=0:Picture4.CurrentY=Text4.TextEndSubPrivateSubPicture5_Paint()DimIAsIntegerPicture5.Scale(0,110)-(500,0)ForI=10To100Step10Picture5.Line(0,I)-(10,I)Picture5.CurrentY=Picture5.CurrentY+3Picture5.PrintINextIPicture5.CurrentX=0:Picture5.CurrentY=Text5.TextEndSubPrivateSubPicture6_Paint()DimIAsIntegerPicture6.Scale(0,110)-(500,0)ForI=10To100Step10Picture6.Line(0,I)-(10,I)Picture6.CurrentY=Picture6.CurrentY+3Picture6.PrintINextIPicture6.CurrentX=0:Picture6.CurrentY=Text6.TextEndSubPrivateSubPicture7_Paint()DimIAsIntegerPicture7.Scale(0,110)-(500,0)ForI=10To100Step10Picture7.Line(0,I)-(10,I)Picture7.CurrentY=Picture7.CurrentY+3Picture7.PrintINextIPicture7.CurrentX=0:Picture7.CurrentY=Text7.TextEndSubPrivateSubPicture8_Paint()DimIAsIntegerPicture8.Scale(0,110)-(500,0)ForI=10To100Step10Picture8.Line(0,I)-(10,I)Picture8.CurrentY=Picture8.CurrentY+3Picture8.PrintINextIPicture8.CurrentX=0:Picture8.CurrentY=Text8.TextEndSubPrivateSubTimer1_Timer()j=j+5Picture1.Line-(j,Text1.Text)Picture2.Line-(j,Text2.Text)Picture3.Line-(j,Text3.Text)Picture4.Line-(j,Text4.Text)Picture5.Line-(j,Text5.Text)Picture6.Line-(j,Text6.Text)Picture7.Line-(j,Text7.Text)Picture8.Line-(j,Text8.Text)Ifj>=500Thenj=0Picture1.ClsPicture2.ClsPicture3.ClsPicture4.ClsPicture5.ClsPicture6.ClsPicture7.ClsPicture8.ClsForI=10To100Step10Picture1.Line(0,I)-(10,I)Picture1.CurrentY=Picture1.CurrentY+3Picture1.PrintI

NextIPicture1.CurrentX=0:Picture1.CurrentY=Text1.TextPicture1.CurrentX=0:Picture1.CurrentY=Text2.TextPicture1.CurrentX=0:Picture1.CurrentY=Text3.TextPicture1.CurrentX=0:Picture1.CurrentY=Text4.TextPicture1.CurrentX=0:Picture1.CurrentY=Text5.TextPicture1.CurrentX=0:Picture1.CurrentY=Text6.TextPicture1.CurrentX=0:Picture1.CurrentY=Text7.TextPicture1.CurrentX=0:Picture1.CurrentY=Text8.TextEndIfEndSubPrivateSubForm_Load()strset="9600,N,8,1"m_i_RecvCount=0m_b_SendData=FalseMSCommTemp.CommPort=Int(ComTemp.Text)MSCommTemp.Settings=strsetMSCommTemp.InputMode=comInputModeBinaryMSCommTemp.InputLen=0MSCommTemp.RThreshold=1MSCommTemp.PortOpen=TrueLabInfo.Caption="系統信息:串口打開成功!"MSCommTemp.InBufferCount=0EndSubTrueEndSubTruePrivateSubMSCommTemp_OnComm()Dimbuffer()AsBytePrivateSubMSCommTemp_OnComm()Dimbuffer()AsByteDimiAsIntegerDimjAsIntegerDimnegativeAsByteDimtempAsByteDimdisplay(0To9)AsSingleDimcountAsIntegerDimchecksumAsByteDimm_i_sumAsIntegerDimm_Start_TimeAsLongDimiLoopAsIntegerchecksum=0OnErrorResumeNextSelectCaseMSCommTemp.CommEventCasecomEvReceivem_Start_Time=GetTickCount()While((GetTickCount()-m_Start_Time)<30)DoEventsWendbuffer=MSCommTemp.InputIf(UBound(buffer)=2)ThenIf(buffer(0)=&HCDAndbuffer(1)=&HCD)ThenCallMsgBox("下載成功!",vblnformation,"操作提示")EndIfEndIfIf(UBound(buffer)<7)ThenExitSubForiLoop=0To7Arr(iLoop)=buffer(iLoop)NextiLoopIfArr(0)=&H9FThenm_i_RecvCount=0LabInfo.Caption="系統信息:正在接收數據..."EndIfIfArr(7)=&H6FThenm_i_sum=0Fori=1To7m_i_sum=m_i_sum+Arr(i)Nextichecksum=m_i_sumAnd255checksum=m_i_sumAnd127IfArr(1)>8ThenExitSubIf(Arr(2)=&HB)Thendisplay(Arr(1))=Arr(3)*10+Arr(4)+Arr(5)*0.1display(Arr(1))=display(Arr(1))*(-1)Elsedisplay(Arr(1))=Arr(3)*10+Arr(4)+Arr(5)*0.1EndioIfLabInfo.Captn="系統信息:接收數據成功!"Arr(20)=0EndIfm_i_RecvCount=m_i_RecvCount+1If(m_i_RecvCount>21)Thenm_i_RecvCount=21EndSelectEndSub附錄B英文原文Develop

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論