畢業(yè)設(shè)計基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計_第1頁
畢業(yè)設(shè)計基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計_第2頁
畢業(yè)設(shè)計基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計_第3頁
畢業(yè)設(shè)計基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計_第4頁
畢業(yè)設(shè)計基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、學(xué)院 畢 業(yè) 設(shè) 計(論 文) 題 目: 基于單片機(jī)的多功能環(huán)境檢測系統(tǒng)設(shè)計作 者: 指導(dǎo)教師: 專 業(yè): 電氣自動化 時 間: 學(xué)院畢業(yè)論文基于單片機(jī)的多功能環(huán)境監(jiān)測系統(tǒng)設(shè)計 串口通信與界面設(shè)計the design of multifunction environmental monitoring based on single-chip serial communications and interface design 摘 要隨著工業(yè)技術(shù)的發(fā)展,環(huán)境問題已經(jīng)成為全世界關(guān)注的問題。近年來,水土流失、荒漠化、草原退化和物種減少;生態(tài)相當(dāng)脆弱,自然災(zāi)害頻繁;環(huán)境污染嚴(yán)重,直接危及社會、經(jīng)濟(jì)的發(fā)

2、展。人們已經(jīng)認(rèn)識到,為了保護(hù)環(huán)境,就將對環(huán)境的演化趨勢、特點(diǎn)及存在的問題作進(jìn)一步的細(xì)致的了解。多功能環(huán)境監(jiān)測是利用各種技術(shù)測定和分析生命系統(tǒng)各層次對自然或人為作用的反應(yīng)或反饋效應(yīng)的綜合表征來判斷和評價這些干擾對環(huán)境產(chǎn)生的影響、危害及其變化規(guī)律,為環(huán)境質(zhì)量的評估、調(diào)控和環(huán)境管理提供科學(xué)依據(jù)。本課題從國內(nèi)外環(huán)境監(jiān)測系統(tǒng)的研究現(xiàn)狀出發(fā),結(jié)合實(shí)際情況設(shè)計一個基于單片機(jī)的多功能環(huán)境監(jiān)測系統(tǒng)。本文主要負(fù)責(zé)串口通信及界面軟件的設(shè)計。其中,上位機(jī)軟件主要以windows xp為操作平臺,采用delphi70編寫。delphi是一種可視化的、快速的應(yīng)用程序,具有面向?qū)ο缶幊蹋С謭F(tuán)隊(duì)開發(fā),提供工程管理,對數(shù)據(jù)庫

3、的良好支持等特性,是一個集數(shù)據(jù)通信、存儲、查詢、處理于一體的綜合性軟件。本設(shè)計能夠?qū)崿F(xiàn)以下功能:pc機(jī)通過串行口與下位機(jī)通信,將下位機(jī)采集到的溫、濕度及光線數(shù)據(jù)在pc機(jī)上實(shí)時顯示;對歷史數(shù)據(jù)進(jìn)行查詢、分析、統(tǒng)計,并能將相應(yīng)的結(jié)果打印出來。關(guān)鍵詞:溫濕度;光線狀況;上位機(jī);串口通信abstractwith the development of industrial technology, environmental issues have become the worlds concern. in recent years, soil erosion, desertification, gras

4、sland degradation and loss of biodiversity; ecology very fragile and frequent natural disasters; environmental pollution, directly threatening the social and economic development. environmental monitoring is the use of multi-function measurement and analysis technology system at all levels of life t

5、o natural or man-made role of response or feedback effects of the comprehensive characterization to determine and evaluate the impact of interference on the environment, endanger their trends, the environmental quality assessment, control and provide the scientific basis for environmental management

6、.this topic embarks from the domestic and foreign environmental monitoring systems research present situation, the union actual situation designs one based on monolithic integrated circuits multi-purpose environmental monitoring system. this article primary cognizance serial port correspondence and

7、contact surface softwares design. and, the superior machine software mainly take windows xp as the service platform, uses the delphi7.0 compilation. delphi is one kind of visualization, the fast application procedure, has the object-oriented programming, supports the team to develop, provides the pr

8、oject management, to database characteristics and so on good support, is a collection data communication, the memory, the inquiry, processing in a bodys comprehensive software.this design can realize the following function: pc machine through serial port and lower position machine correspondence, lo

9、wer position machine gathering warm, humidity and optical fiber data on the pc machine real time display; carries on the inquiry, the analysis, the statistics to the historical data, and can print the corresponding result.key words:mperature and humidity;lighting conditions;pc;serial communication目

10、錄第一章 緒論11.1 課題背景11.2國內(nèi)外環(huán)境監(jiān)測現(xiàn)狀及發(fā)展趨勢21.2.1發(fā)展現(xiàn)狀21.2.2發(fā)展趨勢31.3本課題主要工作4第二章 系統(tǒng)設(shè)計總體方案52.1監(jiān)測系統(tǒng)結(jié)構(gòu)框圖52.2監(jiān)測終端的設(shè)計52.3通信方式的選擇6第三章 上位機(jī)開發(fā)環(huán)境與主要技術(shù)83.1 上位機(jī)開發(fā)平臺83.2 數(shù)據(jù)庫方案的實(shí)現(xiàn)83.3 串口通信的實(shí)現(xiàn)方法93.3.1概述93.3.2串口通信api函數(shù)的實(shí)現(xiàn)原理113.3.2串口類的開發(fā)13第四章 使用spcomm控件實(shí)現(xiàn)串口通信144.1安裝spcomm控件144.2 spcomm的主要屬性,方法和事件144.2.1 屬性144.2.2 方法154.2.3 事件1

11、54.3 spcomm的使用16第五章 上位機(jī)軟件設(shè)計方案195.1系統(tǒng)設(shè)計概述195.2數(shù)據(jù)庫平臺的選擇195.3串口通信在本系統(tǒng)中的實(shí)現(xiàn)205.3.1通信協(xié)議的設(shè)計205.3.2通信程序的開發(fā)245.4上位機(jī)程序的開發(fā)設(shè)計245.4.1系統(tǒng)登錄模塊255.4.2系統(tǒng)主界面模塊265.4.3用戶設(shè)置模塊275.4.4歷史數(shù)據(jù)查詢模塊28結(jié)論31致謝32參考文獻(xiàn)33附錄34第一章 緒論1.1 課題背景隨著人們對環(huán)境問題及其規(guī)律認(rèn)識的不斷深化,環(huán)境問題不再局限于排放污染物引起的健康問題,而且包括自然環(huán)境的保護(hù)、生態(tài)平衡和可持續(xù)發(fā)展的資源問題。因此,環(huán)境監(jiān)測正從一般意義上的環(huán)境污染因子監(jiān)測開始向生

12、態(tài)環(huán)境監(jiān)測過渡和拓寬。除了常見的各類污染因子外,由于人為因素影響,災(zāi)害性天氣增加,森林植被銳減,水土流失嚴(yán)重,土壤沙漠化加劇,洪水泛濫,沙塵暴、泥石流頻發(fā),酸沉降等,使我國本已十分脆弱的生態(tài)環(huán)境更加惡化。這促使人們重新審查環(huán)境問題的復(fù)雜性,用新的思路和方法了解和解決環(huán)境問題。人們開始認(rèn)識到,為了保護(hù)生態(tài)環(huán)境,必須對環(huán)境生態(tài)的演化趨勢、特點(diǎn)及存在的問題建立一套行之有效的動態(tài)監(jiān)測與控制體系,這就是生態(tài)環(huán)境監(jiān)測。生態(tài)環(huán)境監(jiān)測是環(huán)境監(jiān)測發(fā)展的必然趨勢。本質(zhì)上看,環(huán)境保護(hù)是以減少或避免生態(tài)系統(tǒng)的破壞為終極目標(biāo)。對環(huán)境監(jiān)測,目前單純的理化指標(biāo)和生物指標(biāo)監(jiān)測存在很大的局限性,而生態(tài)環(huán)境監(jiān)測則可彌補(bǔ)傳統(tǒng)環(huán)境監(jiān)

13、測的不足。因此前者強(qiáng)調(diào)“局部剖析”,只對大氣、水、土壤等中的化學(xué)毒物或有害物理因子進(jìn)行測定;而后者著眼于“整體綜合”,對人類活動造成的生態(tài)破壞和影響進(jìn)行測定。可以說,生態(tài)環(huán)境監(jiān)測是生態(tài)保護(hù)的前提,是生態(tài)管理的基礎(chǔ),是生態(tài)法律法規(guī)的依據(jù)。目前,生態(tài)環(huán)境監(jiān)測已在全球范圍內(nèi)展開,但在我國才剛起步,基礎(chǔ)差,底子薄,相對落后,缺乏統(tǒng)一的標(biāo)準(zhǔn),國家尚未制定技術(shù)規(guī)范。本文主要結(jié)合國內(nèi)情況擬對生態(tài)環(huán)境監(jiān)測作全面介紹,以期大家共同努力來推動生態(tài)環(huán)境監(jiān)測工作在我國的開展。雖然我國經(jīng)濟(jì)一直以來快速發(fā)展,但是在經(jīng)濟(jì)發(fā)展的同時對環(huán)境的影響也日益擴(kuò)大,尤其是負(fù)面的影響。反過來生態(tài)環(huán)境的破壞也逐步威脅著我們?nèi)祟惖纳婧桶l(fā)展

14、。為了更好的改善人類的生存環(huán)境、盡可能的避免環(huán)境進(jìn)一步惡化,對環(huán)境情況特別是與人類關(guān)系密切的環(huán)境參數(shù)如溫度和濕度的監(jiān)測無疑具有非常重要的意義。人類的生存和社會的活動與溫度、濕度,光線等環(huán)境因素的相關(guān)性越來越大,對環(huán)境參數(shù)進(jìn)行有效的實(shí)時監(jiān)測,已成為目前非常嚴(yán)峻的課題。環(huán)境監(jiān)測是獲取環(huán)境信息,認(rèn)識環(huán)境質(zhì)量和評價環(huán)境好壞的重要手段,也是進(jìn)行環(huán)境監(jiān)督和環(huán)境治理等管理工作的主要信息來源和途徑。環(huán)境監(jiān)測系統(tǒng)是集傳感器技術(shù)、通信網(wǎng)絡(luò)和計算機(jī)應(yīng)用為一體的綜合數(shù)據(jù)分析管理系統(tǒng),隨著自動控制技術(shù)、電子信息技術(shù)和大規(guī)模集成電路等技術(shù)近年來迅速的發(fā)展,許多西方發(fā)達(dá)國家已經(jīng)擁有很多先進(jìn)的環(huán)境監(jiān)測設(shè)備與環(huán)境監(jiān)測手段。如果

15、直接從外國購買這些現(xiàn)成的設(shè)備和技術(shù),對于我國來說成本投入是比較高的,而且這些設(shè)備和監(jiān)測手段可能與我國復(fù)雜多變的氣候條件和具體的情況不相匹配,所以當(dāng)前不適合直接購買和應(yīng)用這些設(shè)備和技術(shù)。目前,我國的環(huán)境監(jiān)測系統(tǒng)與這些國家相比還有較大的差距,但隨著我國科技實(shí)力的增強(qiáng)和經(jīng)濟(jì)實(shí)力的提高,也先后開發(fā)了一系列的環(huán)境監(jiān)測系統(tǒng)。在這領(lǐng)域的進(jìn)展和提高還是比較大的。但是總體來說這些設(shè)備的技術(shù)水平仍有待提高。因此開發(fā)研制出適合我國現(xiàn)狀的低成本高性能的環(huán)境監(jiān)測系統(tǒng),是一項(xiàng)非常緊迫的任務(wù),也對提高我國現(xiàn)代化企業(yè)的經(jīng)濟(jì)效益和加快我國的現(xiàn)代化水平具有非常重要意義。1.2 國內(nèi)外環(huán)境監(jiān)測現(xiàn)狀及發(fā)展趨勢1.2.1 發(fā)展現(xiàn)狀近些

16、年來我國的經(jīng)濟(jì)發(fā)展迅速,人們的生活水平得到了很大的提高,但是與此同時工業(yè)化的發(fā)展也給環(huán)境帶來的巨大的改變。近些年來京津地區(qū)的沙塵暴和森林覆蓋率的大量減少就是很好的證據(jù)。傳統(tǒng)上采用比較落后的人工環(huán)境監(jiān)測方法,但是這種方法的實(shí)時性差,受自然條件的限制比較大,而且對于突發(fā)的環(huán)境問題不能及時發(fā)現(xiàn)并且處理,不利于宏觀把握環(huán)境的變化情況。由于經(jīng)濟(jì)等因素我國目前還有很多地方使用傳統(tǒng)的環(huán)境監(jiān)測方法。隨著技術(shù)的發(fā)展和經(jīng)濟(jì)實(shí)力的提升,我國的環(huán)境監(jiān)測水平也得到了一定的提高。在很多省份實(shí)現(xiàn)高速通信網(wǎng)絡(luò)的同時,環(huán)境監(jiān)測的參數(shù)和數(shù)據(jù)已經(jīng)能聯(lián)網(wǎng)的得到觀測和控制。硬件設(shè)備已經(jīng)得到很大的改善,傳統(tǒng)的人工報表已經(jīng)改成微機(jī)控制系統(tǒng)

17、。還有部分省市已經(jīng)采用自動的環(huán)境監(jiān)測系統(tǒng),能更加及時和準(zhǔn)確的反饋數(shù)據(jù)。但是由于我國幅員遼闊,監(jiān)測終端的需求量很大,并且環(huán)境監(jiān)測系統(tǒng)的軟硬件開發(fā)功能還不是很完善,數(shù)據(jù)的綜合分析能力也有待提高。國內(nèi)產(chǎn)品較之國外技術(shù)還顯得比較薄弱。主要表現(xiàn)在:l、目前市場上同類產(chǎn)品存儲空間有限。且基于單片機(jī)終端操作的,很少具有實(shí)時通信的功能,這對于遠(yuǎn)程進(jìn)行數(shù)據(jù)的傳輸要求的單位的使用是不方便的。2、現(xiàn)有的產(chǎn)品在數(shù)據(jù)輸出僅支持點(diǎn)對點(diǎn)通訊且速度慢、距離短、且仍受地域限制。且不能滿足大數(shù)據(jù)量多通道的實(shí)時數(shù)據(jù)的傳輸?shù)墓δ堋?、產(chǎn)品的現(xiàn)場安裝受使用環(huán)境所限,環(huán)境應(yīng)用適用性差、測控手段單一。很難進(jìn)行遠(yuǎn)距離的監(jiān)控和報警。4、產(chǎn)品只

18、用液晶、led等方式簡單顯示,使操作無法進(jìn)行現(xiàn)場復(fù)雜實(shí)用的數(shù)據(jù)分析、讀取、按需數(shù)據(jù)圖形打印。5、設(shè)備性能不高,難以適應(yīng)要求較高的場合。如測量溫度范圍低,難以滿足超高溫,超低溫的要求。目前國外的環(huán)境監(jiān)測系統(tǒng)已經(jīng)廣泛應(yīng)用在各個領(lǐng)域,并發(fā)展的比較完善。許多國家的環(huán)境參數(shù)監(jiān)控點(diǎn)已經(jīng)分布在各個地區(qū),技術(shù)上也很先進(jìn),能夠監(jiān)測溫度、濕度、光線和水位等多個環(huán)境參數(shù)。部分產(chǎn)片還使用了衛(wèi)星等技術(shù)進(jìn)行環(huán)境監(jiān)測。歐洲的一些國家各國之間以網(wǎng)絡(luò)為核心進(jìn)行合作,已經(jīng)能對歐洲環(huán)境的現(xiàn)狀和發(fā)展趨勢作出及時的有效判斷的預(yù)測,并根據(jù)此采取必要的措施來保護(hù)環(huán)境。一些美國的公司利用空間技術(shù),利用太空的衛(wèi)星能把地面的情況特別是大氣的監(jiān)測

19、數(shù)據(jù)做成圖像完整的傳回地面監(jiān)測,科學(xué)家的數(shù)據(jù)準(zhǔn)確可靠。令人可喜的是我國的環(huán)境監(jiān)測技術(shù)正朝著現(xiàn)代化和高技術(shù)含量方向發(fā)展。目前在某些領(lǐng)域也把衛(wèi)星技術(shù)、遙感技術(shù)和gps等技術(shù)廣泛應(yīng)用于環(huán)境的監(jiān)測。在網(wǎng)絡(luò)方面利用無線傳輸、p寬帶網(wǎng)絡(luò)和gprs、internet等多種傳輸方式進(jìn)行數(shù)據(jù)的傳輸與處理??梢栽趯Νh(huán)境指數(shù)的采集、分析、整理的基礎(chǔ)上實(shí)現(xiàn)環(huán)境發(fā)展的預(yù)測。1.2.2 發(fā)展趨勢近年來,神經(jīng)網(wǎng)絡(luò)、遺傳算法、模糊理論等人工智能方法在國外溫室環(huán)境控制技術(shù)中得到重視并逐步發(fā)展,其中神經(jīng)網(wǎng)絡(luò)方法應(yīng)用較廣。另外,采用多個環(huán)境因子綜合考慮的多因子控制方式替代現(xiàn)行的單個環(huán)境因子分別考慮的單因子控制方式也是研究的一個重要

20、方向。目前在溫室環(huán)境控制系統(tǒng)中,分布式系統(tǒng)是主要發(fā)展方向,系統(tǒng)中不存在一個控制中心,主要控制功能由各分布的子處理器完成。各個溫的控制功能一般由單片機(jī)(子處理器)完成,pc機(jī)作為主處理器,僅實(shí)現(xiàn)輔助功能,脫離主處理器,整個控制系統(tǒng)仍可工作。分布式控制方式具有價格低、控制靈活、可靠性高等優(yōu)點(diǎn),將在以后很長一個時期內(nèi)廣泛應(yīng)用于溫室環(huán)境控制系統(tǒng)中。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,可以通過iniemet進(jìn)行遠(yuǎn)程控制或診斷,在辦公室通過網(wǎng)絡(luò)對溫室設(shè)備進(jìn)行操作,達(dá)到減輕生產(chǎn)人員勞強(qiáng)度、提高設(shè)備利用效率,具有廣闊的應(yīng)用前景。1.3 本課題主要工作本設(shè)計可實(shí)時測量某一具體空間中任意一點(diǎn)的溫度、濕度數(shù)據(jù)以及光線狀況,能在小型

21、終端設(shè)備的lcd上顯示,還能通過串口通信在微機(jī)上實(shí)現(xiàn)實(shí)時數(shù)據(jù)的顯示、分析和圖形打印等功能??梢远〞r地將數(shù)據(jù)自動地打印出來供隨時監(jiān)管或存檔。其中,上位機(jī)軟件的主要功能如下:1、歷史數(shù)據(jù)查詢功能:對以往的歷史數(shù)據(jù)可以進(jìn)行查詢和分析,并用圖表的方式顯示環(huán)境的發(fā)展趨勢。2、動態(tài)記錄顯示功能:能夠連續(xù)實(shí)時的采集和記錄監(jiān)測空間內(nèi)溫度、濕度、光線狀況等參數(shù)的情況,以數(shù)字和表格方式進(jìn)行實(shí)時顯示和記錄監(jiān)測信息。3、數(shù)據(jù)存儲功能:所有的數(shù)據(jù)采集和記錄到計算機(jī)上,按要求記錄溫、濕度以及光線狀況表格,可以定時自動保存、備份等。4、打印功能:按要求打印某個點(diǎn)溫、溫度、光線狀況表格,自動定時打印和手動人工打印畫面及參數(shù)報

22、表。第二章 系統(tǒng)設(shè)計總體方案2.1 監(jiān)測系統(tǒng)結(jié)構(gòu)框圖多參數(shù)環(huán)境監(jiān)測系統(tǒng)由環(huán)境參數(shù)采集單元(包括溫度、濕度、光照度傳感器及信號調(diào)理電路)、單片機(jī)、液晶顯示模塊、pc機(jī)、傳輸設(shè)備以及電源組成。結(jié)構(gòu)框圖如圖2-1所示。上位機(jī)噴灌系統(tǒng)天窗電機(jī)排風(fēng)扇顯示器1602 單片機(jī)a/d轉(zhuǎn)換器溫度傳感器濕度傳感器光線傳感器繼電器控制圖2-1 系統(tǒng)結(jié)構(gòu)圖2.2 監(jiān)測終端的設(shè)計監(jiān)測終端組成框圖如圖2-2所示,該終端以單片機(jī)為核心,由各種傳感器、ad轉(zhuǎn)換器、液晶顯示模塊、串行口輸入輸出端口等構(gòu)成。環(huán)境參數(shù)經(jīng)信號采集電路和ad轉(zhuǎn)換后送單片機(jī),經(jīng)處理后在液晶上實(shí)時顯示,然后通過串口傳輸給上位機(jī)。傳感器傳感器信號采集a/d轉(zhuǎn)

23、換液晶顯示微處理器計算機(jī)串口上位機(jī) 圖2-2 監(jiān)測終端組成框圖2.3 通信方式的選擇串口是計算機(jī)上通用設(shè)備通信的協(xié)議端口,現(xiàn)在大多數(shù)計算機(jī)包含串口。串口通信的標(biāo)準(zhǔn)經(jīng)過使用和發(fā)展已經(jīng)有很多中,但基本都是在rs232標(biāo)準(zhǔn)的基礎(chǔ)上改進(jìn)形成的。但是rs232標(biāo)準(zhǔn)只針對于點(diǎn)對點(diǎn)的單通道數(shù)據(jù)傳送,在此基礎(chǔ)上形成rs485標(biāo)準(zhǔn),增加了多點(diǎn)和雙向通信能力。這個標(biāo)準(zhǔn)傳輸信號具有很強(qiáng)的抗干擾能力,可以達(dá)到更大的傳輸距離和更高的傳輸效率。由于上位機(jī)只有一臺,而需要通信的下位機(jī)有多臺,因此不一定能夠跟每個下位機(jī)同時及時的通信,所以為了更好的實(shí)現(xiàn)數(shù)據(jù)的傳輸,需要用排隊(duì)理論來合理的設(shè)計和控制傳輸,使數(shù)據(jù)的傳輸更及時和有效

24、,提高系統(tǒng)的通信能力。排隊(duì)理論就是利用概率論和隨機(jī)理論,研究隨機(jī)系統(tǒng)內(nèi)服務(wù)與需求之間的關(guān)系,以便合理地設(shè)計和控制排隊(duì)系統(tǒng)。在所研究的系統(tǒng)中,某一下位機(jī)請求與上位機(jī)通信,當(dāng)上位機(jī)空閑時,立即響應(yīng)請求,當(dāng)上位機(jī)忙時,不能立即響應(yīng)該請求。呼叫持續(xù)等待是一個有限的時間,若某一等待響應(yīng)的呼叫超過規(guī)定的等待時間還沒有響應(yīng)則該下位機(jī)掛斷,等待幾分鐘后再發(fā)送請求。各下位機(jī)的地位一樣時,相應(yīng)的規(guī)則采用先到先服務(wù)的形式。服務(wù)時間為一次傳送數(shù)據(jù)的通信時間。由于多路請求是隨機(jī)的,并且相互之間完全獨(dú)立,但對整個系統(tǒng)而言,各下位機(jī)傳送的數(shù)據(jù)都能送入上位機(jī)中。目前串口是儀器儀表設(shè)備通用的通信協(xié)議端口,也用于獲取遠(yuǎn)程采集設(shè)備

25、的數(shù)據(jù)。串口通信的概念非常簡單,串口按位發(fā)送和接收字節(jié)。盡管比按字節(jié)的并行通信慢,但是由于串口通信是異步的,可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù),其他線用于握手。第三章 上位機(jī)開發(fā)環(huán)境與主要技術(shù)3.1 上位機(jī)開發(fā)平臺delphi是著名的borland公司開發(fā)的可視化軟件開發(fā)工具。delphi系列軟件的工作平臺相當(dāng)廣泛,可以工作于windows95、windows98、windowsnt、windows2000以及windows xp下,編程所用的語言為object pascal語言。object pascal語言具有高度清晰的結(jié)構(gòu),高效率的優(yōu)化系統(tǒng),是一種簡單易學(xué),但又不乏其作為優(yōu)

26、秀編程語言的特點(diǎn)。delphi具有簡單、高效、功能強(qiáng)大的特點(diǎn)。和vc相比,delphi更簡單、更易于掌握,而在功能上卻絲毫不遜色;和vb相比,delphi則功能更強(qiáng)大、更實(shí)用。由于delphi同時兼?zhèn)淞藇c功能強(qiáng)大和vb簡單易學(xué)的特點(diǎn),因此它成為了程序員至愛的編程工具。delphi的主要特性如下:1)delphi是32位應(yīng)用程序,使用它可以開發(fā)出各種功能強(qiáng)大的應(yīng)用程序;2)delphi的編譯器是目前世界上最快的32位本地代碼編譯器,使用這種編譯器產(chǎn)生的運(yùn)行文件(exe)是獨(dú)立的,不需要鏈接運(yùn)行時的解釋器dl;3)delphi可充分發(fā)揮windows95/98/2000/nt和windows n

27、t的強(qiáng)大功能;4)delphi提供了多種32位可視組件;5)delphi是一種面向?qū)ο蟮某绦蛟O(shè)計語言,因此可做到對可視窗體的繼承;6)delphi采用三層數(shù)據(jù)庫管理模式(數(shù)據(jù)層、對象層、應(yīng)用程序?qū)樱?,把例如?shù)據(jù)模型、業(yè)務(wù)規(guī)則、窗體和對象等集中存儲在對象存儲庫中;7)應(yīng)用程序可通過在delphi中使用borland公司提供的數(shù)據(jù)引擎(bde)功能從而毫無障礙地使用多種數(shù)據(jù)庫,例如oracle、sybase等;8)使用delphi提供的數(shù)據(jù)庫瀏覽器。3.2 數(shù)據(jù)庫方案的實(shí)現(xiàn)目前常用的數(shù)據(jù)庫有oracle、sql、server、access和mysql等,下面對這幾個主流的數(shù)據(jù)庫各自特點(diǎn)簡單介紹。o

28、racle數(shù)據(jù)庫系統(tǒng)是對象關(guān)系型數(shù)據(jù)庫,支持大型多用戶數(shù)據(jù)系統(tǒng)和分布式數(shù)據(jù)庫和分布處理,具有可移植性和兼容性,一般用在大型事務(wù)處理及客戶服務(wù)器結(jié)構(gòu)的應(yīng)用系統(tǒng),但價格昂貴,不適合一般開發(fā)應(yīng)用。sql server是基于服務(wù)器端的中型的數(shù)據(jù)庫,可以適合大容量數(shù)據(jù)的應(yīng)用,在處理海量數(shù)據(jù)的效率,后臺開發(fā)的靈活性,可擴(kuò)展性等方面強(qiáng)大;是真正的客戶機(jī)服務(wù)器體系結(jié)構(gòu),圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫管理更加直觀、簡單;豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計提供了更大的選擇余地:對網(wǎng)絡(luò)技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫中的數(shù)據(jù)發(fā)布到網(wǎng)頁上。mysql是一個開放源碼的小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),目前被廣泛地

29、應(yīng)用在intemet上的中小型網(wǎng)站中。由于其體積小、速度快、總體成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了mysql作為網(wǎng)數(shù)據(jù)庫。mysql可以支持windows、unix、linux和sun os等多種操作系統(tǒng)平臺。access是微軟公司推出的基于windows的桌面關(guān)系數(shù)據(jù)庫管理系統(tǒng),是office系列應(yīng)用軟件之一。它提供了表、查詢、窗體、報表、頁、宏和模塊來建立數(shù)據(jù)庫系統(tǒng)的對象;提供了多種向?qū)А⑸善骱湍0?,把?shù)據(jù)存儲、查詢、界面設(shè)計、報表生成等操作規(guī)范化等。幾種數(shù)據(jù)庫各有特點(diǎn),其中access是一個中、小型數(shù)據(jù)庫管理系統(tǒng),使用方便、功能強(qiáng)大、易操作并

30、且很實(shí)用,它適合數(shù)據(jù)量不太大的應(yīng)用,在處理數(shù)據(jù)庫時效率也很高。所以本課題選用access作為數(shù)據(jù)庫平臺,既可以滿足數(shù)據(jù)操作方便迅速的特點(diǎn),也可以降低軟件的開發(fā)成本。3.3 串口通信的實(shí)現(xiàn)方法3.3.1 概述實(shí)際中串口通信程序的開發(fā)很少直接使用api函數(shù),因?yàn)檫@會無謂的增加編程難度,也會給調(diào)試帶來諸多不便。在面向?qū)ο蠓椒ㄏ峦ǔJ褂么陬?即串口函數(shù)庫),這樣編程效率即高,調(diào)試又方便。下面就從通信api介紹、串口類開發(fā)這兩方面加以介紹。l、串口通信api函數(shù)基礎(chǔ)通信api函數(shù)是整個串口通信程序的基礎(chǔ),串口類中的任何成員函數(shù)也只不過是對通信api函數(shù)的封裝而己。通信api函數(shù)所涉及的操作包括串口的打

31、開、關(guān)閉、初始化與讀寫等。(1)串口的打開與關(guān)閉 win32系統(tǒng)把文件的概念進(jìn)行了擴(kuò)展,無論是文件、通信設(shè)備、命名管道、郵槽、磁盤,還是控制臺,都是用api函數(shù)create file()來打開或創(chuàng)建的。如果打開成功的話會返回一個串口的句柄,應(yīng)用程序應(yīng)對這個句柄判斷其有效性。當(dāng)不再使用該串口句柄時,應(yīng)該調(diào)用closehandle0函數(shù)關(guān)閉之,以方便其它應(yīng)用程序申請對串口的控制權(quán)。(2)串口的初始化在打開串口后,常常需要對串口進(jìn)行一些初始化工作,這需要通過一個dcb結(jié)構(gòu)來進(jìn)行。dcb結(jié)構(gòu)包含了諸如波特率、數(shù)據(jù)位數(shù)、奇偶校驗(yàn)和停止位數(shù)等信息。在查詢或配置串行口的屬性時,都要用dcb結(jié)構(gòu)來作為緩沖區(qū)。

32、調(diào)用函數(shù)可以獲得串口的配置,該函數(shù)把當(dāng)前配置填充到一個dcb結(jié)構(gòu)中。一般在用createfile0打開串行口后,就調(diào)用getcommstate()函數(shù)來獲取串行口的初始配置。要修改串行口的配置,應(yīng)該先修改dcb結(jié)構(gòu),然后再調(diào)用setcommstate0函數(shù)用指定的dcb結(jié)構(gòu)來設(shè)置串行口。除了在dcb中的設(shè)置外,程序一般還需要設(shè)置io緩沖區(qū)的大小。windows用陽緩沖區(qū)來暫存串行口輸入和輸出的數(shù)據(jù),如果通信的速率較高,則應(yīng)該設(shè)置較大的緩沖區(qū)調(diào)用sctupcommo函數(shù)可以設(shè)置串行口的輸入和輸出緩沖區(qū)的大小。在對串口進(jìn)行讀寫的時候,需要考慮超時問題。超時有兩種:間隔超時和總超時。間隔超時是指在接

33、收時兩個字符之間的最大時延,總超時是指讀寫操作總共花費(fèi)的最大時間。寫操作只支持總超時,而讀操作兩種超時均支持。在用異步方式讀寫串行口時,雖然在完成讀寫操作以前就可能返回,但超時仍然是起作用的。在這種情況下,超時規(guī)定的是操作的完成時間,而不是讀寫函數(shù)的返回時間。(3)串口的讀寫控制這部分內(nèi)容關(guān)系到串行通信的核心內(nèi)容,將分讀寫串口api函數(shù)、異步io操作兩部分介紹。讀寫串口api函數(shù):win32中使用readfile0函數(shù)或者readfileex0數(shù)從串口中讀取數(shù)據(jù)。兩者區(qū)別是:前者對同步操作和異步操作都支持,而后者僅支持異步操作。eadfile0函數(shù)第四個參數(shù),在讀操作之前應(yīng)置為0。同樣,寫串口

34、函數(shù)也有兩個,一個是writefile0,另一個是writefileex0前者同時支持同步操作和異步操作,而后者僅支持異步操作。寫函數(shù)不論在聲明形式上還是在使用方法上都與readfile0十分相似,具體可以查看msdn幫助文檔。異步io操作:在用readfile0和writefile0讀寫串行口時,既可以同步執(zhí)行,也可以異步執(zhí)行。在同步執(zhí)行時,函數(shù)直到操作完成后才返回。這意味著在同步執(zhí)行時線程會被阻塞,從而導(dǎo)致效率下降。在異步執(zhí)行時,即使操作還未完成,調(diào)用的函數(shù)也會立即返回。費(fèi)時的io操作在后臺進(jìn)行,這樣線程就可以干別的事情。例如,線程可以在不同的端口上同時執(zhí)行io操作,甚至可以在同一端口上同

35、時進(jìn)行讀寫操作?!爱惒揭辉~的含義就在于此。readfile0和writefile()函數(shù)是否為異步操作模式是由createfile()函數(shù)決定的。如果在調(diào)用createfileo創(chuàng)建句柄時指定了ile flag overlapped標(biāo)志,那么調(diào)用readfileo和writefileo對該句柄進(jìn)行的讀寫操作就是異步的,如果未指定異步標(biāo)志,則讀寫操作是同步的。在設(shè)置了異步io操作后,io操作和函數(shù)返回有以下兩種情況:第一種,函數(shù)返回時io操作己完成:此時結(jié)果好像是同步執(zhí)行的,但實(shí)際上這是異步操作的結(jié)果。第二種,函數(shù)返回時io操作還沒完成:此時一方面,函數(shù)返回值為0,并且getlasterroro

36、函數(shù)返回error io pending;另一方面,系統(tǒng)把overlapped中的信號事件設(shè)為無信號狀態(tài)。當(dāng)io操作完成后,系統(tǒng)將它設(shè)置為有信號狀態(tài)。如果getlasterror0函數(shù)返ieierror io pending,則說明異步操作還沒完成,線程可以等待操作完成。有兩種等待辦法:一種辦法是用像waitforsingleobject0這樣的等待函數(shù)來等待overlapped結(jié)構(gòu)的hevent成員,可以規(guī)定等待的時間,在等待函數(shù)返回后,調(diào)用getoverlappedresult0。另一種辦法是用getoverlappedresult()函數(shù)等待,如果指定該函數(shù)的bwait參數(shù)為true,那

37、么該函數(shù)將等待overlapped結(jié)構(gòu)的hevent事件,并且只有當(dāng)io操作完成后方返回(實(shí)際上這又變成了同步方式)。同時getoverlappedresultoi函數(shù)可以返回一個overlapped。結(jié)構(gòu)來報告包括實(shí)際傳輸字節(jié)在內(nèi)的重疊操作結(jié)果。2、串口類的開發(fā)串口類是對通信api函數(shù)進(jìn)行最一般的封裝,以便能夠應(yīng)用于不同的串口應(yīng)用程序開發(fā)中?,F(xiàn)在開發(fā)串口應(yīng)用程序的方法很多,如微軟的msccomm控件,但是mscomm本身存在一定的弊端,如只能發(fā)送ascii碼等。從用戶角度講上位機(jī)串口通信模塊的使用流程一般分四個步驟,即“初始化并打開串口一監(jiān)視串口讀寫串21-關(guān)閉串口。3.3.2 串口通信ap

38、i函數(shù)的實(shí)現(xiàn)原理實(shí)際中串口通信程序的開發(fā)很少直接使用api函數(shù),因?yàn)檫@會無謂的增加編程難度,也會給調(diào)試帶來諸多不便。在面向?qū)ο蠓椒ㄏ峦ǔJ褂么陬?即串口函數(shù)庫),這樣編程效率即高,調(diào)試又方便。通信api函數(shù)是整個串口通信程序的基礎(chǔ),串口類中的任何成員函數(shù)也只不過是對通信api函數(shù)的封裝而己。通信api函數(shù)所涉及的操作包括串口的打開、關(guān)閉、初始化與讀寫等。 (1)串口的打開與關(guān)閉win32系統(tǒng)把文件的概念進(jìn)行了擴(kuò)展,無論是文件、通信設(shè)備、命名管道、郵槽、磁盤,還是控制臺,都是用api函數(shù)createfile()來打開或創(chuàng)建的。如果打開成功的話會返回一個串口的句柄,應(yīng)用程序應(yīng)對這個句柄判斷其有效

39、性。當(dāng)不再使用該串口句柄時,應(yīng)該調(diào)用closehandle0函數(shù)關(guān)閉之,以方便其它應(yīng)用程序申請對串口的控制權(quán)。 (2)串口的初始化在打開串口后,常常需要對串口進(jìn)行一些初始化工作,這需要通過一個dcb結(jié)構(gòu)來進(jìn)行。dcb結(jié)構(gòu)包含了諸如波特率、數(shù)據(jù)位數(shù)、奇偶校驗(yàn)和停止位數(shù)等信息。在查詢或配置串行口的屬性時,都要用dcb結(jié)構(gòu)來作為緩沖區(qū)。調(diào)用函數(shù)可以獲得串口的配置,該函數(shù)把當(dāng)前配置填充到一個dcb結(jié)構(gòu)中。一般在createfile0打開串行口后,就調(diào)用getcommstate()i函l數(shù)來獲取串行口的初始配置修改串行口的配置,應(yīng)該先修改dcb結(jié)構(gòu),然后再調(diào)用setcommstate0函數(shù)用指定的dcb

40、結(jié)構(gòu)來設(shè)置串行口3。除了在dcb中的設(shè)置外,程序一般還需要設(shè)置io緩沖區(qū)的大小。windows用陽緩沖區(qū)來暫存串行口輸入和輸出的數(shù)據(jù),如果通信的速率較高,則應(yīng)該設(shè)置較大的緩沖區(qū)調(diào)用sctupcommoi函數(shù)可以設(shè)置串行口的輸入和輸出緩沖區(qū)的大小。在對串口進(jìn)行讀寫的時候,需要考慮超時問題。超時有兩種:間隔超時和總超時。間隔超時是指在接收時兩個字符之間的最大時延,總超時是指讀寫操作總共花費(fèi)的最大時間。寫操作只支持總超時,而讀操作兩種超時均支持。在用異步方式讀寫串行口時,雖然在完成讀寫操作以前就可能返回,但超時仍然是起作用的。在這種情況下,超時規(guī)定的是操作的完成時間,而不是讀寫函數(shù)的返回時間。 (3

41、)串口的讀寫控制這部分內(nèi)容關(guān)系到串行通信的核心內(nèi)容,將分讀寫串口api函數(shù)、異步io操作兩部分介紹。讀寫串口api函數(shù):win32中使用readfile0函數(shù)或者readfileex0數(shù)從串口中讀取數(shù)據(jù)。兩者區(qū)別是:前者對同步操作和異步操作都支持,而后者僅支持異步操作。readfile0函數(shù)第四個參數(shù),在讀操作之前應(yīng)置為0。同樣,寫串口函數(shù)也有兩個,一個是writefile0,另一個是writefileex0前者同時支持同步操作和異步操作,而后者僅支持異步操作。寫函數(shù)不論在聲明形式上還是在使用方法上都與readfile0十分相似,具體可以查看msdn幫助文檔。 異步io操作:在用readfil

42、e0和writefile0讀寫串行口時,既可以同步執(zhí)行,也可以異步執(zhí)行。在同步執(zhí)行時,函數(shù)直到操作完成后才返回。這意味著在同步執(zhí)行時線程會被阻塞,從而導(dǎo)致效率下降。在異步執(zhí)行時,即使操作還未完成,調(diào)用的函數(shù)也會立即返回。費(fèi)時的io操作在后臺進(jìn)行,這樣線程就可以干別的事情。例如,線程可以在不同的端口上同時執(zhí)行io操作,甚至可以在同一端口上同時進(jìn)行讀寫操作。“異步一詞的含義就在于此。readfile0和writefile(i)函數(shù)是否為異步操作模式是由createfile函數(shù)決定的。如果在調(diào)用createfileo創(chuàng)建句柄時指定了file flag overlapped標(biāo)志,那么調(diào)用readfil

43、eo和writefileo對該句柄進(jìn)行的讀寫操作就是異步的,如果未指定異步標(biāo)志,則讀寫操作是同步的5。3.3.3 串口類的開發(fā)串口類是對通信api函數(shù)進(jìn)行最一般的封裝,以便能夠應(yīng)用于不同的串口應(yīng)用程序開發(fā)中?,F(xiàn)在開發(fā)串口應(yīng)用程序的方法很多,如微軟的msccomm控件,但是mscomm本身存在一定的弊端,如只能發(fā)送ascii碼等。從用戶角度講上位機(jī)串口通信模塊的使用流程一般分四個步驟,即“初始化并打開串口-監(jiān)視串口-讀寫串口-關(guān)閉串口”。封裝串口類cmycom的成員函數(shù)時也正是基于這種理解,各成員函數(shù)介紹如下:(1)初始化并打開串口函數(shù)函數(shù)聲明形式:bool cmycom:initmycom(i

44、nt nport,int nbaud,int ndatabits,int nstopbits)參數(shù)含義:nport為端口號,支持串口l至串口4;nbaud為波特率,支持常用波特率如9600baud;ndatabits為數(shù)據(jù)位數(shù),支持58位:nstopbits為停止位數(shù),支持12位;返回值:當(dāng)設(shè)置成功后,返回值為true;失敗時,返回值為false;實(shí)現(xiàn)原理:本函數(shù)只支持操作一個串口。程序根據(jù)串口配置情況調(diào)用createfile0函數(shù)打開串口,隨后啟動串口監(jiān)視線程等待應(yīng)答數(shù)據(jù)。 圖3-1-initmycom()函數(shù)流程圖(2)寫串口函數(shù)。函數(shù)聲明形式:bool cmycom:writemycom

45、(char*bur,dword dwbuflen)參數(shù)含義:buf為待發(fā)命令的緩沖區(qū)指針,dwbuflen待發(fā)字符。返回值:返回值為實(shí)際發(fā)送的字符數(shù);實(shí)現(xiàn)原理:該函數(shù)調(diào)用writefileo發(fā)送命令并調(diào)用getoverlappedresult0函數(shù)返回實(shí)際發(fā)送的字符6。第四章 使用spcomm控件實(shí)現(xiàn)串口通信delphi可以利用的眾多串行通信控件中,spcomm控件可謂是最簡單,功能比較強(qiáng)大的一種。它支持data bits(數(shù)據(jù)位)、parity(奇偶校驗(yàn))、stop bits等設(shè)置,支持read/write,timing control(時序控制),read interval timeout

46、(讀間斷超時控制),writeinterval timeout(寫間斷超時控制)等,同時還支持dtr/dsr,rts/dts等硬件流程控制及xon/xoff(握手協(xié)議)軟件流程控制,是比較完善的控件。4.1安裝spcomm控件從互聯(lián)網(wǎng)能下載spcomm控件。選擇下拉菜單component中的install component選項(xiàng),在unit filename處填寫spcomm控件所在的路徑,其他各項(xiàng)可用默認(rèn)值,點(diǎn)擊ok按鈕。如圖4-1安裝后,在system控件面板中將出現(xiàn)一個紅色控件com。現(xiàn)在就可以像delphi自帶控件一樣使用com控件了9。圖4-1 安裝spcomm控件4.2 spcom

47、m的主要屬性,方法和事件4.2.1 屬性commname:填寫com1,com2等串口的名字,在打開串口前,必須填寫好此值。baudrate:設(shè)定波特率9 600,4 800等,根據(jù)實(shí)際需要來定,在串口打開后也可更改波特率,實(shí)際波特率隨之更改。paritycheck:奇偶校驗(yàn)。bytesize:字節(jié)長度5, 6, 7, 8等,根據(jù)實(shí)際情況設(shè)定。parity:奇偶校驗(yàn)位。pbits:停止位。senddataempty:這是一個布爾屬性,為true時表示發(fā)送緩存為空,或者發(fā)送隊(duì)列里沒有信息;為false時表示發(fā)送緩存不為空,或者發(fā)送隊(duì)列里有信息。4.2.2 方法startcomm方法用于打開串口,

48、當(dāng)打開失敗時通常會報錯。錯誤主要有7種:串口已經(jīng)打開;打開串口錯誤;文件句柄不是通信句柄;不能夠安裝通信緩存;不能產(chǎn)生事件;不能產(chǎn)生讀進(jìn)程;不能產(chǎn)生寫進(jìn)程。stopcomm過程用于關(guān)閉串口,沒有返回值。writecommdata(pdatatowrite: pchar; dwsi-zeofdatatowrite:word ):boolean用于發(fā)送一個字符串到寫線程,發(fā)送成功返回true,發(fā)送失敗返回false,執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。函數(shù)有兩個參數(shù),其中pdatatowrite是要發(fā)送的字符串, dwsi-zeofdatatowrite是發(fā)送的長度9。4.2.3 事件

49、onreceivedata:procedure(sender:tobject;buffer:pointer;bufferlength:word) of object當(dāng)輸入緩存有數(shù)據(jù)時將觸發(fā)該事件,在這里可以對從串口收到的數(shù)據(jù)進(jìn)行處理。buffer中是收到的數(shù)據(jù),buff-erlength是收到的數(shù)據(jù)長度。onreceiveerror:procedure(sender: tobject; event-ask:dword)當(dāng)接受數(shù)據(jù)時出現(xiàn)錯誤將觸發(fā)該事件。4.3 spcomm的使用以實(shí)現(xiàn)pc機(jī)與單片機(jī)8051之間的通信為例,首先要調(diào)通他們之間的握手信號。假定他們之間的通信協(xié)議是:pc到8051一幀

50、數(shù)據(jù)6個字節(jié),8051到pc一幀數(shù)據(jù)也為6個字節(jié)。當(dāng)pc發(fā)出(f0,01,ff,ff,01,f0)后8051能收到一幀(f0,01,ff,ff,01,f0),表示數(shù)據(jù)通信握手成功,兩者之間就可以按照協(xié)議相互傳輸數(shù)據(jù)。創(chuàng)建一個新的工程comm.dpr,把窗體的標(biāo)題定義為單片機(jī)串口通信:圖4-2 單片機(jī)串口通信窗口實(shí)現(xiàn)pc機(jī)與單片機(jī)之間的數(shù)據(jù)發(fā)送及接收具體步驟:(1) 初始化并打開串口需要選擇本次通信使用的串口,確定通信協(xié)議,即設(shè)置波特率、校驗(yàn)方式、數(shù)據(jù)位、停止位等屬性,打開該串口。代碼如下:初始化并打開串口:commlbaudrate:=9600; 波特率9600bpscommlparity:=

51、none; 奇偶檢驗(yàn)無commlbytesize:=8: 數(shù)據(jù)位8commlstopbits:=l; 停止位1commlstartcomm: 打開串口(2)建立握手信號實(shí)現(xiàn)pc機(jī)與單片機(jī)之間的通信,首先要調(diào)通它們之間的握手信號,握手信號可以隨意選擇某特定字符串,當(dāng)pc發(fā)出這樣一幀數(shù)據(jù)后,通過接收事件能收到單片機(jī)返回的這一幀數(shù)據(jù)或特定的某字符串,則表示握手成功,系統(tǒng)通信正常。兩者之間就可以按照協(xié)議相互傳輸數(shù)據(jù)。否則需重新建立握手信號。(3)發(fā)送數(shù)據(jù)在編寫基于串口的計算機(jī)工業(yè)測控時,通常需要由pc機(jī)向下位機(jī)發(fā)送命令以控制下位機(jī)的行為,同時向下位機(jī)發(fā)送有關(guān)數(shù)據(jù)。利用spcomm串口控件向下位機(jī)發(fā)送數(shù)

52、據(jù)代碼如下:發(fā)送數(shù)據(jù)和控制子程序procedure senddata;vari:integer;commflg:boolean;begincommflg:=true;for i:=l to 8 dobeginif not fcomm comml writecommdata(sendbutter,i)thenbegincommflg=false;break;end;end;end;(4)接收數(shù)據(jù)在編寫基于串口的計算機(jī)工業(yè)測控時,通常需要由下位機(jī)向pc機(jī)發(fā)送數(shù)據(jù)以使pc機(jī)了解系統(tǒng)的測試數(shù)據(jù)或下位機(jī)的運(yùn)行狀態(tài),并進(jìn)而控制下位機(jī)的行為11。利用spcomm串口控件接收下位機(jī)發(fā)送的數(shù)據(jù)信息的代碼如下:事

53、件驅(qū)動方式接收數(shù)據(jù)程序procedure tform 1commlreceivedata(sender:tobject;buffer:pointer;bufferlength:word);varreceivedata:array ofbyte;beginsleep(100); 等待looms,保證接收到所有數(shù)據(jù)move(buffef,receivedata,bufferlength); 將接收緩存區(qū)中的數(shù)據(jù)轉(zhuǎn)移到數(shù)組中.end;(5)關(guān)閉串口在系統(tǒng)開發(fā)中,應(yīng)注意在不使用串口時應(yīng)及時關(guān)閉串口,釋放系統(tǒng)資源,否則可能會影響系統(tǒng)的其它應(yīng)用。關(guān)閉串口的代碼如下:procedure tformlform

54、close(sender;tobj ect:var action:tcioseaction);begincommlstopcomm;end;第五章 上位機(jī)軟件設(shè)計5.1 系統(tǒng)設(shè)計概述本軟件采用模塊化設(shè)計方案,以系統(tǒng)主界面模塊為主導(dǎo),實(shí)現(xiàn)用戶等級管理等主要功能,這樣可以使整個軟件結(jié)構(gòu)層次化,且更易于維護(hù)和升級。圖5-1 軟件模塊結(jié)構(gòu)圖5.2數(shù)據(jù)庫平臺的選擇數(shù)據(jù)庫平臺選用microsoft access 2003,access2003是office2003中文版的組件之一,是一個中、小型數(shù)據(jù)庫管理系統(tǒng),使用方便、功能強(qiáng)大,與其它數(shù)據(jù)庫有良好的接口。access2003具有完整的數(shù)據(jù)庫應(yīng)用開發(fā)工具,

55、用戶可以方便地設(shè)計、修改、瀏覽一個記錄數(shù)據(jù)的基本表;可以在表數(shù)據(jù)中進(jìn)行各種篩選和查詢操作;可以設(shè)計和使用各種窗體以實(shí)現(xiàn)數(shù)據(jù)顯示和操作;可以根據(jù)表數(shù)據(jù)設(shè)計打印各種報表;對表進(jìn)行一系列特定的操作。access2003內(nèi)有強(qiáng)大的操作向?qū)?,為用戶提供了豐富的數(shù)據(jù)庫基本表模板。用戶只需簡單的操作就可建立數(shù)據(jù)庫中所使用的各種基本表、窗體和報表。在access2003中,可以設(shè)定、修改基本表之間的關(guān)聯(lián),從而實(shí)現(xiàn)在多個相關(guān)表之間的關(guān)系查詢。access2003中的宏可以實(shí)現(xiàn)操作的自動化,使操作更加簡單、快捷。access2003不僅可以處理自身的數(shù)據(jù)庫文件,還可以處理其它一些數(shù)據(jù)庫系統(tǒng)管理軟件所建立的數(shù)據(jù)庫文件,能識別dbase、foxbase、foxpro、paradox、btrieve等數(shù)據(jù)庫格式文件,并且支持開放式數(shù)據(jù)庫互連性標(biāo)準(zhǔn)(odbc)的sql。倒與其它的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)相比,access2003具有以下優(yōu)點(diǎn):(l)存儲文件單一。access2003的一個數(shù)據(jù)庫文件中包含了該數(shù)據(jù)庫中的全部數(shù)據(jù)表、查詢、窗體、報表等所有數(shù)據(jù),便于管理。(2)支持長文件名,并可以在文件名內(nèi)加空格,使文件便于理解、查找。(3)具有強(qiáng)大的網(wǎng)絡(luò)功能,可通過網(wǎng)絡(luò)傳送數(shù)據(jù)。(4)使用簡便,用戶無需了解編程語言,便可輕松地設(shè)計和開發(fā)數(shù)據(jù)庫應(yīng)用程序。(5)可以處理多種數(shù)據(jù)信息,如文本文件和其它數(shù)據(jù)

溫馨提示

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

評論

0/150

提交評論