版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 畢業(yè)設(shè)計(jì)題目 可視倒車?yán)走_(dá)設(shè)計(jì) </p><p><b> 摘 要</b></p><p> 設(shè)計(jì)了一個(gè)以STC89C52單片機(jī)為控制核心的測(cè)距控制器,能夠利用超聲波傳感器測(cè)量物體距離障礙物的距離,并能夠通過(guò)串口傳送給上位機(jī),能
2、夠語(yǔ)音播報(bào)提示信息;同時(shí)設(shè)計(jì)了一個(gè)基于LabWindows的上層監(jiān)控軟件,能夠?qū)崟r(shí)顯示距離值和視頻圖像。</p><p> 首先介紹了控制器的硬件方案和軟件方案,然后介紹了語(yǔ)音錄放電路、超聲波檢測(cè)電路和串口通信電路等硬件電路的設(shè)計(jì)過(guò)程;詳細(xì)的介紹了下位機(jī)主程序、超聲波測(cè)距程序、語(yǔ)音播報(bào)程序、串口通信程序等的設(shè)計(jì)。簡(jiǎn)單介紹了利用LabWindows軟件進(jìn)行監(jiān)控軟件的前面板、圖形化編程、攝像頭和串口通信C程序的設(shè)計(jì)
3、。并簡(jiǎn)單介紹了系統(tǒng)硬件和軟件的調(diào)試過(guò)程。實(shí)驗(yàn)結(jié)果表明:設(shè)計(jì)的超聲波測(cè)距控制器能夠準(zhǔn)確測(cè)量,并能夠和上位機(jī)實(shí)現(xiàn)通信。利用LabWindows設(shè)計(jì)的監(jiān)控界面具有顯示直觀、操作方便等優(yōu)點(diǎn),此外LabWindows具有豐富的庫(kù)函數(shù),處理視頻圖像十分方便。</p><p> 關(guān)鍵詞:STC89C52單片機(jī)、超聲波測(cè)距、后視攝像、監(jiān)控軟件</p><p><b> Abstract<
4、;/b></p><p> A single chip microcomputer as the control core with STC89C52 range controller is designed, to the use of ultrasonic sensors measure object distance obstacle distance, and can be sent throug
5、h the serial port to the host computer, can broadcast voice prompt information; while the design of a LabWindows based on the upper monitoring software, can display the distance values and the video image.</p><
6、;p> First introduces the hardware scheme and software program, and then introduced the voice recording circuit, an ultrasonic detection circuit and the serial communication circuit and hardware circuit design process
7、; introduced in detail the next-bit machine main program, ultrasonic ranging program, broadcast voice procedures, such as serial communication program design. Briefly introduced the use of LabWindows software monitoring
8、software front panel, graphical programming, camera and serial commu</p><p> Keywords:STC89C52 single chip microcomputer、ultrasonic distance measuring、Rear view camera、Monitoring Software</p><p&g
9、t;<b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 目 錄III</b></p><p><b> 第一章 概述1</b></p>&l
10、t;p> 1.1 課題設(shè)計(jì)的目的和意義1</p><p> 1.2 國(guó)內(nèi)應(yīng)用現(xiàn)狀1</p><p> 1.3 設(shè)計(jì)內(nèi)容及要求2</p><p> 1.3.1 設(shè)計(jì)內(nèi)容2</p><p> 1.3.2 設(shè)計(jì)要求2</p><p> 第二章 設(shè)計(jì)方案4</p><p>
11、 2.1 系統(tǒng)硬件設(shè)計(jì)4</p><p> 2.2 設(shè)計(jì)軟件設(shè)計(jì)4</p><p> 第三章 硬件設(shè)計(jì)6</p><p> 3.1 硬件原理圖6</p><p> 3.2 語(yǔ)音錄放電路6</p><p> 3.2.1 語(yǔ)音芯片簡(jiǎn)介6</p><p> 3.2.2 電路設(shè)
12、計(jì)8</p><p> 3.3超聲波測(cè)距電路10</p><p> 3.3.1 超聲波芯片簡(jiǎn)介10</p><p> 3.3.2 測(cè)距電路設(shè)計(jì)11</p><p> 3.4 主控電路12</p><p> 3.4.1 單片機(jī)簡(jiǎn)介12</p><p> 3.4.2 電路設(shè)計(jì)
13、15</p><p> 3.5 復(fù)位、晶振單元17</p><p> 3.6 串口通信模塊MAX23218</p><p> 3.7 印刷電路板設(shè)計(jì)和制作19</p><p> 第四章 軟件設(shè)計(jì)22</p><p> 4.1 主程序22</p><p> 4.1.1 程序
14、流程圖22</p><p> 4.1.2 程序介紹24</p><p> 4.2 測(cè)距程序25</p><p> 4.2.1 程序流程圖25</p><p> 4.2.2 程序介紹25</p><p> 4.3 語(yǔ)音程序26</p><p> 4.3.1 程序流程圖26
15、</p><p> 4.3.2 程序介紹27</p><p> 4.4 通信程序28</p><p> 4.4.1 程序流程圖28</p><p> 4.4.2 程序介紹28</p><p> 第五章 人機(jī)界面30</p><p> 5.1 開(kāi)發(fā)軟件概述30</p&
16、gt;<p> 5.2 界面設(shè)計(jì)31</p><p> 5.2.1 圖像顯示界面31</p><p> 5.2.2超聲波距離顯示界面32</p><p> 5.2.3系統(tǒng)界面34</p><p> 第六章 結(jié)果調(diào)試36</p><p> 6.1 單片機(jī)及串口調(diào)試36</p
17、><p> 6.1.1 硬件調(diào)試36</p><p> 6.1.2遇到的問(wèn)題37</p><p> 6.2 語(yǔ)音電路調(diào)試37</p><p> 6.2.1 硬件調(diào)試37</p><p> 6.2.2 遇到的問(wèn)題38</p><p> 6.3 下位機(jī)總體調(diào)試39</p&g
18、t;<p> 6.3.1調(diào)試結(jié)果39</p><p> 6.3.2 遇到的問(wèn)題40</p><p> 6.4 上位機(jī)界面41</p><p> 6.4.1 程序調(diào)試41</p><p> 6.4.2 遇到的問(wèn)題42</p><p> 第七章 設(shè)計(jì)小結(jié)43</p>&l
19、t;p><b> 致謝44</b></p><p><b> 參考文獻(xiàn)45</b></p><p><b> 附錄46</b></p><p> 附錄一 上位機(jī)程序46</p><p> 附錄二 下位機(jī)程序51</p><p>
20、 附錄三 系統(tǒng)實(shí)物57</p><p><b> 1 現(xiàn)場(chǎng)環(huán)境57</b></p><p> 2 實(shí)驗(yàn)室環(huán)境57</p><p> 附錄四 原理圖58</p><p><b> 第一章 概述</b></p><p> 1.1 課題設(shè)計(jì)的目的和意義</
21、p><p> 隨著我國(guó)經(jīng)濟(jì)社會(huì)的快速發(fā)展和人民生活水平的提高,汽車已經(jīng)成為人們生活中的一個(gè)重要部分?,F(xiàn)在越來(lái)越多的中國(guó)家庭開(kāi)始擁有自己的轎車。但是隨著汽車數(shù)量和駕駛新手的逐漸增加也引發(fā)了一系列的問(wèn)題。其中,由倒車引發(fā)的糾紛問(wèn)題也在呈現(xiàn)逐年遞增的趨勢(shì)。盡管汽車都安裝有后視鏡,但是不可避免的都存在一個(gè)盲區(qū),這就使得利用先進(jìn)的計(jì)算機(jī)傳感技術(shù)、測(cè)量技術(shù)和顯示技術(shù)研制一款儀器幫助駕駛員掃除視野死角和視線模糊的缺陷,以提高倒車
22、的安全性提上了日程。</p><p> 目前,輔助倒車領(lǐng)域主要有兩種技術(shù):倒車?yán)走_(dá)和后視影像。這兩種技術(shù)各有利弊:倒車?yán)走_(dá)雖能確切判斷距離,但是對(duì)車后方的水溝、凸出的鋼筋、竹竿等無(wú)法感知,這也是安全上的隱患;后視影像直觀真實(shí),但是對(duì)距離信息無(wú)法感知。如何把兩者有效的結(jié)合起來(lái),實(shí)現(xiàn)真正意義上的安全倒車具有很大的研究?jī)r(jià)值,本課題正是在這樣的背景下提出的。</p><p> 可視倒車?yán)走_(dá)總的
23、來(lái)說(shuō)就是在普通的倒車?yán)走_(dá)基礎(chǔ)上做了升級(jí),添加了倒車可視功能,主要就是增加了顯示器和攝像頭等配件,當(dāng)然硬件方面也做了相應(yīng)的軟件(主機(jī)板)也會(huì)隨之發(fā)生改變,此種倒車?yán)走_(dá)在倒車的時(shí)候可以更直觀的反應(yīng)顯示倒車時(shí)車后的情況,攝像頭采集到的是車后的實(shí)物圖像,通過(guò)主機(jī)處理傳輸?shù)桨惭b在駕駛室內(nèi)的液晶顯示器上,讓車后的影像盡收眼底,這樣就極大的提高了倒車時(shí)的安全級(jí)別,大大的減少了因?yàn)榈管嚩l(fā)生的事故了,同時(shí)該種倒車?yán)走_(dá)也有普通倒車?yán)走_(dá)的功能——聲音提示和
24、車后障礙物距離顯示。</p><p> 1.2 國(guó)內(nèi)應(yīng)用現(xiàn)狀</p><p> 近年來(lái),由于導(dǎo)航系統(tǒng)、工業(yè)機(jī)器人的自動(dòng)測(cè)距、機(jī)械加工自動(dòng)化等方面的需要,自動(dòng)測(cè)距變得十分重要。與同類測(cè)距方法相比,超聲波測(cè)距法具有以下優(yōu)勢(shì):</p><p> (1)相對(duì)于聲波,超聲波有定向性較好、能量集中、在傳輸過(guò)程中衰減較小、反射能力強(qiáng)等優(yōu)勢(shì)。</p><p
25、> ?。?)和光學(xué)方法相比,超聲波的波速較小,可以直接測(cè)量較近的目標(biāo),縱向分辨率高;對(duì)色彩、光照度、電磁場(chǎng)不敏感,被測(cè)物體處于黑暗、煙霧、電磁干擾、有毒等比較惡劣的環(huán)境有一定的適應(yīng)能力。特別是在海洋勘測(cè)具有獨(dú)特的優(yōu)點(diǎn)。</p><p> (3)超聲波傳感器結(jié)構(gòu)簡(jiǎn)單,體積小,費(fèi)用低,信息處理簡(jiǎn)單可靠,便于小型化和集成化。</p><p> 隨著科學(xué)技術(shù)的快速發(fā)展,超聲波的應(yīng)用將越來(lái)
26、越廣泛。但就目前技術(shù)水平</p><p> 來(lái)說(shuō),人們利用超聲波的技術(shù)還十分有限,因此,這是一個(gè)正在不斷發(fā)展而又有無(wú)限前景的技術(shù)。</p><p> 超聲波測(cè)距技術(shù)在社會(huì)生活中已有廣泛的應(yīng)用,目前對(duì)超聲波的精度要求越來(lái)越大。超聲波作為一種新型的工具在各方面都有很大的發(fā)展空間,它將朝著更加高定位高精度的方向發(fā)展,以滿足日益發(fā)展的社會(huì)需求。未來(lái)超聲波測(cè)距技術(shù)將朝著更高精度,更大應(yīng)用范圍,更
27、穩(wěn)定方向發(fā)展。</p><p> 1.3 設(shè)計(jì)內(nèi)容及要求</p><p> 1.3.1 設(shè)計(jì)內(nèi)容</p><p> 設(shè)計(jì)一個(gè)可視倒車?yán)走_(dá),能實(shí)現(xiàn)以下功能:</p><p> 檢測(cè)車尾部距離障礙物的距離</p><p><b> 語(yǔ)音播報(bào)距離信息</b></p><p&
28、gt; 攝像頭采集車尾部視頻信息</p><p><b> PC機(jī)控制界面</b></p><p> 單片機(jī)與PC機(jī)的通訊</p><p> 1.3.2 設(shè)計(jì)要求</p><p> 本課題的基本思路是,以單片機(jī)作為測(cè)距控制器,處理超聲波測(cè)得的距離,啟動(dòng)語(yǔ)音播報(bào)模塊播報(bào)提示信息、即“倒車,請(qǐng)注意”,同時(shí)將距離信息
29、通過(guò)串口傳輸給PC機(jī),在PC機(jī)上通過(guò)LabWindows所做的界面對(duì)信息進(jìn)行處理,最后將視頻和距離信息在PC機(jī)上顯示。</p><p> 本課題的主要任務(wù)及基本要求有以下幾點(diǎn):</p><p> 設(shè)計(jì)可視倒車?yán)走_(dá)的整體框架;</p><p> 設(shè)計(jì)HC-SR04超聲波測(cè)距芯片電路;</p><p> 設(shè)計(jì)ISD1420語(yǔ)音芯片電路;&
30、lt;/p><p> 設(shè)計(jì)基于USB攝像頭的視頻采集電路;</p><p><b> 繪制硬件原理圖;</b></p><p><b> 制作PCB版;</b></p><p> 編寫各部分軟件程序;</p><p> 利用Labwindows設(shè)計(jì)PC機(jī)監(jiān)控界面;<
31、;/p><p><b> 焊接電路板;</b></p><p> 10、各部分軟件、硬件及整體的調(diào)試。</p><p><b> 第二章 設(shè)計(jì)方案</b></p><p> 2.1 系統(tǒng)硬件設(shè)計(jì)</p><p> 本系統(tǒng)在普通倒車?yán)走_(dá)基礎(chǔ)上,以嵌入式系統(tǒng)為平臺(tái),集成了超
32、聲波測(cè)距、語(yǔ)音報(bào)警、USB視頻采集等功能。</p><p> 整個(gè)應(yīng)用系統(tǒng)包括超聲波測(cè)距模塊、基于USB口的攝像頭視頻采集系統(tǒng)、語(yǔ)音報(bào)警系統(tǒng)以及基于LabWindows的人機(jī)界面,系統(tǒng)硬件框圖圖2-1:</p><p> 圖2-1 系統(tǒng)硬件框圖</p><p> 其中單片機(jī)選用的是STC89C52;超聲波測(cè)距模塊選用的是HC-SR04超聲波測(cè)距芯片,該芯片可提
33、供2cm-400cm的非接觸式距離感測(cè)功能,精度可達(dá)3mm,該模塊包含了超聲波發(fā)射器、接收器和控制電路;語(yǔ)音模塊選用的是ISD1420芯片芯片內(nèi)部包含有自動(dòng)增益控制、麥克風(fēng)前置擴(kuò)大器、揚(yáng)聲器驅(qū)動(dòng)線路、振蕩器與內(nèi)存等的全方位整合系統(tǒng)功能,可錄、放音十萬(wàn)次;攝像頭選用的是USB攝像頭;LabWindows是以ANSI C為核心的交互式虛擬儀器開(kāi)發(fā)環(huán)境,它將C語(yǔ)言與測(cè)控技術(shù)有機(jī)結(jié)合,具有豐富的庫(kù)函數(shù)。</p><p>
34、 2.2 設(shè)計(jì)軟件設(shè)計(jì)</p><p> 系統(tǒng)軟件分為兩個(gè)部分:上位機(jī)和下位機(jī)程序。上位機(jī)程序包括攝像頭處理程序和串口通信程序;下位機(jī)程序包括超聲波測(cè)距程序、語(yǔ)音播報(bào)提示音程序、T0計(jì)數(shù)和延時(shí)程序、以及和上位機(jī)通信相關(guān)的波特率設(shè)置。</p><p> 系統(tǒng)框圖如圖2-2:</p><p> 圖 2-2 系統(tǒng)軟件框圖</p><p>
35、 上位機(jī)使用的是PC機(jī),上位機(jī)發(fā)出倒車指令,指令通過(guò)串口傳送給單片機(jī),同時(shí)啟動(dòng)攝像頭;單片機(jī)作為下位機(jī),單片機(jī)將超聲波檢測(cè)到的距離信息通過(guò)串口傳送給PC機(jī),同時(shí)啟動(dòng)語(yǔ)音報(bào)警??紤]到單片機(jī)要與上位機(jī)之間進(jìn)行通信,因此需要一個(gè)定時(shí)器作為波特率發(fā)生器,同時(shí)要在串口中斷程序中進(jìn)行數(shù)據(jù)的發(fā)送和接收。</p><p><b> 第三章 硬件設(shè)計(jì)</b></p><p><
36、b> 3.1 硬件原理圖</b></p><p> 圖3-1給出了系統(tǒng)的原理圖,包括3個(gè)HC-SR04超聲波模塊、MAX232通信接口、STC89C52單片機(jī)、語(yǔ)音模塊ISD1420。</p><p> 圖3-1 硬件原理圖</p><p> 下位機(jī)的核心為STC89C52單片機(jī),STC89C52單片機(jī)起距離值計(jì)算、控制和通信的作用;HC-
37、SR04超聲波模塊檢測(cè)距離障礙物的距離;語(yǔ)音模塊在單片機(jī)的控制下播報(bào)“倒車,請(qǐng)注意”提示音;考慮到控制器要與上位機(jī)之間進(jìn)行通信,所以為控制器提供一個(gè) RS-232 通信接口。</p><p> 3.2 語(yǔ)音錄放電路</p><p> 3.2.1 語(yǔ)音芯片簡(jiǎn)介</p><p> ISD1420是美國(guó)ISD公司出品的新型單片優(yōu)質(zhì)語(yǔ)音錄放電路,較之以往所有的語(yǔ)音電路
38、,具有專利技術(shù)的模擬處理存儲(chǔ)方式,使錄放音質(zhì)極佳,沒(méi)有常見(jiàn)的的背景噪音,且電路斷電后語(yǔ)音內(nèi)容仍不丟失。電路內(nèi)部由振蕩器、語(yǔ)音存儲(chǔ)單元、前置放大器、自動(dòng)增益控制電路、抗干擾濾波器、輸出放大器組成。一個(gè)最小的錄放系統(tǒng)僅由一個(gè)麥克風(fēng)、一個(gè)喇叭、兩個(gè)按鈕、一個(gè)電源、少數(shù)電阻電容組成。</p><p><b> 特點(diǎn)</b></p><p> 重現(xiàn)優(yōu)質(zhì)原聲
39、 ② 基本上不耗電信息存儲(chǔ)</p><p> ?、?信息可保存100年,可反復(fù)錄放10萬(wàn)次 ④ 選址處理多達(dá)160段信息 </p><p> ?、?具有自動(dòng)節(jié)電模式 ⑥ 維持狀態(tài),僅需0.5μA電流</p><p><b> 引腳描述:</b></p>
40、<p> ISD1420語(yǔ)音芯片引腳圖如下:</p><p><b> 圖3-2 引腳圖</b></p><p> ISD1420引腳說(shuō)明見(jiàn)下表:</p><p> 表 3-1 引腳說(shuō)明</p><p> 3.2.2 電路設(shè)計(jì)</p><p><b> 一、錄音
41、電路</b></p><p> A0-A7地址輸入有雙重功能,根據(jù)地址中的A6,A7的電平狀態(tài)決定功能。如果A6,A7有一個(gè)是低電平,A0~A7輸入全解釋為地址位,作為起始地址用。根據(jù) 、或的下降沿信號(hào),地址輸入被鎖定。</p><p> A0-A7由低位向高位排列,每位地址代表125毫秒的尋址,160個(gè)地址覆蓋20秒的語(yǔ)音范圍(160*0.125s=20s)。錄音及放音功
42、能均從設(shè)定的起始地址開(kāi)始,錄音結(jié)束由停止鍵操作決定,芯片內(nèi)部自動(dòng)在該段的結(jié)束位置插入結(jié)束標(biāo)志(EOM);而放音時(shí)芯片遇到EOM標(biāo)志即自動(dòng)停止放音。</p><p><b> 地址功能表如下:</b></p><p> 表3-2 地址功能表</p><p> 電路圖如圖3-3所示:</p><p><b>
43、 圖3-3 錄音電路</b></p><p><b> 放音電路</b></p><p> 圖3-4為語(yǔ)音芯片與單片機(jī)硬件連接圖,單片機(jī)的P0口與芯片地址線A0~A7相連,P2.7與芯片的/PLAYL相連。程序運(yùn)行時(shí),單片機(jī)通過(guò)P0口傳送地址給芯片,然后通過(guò)P2.7發(fā)送高電平觸發(fā)語(yǔ)音芯片放音,播放已經(jīng)選定地址中的錄音內(nèi)容。</p>&l
44、t;p> 在本系統(tǒng)中,已經(jīng)在芯片中的0地址錄入“倒車,請(qǐng)注意”內(nèi)容,程序運(yùn)行時(shí),給單片機(jī)的P0口低電平,然后給P2.7脈沖觸發(fā)芯片播報(bào)語(yǔ)音內(nèi)容“倒車,請(qǐng)注意”。</p><p><b> 圖3-4 放音電路</b></p><p> 3.3超聲波測(cè)距電路</p><p> 3.3.1 超聲波芯片簡(jiǎn)介</p><
45、p> HC-SR04超聲波測(cè)距模塊可提供2cm-400cm的非接觸式距離感測(cè)功能,測(cè)距精度可達(dá)高到3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。基本工作原理:</p><p> (1)采用IO口TRIG觸發(fā)測(cè)距,給至少10us的高電平信號(hào);</p><p> (2)模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;</p><p> (3)有
46、信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超</p><p> 聲波發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間*聲速(340M/S))/2;</p><p> 實(shí)物圖如圖3-5所示,圖中引說(shuō)明如下:</p><p> VCC供5V電源;GND 為地線;TRIG 觸發(fā)控制信號(hào)輸入;ECHO回響信號(hào)輸出。</p><p>
47、; 圖3-5 HC-SR04實(shí)物圖</p><p> 3.3.2 測(cè)距電路設(shè)計(jì)</p><p> 系統(tǒng)中使用了三塊超聲波芯片,可以測(cè)量三個(gè)方向上的距離,即車身后部、左側(cè)和右側(cè)距離障礙物的距離。如圖3-6所示,將三塊芯片的控制腳和單片機(jī)的P1口相連,單片機(jī)通過(guò)I/O控制芯片。</p><p> 由芯片的時(shí)序電路可以知道,在程序中,通過(guò)I/O口觸發(fā)測(cè)距,給TRI
48、G至少10us的高電平信號(hào),模塊自動(dòng)發(fā)送8個(gè)40khz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;有信號(hào)返回,通過(guò)IO口ECHO輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波發(fā)射到返回的時(shí)間。</p><p> 圖3-6 測(cè)距電路圖</p><p><b> 3.4 主控電路</b></p><p> 3.4.1 單片機(jī)簡(jiǎn)介</p><
49、;p><b> 一、概述</b></p><p> 本次設(shè)計(jì)采用的是 DIP 封裝 40 引腳雙列直插的 STC89C52 八位單片機(jī)。具體引腳 圖如圖 3-7 所示。</p><p> STC89C52 是一種低功耗、高性能 CMOS 8 位微控制器,具有 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。使用高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品
50、指令和引腳完全兼容。</p><p><b> 二、主要性能</b></p><p> 與 MCS-51 單片機(jī)產(chǎn)品兼容8K 字節(jié)在系統(tǒng)可編程 Flash 存儲(chǔ)器</p><p> 1000 次擦寫周期全靜態(tài)操作:0Hz~33Hz</p><p> 三級(jí)加密程序存儲(chǔ)器32 個(gè)可編程 I
51、/O 口線</p><p> 三個(gè) 16 位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源</p><p> 全雙工 UART 串行通道低功耗空閑和掉電模式</p><p> 掉電后中斷可喚醒看門狗定時(shí)器</p><p> 雙數(shù)據(jù)指針掉電標(biāo)識(shí)符</p><p><b> 圖3-7
52、 引腳圖</b></p><p><b> 三、引腳介紹</b></p><p> P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0 具有內(nèi)部上拉電阻。在 flash編程時(shí),P0 口也
53、用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。</p><p> P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)
54、數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表3-3所示。在flash 編程和校驗(yàn)時(shí),P1口接收低8 位地址字節(jié)。</p><p> 表 3-3 P1 口的第二功能使用</p><p> P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉
55、低的引腳由于內(nèi)部電阻的原因,將輸出電流。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 MOVX @DPTR)時(shí),P2口送出高八位地址。在使用8位地址(如 MOVX @RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出 P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 </p><p> P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)T
56、TL 邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P3口亦作為 STC89C52 特殊功能(第二功能)使用,在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。 </p><p> 表3-4 P3口的第二功能使用</p><p> RST:復(fù)位輸入。晶振工作時(shí),RST 腳持續(xù) 2 個(gè)機(jī)
57、器周期高電平將使單片機(jī)復(fù)位。看門狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH) 上的DISRTO位可以使此功能無(wú)效。DISRTO 默認(rèn)狀態(tài)下,復(fù)位高電平有效。 </p><p> ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸
58、出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE 操作將無(wú)效。這一位置 “1”,ALE僅在執(zhí)行 MOVX或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。</p><p> PSEN:外部程序存儲(chǔ)器選通信號(hào)
59、(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)STC89C52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部 數(shù)據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。 </p><p> EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP 電壓。 </p
60、><p> XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 </p><p> XTAL2:振蕩器反相放大器的輸出端。 </p><p> 3.4.2 電路設(shè)計(jì)</p><p> STC89C52 單片機(jī)主要實(shí)現(xiàn)距離值的標(biāo)度變換、語(yǔ)音的播放控制以及和上位機(jī)的通信功能。具體原理圖如圖3-8所示。</p><p&
61、gt;<b> 圖3-8 主控電路</b></p><p> 本設(shè)計(jì)主要用到P1.0~P1.5作為超聲波傳感器的輸入;P0口和語(yǔ)音芯片的地址口相連,通過(guò)P0口選擇語(yǔ)音芯片的地址;P2.7用作控制腳,和語(yǔ)音芯片的/PLAYL腳相連,控制語(yǔ)音芯片播放P0口選中地址單元中的錄音內(nèi)容。其I/O的引腳使用情況如表3-5所示:</p><p> 表3-5 STC89C52引
62、腳使用</p><p> 3.5 復(fù)位、晶振單元</p><p><b> 一、復(fù)位電路</b></p><p> 因?yàn)?STC89C52 單片機(jī)是高電平復(fù)位的,只要 REST 引腳接收到了兩個(gè)機(jī)器周期的高電平單片機(jī)就能復(fù)位。</p><p><b> 圖3-9 復(fù)位電路</b></p
63、><p><b> 二、晶振電路</b></p><p> STC89C52單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和XTAL2 分別是放大器的輸入、輸出端。</p><p> 圖3-10 晶振電路</p><p> 3.6 串口通信模塊MAX232</p><p> 本設(shè)計(jì)
64、下位機(jī)與上位機(jī)的通信采用的是RS232通信協(xié)議,選用串口通信模塊MAX232作為通信接口。</p><p> 圖3-11 通信接口電路</p><p> 3.7 印刷電路板設(shè)計(jì)和制作</p><p> 在系統(tǒng)硬件電路設(shè)計(jì)好后,我就去購(gòu)買所需要的元器件,自己畫(huà)元件封裝,通過(guò)自動(dòng)布線,繪制了 PCB 板。如圖 3-12 所示:</p><p&g
65、t; 圖3-12 系統(tǒng)硬件PCB圖</p><p> 印刷電路板畫(huà)好并檢查沒(méi)有錯(cuò)誤后,就送給廠家進(jìn)行制作了,在制作PCB板期間,就著手進(jìn)行系統(tǒng)軟件方案的設(shè)計(jì)。經(jīng)過(guò)大約一星期后,印刷電路板終于做好了,如圖 3-13所示:</p><p> 圖3-13 系統(tǒng)印刷電路板圖</p><p> 印刷電路板制作好后,就開(kāi)始進(jìn)行元器件的焊接以及硬件的調(diào)試。焊接及調(diào)試成功后
66、的系統(tǒng)硬件如圖3-14所示:</p><p> 圖3-14 系統(tǒng)硬件圖</p><p> 在焊接過(guò)程中,要注意焊接順序,首先焊接單片機(jī)及其外圍電路和MAX232通信接口,接著對(duì)其進(jìn)行調(diào)試;然后焊接語(yǔ)音芯片外圍電路,包括錄音電路、和單片機(jī)連接部分電路,并對(duì)其進(jìn)行調(diào)試。這樣分塊進(jìn)行焊接調(diào)試容易發(fā)現(xiàn)問(wèn)題,節(jié)約大量時(shí)間。</p><p><b> 第四章 軟
67、件設(shè)計(jì)</b></p><p><b> 4.1 主程序</b></p><p> 4.1.1 程序流程圖</p><p> 主程序設(shè)計(jì)流程圖實(shí)際上就是對(duì)程序設(shè)計(jì)總體思路的一個(gè)具體闡述。每一個(gè)程序的執(zhí)行都是從主程序開(kāi)始的,所以主程序在所有的子程序中起到一個(gè)領(lǐng)導(dǎo)的作用。也就是說(shuō),子程序的執(zhí)行順序是由主程序來(lái)決定的。后面的幾個(gè)小程
68、序模塊實(shí)際上都包含在主程序中,只是因?yàn)樗鼈兲蠡蚴且驗(yàn)榻?jīng)常使用而將它們單獨(dú)拎出來(lái)成為一個(gè)相對(duì)獨(dú)立的小模塊。主程序的開(kāi)始一般都是進(jìn)行模塊的初始化,為各模塊正常工作提供前提條件,本系統(tǒng)主要用到:距離計(jì)算程序、延時(shí)程序、數(shù)據(jù)發(fā)送程序、超聲波模塊啟動(dòng)程序。</p><p> 程序流程圖4-1所示,在主程序中,首先對(duì)程序中需要用到的變量初始化,然后初始化計(jì)數(shù)器T0,初始化定時(shí)器T1,并對(duì)T1賦初值。因?yàn)樵谟?jì)算距離時(shí),需要
69、用到T0進(jìn)行計(jì)數(shù);由于要和上位機(jī)通信,因此需要利用定時(shí)器T1設(shè)置通信波特率。超聲波測(cè)距采用的是循環(huán)檢測(cè)的方式,在主程序中,循環(huán)檢測(cè)P0口的狀態(tài),并將計(jì)算好的數(shù)據(jù)存入數(shù)組;當(dāng)接收到上位機(jī)的指令時(shí),開(kāi)始通過(guò)串口像上位機(jī)發(fā)送數(shù)據(jù)。為了使得數(shù)據(jù)比較準(zhǔn)確,在三個(gè)數(shù)據(jù)傳送結(jié)束后,需要延時(shí)一段時(shí)間。</p><p> 圖4-1 主程序流程圖</p><p> 4.1.2 程序介紹</p>
70、<p><b> 主程序</b></p><p> void main(void)</p><p><b> { </b></p><p><b> int b;</b></p><p><b> P2=0xff;</b><
71、;/p><p> TMOD=0x21; //設(shè)T0為方式1,GATE=1</p><p> SCON=0x50;</p><p><b> TH1=0xFD;</b></p><p><b> TL1=0xFD;</b></p><p><b> TH
72、0=0;</b></p><p><b> TL0=0; </b></p><p><b> TR0=1; </b></p><p> TR1=1; //開(kāi)啟定時(shí)器</p><p><b> TI=1;</b></p><
73、p><b> while(1)</b></p><p><b> {</b></p><p> StartModule();</p><p> while(!RECH0);//當(dāng)RECH0為零時(shí)等待</p><p> TR0=1; //開(kāi)啟計(jì)數(shù)</p>
74、<p> while(RECH0); //當(dāng)RECH0為1計(jì)數(shù)并等待</p><p> TR0=0; //關(guān)閉計(jì)數(shù)</p><p> a[0]=Conut(); //計(jì)算并將數(shù)值存入數(shù)組</p><p><b> b=SBUF;</b></p><p> if(RI==0)
75、; //判斷是否有上位機(jī)指令</p><p><b> else</b></p><p><b> {</b></p><p> P2=0xff; //啟動(dòng)語(yǔ)音播報(bào)提示信息</p><p><b> P2=0;</b></p>
76、;<p> Send(a[0]); //通過(guò)串口發(fā)送數(shù)據(jù)</p><p> DelayMs(500);//500MS</p><p><b> RI=1;</b></p><p><b> }</b></p><p><b> }</b>&l
77、t;/p><p><b> }</b></p><p><b> 4.2 測(cè)距程序</b></p><p> 4.2.1 程序流程圖</p><p> 測(cè)距程序程序中,首先要置超聲波引腳TRIG為高電平,然后要延時(shí)至少10us才能正確測(cè)距。超聲波模塊啟動(dòng)后,調(diào)用計(jì)算距離子程序,將傳感器感測(cè)的數(shù)據(jù)
78、轉(zhuǎn)化為厘米。</p><p> 圖4-2超聲波模塊啟動(dòng)程序流程圖,圖4-3為數(shù)據(jù)計(jì)算程序流程圖。</p><p> 圖4-2 傳感器模塊啟動(dòng)流程圖 圖4-3 距離計(jì)算流程圖</p><p> 4.2.2 程序介紹</p><p><b> 一、模塊啟動(dòng)程序</b></p>
79、<p> void StartModule() //啟動(dòng)一次模塊</p><p> {</p><p> TRIG=1; //TRIG引腳置高電平</p><p> _nop_(); //20us延時(shí)</p&
80、gt;<p><b> _nop_(); </b></p><p><b> ︰</b></p><p><b> ︰</b></p><p><b> ︰</b></p><p><b> _nop_(); </b
81、></p><p> TRIG=0; //TRIG引腳置低電平</p><p><b> }</b></p><p><b> 二、距離計(jì)算程序</b></p><p> Conut(void)</p><p>&
82、lt;b> {</b></p><p> time=TH0*256+TL0; //利用T0計(jì)數(shù),計(jì)算ECHO引腳高電平時(shí)間</p><p> TH0=0; //計(jì)數(shù)器T0計(jì)數(shù)清零</p><p><b> TL0=0;</b></p><p> S=(time
83、*1.87)/100; //算出來(lái)是CM</p><p> return(S); //返回距離值</p><p><b> }</b></p><p><b> 4.3 語(yǔ)音程序</b></p><p> 4.3.1 程序流程圖</p><
84、p> 預(yù)先向語(yǔ)音芯片中錄入“倒車,請(qǐng)注意”提示音,下位機(jī)檢測(cè)是否有上位機(jī)倒車指令。當(dāng)檢測(cè)到指令時(shí),單片機(jī)首先向P0口發(fā)送地址,然后向P2.7發(fā)送脈沖驅(qū)動(dòng)芯片報(bào)警。</p><p> 圖4-4為程序流程圖:</p><p> 圖4-4 程序流程圖</p><p> 4.3.2 程序介紹</p><p><b> 報(bào)警程
85、序介紹</b></p><p> b=SBUF; //上位機(jī)發(fā)送指令</p><p> if(RI==0); //判斷是否接收到上位機(jī)指令</p><p><b> else</b></p><p><b> {</b>&
86、lt;/p><p> P0=0; //選擇地址</p><p> P2=0xff; //向P2口發(fā)送脈沖</p><p><b> P2=0;</b></p><p> DelayMs(500);//500MS</p><p><b>
87、RI=1;</b></p><p><b> }</b></p><p><b> 4.4 通信程序</b></p><p> 4.4.1 程序流程圖</p><p> 串口通信采用的通信協(xié)議是RS232,上位機(jī)與下位機(jī)通過(guò)串口MAX232相連。單片機(jī)不斷檢測(cè)上位機(jī)要求傳送數(shù)據(jù)信
88、息,當(dāng)檢測(cè)到通信指令時(shí),單片機(jī)調(diào)用發(fā)送子程序,發(fā)送經(jīng)單片機(jī)處理過(guò)的距離信息。</p><p> 圖4-5為通信程序流程圖,圖4-6為數(shù)據(jù)發(fā)送程序流程圖。</p><p> 圖4-5 通信程序流程圖 圖4-6 數(shù)據(jù)發(fā)送程序流程圖</p><p> 4.4.2 程序介紹</p><p><b> 一、通信程序<
89、;/b></p><p> b=SBUF; </p><p> if(RI==0); //等待上位機(jī)發(fā)送數(shù)據(jù)通信指令</p><p> else //接收到指令</p><p><b> {</b></p&
90、gt;<p><b> ︰</b></p><p><b> ︰</b></p><p> Send(a[0]); //調(diào)用數(shù)據(jù)發(fā)送程序發(fā)送數(shù)據(jù)</p><p> Send(a[1]);</p><p> Send(a[2]);</p><
91、p><b> ︰</b></p><p><b> ︰</b></p><p><b> }</b></p><p><b> 二、數(shù)據(jù)發(fā)送子程序</b></p><p> void Send(int a)</p><p
92、><b> {</b></p><p> SBUF=a; //將數(shù)據(jù)存入緩沖區(qū)</p><p> while(TI==0); //判斷是否發(fā)送完</p><p> TI=0; //發(fā)送結(jié)束后清標(biāo)志位</p><p><b>
93、}</b></p><p><b> 第五章 人機(jī)界面</b></p><p> 5.1 開(kāi)發(fā)軟件概述</p><p> LabWindows/CVI 簡(jiǎn)介</p><p> LabWindows/CVI 是National Instruments 公司(美國(guó)國(guó)家儀器公司,簡(jiǎn)稱NI公司)推出的交互式C
94、語(yǔ)言開(kāi)發(fā)平臺(tái)。LabWindows/CVI 將功能強(qiáng)大、使用靈活的C語(yǔ)言平臺(tái)與用于數(shù)據(jù)采集分析和顯示的測(cè)控專業(yè)工具有機(jī)地結(jié)合起來(lái),利用它的集成化開(kāi)發(fā)環(huán)境、交互式編程方法、函數(shù)面板和豐富的庫(kù)函數(shù)大大增強(qiáng)了C語(yǔ)言的功能,為熟悉C語(yǔ)言的開(kāi)發(fā)設(shè)計(jì)人員編寫檢測(cè)系統(tǒng)、自動(dòng)測(cè)試環(huán)境、數(shù)據(jù)采集系統(tǒng)、過(guò)程監(jiān)控系統(tǒng)等應(yīng)用軟件提供了一個(gè)理想的軟件開(kāi)發(fā)環(huán)境。NI公司的LabWindows/CVI是一個(gè)久經(jīng)驗(yàn)證的用于測(cè)試和測(cè)量的ANSI C開(kāi)發(fā)環(huán)境,極大地提高了
95、工程師和科學(xué)家們的生產(chǎn)效率。他們使用LabWindows/CVI來(lái)開(kāi)發(fā)高性能的、可靠的應(yīng)用程序,用于制造測(cè)試、軍事/航天、通訊、設(shè)計(jì)驗(yàn)證和汽車工業(yè)等領(lǐng)域。開(kāi)發(fā)人員可以在設(shè)計(jì)階段利用LabWindows/CVI的硬件配置助手、綜合調(diào)試工具以及交互式執(zhí)行功能,來(lái)運(yùn)行各項(xiàng)功能,使得這些領(lǐng)域的開(kāi)發(fā)流水線化。使用內(nèi)置的測(cè)量庫(kù),你可以迅速的開(kāi)發(fā)出復(fù)雜的應(yīng)用程序,例如多線程編程和ActiveX的服務(wù)器/客戶端程序。由于LabWindows/CV<
96、;/p><p> LabWindows/CVI 是為C語(yǔ)言程序員提供的軟件開(kāi)發(fā)系統(tǒng),在其交互式開(kāi)發(fā)環(huán)境中編寫的程序必須符合標(biāo)準(zhǔn)C 規(guī)范。 </p><p> 使用LabWindows/CVI 可以完成如下工作:交互式的程序開(kāi)發(fā);具有功能強(qiáng)大的函數(shù)庫(kù),用來(lái)創(chuàng)建數(shù)據(jù)采集和儀器控制的應(yīng)用程序; ?? 充分利用完備的軟件工具進(jìn)行數(shù)據(jù)采集、分析和顯示;
97、48698;利用向?qū)ч_(kāi)發(fā)IVI儀器驅(qū)動(dòng)程序和創(chuàng)建ActiveX服務(wù)器;為其它程序開(kāi)發(fā)C目標(biāo)模塊、動(dòng)態(tài)連接庫(kù)(DLL)、C語(yǔ)言庫(kù)。</p><p><b> 5.2 界面設(shè)計(jì)</b></p><p> 5.2.1 圖像顯示界面</p><p><b> 一、界面前面板</b></p>
98、<p> 在可視倒車系統(tǒng)中,需要上位機(jī)能夠顯示USB攝像頭采集到的圖像。如圖5-1所示,在圖中,有一個(gè)視頻顯示控件和三個(gè)命令控件。USB攝像頭連接好后,當(dāng)點(diǎn)擊“采集圖像”按鍵時(shí),系統(tǒng)啟動(dòng)USB攝像頭采集圖像,并在黑色區(qū)域顯示;當(dāng)點(diǎn)擊“停止”按鍵時(shí),系統(tǒng)停止采集圖像;當(dāng)點(diǎn)擊“退出”按鍵時(shí),退出視頻采集軟件。</p><p> 圖5-1 圖像顯示界面</p><p> 二、視頻
99、采集程序介紹</p><p><b> //主程序</b></p><p> int main (int argc, char *argv[])</p><p> { if (InitCVIRTE (0, argv, 0) == 0)</p><p> return -1; /* ou
100、t of memory */</p><p> if ((panelHandle = LoadPanel (0, "cam.uir", PANEL)) < 0)</p><p> return -1;</p><p> return 0;}</p><p><b> //退出按鈕</b>
101、</p><p> int CVICALLBACK QuitCallback (int panel, int control, int event, void *callbackData, </p><p> int eventData1, int eventData2)</p><p> {switch (event)</p><p>
102、; {case EVENT_COMMIT: QuitUserInterface (0); break;}</p><p> return 0;}</p><p><b> //開(kāi)始按鈕</b></p><p> int CVICALLBACK startCB (int panel, int control, int event, voi
103、d *callbackData,</p><p> int eventData1, int eventData2)</p><p> { switch (event)</p><p> {case EVENT_COMMIT:</p><p> GetPanelAttribute (···,·
104、183;·, ···); //獲得面板句柄</p><p> GetCtrlAttribute (···, ···, ···, ···); //獲得屏幕中圖像要顯示的位置&l
105、t;/p><p> result=capCreateCaptureWindowA("",··· ,··,··,··,··,··,··); //打開(kāi)攝像頭</p><p> SendMessage(··&
106、#183;, ··, ··, ··); //設(shè)置攝像頭函數(shù)</p><p><b> break;</b></p><p><b> }</b></p><p> return 0;}</p>&l
107、t;p><b> //停止按鈕</b></p><p> int CVICALLBACK stopCB (int panel, int control, int event,void *callbackData, int eventData1, int eventData2)</p><p> { switch (event)</p>&
108、lt;p> {case EVENT_COMMIT:</p><p> if (result != 0)</p><p> {SendMessage(··, ··,··, ··); } //斷開(kāi)連接</p><p><b> break;</b>&
109、lt;/p><p><b> } </b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b> 超聲波距離顯示界面</b></p><p><b>
110、一、界面前面板</b></p><p> 系統(tǒng)要求上位機(jī)能過(guò)接收單片傳送的距離信息,為此編寫了一個(gè)數(shù)據(jù)通信用</p><p> 的上位機(jī)程序。系統(tǒng)用到了三個(gè)超聲波傳感器,因此要求上位機(jī)能夠接收并顯示三個(gè)距離信息。系統(tǒng)界面如圖5-2所示,在面板中,有三個(gè)數(shù)據(jù)顯示框,用于顯示下位機(jī)傳送上來(lái)的距離值;有兩個(gè)控制按鍵,用于控制通信的通斷。當(dāng)點(diǎn)擊“接收數(shù)據(jù)”按鍵時(shí),系統(tǒng)向下位機(jī)發(fā)送測(cè)
111、距指令,通過(guò)單片機(jī)驅(qū)動(dòng)傳感器測(cè)距,并將處理后的數(shù)據(jù)通過(guò)串口發(fā)送給上位機(jī),上位機(jī)顯示數(shù)據(jù)值;當(dāng)點(diǎn)擊“退出”按鍵時(shí),退出該軟件。</p><p> 圖5-2 距離顯示界面</p><p><b> 二、程序簡(jiǎn)介</b></p><p><b> //主程序</b></p><p> int ma
112、in (int argc, char *argv[])</p><p> { if (InitCVIRTE (0, argv, 0) == 0)</p><p> return -1;/* out of memory */</p><p> if ((panelHandle = LoadPanel (0, "通信.uir", PANEL)
113、) < 0)</p><p> return -1;</p><p> OpenComConfig (1, "", 9600, 0, 8, 1, 0, 0); //打開(kāi)并配置串口</p><p><b> ···</b></p><p><b>
114、 }</b></p><p><b> //退出</b></p><p> int CVICALLBACK rs232quit (int panel, int control, int event,void *callbackData,</p><p> int eventData1, int eventData2)</
115、p><p> {switch (event)</p><p> {case EVENT_COMMIT:</p><p> CloseCom(1); //關(guān)閉串口</p><p><b> ···</b></p><p><b
116、> }</b></p><p> return 0;}</p><p><b> //接收數(shù)據(jù)</b></p><p> int CVICALLBACK rs232receive (int panel, int control, int event,void *callbackData,</p><
117、p> int eventData1, int eventData2)</p><p> {char a[1]={1}; //向緩沖區(qū)發(fā)送字符</p><p><b> ···</b></p><p> FlushInQ(1);
118、 //清空串行口1的輸入隊(duì)列</p><p> FlushOutQ(1); //清空串行口1的輸出隊(duì)列 </p><p> //為串口1設(shè)置回調(diào)函數(shù)(當(dāng)PC機(jī)串口收到字符串后調(diào)用函數(shù)Data_receive)</p><p> InstallComCallback(1,LWRS_RECEIVE,3,0,Data_receive,
119、callbackdata);</p><p> ComWrt(1,a,1); //從緩沖區(qū)讀數(shù)據(jù)存入緩沖去</p><p><b> ···}</b></p><p><b> //讀數(shù)據(jù)</b></p><p> void CVICALLBACK Data_r
120、eceive(int COMport,int eventMask,void *callbackdata)</p><p><b> { ···</b></p><p> count=GetInQLen(1); //讀取指定端口入隊(duì)列字符數(shù)</p><p> Set
121、CtrlVal( panelHandle,PANEL_NUMERIC,rbuf); //顯示數(shù)據(jù)</p><p><b> ···</b></p><p><b> }</b></p><p><b> 系統(tǒng)界面</b></p><p>&l
122、t;b> 一、界面前面板</b></p><p> 經(jīng)過(guò)以上的視頻和通信的分開(kāi)調(diào)試成功后,最終確定前面板的構(gòu)成。前面板</p><p> 中包含了一個(gè)視頻顯示控件,三個(gè)距離顯示控件,三個(gè)控制按鍵。</p><p> 當(dāng)按下“開(kāi)始”按鍵后,上位機(jī)向下位機(jī)發(fā)送指令,同時(shí)啟動(dòng)攝像頭采集圖像;當(dāng)下位機(jī)接到上位機(jī)的指令后,打開(kāi)串口向上位機(jī)傳送數(shù)據(jù),三
123、個(gè)數(shù)據(jù)一組,分別為三個(gè)傳感器的數(shù)據(jù),在上位機(jī)上點(diǎn)擊“顯示距離”按鍵后,上位機(jī)上顯示三個(gè)距離數(shù)據(jù);當(dāng)點(diǎn)擊“退出”按鍵時(shí),退出軟件。</p><p> 系統(tǒng)界面如圖5-3所示:</p><p><b> 圖5-3 系統(tǒng)界面</b></p><p><b> 二、程序簡(jiǎn)介</b></p><p>
124、 上位機(jī)的總程序包括兩個(gè)大部分:攝像頭和數(shù)據(jù)通信。攝像頭驅(qū)動(dòng)程序和數(shù)據(jù)通信程序已經(jīng)編寫好,總程序只需要將兩個(gè)程序融合到一起即可,當(dāng)然,也要經(jīng)過(guò)一些修改;在數(shù)據(jù)顯示部分,又加入了單位。</p><p> 上位機(jī)程序主要包括:攝像頭驅(qū)動(dòng)程序、數(shù)據(jù)通信程序、數(shù)據(jù)顯示程序。</p><p><b> 第六章 結(jié)果調(diào)試</b></p><p> 結(jié)
125、果調(diào)試分為硬件調(diào)試和軟件調(diào)試。硬件主要可以分為以下幾個(gè)部分,即單片機(jī)、串口、超聲波傳感器和語(yǔ)音錄放。調(diào)試的時(shí)候,為了能夠比較容易發(fā)現(xiàn)硬件錯(cuò)誤,要分步調(diào)試,首先焊接好單片機(jī)和串口以及外圍電路,接著調(diào)試;然后焊接語(yǔ)音錄放電路,調(diào)試;最后焊接傳感器模塊。</p><p> 軟件調(diào)試主要分為下位機(jī)單片機(jī)程序的調(diào)試和上位機(jī)中程序的調(diào)試。在下位機(jī)中主要包含超聲波測(cè)距程序,語(yǔ)音播放程序,數(shù)據(jù)發(fā)送程序,串口初始化程序等;上位機(jī)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---倒車?yán)走_(dá)的設(shè)計(jì)
- 汽車倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 汽車倒車防撞雷達(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-----車用倒車?yán)走_(dá)設(shè)計(jì)
- 汽車倒車防撞雷達(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 倒車?yán)走_(dá)畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告
- 畢業(yè)設(shè)計(jì)-超聲波倒車?yán)走_(dá)
- 超聲波倒車?yán)走_(dá)畢業(yè)設(shè)計(jì)
- 倒車?yán)走_(dá)超聲波測(cè)距畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---超聲波倒車?yán)走_(dá)系統(tǒng)的設(shè)計(jì)
- 基于avr單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)---基于超聲波測(cè)距的倒車?yán)走_(dá)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)倒車?yán)走_(dá)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的倒車?yán)走_(dá)的設(shè)計(jì)
- 倒車防撞雷達(dá)的設(shè)計(jì)【畢業(yè)論文】
- 基于stm32的可視化倒車?yán)走_(dá)的設(shè)計(jì)——畢業(yè)論文
- 基于msp430單片機(jī)的倒車?yán)走_(dá)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 超聲波測(cè)距倒車?yán)走_(dá)系統(tǒng)的研究【畢業(yè)設(shè)計(jì)】
- 倒車?yán)走_(dá)系統(tǒng)的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論