基于單片機的電梯轎廂振動檢測畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  第一章 緒 論1</b></p><p>  1.1 課題的發(fā)展現(xiàn)狀1</p>&

2、lt;p>  1.2 課題的提出及研究意義2</p><p>  1.3 本文的內(nèi)容結(jié)構(gòu)2</p><p>  第二章 總體設(shè)計3</p><p>  2.1 振動分析3</p><p>  2.2 系統(tǒng)整體設(shè)計6</p><p>  2.3 本章小結(jié)7</p><p>  

3、第三章 硬件設(shè)計8</p><p>  3.1 單片機模塊8</p><p>  3.2 振動信號檢測模塊11</p><p>  3.3 模/數(shù)轉(zhuǎn)換模塊13</p><p>  3.4 顯示模塊14</p><p>  3.5 串口通信模塊15</p><p>  3.6 抗干擾

4、技術(shù)18</p><p>  3.7 系統(tǒng)電路板設(shè)計18</p><p>  3.8 本章小結(jié)19</p><p>  第四章 軟件設(shè)計20</p><p>  4.1 設(shè)計思想20</p><p>  4.2 單片機程序設(shè)計21</p><p>  4.2.1 主程序21<

5、;/p><p>  4.2.2 模數(shù)轉(zhuǎn)換子程序22</p><p>  4.2.3 串口通信子程序24</p><p>  4.3 上位機程序設(shè)計25</p><p>  4.4 本章小結(jié)30</p><p>  第五章 系統(tǒng)調(diào)試31</p><p>  5.1 硬件調(diào)試31</

6、p><p>  5.2 軟件調(diào)試32</p><p>  5.3 整體調(diào)試34</p><p>  5.4 本章小結(jié)34</p><p><b>  結(jié) 論35</b></p><p><b>  參考文獻36</b></p><p><b

7、>  致 謝38</b></p><p>  附錄1 系統(tǒng)原理圖39</p><p>  附錄2 系統(tǒng)PCB圖41</p><p>  附錄3 單片機設(shè)計程序42</p><p>  附錄4 上位機設(shè)計程序46</p><p>  附錄5 系統(tǒng)電路板實物51</p><

8、p><b>  摘 要</b></p><p>  本文主要研究基于單片機的電梯轎廂振動檢測。旨在通過單片機和傳感器對運行中的電梯轎廂進行振動檢測,得出轎廂振動的具體波形,為電梯振動的原因分析提供具體依據(jù),也為消除電梯振動對人體的危害提供幫助。通過研究發(fā)現(xiàn)了電梯的不規(guī)則振動超過一定程度會對人體產(chǎn)生危害,而且通過波形分析也得出電梯振動的一些規(guī)律。文中首先介紹了單片機功能特點,分析了單

9、片機和傳感器在電梯檢測中的重要作用。然后對電梯轎廂振動的各種原因進行了綜合分析,同時也提供了一些電梯振動的消除方法。其次主要是針對電梯水平振動的檢測及仿真,通過單片機和傳感器將電梯轎廂的振動量傳遞到上位機,從而得到電梯振動的波形并進行詳細分析。最后,調(diào)試結(jié)果表明,該系統(tǒng)實時性較好,運行穩(wěn)定可靠,而且具有體積小,低功耗和使用方便等優(yōu)點,是一種較為理想的電梯轎廂振動檢測系統(tǒng)。</p><p>  關(guān)鍵字:單片機;電梯

10、;振動檢測</p><p><b>  Abstract</b></p><p>  This paper mainly studies the vibration testing of elevator car based on the SCM. Microcontroller and the sensor are designed to detect the vi

11、bration on the running elevator car, the specific waveform of elevator vibration obtained, to provide the specific basis for analysis of the causes, also to provide help for eliminating the hazards to human. The experime

12、nt found that the irregular vibration of the elevator will harm the human body if it exceeds a certain level, and some law of vibration of</p><p>  Keywords: SCM; levator; vibration testing第一章 緒 論</p>

13、<p>  1.1 課題的發(fā)展現(xiàn)狀</p><p>  隨著全球經(jīng)濟的快速發(fā)展和科技的突飛猛進,特別是在我國改革開放以來,越來越多的現(xiàn)代化都市規(guī)劃者把目光均投向了高層或超高層建筑,而高層或超高層建筑的運輸與消防要求,必須用高速或超高速電梯才能滿足,因此高層或超高層建筑在大量涌現(xiàn)的同時也使高速或超高速電梯的數(shù)量不斷增多,從而使電梯在人們?nèi)粘I钪兴鸬闹匾饔萌找婷黠@。</p><p

14、>  但是,由于電梯轎廂在狹小的電梯井道內(nèi)運行,隨著電梯升降速度的不斷提高,必將帶來一系列空氣動力學問題,其中包括氣動噪聲、電梯轎廂的振動、乘客的安全性和舒適性等一系列問題。所以保證電梯安全、穩(wěn)定、高效的運行,越來越多地引起了人們的關(guān)注。</p><p>  然而長期以來經(jīng)常發(fā)生的情況是:</p><p>  1) 電梯出現(xiàn)人體敏感振動或運行速度不勻等故障時,維修人員難以及時趕到故障

15、電梯的現(xiàn)場;</p><p>  2) 維修人員不能及時地獲得電梯日常運行的振動記錄和檢測資料,不僅不能避免人們乘坐帶有安全隱患的電梯,而且同時還增加了分析與排除故障的難度,大大延長了維修的時間;</p><p>  電梯轎廂振動檢測系統(tǒng)正是基于以上種種原因而出現(xiàn)的。電梯轎廂振動檢測系統(tǒng)是當今電梯控制領(lǐng)域的必要技術(shù);是電梯的管理、維護和確保電梯安全運行的需要;是及時發(fā)現(xiàn)故障,并進行分析和排

16、除的必要手段。</p><p>  目前,國外各大電梯公司如日本的三菱、美國的奧的斯、瑞士的迅達、芬蘭的通力、德國的蒂森等都有不同水平的且與自己電梯系統(tǒng)配套的電梯轎廂振動檢測系統(tǒng)。所以,與這些有著較長電梯發(fā)展史的國家相比,目前我們國家的電梯市場還處在發(fā)展階段,還有較長的路要走,引進先進技術(shù)、開發(fā)新產(chǎn)品、安裝高速高檔電梯的同時,還應(yīng)重視和加強對電梯的規(guī)范化管理,尤其是日常的維護維修和改造方面還有許多工作要做。對于電

17、梯轎廂振動檢測系統(tǒng),國內(nèi)與國外有著不同的側(cè)重點,但卻有一個共同的目標是:人們乘坐高效的電梯既安全穩(wěn)定又舒適可靠。</p><p>  此外,國外電梯轎廂振動檢測系統(tǒng)產(chǎn)品樣本中很多都有類似“可在同一個屏幕上同時檢測n臺電梯的轎廂振動情況”這樣的技術(shù)指標,這是與他們重視群控功能分不開的。同時檢測群組運行中的幾臺電梯,可以更直觀地了解到群組中各電梯運行的健康狀況,以便及時調(diào)整群組電梯的分配原則,消除安全隱患的同時,提高

18、了群組電梯的運行效率。</p><p>  1.2 課題的提出及研究意義</p><p>  現(xiàn)代社會中,電梯已成為不可缺少的運輸設(shè)備。電梯是勢能負載,使用過程中啟動、制動頻繁,負荷變化較大,行駛方向也不斷變化。因此,為了保證電梯安全、可靠、高效地運行,要求電梯在各種負荷下都具有良好的調(diào)速性、穩(wěn)定性以及控制性等。</p><p>  單片機以其體積小、功能強、處理速

19、度快、功耗低、價格便宜等特點在電梯領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。目前,單片機不僅在電梯自動控制和遠程監(jiān)控方面發(fā)揮著重要的作用,而且在新型智能電梯語音系統(tǒng)方面中也有其一技之長。隨著電梯的發(fā)展,在提升電梯升降速度的同時,滿足乘客的舒適感越來越重要,所以,單片機在電梯轎廂振動檢測方面有著廣闊的發(fā)展空間。</p><p>  目前,國內(nèi)外電梯轎廂振動檢測的方式通常有以下兩種:</p><p>  一是

20、使用專門的電梯轎廂振動檢測儀器定時地對電梯進行現(xiàn)場檢測并做好詳細記錄,然后綜合多次檢測結(jié)果進行分析,最后得出結(jié)論。但是這種方式不僅浪費人力物力,而且也不能及時有效的消除電梯可能給人們帶來的安全隱患。</p><p>  二是基于單片機及串口通信標準,專門鋪設(shè)線路,由有關(guān)人員通過設(shè)在電梯維護服務(wù)中心的計算機對分布在各處的電梯集中遠程振動檢測控制。這種方式在節(jié)省人力物力的同時也使電梯轎廂振動檢測實時高效。</p

21、><p>  本課題主要著眼于后者即運用單片機技術(shù)和加速度傳感器技術(shù),再通過串口通信技術(shù),將實時采集到的電梯轎廂振動情況經(jīng)過特殊處理后傳送至電梯維護服務(wù)中心的計算機中以波形的方式實時顯示出來,從而可以為電梯在運行過程中故障的發(fā)現(xiàn)、分析和排除提供適時、方便和形象的解決方案。</p><p>  1.3 本文的內(nèi)容結(jié)構(gòu)</p><p>  本文首先主要是根據(jù)對電梯轎廂振動的

22、數(shù)學分析,提出了課題的總體設(shè)計;然后著重介紹系統(tǒng)硬件電路的設(shè)計,元器件參數(shù)的確定;其次詳細講述軟件編程的總體設(shè)計思想及模塊流程圖,并仿真測試;緊接著側(cè)重論述電路板調(diào)試過程中遇到的主要問題與解決方法;最后給出本課題的總結(jié)與展望。</p><p><b>  第二章 總體設(shè)計</b></p><p><b>  2.1 振動分析</b></p

23、><p><b>  一、建立振動模型</b></p><p>  隨著電梯速度的提升,導軌產(chǎn)生的振動不斷加劇,而導軌又是產(chǎn)生轎廂振動的主要原因之一,因此,下面主要就電梯導軌對轎廂振動的影響來分析和研究。</p><p>  電梯載客部分主要是轎廂,轎廂由轎架和轎廂體組成。電梯轎廂簡化結(jié)構(gòu)如下圖2-1 所示:</p><p>

24、;  圖2-1 電梯轎廂簡化結(jié)構(gòu)圖</p><p>  可以看出,在轎廂體和轎架之間嵌有墊塊,用于固定轎廂體防止振動。導輪或?qū)аt安裝在轎架的上下兩側(cè),與導軌一起組成轎廂的導向件,同時也可以減少水平振動和抑制由偏載引起的轎廂傾斜,導軌則固定在墻壁上。</p><p>  一般來說,導致電梯轎廂水平振動的因素有導軌交接處的突起、導軌表面的高低不平、導軌的彎曲以及導輪自身的缺陷等。因此制造平直

25、的導軌以及安裝導軌時盡量使兩根導軌對直,這將大大減少轎廂的水平振動。不過,缺點是這會提高安裝和制造成本。另一種可以取代的方法是用控制手段來抑制轎廂的水平振動,這種方法不僅可以節(jié)省成本,而且還方便控制調(diào)整。</p><p>  下面就這種方法展開數(shù)學分析:轎廂沿著導軌運行時,如果只考慮轎廂的水平振動,則建立電梯轎廂受力分析數(shù)學模型如下圖2-2 所示:</p><p>  圖2-2 轎廂水平運

26、動模型</p><p>  圖中,為轎廂質(zhì)量;為擺動的轉(zhuǎn)動慣量;為導靴系統(tǒng)的剛度;為導靴系統(tǒng)的阻尼;為轎廂的水平位移;為導靴1的水平位移;為導靴2的水平位移;為導靴3的水平位移;為導靴4的水平位移;為轎廂擺動的角位移;為滾輪1與滾輪3到質(zhì)心的垂直距離;為滾輪2與滾輪4到質(zhì)心的垂直距離;為轎廂運行速度(假設(shè)電梯上行)。</p><p>  其振動微分方程可表示如下:

27、 </p><p><b>  (1)</b></p><p><b> ?。?)</b></p><p>  若只研究圖2-2 中轎廂右側(cè)導軌激勵對轎廂水平振動的影響,可假設(shè)圖2-2 中電梯轎廂其左側(cè)導軌是理想的導軌,即。并且假設(shè)(L為轎廂上下導靴的距離),則振動微分方程可簡化為:</p>

28、<p><b>  (3)</b></p><p> ?。?) </p><p>  求得系統(tǒng)的2

29、個固有頻率</p><p><b> ?。?) </b></p><p> ?。?)

30、 </p><p>  式(3)描述了轎廂質(zhì)心對導軌激勵的響應(yīng),式(4)描述了轎廂在導軌的激勵下繞質(zhì)心的擺動,求解兩式得到位于轎廂底部位置的水平振動加速度a為:</p><p><b> ?。?)</b></p><

31、p>  若電梯以速度v勻速上行,則有</p><p><b>  (8)</b></p><p><b> ?。?)</b></p><p><b>  二、振動的仿真分析</b></p><p>  已知電梯運行時影響轎廂水平振動的因素主要有導軌工作面的表面粗糙度與直線

32、度、導軌安裝后的偏差等。導軌工作面的表面粗糙度反映的是工作面的微觀不平,對轎廂振動的影響較??;導軌直線度反映的是工作面的宏觀不平,對電梯的運行平穩(wěn)性影響較大。導軌安裝后對工作面垂直度與工作面之間的距離均有特殊要求,若發(fā)生較大偏差,對轎廂振動的影響更大。從直線度中提取的特征參數(shù),如接頭處的臺階,未對準度和彎曲反映的都是導軌的宏觀不平,它們都可以看作是轎廂振動的振動源。轎廂產(chǎn)生振動可以看成是所有這些振動源共同作用的結(jié)果。</p>

33、<p>  通過LABVIEW虛擬儀器進行計算機仿真,得到水平振動加速度隨時間變化曲線如下圖2-3 所示:</p><p>  圖2-3 水平振動加速度隨時間變化曲線</p><p>  同時,通過LABVIEW仿真,得到水平振動加速度隨頻率變化曲線如下圖2-4所示:</p><p>  圖2-4 水平振動加速度隨頻率變化曲線</p>&

34、lt;p>  所以,在檢測振動時,應(yīng)合理選擇檢測參數(shù),如振動位移是研究強度和變形的重要依據(jù);振動加速度與作用力或載荷成正比,是研究動力強度和疲勞的重要依據(jù);振動速度決定了噪聲的高低,人對振動的敏感程度在很大的頻率范圍內(nèi)是由振動速度來決定的。 </p><p>  2.2 系統(tǒng)整體設(shè)計</p><p>  通過對電梯轎廂振動的數(shù)學分析,并參考GB/T 10058—1997電梯技術(shù)條件規(guī)

35、定,乘客電梯啟動加速度和制動減速度最大值均不應(yīng)大于,平穩(wěn)運行時轎廂垂直方向和水平方向的振動加速度分別不應(yīng)大于和,得知電梯加速度測量的上限達到的數(shù)量級,而對于數(shù)量級的振動信號測量,則希望分辨力能達到級別,因此檢測系統(tǒng)的動態(tài)范圍要求達到60dB。</p><p>  綜上而知,振動檢測系統(tǒng)整體框圖設(shè)計如下圖2-5 所示:</p><p>  圖2-5 系統(tǒng)整體框圖</p><

36、;p>  此外,由于人體對振動的敏感頻率僅限于低頻段,所以,電梯轎廂振動檢測系統(tǒng)也應(yīng)該具有較好的低頻特性。</p><p>  基于單片機的電梯轎廂振動檢測系統(tǒng),其主要工作就是在電梯運行中通過多個振動傳感器把電梯轎廂各個方向上的大量振動數(shù)據(jù)實時可靠的記錄下來,然后把記錄下來的振動數(shù)據(jù)送入ADC0809數(shù)據(jù)采集系統(tǒng)進行特殊轉(zhuǎn)換處理,將帶有干擾的模擬信號經(jīng)過濾波等干擾消除過程轉(zhuǎn)換成單片機易于接受的數(shù)字信號,之后

37、傳送給AT89S52單片機再經(jīng)過進一步的特殊處理,一方面將接受來的數(shù)字信號轉(zhuǎn)換成數(shù)碼管接受的顯示段碼顯示出來;另一方面將接受來的振動數(shù)字信號處理成為PC機能夠接受的振動信號,然后通過MAX232電平轉(zhuǎn)換使單片機與PC機的串行口電平匹配,把處理后的振動數(shù)據(jù)送入PC機。PC機接受單片機傳送來的振動數(shù)據(jù)后再以波形的方式顯示出來以便分析振動變化情況,從而得出電梯轎廂振動各個方向上的參數(shù)變化趨勢,以便設(shè)計人員做出相應(yīng)的對策來消減電梯轎廂的振動。&

38、lt;/p><p><b>  2.3 本章小結(jié)</b></p><p>  本章首先介紹了電梯轎廂的組成結(jié)構(gòu),并對電梯轎廂進行了受力數(shù)學分析,然后根據(jù)分析所得的結(jié)論,通過虛擬儀器進行了振動仿真,最后,提出了電梯轎廂振動檢測系統(tǒng)的總體設(shè)計方案。</p><p>  本章主要是通過對振動分析,在整體上來把握電梯轎廂振動檢測系統(tǒng)的設(shè)計方案,為下面第二章

39、著重介紹系統(tǒng)硬件電路的設(shè)計提供明確的方向。</p><p><b>  第三章 硬件設(shè)計</b></p><p>  通過上一章節(jié)對系統(tǒng)總體設(shè)計方案的介紹可知:電梯轎廂振動檢測系統(tǒng)的硬件電路是以單片機為核心,由振動信號檢測模塊、A/D轉(zhuǎn)換模塊,顯示模塊及串口通信模塊四部分組成。因此,本章節(jié)主要是針對以上各模塊進行硬件電路設(shè)計。</p><p>

40、;<b>  3.1 單片機模塊</b></p><p>  該模塊使用的單片機是美國Atmel公司的AT89S52單片機,該型號單片機功能強大,價格低廉,可以靈活應(yīng)用于各種控制領(lǐng)域。AT89S52單片機是一種高性能8位單片微型計算機,它在單一芯片內(nèi)集成了并行I/O口、異步串行口、16位定時器/計數(shù)器、中斷系統(tǒng)、片內(nèi)RAM和片內(nèi)ROM以及其他一些功能部件。</p><p&

41、gt;  AT89S52單片機的基本組成如下圖3-1 所示:</p><p>  圖3-1 AT89S52單片機的基本組成</p><p>  中央處理器CPU:單片機的核心部件,用于產(chǎn)生各種控制信號,完成對數(shù)據(jù)的算術(shù)邏輯運算和傳送;</p><p>  內(nèi)部數(shù)據(jù)存儲器RAM:用于存放可以讀/寫的數(shù)據(jù);</p><p>  內(nèi)部程序存儲器RO

42、M:用于存放程序指令或某些常數(shù)表格;</p><p>  4個8位的并行I/O接口P0、P1、P2和P3:每個口都可以用作輸入或者輸出;</p><p>  3個定時器/計數(shù)器:用來作外部事件計數(shù)器,也可以用來定時;</p><p>  內(nèi)部中斷系統(tǒng):具有8個中斷源、2個優(yōu)先級的嵌套中斷結(jié)構(gòu),可實現(xiàn)二級中斷服務(wù)程序嵌套,每一個中斷源都可以用軟件程序規(guī)定為高優(yōu)先級中斷

43、或低優(yōu)先級中斷;</p><p>  一個串行接口電路:可以用于異步接收發(fā)送器;</p><p>  內(nèi)部時鐘電路:振蕩頻率可以高達40MHz,但是晶體和微調(diào)電容需要外接;</p><p>  單片機AT89S52提供以下標準功能:4K字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,看門狗(WDT),兩個數(shù)據(jù)指針,兩個16位的定時/計數(shù)器,一個5向

44、量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89S52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。</p><p>  下面對單片機模塊設(shè)計時所用到的引腳作下說明:</p><p&

45、gt;  RST(9腳):復(fù)位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。</p><p>  EA / Vpp(31腳):外部訪問允許。欲使單片機CPU僅訪問外部程序存儲器(地址為0000H~FFFFH),EA端必須保持低電平(接地)狀態(tài)。需要注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。當EA為高電平即接Vcc端時,CPU則執(zhí)行內(nèi)部程序存儲器中的指令。當F1ash

46、存儲器進行編程時,該引腳加上+12V的編程電壓Vpp。</p><p>  XTAL2(18腳):接外部晶振和微調(diào)電容的一端。在AT89S52片內(nèi)它是振蕩電路反向放大器的輸出端,振蕩電路的頻率就是晶體的固有頻率。若采用外部時鐘電路,則該引腳須懸空。</p><p>  XTAL1(19腳):接外部晶振和微調(diào)電容的另一端。在片內(nèi)它是振蕩電路反向放大器的輸入端。在采用外部時鐘時,該引腳輸入外部

47、時鐘脈沖。</p><p>  單片機模塊電路連接圖如下圖3-2所示。該電路由5V電源給單片機供電,該芯片的P0.0~P0.7用作A/D轉(zhuǎn)換模塊的輸出端口,由于ADC0809輸出的是高電平,所以在程序初始化后,P0.0~P0.7為低電平。P1.0~P1.7用作四位數(shù)碼管的顯示段碼輸入端口,P2.0~P2.3用作動態(tài)顯示的選位端口,P3.0~P3.1用作串口通信的接收和發(fā)送端口,P3.2和P3.3分別用來控制ADC

48、0809的A/D轉(zhuǎn)換結(jié)束信號和地址鎖存允許信號,由于二者均為高電平有效,所以在程序初始化后,P3.2和P3.3均為低電平。</p><p>  圖3-2 單片機模塊電路連接圖</p><p>  由上圖可知,該模塊采用的是內(nèi)部方式時鐘電路。AT89S52單片機要形成時鐘信號,必須外接相關(guān)元件。所以用外接11.0592MHz晶振以及電容C1和C2構(gòu)成并聯(lián)諧振電路,從而可以形成穩(wěn)定的自激振蕩器

49、,然后將其接在反饋回路中。當振蕩頻率在6~12MHz時,通常使電容C1和C2的值選擇為30pF來進行微調(diào)。</p><p>  內(nèi)部方式時鐘電路連接圖如下圖3-3所示:</p><p>  圖3-3 內(nèi)部方式時鐘電路</p><p>  AT89S52單片機同其他微處理器一樣,在啟動時需要復(fù)位,使CPU和系統(tǒng)的各個部件處于一種確定的初始狀態(tài)。復(fù)位信號從RST引腳輸入

50、且高電平有效,其有效電平應(yīng)維持至少2個機器周期。</p><p>  該模塊采用的是按鍵手動復(fù)位方式,復(fù)位電路如下圖3-4所示。單片機的復(fù)位是通過電容充電來實現(xiàn)的。只要電源VCC的電壓上升時間不超過1ms且通過在VCC與RST之間加一個22uF的電容C3,RST與GND之間加一個1k的電阻R1,在按下復(fù)位按鈕后電容C3通過R2放電,同時電源VCC通過R1和R2分壓,而R1要比R2大許多,所以大部分電壓降落在R1上

51、,使RST端得到一個高電平從而導致單片機復(fù)位。</p><p>  圖3-4 按鍵手動復(fù)位電路</p><p>  一個實際單片機應(yīng)用系統(tǒng)能否正常工作,首先要檢查能否產(chǎn)生正確的復(fù)位信號。復(fù)位以后,單片機內(nèi)部各寄存器的狀態(tài)如下表3-1所示:</p><p>  表3-1 單片機內(nèi)部各寄存器復(fù)位狀態(tài)</p><p>  3.2 振動信號檢測模塊&

52、lt;/p><p>  該模塊所選MMA7260QT低成本微型電容式加速度傳感器采用了信號調(diào)理、單極低通濾波器和溫度補償技術(shù),提供4個量程可選,并且因其小巧輕便,將其安裝在電梯轎廂中實時檢測電梯運行中的轎廂振動狀況,從而可以提高電梯的安全性能。</p><p>  MMA7260QT內(nèi)部結(jié)構(gòu)如下圖3-5所示。gn-Select1和gn-Select2為量程選擇控制,Sleep Mode為休眠模

53、式控制,當其為高電平時MMA7260QT正常工作,低電平時休眠。Xout、Yout、Zout分別為X、Y、Z三個方向的模擬輸出,并且該芯片采用5V直流電作為其工作電壓,所以Vss為5V供電源的正極,在5V的工作電壓下,當檢測到有振動信號時輸出電壓為3.78V,輸出端經(jīng)NPN型三極管將電流放大后與ADC0809的IN0連接。</p><p>  三軸加速度傳感器是一種可以對物體運動過程中的加速度進行測量的電子設(shè)備,

54、本設(shè)計是基于單片機技術(shù)將MMA7260QT應(yīng)用在電梯轎廂振動檢測方面。</p><p>  圖3-5 MMA7260QT內(nèi)部結(jié)構(gòu)</p><p>  振動信號檢測模塊的電路連接圖如下圖3-6所示。該電路在接通電源之后,工作指示燈亮說明電路正常工作,休眠控制引腳Sleep Mode接單片機P3.7,當P3.7為高電平時,MMA7260QT加速度傳感器開始工作,低電平時則休眠。gn-Selec

55、t1、gn-Select2分別去接單片機P2.4、P2.5來控制測量范圍和重量靈敏度的檔位選擇。并且該電路采用RT9161來進行電壓選擇控制,能夠?qū)﹄娞蒉I廂的振動進行檢測,根據(jù)振動強度輸出不同的電壓值來表示振動的變化情況。</p><p>  圖3-6 振動信號檢測電路</p><p>  3.3 模/數(shù)轉(zhuǎn)換模塊</p><p>  電梯轎廂的振動量由振動傳感器測量

56、得到之后還需經(jīng)過數(shù)據(jù)采集處理系統(tǒng)轉(zhuǎn)換成單片機可以接受的數(shù)字信號,而ADC0809是美國國家半導體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式A/D轉(zhuǎn)換器,它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換,其轉(zhuǎn)換時間為100us左右。因此本設(shè)計選擇使用ADC0809來轉(zhuǎn)換振動傳感器測量所得的轎廂振動信號。</p><p>  A/D轉(zhuǎn)換器的結(jié)構(gòu)框圖如下圖3-7 所示: </p&g

57、t;<p>  圖3-7 A/D轉(zhuǎn)換器的結(jié)構(gòu)</p><p>  ADC0809芯片有28條引腳,采用雙列直插式封裝,下面對此模塊所用到</p><p><b>  的引腳簡單說明:</b></p><p>  IN0~IN7:8路模擬量輸入端。</p><p>  OUT1~OUT8:8位數(shù)字量輸出端。&

58、lt;/p><p>  ADDA、ADDB、ADDC:3位地址輸入線,選通8路模擬輸入中的一路。ALE:地址鎖存允許信號,輸入高電平有效。</p><p>  START:A/D轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns寬使其啟動(脈沖上升沿使0809復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。 </p><p>  EOC: A/D轉(zhuǎn)換結(jié)束信號,輸出,當A/D轉(zhuǎn)換結(jié)束時,此

59、端輸出一個高電平(轉(zhuǎn)換期間一直為低電平)。 </p><p>  OE:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當A/D轉(zhuǎn)換結(jié)束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p><p>  CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。</p><p>  REF(+)、REF(-):基準電壓。</p><p>  Vc

60、c:電源,單一+5V。</p><p><b>  GND:地。</b></p><p>  ADC0809與單片機連接如圖3-8所示:</p><p>  圖3-8 ADC0809與單片機連接</p><p>  此模塊選擇的是ADC0809的通道0,數(shù)據(jù)輸出口連接單片機的P0口,時鐘脈沖由單片機P3.3來產(chǎn)生,同時地

61、址鎖存允許信號也由P3.3控制,當有振動信號輸入時,P3.3為高電平,使得ALE=1,從而將地址存入地址鎖存器中,A/D轉(zhuǎn)換啟動脈沖輸入端連接P3.0,P3.0輸出脈沖的上升沿將逐次逼近寄存器復(fù)位,下降沿啟動A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行,直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示轉(zhuǎn)換結(jié)束。</p><p>  數(shù)據(jù)輸出允許信號OE連接單片機P3.1,E0C=1可用作中斷申請,當P3.1輸出

62、高電平時,ADC0809的輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上傳送給單片機進行處理。</p><p><b>  3.4 顯示模塊</b></p><p>  該模塊采用的是四位數(shù)碼管動態(tài)顯示,即一位一位地輪流點亮各位顯示器,對于顯示器的每一位而言,每隔一段時間點亮一次。在同一時刻只有一位顯示器在工作,利用人眼的視覺暫留效應(yīng)和發(fā)光二極管熄滅時產(chǎn)生的余輝效應(yīng)

63、,看到的卻是多個字符同時顯示。顯示器亮度既與點亮時的導通電流有關(guān),也與點亮時間和間隔時間的比例有關(guān)。調(diào)整電流和時間參數(shù),可實現(xiàn)亮度較高較穩(wěn)定的顯示。</p><p>  顯示模塊的電路連接圖如3-9所示。四位一體數(shù)碼管采取的是共陽極接法,其內(nèi)部段已連接好,A、B、C、D、E、F、G、DP為段引腳,1、2、3、4分別表示四個數(shù)碼管的位,此模塊用單片機將ADC0809轉(zhuǎn)換后的數(shù)字量處理成顯示段碼再通過P1口發(fā)送給四位

64、數(shù)碼管的段引腳,并且用P2.0~P2.3依次給數(shù)碼管的位送低電平來控制數(shù)碼管一位一位地顯示。</p><p>  圖3-9 數(shù)碼管與單片機連接</p><p>  3.5 串口通信模塊</p><p>  單片機和PC機的通信是通過單片機的串口和PC機串口之間的硬件連接來實現(xiàn)的。PC機內(nèi)裝有異步通信適配器板,其主要器件為可編程的8250UART芯片。它使該機有能力與

65、其他具有標準RS-232C串行通信接口的計算機或設(shè)備進行通信。而AT89S52單片機本身具有一個全雙工的串行口,只要外接一個MAX232電平轉(zhuǎn)換器就可以與PC機的RS-232C串行口連接,組成一個簡單可行的通信接口。電路具體連接如下圖3-10 所示:</p><p>  圖3-10 單片機與PC機串口通信</p><p>  本系統(tǒng)中采用異步串行通信方式來實現(xiàn)單片機與PC之間的通信。異步串

66、行通信是以字符為單位組成的幀進行傳送的,即一幀一幀地進行傳送。幀由發(fā)送端一幀一幀地發(fā)送,通過傳輸線由被接收設(shè)備一幀一幀地進行接收。發(fā)送端何時開始發(fā)送和何時結(jié)束發(fā)送是由幀格式來規(guī)定的。通信線上沒有數(shù)據(jù)傳送時為邏輯高電平,每當接收端檢測到傳輸線上發(fā)送來的邏輯低電平(幀起始位)時就知道發(fā)送端已開始發(fā)送,每當接收端接收到幀的停止位時就知道一幀字符信息已發(fā)送完畢。</p><p>  串行數(shù)據(jù)傳送格式有兩種:</p&

67、gt;<p>  一是無空閑位字符幀。字符幀格式如下圖3-11 所示:</p><p>  圖3-11 無空閑位字符幀格式</p><p>  二是有空閑位字符幀。字符幀格式如下圖3-12 所示:</p><p>  圖3-12 有空閑位字符幀格式</p><p>  在串行通信時,要求單片機和PC機雙方都采用一個標準接口,從而

68、使不同的設(shè)備可以方便地連接起來進行通信。RS-232C是美國電子工業(yè)協(xié)會EIA公布的串行通信標準,也是目前用的最多的一種串行通信標準,它除了包括物理指標外,還包括按位串行傳送的電氣指標。其中,RS代表推薦,232是標識號,C表示修改的次數(shù)。RS-232C通常適用于短距離或帶調(diào)制解器的通信場合,目前已廣泛應(yīng)用于計算機外圍設(shè)備的串行異步通信接口中。</p><p>  RS-232C是數(shù)據(jù)終端設(shè)備DTE和數(shù)據(jù)通訊設(shè)備

69、DCE之間的接口,RS-232C的機械標準規(guī)定DTE應(yīng)配置DB25的插頭,即25針連接器,其應(yīng)配置DB25的插座,即25孔連接器。在實際應(yīng)用中,DB25型連接器的許多信號都用不上,對于一般的全雙工通信,僅需幾條信號線就可以實現(xiàn)了,其中包括一條發(fā)送線、一條接收線和一條地線。因此實際應(yīng)用中普遍采用DB9插頭,即9針連接器。</p><p>  9針連接器如下圖3-13 所示:</p><p>

70、  圖3-13 9針連接器</p><p>  9針連接器各針腳功能如下表3-2 所示:</p><p>  表3-2 針串行口的針腳功能</p><p>  然而由于PC機RS-232C的邏輯電平與AT89S52單片機的TTL電平互不兼容,RS-232C的邏輯0電平規(guī)定為+3~+15V之間,邏輯1電平為?3~?15V之間。因此,為了與TTL電平的AT89S52單片

71、機器件連接,必須進行電平轉(zhuǎn)換。美國MAXIM公司生產(chǎn)的MAX232系列RS-232C收發(fā)器是目前應(yīng)用較為普遍的串行口電平轉(zhuǎn)換器件。</p><p>  PC機和單片機的串行接口連接原理圖如下圖3-14 所示。數(shù)據(jù)應(yīng)用串行通信時在硬件上采用三線制接法,將單片機和PC機串口的3個引腳(RXD、TXD、GND)分別連在一起,即將PC機和單片機的發(fā)送數(shù)據(jù)線TXD與接收數(shù)據(jù)RXD交叉連接,兩者的地線GND直接相連,而其他信

72、號線如握手信號線均空置不用,而是采用軟件握手的方式,這樣既可以實現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計。</p><p>  圖3-14 PC機和單片機的串行通信連接原理圖</p><p><b>  3.6 抗干擾技術(shù)</b></p><p>  影響正常工作的信號稱為噪聲,又稱干擾。在單片機控制系統(tǒng)中,如果出現(xiàn)了干擾,就會影響指令的正常執(zhí)行,造成控

73、制事故或控制失靈;在測量通道中,如果產(chǎn)生了干擾,就會使測量產(chǎn)生誤差,甚至某些情況下電壓的沖擊有可能使系統(tǒng)遭到致命的破壞。本系統(tǒng)硬件抗干擾采取以下三種方法:</p><p>  1、選用可靠的元器件</p><p>  一般情況下,元器件在出廠前都進行了相關(guān)測試。所以在通常應(yīng)用時不再進行測試,而直接將元器件用在電路中進行通電運行實驗。在實驗中若發(fā)現(xiàn)元器件問題,直接替換不合格元器件。</

74、p><p>  2、接插件的選擇應(yīng)用</p><p>  單片機控制系統(tǒng)通常由幾塊印制電路板組成,各板之間以及各板與基準電源之間經(jīng)常選用接插件相連接。所以在接插件的插針之間也易造成干擾,這些干擾與接插件插針之間的距離以及插針與地線之間的距離都有關(guān)系。因此在設(shè)計選用時要注意以下幾個問題:</p><p>  1) 合理地設(shè)置插接件:如電源插接件與信號插接件要盡量遠離,主要

75、信號的接插件外面最好帶有屏蔽。</p><p>  2) 插頭座上增加接地針數(shù):在安排插針信號時,選用一些插針作為接地針,均勻分布于各信號針之間,這樣能起到一定的隔離作用,以減小針間信號互相干擾。</p><p>  3) 信號針盡量分散,增大彼此間的距離。</p><p>  3、印刷電路板抗干擾設(shè)計技術(shù)</p><p>  印制電路板是器

76、件、信號線、電源線的高密度集合體,布線和布局好壞對可靠性影響很大。</p><p>  1) 印制電路總體布局原則如下:</p><p> ?、?印制電路板大小要適中,板面過大,印制線路太長,阻抗增加,成本偏高;板子太小,板間相互連線增加,易增加干擾環(huán)境。</p><p> ?、?印制板元件布局時相關(guān)元件應(yīng)盡量靠近,如晶振、時鐘發(fā)生器及CPU時鐘輸入端等,大電流電路

77、要遠離主板,或另做一塊板。</p><p>  2) 數(shù)據(jù)線的傳輸方向應(yīng)盡量保持一致,這樣有助于增強抗干擾能力。接地線可環(huán)繞印制板一周安排,根據(jù)實際情況盡可能就近接地。</p><p>  3.7 系統(tǒng)電路板設(shè)計</p><p>  綜合系統(tǒng)硬件各個模塊的設(shè)計,并結(jié)合硬件抗干擾技術(shù),在Protel99SE中繪制出:</p><p>  1、系

78、統(tǒng)印刷電路板的原理圖設(shè)計如附錄1所示。</p><p>  2、系統(tǒng)印刷電路板PCB設(shè)計如附錄2所示。</p><p><b>  3.8 本章小結(jié)</b></p><p>  本章節(jié)主要介紹了系統(tǒng)的幾個重要組成部分,對單片機、振動傳感器、A/D轉(zhuǎn)換器、數(shù)碼管以及串口通信等各模塊的工作原理作了詳細分析與設(shè)計,另外也特別從硬件方面介紹了系統(tǒng)的抗干

79、擾技術(shù)。最后,通過軟件Protel99SE繪制出了系統(tǒng)印刷電路板的原理圖和PCB圖,為下面第四章節(jié)的軟件設(shè)計提供了具體的編程依據(jù),同時按照硬件電路進行編程也大大降低了程序編寫的難度。</p><p><b>  第四章 軟件設(shè)計</b></p><p><b>  4.1 設(shè)計思想</b></p><p>  由于電梯轎

80、廂的振動方向很多,所以本系統(tǒng)主要檢測X、Y、Z三個方向上的振動。三個方向如下圖4-1 所示:</p><p>  圖4-1 電梯轎廂振動建模圖示</p><p>  整個系統(tǒng)的功能是由硬件電路配合軟件來實現(xiàn)的,當硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件,它是用

81、來完成實質(zhì)性的功能,如串口通信、振動檢測等。系統(tǒng)整體設(shè)計思想表示如圖4-2 所示:</p><p>  圖4-2 電梯轎廂振動檢測系統(tǒng)實現(xiàn)思想</p><p>  本設(shè)計是硬件電路和軟件編程相結(jié)合的設(shè)計方案,選擇合適的編程語言是一個重要的環(huán)節(jié)。在單片機的應(yīng)用系統(tǒng)程序設(shè)計時,常用的是匯編語言和C語言。匯編語言的特點是占用內(nèi)存單元少,執(zhí)行效率高。執(zhí)行速度快。但它依賴于計算機硬件,程序可讀性和可

82、移植性比較差。而C語言雖然執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語句,程序設(shè)計自由度大,有很好的可重用性,可移植性等特點。</p><p>  由于現(xiàn)在單片機的發(fā)展已經(jīng)達到了很高的水平,內(nèi)部的各種資源相當?shù)呢S富,CPU的處理速度非??臁S肅語言控制單片機無疑是設(shè)計者一個理想的選擇。所以在本設(shè)計中采用C語言編寫軟件程序。</p>

83、<p>  系統(tǒng)整體設(shè)計流程如下圖4-3 所示:</p><p>  圖4-3 系統(tǒng)整體設(shè)計流程</p><p>  4.2 單片機程序設(shè)計</p><p><b>  4.2.1 主程序</b></p><p>  系統(tǒng)軟件設(shè)計采用模塊化結(jié)構(gòu)和子程序嵌套技術(shù),可讀性好,便于編制和擴充。主流程采用順序查詢方

84、式,分別檢測上位機控制信號、振動轉(zhuǎn)感器信號。AT89S52單片機中的主程序主要完成以下兩個工作:</p><p>  (1)對系統(tǒng)初始化,包括對I/O端口P1、P2、P3的初始化和配置;</p><p>  (2)掃描I/O口,接收并處理MMA7260QT傳感器的振動數(shù)據(jù);</p><p>  主程序基本設(shè)計思路是:程序運行后,等待PC機對MMA7260QT傳感器的

85、啟動信號,如果檢測到有效信號,則MMA7260QT傳感器正常工作,得到X、Y、Z三個方向上的振動數(shù)據(jù)后首先進入A/D轉(zhuǎn)換子程序,待轉(zhuǎn)換完成后再進入數(shù)值轉(zhuǎn)換為字符串子程序,然后進入顯示子程序,最后進入串口通信子程序?qū)⒆址l(fā)送給PC機,如此反復(fù)循環(huán)。</p><p>  單片機主程序設(shè)計流程如下圖4-4 所示:</p><p>  圖4-4 單片機主程序設(shè)計流程</p><

86、;p>  具體程序詳見附錄3所示。</p><p>  4.2.2 模數(shù)轉(zhuǎn)換子程序</p><p>  MMA7260QT檢測出來的電梯轎廂振動量經(jīng)ADC0809采集、轉(zhuǎn)換后生成數(shù)字量,單片機將讀取的數(shù)字量經(jīng)過標度變換后以工程量的形式顯示在LED數(shù)碼管上面,并且通過串口通信發(fā)送到PC機端口。</p><p>  模數(shù)轉(zhuǎn)換子程序流程圖如下圖4-5 所示:<

87、/p><p>  圖4-5 模數(shù)轉(zhuǎn)換子程序流程圖</p><p>  ADC0809芯片內(nèi)有8路模擬選通開關(guān)以及相應(yīng)的通道鎖存譯碼電路,在電路應(yīng)用中,首先應(yīng)該指定ADC0809的數(shù)據(jù)通道,當外部模擬量進入芯片以后,在START信號的下降沿ADC0809開始轉(zhuǎn)換,此時,轉(zhuǎn)換結(jié)束信號EOC呈低電平狀態(tài),表示轉(zhuǎn)換正在進行,待轉(zhuǎn)換完成以后,管腳EOC的電平會變高,表示一次轉(zhuǎn)換結(jié)束。</p>

88、;<p><b>  具體程序如下:</b></p><p>  byte ReadAD(byte ch)//模數(shù)轉(zhuǎn)換函數(shù)</p><p><b>  {</b></p><p>  ADC_DATA = 0; //清A/D轉(zhuǎn)換結(jié)果寄存器</p><p>  

89、ADC_CONTR = 0xF8|ch; //0000,1000ADCS = 1,啟動轉(zhuǎn)換</p><p>  delay1ms();</p><p><b>  do{;} </b></p><p>  while((ADC_CONTR&0x10)==0); //0001,0000等待A/D轉(zhuǎn)換結(jié)束</p>

90、;<p>  ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D轉(zhuǎn)換</p><p>  return ADC_DATA; </p><p><b>  }</b></p><p>  void init_ad(void)//A/D初始化函數(shù)</

91、p><p><b>  {</b></p><p>  P1M0=0x07;//設(shè)置P1.012為高阻輸入,以準備AD</p><p>  P1M1=0x00;</p><p>  ADC_CONTR = 0xf8; //1000,0000打開A/D轉(zhuǎn)換電源</p><p>  del

92、ay1ms();</p><p>  ADC_CONTR = ADC_CONTR&0xe0; //清ADC_FLAG,ADC_START位和低3位</p><p><b>  }</b></p><p>  4.2.3 串口通信子程序</p><p>  單片機可以采用中斷方式或查詢RI(接受中斷標志位)或TI(

93、發(fā)送中斷表示位)方式進行數(shù)據(jù)通信。本設(shè)計采用查詢方式,查詢RI或TI的值,若檢測到RI=1則進入串口數(shù)據(jù)接收子程序,在子程序中單片機讀取從上位機發(fā)送的通信指令、讀取記錄個數(shù)等數(shù)據(jù);若檢測到TI=1則進入串口數(shù)據(jù)發(fā)送子程序,在子程序中單片機將經(jīng)過ADC0809轉(zhuǎn)換過的電梯轎廂振動數(shù)據(jù)發(fā)送到上位機的端口中。</p><p>  串口通信子程序流程圖如圖4-6所示:</p><p>  圖4-6

94、 串口通信子程序流程圖</p><p><b>  具體程序如下:</b></p><p>  void uart_putchar(byte ch)//串口數(shù)據(jù)發(fā)送函數(shù)</p><p><b>  { </b></p><p><b>  TI=0;</b></p&

95、gt;<p>  if (ch == '\n') </p><p><b>  {</b></p><p>  SBUF= 0x0d; //output'CR'</p><p>  while(!TI); </p><p><b>  return

96、;</b></p><p><b>  } </b></p><p><b>  SBUF=ch;</b></p><p>  while(!TI); </p><p><b>  }</b></p><p>  byte uart_g

97、etchar(void)//串口數(shù)據(jù)接收函數(shù)</p><p><b>  { </b></p><p><b>  if(RI)</b></p><p><b>  {</b></p><p><b>  RI=0; </b></p&

98、gt;<p>  return SBUF; //有數(shù)據(jù)接收到,返回1</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  return 0; //無數(shù)據(jù)

99、接收到,返回0</p><p><b>  }</b></p><p><b>  }</b></p><p>  void putstr(char ch[])</p><p><b>  {</b></p><p>  byte ptr=0;</

100、p><p>  while(ch[ptr])</p><p><b>  {</b></p><p>  uart_putchar((byte)ch[ptr++]);</p><p><b>  } </b></p><p><b>  }</b>&

101、lt;/p><p>  void init_uart(void) //P3.0,3.1串口函數(shù)初始化</p><p><b>  {</b></p><p>  TMOD=0x20; //TH1=256-INT(22118400/32/12/baud+0.5)</p><p>  TH1=0xfa;//0xfa,

102、9600</p><p>  TL1=0xfd;//0xff,57600</p><p>  PCON=0x00;</p><p><b>  TR1=1;</b></p><p>  SCON=0xd0;</p><p><b>  }</b></p>&

103、lt;p>  4.3 上位機程序設(shè)計</p><p>  上位機采用Visual Basic 6.0能實現(xiàn)可視化界面以及與下位機的通串口信功能。Windows環(huán)境下的串口通信技術(shù)方案主要有兩種,其一就是使用MSComm控件,此控件具有豐富的用于串口通信的屬性及事件,提供了一系列標準通信命令的接口,用它可以創(chuàng)建全雙工、事件驅(qū)動、高效實用的通信程序;另外一種途徑就是采用API函數(shù)來直接實現(xiàn)與下位機的通信,但這種

104、方法要涉及到很多底層設(shè)置。</p><p>  本系統(tǒng)采用MSComm控件來實現(xiàn)單片機與上位機的串口通信,MSComm控件提供了兩種處理串行通信的方法:一是事件驅(qū)動法;二是查詢法。本設(shè)計采用的是事件驅(qū)動法,這是一種很強的處理串口活動的方法,當串口接收到或發(fā)送完指定數(shù)量的數(shù)據(jù)時,或當狀態(tài)發(fā)生改變時,MSComm控件都將觸發(fā)OnComm事件,當應(yīng)用程序捕獲到這些事件后,可通過檢查MSComm控件的CommEvent屬

105、性值來獲知所發(fā)生的事件類型,從而執(zhí)行相應(yīng)的處理,這種方法具有程序響應(yīng)及時、可靠性高等優(yōu)點。</p><p>  利用MSComm控件實現(xiàn)計算機通信的關(guān)鍵是理解并正確設(shè)置其眾多的屬性,其中首要的幾個屬性如4-1所示:</p><p>  表4-1 MSComm控件的屬性</p><p>  打開Visual Basic 6.0,新建一個工程項目,即可對窗體From1進

106、行界面的設(shè)計。窗體From1如下圖4-7所示:</p><p>  圖4-7 窗體From1</p><p>  在空白的窗體框內(nèi),把軟件所要用到的控件拖曳到窗體中并布局好。程序需要用到串口的控制,而常用控件欄中沒有“串口控件”,因此需要在控件庫中添加。在部件添加窗體中,添加“Microsoft Comm Control 6.0”控件并點擊確認。部件添加窗體如圖4-8所示:</p&g

107、t;<p>  此時,可以發(fā)現(xiàn)常用控件欄中增加了一個電話形狀的控件,這就是串口的控件。由于在程序運行的時候,串口控件不作圖標顯示,因此,將串口控件拖曳到窗體的任意位置即可。完成好整個界面的布局如下圖4-9所示:</p><p>  圖4-8 部件添加窗體</p><p>  圖4-9 系統(tǒng)界面整體布局</p><p>  對于串口端號及波特率的設(shè)置均使

108、用Combo控件實現(xiàn)選擇設(shè)置。Combo作為一個下拉式選項控件,可以把具體內(nèi)容預(yù)設(shè)在Combo的List列表中。使用AddItem將內(nèi)同添加到Combo的列表中,運行軟件時可通過下拉點擊方式選擇預(yù)存內(nèi)容。按照添加到列表中內(nèi)容的順序,VB會自動對每個內(nèi)容分配一個列表引索號ListIndex。在程序中也可以通過向ListIndex賦值,選擇List中的內(nèi)容。如需要軟件在啟動后默認選擇串口“1”和波特率為“9600”。完成串口的參數(shù)設(shè)置后,還

109、需要將串口打開,才能正式實現(xiàn)計算機與目標控制器的串口通信。</p><p>  上位機程序設(shè)計流程如下圖4-10 所示:</p><p>  圖4-10 上位機程序流程</p><p>  根據(jù)上位機程序流程圖,在窗體中添加兩個CommandButton用于打開/關(guān)閉串口,在CommandButton事件中加入以下程序:</p><p>  

110、Private Sub Command1_Click()</p><p>  If MSComm1.PortOpen Then</p><p>  If set_falg = False Then</p><p>  set_falg = True</p><p>  HScroll2.Enabled = False</p>&

111、lt;p>  Command1.Caption = "采樣停止"</p><p>  Label1.Caption = "信息發(fā)送成功!"</p><p>  MSComm1.Output = Chr(111)</p><p>  'out_byte(1) = 111</p><p>  

112、'out_byte(2) = 253</p><p>  'MSComm1.Output = out_byte</p><p><b>  Else</b></p><p>  set_falg = False</p><p>  HScroll2.Enabled = True</p>&l

113、t;p>  HScroll2.Value = 0</p><p>  Command1.Caption = "采樣開始"</p><p>  Label1.Caption = "系統(tǒng)已停止"</p><p>  'close_falg = True</p><p>  MSComm1.Ou

114、tput = Chr(100) '上下位機應(yīng)達成同步協(xié)議</p><p>  'out_byte(1) = 100</p><p>  'out_byte(2) = 253</p><p>  'MSComm1.Output = out_byte</p><p><b>  End If</

115、b></p><p><b>  Else</b></p><p>  Label1.Caption = "串口未打開!"</p><p>  MsgBox "商顯峰提醒你:操作出錯,請連接串口!"</p><p><b>  End If</b><

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論