畢業(yè)設(shè)計(jì) 智能尋跡滅火小車(chē)設(shè)計(jì)論文_第1頁(yè)
畢業(yè)設(shè)計(jì) 智能尋跡滅火小車(chē)設(shè)計(jì)論文_第2頁(yè)
畢業(yè)設(shè)計(jì) 智能尋跡滅火小車(chē)設(shè)計(jì)論文_第3頁(yè)
畢業(yè)設(shè)計(jì) 智能尋跡滅火小車(chē)設(shè)計(jì)論文_第4頁(yè)
畢業(yè)設(shè)計(jì) 智能尋跡滅火小車(chē)設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

1、摘  要隨著社會(huì)的發(fā)展、科技的進(jìn)步,工業(yè)的生產(chǎn)和管理進(jìn)入了自動(dòng)化、信息化和智能化時(shí)代,智能化已經(jīng)成為時(shí)代發(fā)展的需要。當(dāng)工作現(xiàn)場(chǎng)環(huán)境惡劣時(shí),人工不能完成的任務(wù)如物料運(yùn)輸和滅火等,可采用智能尋跡小車(chē)完成相應(yīng)的任務(wù)。基于工作現(xiàn)場(chǎng)和日常生活的實(shí)際需要,研究和開(kāi)發(fā)智能小車(chē)尋跡系統(tǒng)具有十分重要的意義。本文首先簡(jiǎn)單描述系統(tǒng)硬件工作原理,并附以系統(tǒng)結(jié)構(gòu)框圖加以說(shuō)明,著重介紹了本次畢業(yè)設(shè)計(jì)所應(yīng)用的各硬件接口技術(shù)和各個(gè)接口模塊的功能及工作過(guò)程,其次,詳細(xì)闡述了程序和流程和實(shí)現(xiàn)過(guò)程。本設(shè)計(jì)數(shù)字集成電路技術(shù)為基礎(chǔ)和單片機(jī)技術(shù)為核心。本文編寫(xiě)的主導(dǎo)思想是軟硬件相結(jié)合,以硬件為基礎(chǔ),來(lái)進(jìn)行各功能模塊的編寫(xiě)。關(guān)鍵

2、詞AT89C52單片機(jī);小車(chē);溫度AbstractAlong with the progress of social development, science and technology, production and management of industry got into automation, information-based turns ages with intelligence, intelligence's turning has already become the demand that the ages develops.When working the

3、spot environment is bad, the artificial can not complete of task such as material conveyance with extinguish fire etc., can adopt intelligence to look for the vestige small car to complete a homologous task.According to the effective demand of the work the spot and the daily life, research and the d

4、evelopment intelligence small car look for vestige system to have very important meaning.This text in brief describes the system hardware work principle first, and attach to take into to explain by the system structure frame diagram, emphasized to introduce each hardware applied of this graduation d

5、esign to connect the function and work process that a people's technique and each one connect a people mold piece, elaborated procedure and process and carry out process in detail secondly.This design number integrated circuit technique is foundation and single slice of machine technique is core

6、s.The predominant thought that this text writes is a soft hardware to combine together and take hardware as foundation, carry on writing of each function mold piece.Keyword:The AT89 C52 single slice of machine;Small car;Temperature目錄摘要IAbstractII第1章緒論11.1智能尋跡滅火小車(chē)控制系統(tǒng)的設(shè)計(jì)背景和意義11.2智能尋跡滅火小車(chē)控制系統(tǒng)的目標(biāo)1第2章智能

7、尋跡滅火小車(chē)控制系統(tǒng)介紹22.1智能尋跡滅火小車(chē)系統(tǒng)功能概述22.2系統(tǒng)工作原理22.3本章小結(jié)3第3章系統(tǒng)硬件設(shè)計(jì)43.1硬件設(shè)計(jì)框圖43.2硬件設(shè)計(jì)及主控芯片介紹53.2.1AT89C52主控芯片介紹53.2.2尋跡系統(tǒng)方案設(shè)計(jì)73.2.3電機(jī)驅(qū)動(dòng)系統(tǒng)方案設(shè)計(jì)113.2.4電源系統(tǒng)方案設(shè)計(jì)113.2.5顯示系統(tǒng)方案設(shè)計(jì)123.2.6溫度系統(tǒng)方案設(shè)計(jì)133.2.7車(chē)體方案設(shè)計(jì)143.2.8水泵風(fēng)扇方案設(shè)計(jì)143.3本章小結(jié)15第4章系統(tǒng)軟件設(shè)計(jì)164.1軟件設(shè)計(jì)思路164.2系統(tǒng)程序流程圖164.2.1尋跡模塊程序流程圖164.2.2驅(qū)動(dòng)電機(jī)模塊程序流程圖174.2.3顯示模塊程序流程圖18

8、4.2.4溫度模塊程序流程圖194.2.5水泵風(fēng)扇模塊程序流程圖204.3各功能模塊軟件程序設(shè)計(jì)214.3.1尋跡模塊主程序214.3.2驅(qū)動(dòng)電機(jī)模塊主程序234.3.3顯示模塊主程序244.3.4溫度模塊主程序254.3.5水泵風(fēng)扇模塊主程序274.3.6延時(shí)子程序284.4本章小結(jié)28第5章系統(tǒng)調(diào)試295.1硬件調(diào)試295.1.1RPR220信號(hào)產(chǎn)生的調(diào)試295.1.2溫度模塊的時(shí)序調(diào)試305.2調(diào)試軟件WAVE介紹305.2.1主界面305.2.2菜單介紹315.3軟件程序調(diào)試315.3.1調(diào)試的主要方法和技巧325.3.2利用WAVE調(diào)試本系統(tǒng)325.4綜合調(diào)試335.5本章小結(jié)34結(jié)

9、論35致謝36參考文獻(xiàn)37附錄138附錄242附錄348附錄4955哈爾濱工業(yè)大學(xué)華德應(yīng)用技術(shù)學(xué)院本科畢業(yè)設(shè)計(jì)(論文)第1章 緒論1.1 智能尋跡滅火小車(chē)控制系統(tǒng)的設(shè)計(jì)背景和意義火災(zāi)在現(xiàn)實(shí)生活中是非常普遍的,它被稱(chēng)為三大自然災(zāi)害之一。消防人員時(shí)時(shí)刻刻沖到第一線(xiàn),面臨生命危險(xiǎn),在這種背景下,智能尋跡滅火系統(tǒng)應(yīng)運(yùn)而生,實(shí)現(xiàn)了對(duì)安全防護(hù)的質(zhì)的提高,也大大地減低了消防人員的危險(xiǎn)。在智能尋跡滅火系統(tǒng)中應(yīng)用單片機(jī)來(lái)代替人的思考,還可以實(shí)現(xiàn)自動(dòng)化控制,簡(jiǎn)化了滅火的工作流程,使單片機(jī)代替多余的消防人員,節(jié)省了國(guó)家不必要的支出,減低了危險(xiǎn)?,F(xiàn)今,單片機(jī)以其強(qiáng)大的控制能力已經(jīng)被廣泛應(yīng)用于諸多領(lǐng)域,配以各種接口傳感

10、器可以實(shí)現(xiàn)系統(tǒng)的智能化。無(wú)論在安全防護(hù)領(lǐng)域、工業(yè)控制領(lǐng)域、醫(yī)療衛(wèi)生領(lǐng)域、還是在國(guó)防軍事領(lǐng)域、航天航空領(lǐng)域,微控制器都起著舉足輕重的作用。從最初的8位控制器到現(xiàn)在的32位控制器都還有很大的發(fā)展和應(yīng)用空間。根據(jù)本設(shè)計(jì)的要求,將采用ATMEL公司生產(chǎn)的AT89C52型單片機(jī)1.2 智能尋跡滅火小車(chē)控制系統(tǒng)的目標(biāo)本設(shè)計(jì)開(kāi)發(fā)的智能尋跡滅火小車(chē)控制系統(tǒng)應(yīng)用范圍十分廣泛,設(shè)計(jì)的智能尋跡滅火小車(chē)應(yīng)該能夠?qū)崿F(xiàn)溫度監(jiān)控、報(bào)警、具有自動(dòng)尋跡、吹風(fēng)滅火、噴水滅火、返回起始點(diǎn)等功能,可通過(guò)溫度的監(jiān)控來(lái)進(jìn)行設(shè)定小車(chē)是否前進(jìn)。本設(shè)計(jì)具有很好的開(kāi)發(fā)前景,將會(huì)受到廣大安全防護(hù)人員的歡迎。第2章 智能尋跡滅火小車(chē)控制系統(tǒng)介紹2.

11、1 智能尋跡滅火小車(chē)系統(tǒng)功能概述經(jīng)過(guò)開(kāi)題期間的文獻(xiàn)查閱和實(shí)際情況調(diào)研,了解到目前的消防車(chē)的研究與設(shè)計(jì)一般采用的方案大都為:通過(guò)人為報(bào)警,再由消防人員開(kāi)著小車(chē)去滅火。那樣消防人員會(huì)隨時(shí)面臨著危險(xiǎn)。通過(guò)自己的想法。采用的方案為:通過(guò)溫度傳感器、檢測(cè)到火災(zāi)發(fā)生地點(diǎn)的溫度的因素與其標(biāo)準(zhǔn)區(qū)間值不符,系統(tǒng)會(huì)自動(dòng)派出無(wú)人消防車(chē)進(jìn)行滅火等操作。該控制系統(tǒng)的最大特點(diǎn):1. 結(jié)構(gòu)簡(jiǎn)單2. 體積小、功率低3. 信號(hào)無(wú)干擾,傳輸準(zhǔn)確度高4. 成本低廉5. 安全系統(tǒng)各個(gè)功能模塊簡(jiǎn)介:1. 尋跡模塊:主要用來(lái)給小車(chē)做導(dǎo)航前進(jìn)用。2. 電源模塊:主要用來(lái)分別區(qū)分給單片機(jī)與電機(jī)、水泵驅(qū)動(dòng)模塊供電。3. 溫度模塊:主要用來(lái)對(duì)溫

12、度傳感器給單片機(jī)傳值的功能。4. 顯示模塊:主要用來(lái)顯示單片機(jī)傳過(guò)來(lái)的溫度值。5. 電機(jī)驅(qū)動(dòng)模塊:主要用來(lái)驅(qū)動(dòng)兩個(gè)減速直流電機(jī),實(shí)現(xiàn)小車(chē)的前進(jìn)、后退、前左轉(zhuǎn)、前右轉(zhuǎn)、后左轉(zhuǎn)、后右轉(zhuǎn)、停車(chē)等功能。6. 風(fēng)扇、水泵驅(qū)動(dòng)模塊:主要是用來(lái)控制水泵是否噴水、風(fēng)扇是否吹風(fēng),來(lái)實(shí)現(xiàn)小車(chē)滅火功能。2.2 系統(tǒng)工作原理在智能尋跡滅火小車(chē)控制系統(tǒng)的設(shè)計(jì)中,工作原理:首先小車(chē)檢測(cè)水罐水位,是否到達(dá)水位線(xiàn)。如果沒(méi)有,則等待裝水直至裝滿(mǎn)為止。然后通過(guò)18B20檢測(cè)傳回來(lái)的溫度,實(shí)時(shí)顯示。當(dāng)溫度達(dá)到上限時(shí),開(kāi)始啟動(dòng)報(bào)警,并驅(qū)動(dòng)小車(chē)沿著黑線(xiàn)尋跡前進(jìn)。到達(dá)指定地點(diǎn)時(shí),小車(chē)停止,啟動(dòng)風(fēng)扇和水泵,開(kāi)始吹風(fēng)、噴水。當(dāng)溫度降回原先的

13、區(qū)間或者水罐的水降低到警戒線(xiàn)。小車(chē)開(kāi)始尋跡返回。然后等待水裝滿(mǎn)。再一次運(yùn)行。2.3 本章小結(jié)本章結(jié)合目前的智能尋跡滅火小車(chē)控制系統(tǒng)對(duì)當(dāng)前的控制系統(tǒng)進(jìn)行了概述,系統(tǒng)具備的功能以及系統(tǒng)控制的工作原理,通過(guò)閱讀本章內(nèi)容可對(duì)該系統(tǒng)有一個(gè)總體的了解。第3章 系統(tǒng)硬件設(shè)計(jì)3.1 硬件設(shè)計(jì)框圖本控制系統(tǒng)硬件設(shè)計(jì)框圖3-1如下所示:AT89C52主控芯片溫度模塊顯示模塊報(bào)警尋跡模塊檢測(cè)水位驅(qū)動(dòng)電機(jī)模塊水泵風(fēng)扇模塊P1.0P1.3P1.4P1.5P1.6P1.7P0.4P0.5P3.4P3.5 P0.00.1 P2P0.7圖3-1硬件設(shè)計(jì)框圖在智能尋跡滅火小車(chē)控制系統(tǒng)的設(shè)計(jì)中,以AT89C52為核心,用了兩片L

14、298N,一片用于驅(qū)動(dòng)兩個(gè)減速電機(jī),一片用于驅(qū)動(dòng)水泵和風(fēng)扇。12V電源單獨(dú)給電機(jī)供電,再用7805把12V電源降壓至5V給單片機(jī)供電。首先單片機(jī)根據(jù)檢測(cè)水位及溫度是否到達(dá)上限的信號(hào),來(lái)判斷小車(chē)是否前進(jìn)。如果沒(méi)有該信號(hào),則一直等待。當(dāng)產(chǎn)生信號(hào)驅(qū)動(dòng)小車(chē)前進(jìn)時(shí),是通過(guò)尋跡模塊里的RPR220是否尋到黑線(xiàn)產(chǎn)生的電平信號(hào)返回到單片機(jī),單片機(jī)根據(jù)程序設(shè)計(jì)的要求做出相應(yīng)的判斷送給電機(jī)驅(qū)動(dòng)模塊,讓小車(chē)來(lái)實(shí)現(xiàn)前進(jìn)、左轉(zhuǎn)、右轉(zhuǎn)、停車(chē)等基本功能。到達(dá)火災(zāi)地點(diǎn)時(shí),單片機(jī)通過(guò)L298N來(lái)控制水泵、風(fēng)扇工作滅火。3.2 硬件設(shè)計(jì)及主控芯片介紹在智能尋跡滅火小車(chē)控制系統(tǒng)的設(shè)計(jì)中,共用了一片AT89C52單片機(jī)作為本控制系統(tǒng)

15、的主控芯片,硬件設(shè)計(jì)模塊共分為:尋跡模塊、電機(jī)、風(fēng)扇水泵驅(qū)動(dòng)模塊、電源模塊、顯示模塊、溫度模塊、水泵風(fēng)扇模塊。3.2.1 AT89C52主控芯片介紹AT89C52簡(jiǎn)介本系統(tǒng)的核心部件AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含2k字節(jié)的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(PEROM)和128字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,具有較高的性?xún)r(jià)比。設(shè)計(jì)本著應(yīng)用性,因此選擇AT89C52單片機(jī)作為本控制系統(tǒng)的中央處理器。AT89C52包括:(1

16、)一個(gè)8位微處理器CPU。(2)片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM和特殊功能寄存器SFR。(3)片內(nèi)程序存儲(chǔ)器ROM。(4)兩個(gè)定時(shí)/計(jì)數(shù)器T0、T1,可用作定時(shí)器,也可用以 對(duì)外部脈沖進(jìn)行計(jì) 數(shù)。(5)四個(gè)8位可編程的并行I/O端口,每個(gè)端口既可作輸 入,也可作輸出。(6)一個(gè)串行端口,用于數(shù)據(jù)的串行通信。(7)中斷控制系統(tǒng)。(8)內(nèi)部時(shí)鐘電路。AT89C52單片機(jī)的基本組成如圖3-2所示。 圖3-2AT89C52單片機(jī)基本結(jié)構(gòu)AT89C52具有如下特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷

17、優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門(mén)狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,AT89C52設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過(guò)軟件設(shè)置省電模式。空閑模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式 以適應(yīng)不同產(chǎn)品的需求。AT89C52芯片的40個(gè)引腳功能為: 1. Vcc:電源電壓。2. GND:地。3. P0口(P0.0P0.7):該端口為漏極開(kāi)路的8位準(zhǔn)雙向口,它為外部低8位地址線(xiàn)和8位

18、數(shù)據(jù)線(xiàn)復(fù)用端口,驅(qū)動(dòng)能力為8個(gè)LSTTL負(fù)載。P1口(P1.0P1.7):它是一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P1口的驅(qū)動(dòng)能力為4個(gè)LSTTL負(fù)載。P2口(P2.0P2.7):它為一個(gè)內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P2口的驅(qū)動(dòng)能力也為4個(gè)LSTTL負(fù)載。在訪問(wèn)外部程序存儲(chǔ)器時(shí),作為高8位地址線(xiàn)。P3口(P3.0P3.7):為內(nèi)部帶上拉電阻的8位準(zhǔn)雙向I/O口,P3口除了作為一般的I/O口使用之外,每個(gè)引腳都具有第二功能。P3口還用于實(shí)現(xiàn)AT89C52的各種功能,如下表3-1所示。 表3-1P3口各功能對(duì)照表4. RST:復(fù)位輸入。RST一旦變成高電平,所有的I/O引腳就復(fù)位到“1

19、”。當(dāng)振蕩器正在運(yùn)行時(shí),持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。 5. XTAL1:作為振蕩器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸入。6. XTAL2:作為振蕩器反相放大器的輸出。3.2.2 尋跡系統(tǒng)方案設(shè)計(jì)這里的尋跡是指小車(chē)在地板上,尋著黑線(xiàn)行走,通常采取的方法是以下三種方案。方案1:用光敏電阻組成光敏探測(cè)器。光敏電阻的阻值可以跟隨周?chē)h(huán)境光線(xiàn)的變化而變化。當(dāng)光線(xiàn)照射到白線(xiàn)上面時(shí),光線(xiàn)發(fā)射強(qiáng)烈,光線(xiàn)照射到黑線(xiàn)上面時(shí),光線(xiàn)發(fā)射較弱。因此光敏電阻在白線(xiàn)和黑線(xiàn)上方時(shí),阻值會(huì)發(fā)生明顯的變化。將阻值的變化值經(jīng)過(guò)比較器就可以輸出高低電平。但是這種方案受

20、光照影響很大,不能夠穩(wěn)定的工作。因此我考慮其他更加穩(wěn)定的方案。方案2:用紅外發(fā)射管和接收管自己制作光電對(duì)管尋跡傳感器。紅外發(fā)射管發(fā)出紅外線(xiàn),當(dāng)發(fā)出的紅外線(xiàn)照射到白色的平面后反射,若紅外接收管能接收到反射回的光線(xiàn)則檢測(cè)出白線(xiàn)繼而輸出低電平,若接收不到發(fā)射管發(fā)出的光線(xiàn)則檢測(cè)出黑線(xiàn)繼而輸出高電平。這樣自己制作組裝的尋跡傳感器基本能夠滿(mǎn)足要求,但是工作不夠穩(wěn)定,且容易受外界光線(xiàn)的影響,因此我放棄了這個(gè)方案。方案3:用RPR220型光電對(duì)管。RPR220是一種一體化反射型光電探測(cè)器,其發(fā)射器是一個(gè)砷化鎵紅外發(fā)光二極管,而接收器是一個(gè)高靈敏度,硅平面光電三極管。RPR220采用DIP4封裝,其具有如下特點(diǎn)

21、:塑料透鏡可以提高靈敏度。內(nèi)置可見(jiàn)光過(guò)濾器能減小離散光的影響。體積小,結(jié)構(gòu)緊湊。當(dāng)發(fā)光二極管發(fā)出的光反射回來(lái)時(shí),三極管導(dǎo)通輸出低電平。此光電對(duì)管調(diào)理電路簡(jiǎn)單,工作性能穩(wěn)定。因此我選擇了方案3。RPR220主要使用一片LM393比較器芯片,根據(jù)尋到黑線(xiàn)時(shí),電壓進(jìn)行比較,傳回單片機(jī)一個(gè)值。該設(shè)計(jì)的尋跡原理圖3-2-2如下所示:圖3-2-2尋跡模塊原理圖3.2.2.1 用光電對(duì)管電路的設(shè)計(jì)我設(shè)計(jì)并論證了兩種光電對(duì)管檢測(cè)及調(diào)理電路,電路原理圖分別如3-2-2-1和圖3-2-2-2所示: 圖3-2-2-1 光電對(duì)管檢測(cè)電路1圖3-2-2-1所示電路中,R1起限流電阻的作用,當(dāng)有光反射回來(lái)時(shí),光電對(duì)管中的

22、三極管導(dǎo)通,R2的上端變?yōu)楦唠娖剑藭r(shí)VT1飽和導(dǎo)通,三極管集電極輸出低電平。當(dāng)沒(méi)有光反射回來(lái)時(shí),光電對(duì)管中的三極管不導(dǎo)通,VT1截至,其集電極輸出高電平。VT1在該電路中起到濾波整形的作用。經(jīng)試驗(yàn)和示波器驗(yàn)證,該電路工作性能一般,輸出還有雜散干擾波的成分。如果輸出加施密特觸發(fā)器就可以實(shí)現(xiàn)良好的輸出波形。但是這種電路用電量比較大,給此種傳感器調(diào)理電路供電的電池壓降較快。究其原因,是因?yàn)楣饷羧龢O管和三極管VT1導(dǎo)通時(shí)的導(dǎo)通電流較大。因此我考慮用比較器的方案。圖3-2-2-2光電對(duì)管檢測(cè)電路2在圖3-2-2-2中,可調(diào)電阻R3可以調(diào)節(jié)比較器的門(mén)限電壓,經(jīng)示波器觀察,輸出波形相當(dāng)規(guī)則,可以直接夠單片

23、機(jī)查詢(xún)使用。而且經(jīng)試驗(yàn)驗(yàn)證給此電路供電的電池的壓降較小。因此我選擇此電路作為我的傳感器檢測(cè)與調(diào)理電路。3.2.3 驅(qū)動(dòng)電機(jī)系統(tǒng)方案設(shè)計(jì)方案1:采用專(zhuān)用芯片L298N作為電機(jī)驅(qū)動(dòng)芯片。L298N是一個(gè)具有高電壓大電流的全橋驅(qū)動(dòng)芯片,它相應(yīng)頻率高,一片L298N可以分別控制兩個(gè)直流電機(jī),而且還帶有控制使能端。用該芯片作為電機(jī)驅(qū)動(dòng),操作方便,穩(wěn)定性好,性能優(yōu)良。方案2:對(duì)于直流電機(jī)用分立元件構(gòu)成驅(qū)動(dòng)電路。由分立元件構(gòu)成電機(jī)驅(qū)動(dòng)電路,結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,在實(shí)際應(yīng)用中應(yīng)用廣泛。但是這種電路工作性能不夠穩(wěn)定。因此我們選用了方案1。驅(qū)動(dòng)電路的設(shè)計(jì)如圖3-2-3所示: 圖3-2-3驅(qū)動(dòng)電機(jī)模塊原理圖3.2.4

24、 電源系統(tǒng)方案設(shè)計(jì)由于本系統(tǒng)需要電池供電,我考慮了如下集中方案為系統(tǒng)供電。方案1: 采用8節(jié)1.5V干電池供電,電壓達(dá)到12V,給支流電機(jī)供電,然后將12V電壓再次降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。并且電池的價(jià)格比較低。方案2:采用3節(jié)4.2V可充電式鋰電池串聯(lián)共12.6V給直流電機(jī)供電,經(jīng)過(guò)7812的電壓變換后給支流電機(jī)供電,然后將12V電壓再次降壓、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。鋰電池的電量比較足,并且可以充電,重復(fù)利用,因此,這種方案比較可行。但鋰電池的價(jià)格過(guò)于昂貴,使用鋰電池會(huì)大大超出我的預(yù)算,因此,我放棄了這種方案。方案3:采用12V蓄電池為直流電機(jī)供電,將12V電壓降壓、

25、穩(wěn)壓后給單片機(jī)系統(tǒng)和其他芯片供電。蓄電池具有較強(qiáng)的電流驅(qū)動(dòng)能力以及穩(wěn)定的電壓輸出性能。但蓄電池的體積過(guò)于龐大,在小型電動(dòng)車(chē)上使用極為不方便, 綜上考慮,我選擇了方案1。3.2.5 顯示系統(tǒng)設(shè)計(jì) 由于本系統(tǒng)需要顯示溫度,我考慮如下幾種方案來(lái)顯示:方案1:使用七段數(shù)碼管直接與單片機(jī)相連。需要八個(gè)段碼口接上拉電阻和三級(jí)管放大。其缺點(diǎn)占用口太多。 方案2:使用CD4511芯片直接與四位一體的七段數(shù)碼共陰管相連,優(yōu)點(diǎn)只占用八個(gè)數(shù)據(jù)口,四個(gè)片選口,四個(gè)段碼值口。唯一的缺點(diǎn)是數(shù)據(jù)管不能顯示小數(shù)點(diǎn)。綜上考慮,我選擇了方案2。顯示模塊電路設(shè)計(jì)如圖3-2-5:圖3-2-5LED數(shù)碼顯示器是由LED 發(fā)光二極管組合

26、顯示字符的顯示器件。它使用了8個(gè)LED發(fā)光二極管,其中7個(gè)用于顯示字符,1個(gè)用于顯示小數(shù)點(diǎn),故通稱(chēng)之為7段發(fā)光二極管數(shù)碼顯示器。它分為靜態(tài)顯示和動(dòng)態(tài)顯示。1) 靜態(tài)顯示所謂靜態(tài)顯示,就是在同一時(shí)刻只能顯示一種字符,或者說(shuō)被顯示的字符在同一時(shí)刻是穩(wěn)定不變的。其顯示方法比較簡(jiǎn)單,只要將顯示段碼送到段碼口,并把位控字送到片選口即可。2) 動(dòng)態(tài)顯示如果要在同一時(shí)刻顯示不同的字符,從電路上看,這是辦不到的。因此只能利用人眼對(duì)視覺(jué)的殘留,采用動(dòng)態(tài)掃描顯示的方法,逐個(gè)地循環(huán)點(diǎn)亮各位數(shù)碼管,每位顯示1ms左右,可人看起來(lái)就好象在同時(shí)顯示不同的字管一樣。3.2.6 溫度系統(tǒng)設(shè)計(jì)本控制系統(tǒng)采用18B20溫度傳感器

27、。它是以9位數(shù)字量的形式反映器件的溫度值,具有如下特性:1) 獨(dú)特的單線(xiàn)接口僅需要一個(gè)端口引腳進(jìn)行通迅2) 簡(jiǎn)單的多點(diǎn)分布應(yīng)用3) 無(wú)需外部器件4) 可通過(guò)數(shù)據(jù)線(xiàn)供電5) 零待機(jī)功耗6) 測(cè)溫范圍-55+125度,以0.5度遞增。7) 溫度數(shù)字量轉(zhuǎn)換時(shí)間200MS(典型值)8) 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、溫度計(jì)或任何熱感測(cè)系統(tǒng)。它的引腳圖為:引腳說(shuō)明:3.2.7 車(chē)體方案設(shè)計(jì)方案1:購(gòu)買(mǎi)玩具電動(dòng)車(chē)。購(gòu)買(mǎi)的玩具電動(dòng)車(chē)具有組裝完整的車(chē)架車(chē)輪、電機(jī)及其驅(qū)動(dòng)電路。但是一般的說(shuō)來(lái),玩具電動(dòng)車(chē)具有如下缺點(diǎn):首先,這種玩具電動(dòng)車(chē)由于裝配緊湊,使得各種所需傳感器的安裝十分不方便。其次,這種電動(dòng)車(chē)一般都是前輪

28、轉(zhuǎn)向后輪驅(qū)動(dòng),不能適應(yīng)該題目的方格地圖,不能方便迅速的實(shí)現(xiàn)原地保持坐標(biāo)轉(zhuǎn)90度甚至180度的彎角。再次,玩具電動(dòng)車(chē)的電機(jī)多為玩具直流電機(jī),力矩小,空載轉(zhuǎn)速快,負(fù)載性能差,不易調(diào)速。而且這種電動(dòng)車(chē)一般都價(jià)格不菲。因此我們放棄了此方案。方案2:自己制作電動(dòng)車(chē)。經(jīng)過(guò)反復(fù)考慮論證,我制定了左右兩輪分別驅(qū)動(dòng),前萬(wàn)向輪轉(zhuǎn)向的方案。即左右輪分別用兩個(gè)轉(zhuǎn)速和力矩基本完全相同的直流減速電機(jī)進(jìn)行驅(qū)動(dòng),車(chē)體前部裝一個(gè)萬(wàn)向輪。這樣,當(dāng)兩個(gè)直流減速電機(jī)轉(zhuǎn)向相反同時(shí)轉(zhuǎn)速相同時(shí)就可以實(shí)現(xiàn)電動(dòng)車(chē)的原地旋轉(zhuǎn),由此可以輕松的實(shí)現(xiàn)小車(chē)坐標(biāo)不變的90度和180度的轉(zhuǎn)彎。在安裝時(shí)我保證兩個(gè)驅(qū)動(dòng)電機(jī)同軸。當(dāng)小車(chē)前進(jìn)時(shí),左右兩驅(qū)動(dòng)輪與前萬(wàn)

29、向輪形成了三點(diǎn)結(jié)構(gòu)。這種結(jié)構(gòu)使得小車(chē)在前進(jìn)時(shí)比較平穩(wěn),可以避免出現(xiàn)后輪過(guò)低而使左右兩驅(qū)動(dòng)輪驅(qū)動(dòng)力不夠的情況。為了防止小車(chē)重心的偏移,前萬(wàn)向輪起支撐作用。對(duì)于車(chē)架材料的選擇,我們經(jīng)過(guò)比較選擇了有機(jī)玻璃。用有機(jī)玻璃做的車(chē)架比塑料車(chē)架更加牢固,比鐵制小車(chē)更輕便,美觀。綜上考慮,我們選擇了方案2。3.2.8 水泵、風(fēng)扇模塊設(shè)計(jì)采用的方案與驅(qū)動(dòng)電機(jī)系統(tǒng)模塊一樣。采用的是L298N。3.3 本章小結(jié)本章通過(guò)框圖的形式介紹了各個(gè)系統(tǒng)模塊的設(shè)計(jì),將尋跡模塊、驅(qū)動(dòng)電機(jī)模塊、電源模塊、溫度模塊、顯示模塊、水泵風(fēng)扇等幾部分的設(shè)計(jì)思路作了詳細(xì)分析,通過(guò)閱讀本章內(nèi)容可對(duì)本智能尋跡滅火小車(chē)控制系統(tǒng)的硬件設(shè)計(jì)全面了解。第4

30、章 系統(tǒng)軟件設(shè)計(jì)對(duì)于一個(gè)完整控制系統(tǒng)來(lái)說(shuō),除了要有一個(gè)完整的硬件控制以外,還應(yīng)該有一個(gè)能充分發(fā)揮硬件功能的軟件系統(tǒng)來(lái)支持它,本章將詳細(xì)介紹尋跡模塊、電機(jī)驅(qū)動(dòng)、顯示模塊、溫度系統(tǒng)的軟件實(shí)現(xiàn)方法。4.1 軟件設(shè)計(jì)思路根據(jù)總體設(shè)計(jì)的思想及本系統(tǒng)實(shí)現(xiàn)的功能,在軟件設(shè)計(jì)中完成以下功能。1. 尋跡模塊主程序:由是否遇到黑線(xiàn)產(chǎn)生信號(hào)的操作,信號(hào)返回到單片機(jī),再通過(guò)單片機(jī)來(lái)實(shí)現(xiàn)相應(yīng)的功能。2. 電機(jī)驅(qū)動(dòng)模塊主程序:主要用來(lái)控制兩個(gè)直流減速電機(jī),實(shí)現(xiàn)前進(jìn)、后退、前左轉(zhuǎn)、前右轉(zhuǎn)、后左轉(zhuǎn)、后右轉(zhuǎn)、停車(chē)等功能。3. 顯示模塊主程序:主要通過(guò)單片機(jī)用來(lái)顯示實(shí)時(shí)溫度值。4. 溫度模塊主程序:主要用來(lái)給單片機(jī)傳遞溫度的相應(yīng)

31、執(zhí)行模塊。5. 水泵風(fēng)扇模塊程序:主要用來(lái)控制一個(gè)水泵和風(fēng)扇,實(shí)現(xiàn)噴水、吹風(fēng)等功能。4.2 系統(tǒng)程序流程圖根據(jù)軟件的總體設(shè)計(jì)思想及本系統(tǒng)所要實(shí)現(xiàn)的功能,進(jìn)行其系統(tǒng)程序流程圖設(shè)計(jì),本系統(tǒng)程序流程圖共分為:尋跡程模塊序流程圖、電機(jī)驅(qū)動(dòng)模塊程序流程圖、顯示模塊程序流程圖、溫度模塊程序流程圖、水泵風(fēng)扇模塊程序流程圖。4.2.1 尋跡模塊程序流程圖在用戶(hù)沒(méi)有對(duì)水缸裝滿(mǎn)和溫度沒(méi)到達(dá)上限時(shí),程序不停的進(jìn)行水缸水位和溫度掃描,直到水位達(dá)到和溫度達(dá)到上限的時(shí)候,程序跳轉(zhuǎn)到對(duì)應(yīng)的位置執(zhí)行。其尋跡模塊程序流程圖如下圖4-1所示:圖4-1尋跡模塊程序流程圖4.2.2 驅(qū)動(dòng)電機(jī)模塊程序流程圖程序運(yùn)行后,首先進(jìn)行初始化將

32、AT89C52單片機(jī)的P1口全部置0,等到水位滿(mǎn)和溫度達(dá)到上限時(shí),然后就循環(huán)判斷尋跡系統(tǒng)送過(guò)的信號(hào),對(duì)電機(jī)進(jìn)行相應(yīng)的功能驅(qū)動(dòng)。具體如下圖4-2和表4-1所示:圖4-2驅(qū)動(dòng)電機(jī)模塊程序流程圖表4-1驅(qū)動(dòng)電機(jī)模塊程序功能對(duì)照表接收真值表(前左,后右)對(duì)應(yīng)功能1-1前進(jìn)0-0停車(chē)1-0左轉(zhuǎn)0-1右轉(zhuǎn)4.2.3 顯示模塊程序流程圖該程序主要用來(lái)把18B20所傳過(guò)來(lái)的溫度值實(shí)時(shí)顯示出來(lái)。如下圖4-3所示:圖4-3顯示模塊程序流程圖4.2.4 溫度模塊程序流程圖程序運(yùn)行后,首先對(duì)程序進(jìn)行初始化,給P0.0-P0.1賦初值。然后對(duì)AT89C52單片機(jī)的P0.0-P0.1端口進(jìn)行循環(huán)掃描,把掃描到的值送到溫度

33、讀取函數(shù)得到值,送顯示模塊繼續(xù)執(zhí)行。具體如下圖4-4所示:圖4-4溫度模塊程序流程圖4.2.5 水泵風(fēng)扇模塊程序流程圖該模塊程序與驅(qū)動(dòng)電機(jī)模塊采用的驅(qū)動(dòng)電路是一樣的。都是用L298N。針對(duì)該模塊程序流程的相應(yīng)調(diào)用而執(zhí)行的模塊。如下圖4-5所示:圖4-5水泵風(fēng)扇模塊程序流程圖4.3 各功能模塊軟件程序設(shè)計(jì)在各個(gè)硬件功能模塊的基礎(chǔ)上,針對(duì)其預(yù)定實(shí)現(xiàn)的相應(yīng)功能對(duì)各個(gè)功能模塊進(jìn)行軟件程序設(shè)計(jì)。4.3.1 尋跡模塊主程序程序運(yùn)行后,首先進(jìn)行初始化,將P1口置低,然后等待水滿(mǎn)和溫度達(dá)到上限報(bào)警, void zhengxiang() /正向前進(jìn)函數(shù) while(1) if(chuan_gan1=0&

34、&chuan_gan2=0) ting(); biaozhi=1; if(chuan_gan1=1&&chuan_gan2=0) zuozhuan(); if(chuan_gan1=0&&chuan_gan2=1) youzhuan(); if(chuan_gan1=1&&chuan_gan2=1) qianjin(); if(wendu<30&&wendu1<30) stop=1; if(biaozhi=1&&chuan_gan1=0&&chuan_gan2=0) biaozh

35、i=0; ting(); stop=1; if(stop=1) stop=0; ting(); hh=1; sbqd(); break; 4.3.2 驅(qū)動(dòng)電機(jī)模塊主程序程序運(yùn)行后,首先進(jìn)行初始化將AT89C52單片機(jī)的P1口全部置0,通尋跡模塊得出來(lái)的信號(hào),傳送給L298N。該程序的具體函數(shù)代碼如下:void qianjin() /前進(jìn) IN0=0; IN1=1; IN2=0; IN3=1;void houtui() /后退 IN0=1; IN1=0; IN2=1; IN3=0;void ting() /停止 IN0=0; IN1=0; IN2=0; IN3=0;void zuozhuan()

36、 /正向左轉(zhuǎn) IN0=0; IN1=0; IN2=0; IN3=1;void youzhuan() /正向右轉(zhuǎn) IN0=0; IN1=1; IN2=0; IN3=0; 4.3.3 顯示模塊主程序該模塊主程序運(yùn)行后,首先進(jìn)行初始化,從CPU得到溫度值。顯示具體函數(shù)代碼如下:void xswd(uchar i,uchar j) /主程序溫度顯示函數(shù) smxs(0,(j/10); /第一個(gè)溫度的十位 dly(17); smxs(1,(j%10); /第一個(gè)溫度的個(gè)位 dly(17); smxs(2,(i/10); /第二個(gè)溫度的十位 dly(17); smxs(3,(i%10); /第二個(gè)溫度的個(gè)位

37、 dly(17); void xianshiwendu() /溫度讀出,顯示 uchar wendu=0,wendu1=0; wendu = ReadTemperature(); /將溫度讀出 wendu1 = ReadTemperature1(); xswd(wendu,wendu1); /將溫度顯示void smxs(uchar ledcs,uchar leddata)/數(shù)碼顯示 uchar wdsmpx,wdsmsj; /定義溫度數(shù)碼片選、數(shù)據(jù)變量 wdsmpx = smpxledcs; /將片選數(shù)據(jù)選出 wdsmsj = smsjleddata; /將數(shù)碼數(shù)據(jù)選出 P2 = (wdsm

38、sj & wdsmpx) ; /數(shù)據(jù)按位與給P2口4.3.4 溫度模塊主程序程序運(yùn)行后,首先對(duì)程序進(jìn)行初始化,然后對(duì)AT89C52單片機(jī)的P0.0-P0.1端口進(jìn)行循環(huán)掃描,掃描到的值送到顯示模塊繼續(xù)執(zhí)行。具體函數(shù)代碼如下:wdcsh(void) /初始化函數(shù) uchar x=0; WD = 1; /DQ復(fù)位 delay(8); /稍做延時(shí) WD = 0; /單片機(jī)將DQ拉低 delay(80); /精確延時(shí) 大于 480us WD = 1; /拉高總線(xiàn) delay(14); x=WD; /稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗 delay(20);ReadOneCha

39、r(void) /讀一個(gè)字節(jié) uchar i=0; uchar shuju = 0; for (i=8;i>0;i-) WD = 0; / 給脈沖信號(hào) shuju>>=1; WD = 1; / 給脈沖信號(hào) if(WD) shuju|=0x80; delay(4); return(shuju);WriteOneChar(unsigned char shuju) /寫(xiě)一個(gè)字節(jié) uchar i=0; for (i=8; i>0; i-) WD = 0; WD = shuju&0x01; delay(5); WD = 1; shuju>>=1; delay(

40、4);uchar ReadTemperature() /讀取溫度 uchar diwei=0; uchar gaowei=0; uchar t=0; wdcsh(); /初始化 WriteOneChar(0xCC); / 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換 wdcsh(); /初始化 WriteOneChar(0xCC); /跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個(gè)寄存器)前兩個(gè)就是溫度 diwei=ReadOneChar(); /讀取溫度值低位 gaowei=ReadOneChar();/讀取溫度

41、值高位 diwei=diwei>>4; /低位右移4位,舍棄小數(shù)部分 t=gaowei<<4; /高位左移4位,舍棄符號(hào)位 t=t|diwei; return(t); 注:因?yàn)樽x取溫度時(shí),需要讀取具體的時(shí)序。溫度轉(zhuǎn)換時(shí)間可長(zhǎng)達(dá)500MS。接到溫度轉(zhuǎn)換的協(xié)議后,如果器件不是從VCC供電的話(huà),I/O線(xiàn)就必須至少保持500MS高電平。這樣,發(fā)出一個(gè)溫度轉(zhuǎn)換指令之后,單線(xiàn)總線(xiàn)上在這段時(shí)間內(nèi)就不能有其他活動(dòng)。4.3.5 水泵風(fēng)扇模塊主程序因?yàn)樗蔑L(fēng)扇模塊電路與電機(jī)系統(tǒng)采用的驅(qū)動(dòng)方案一樣。所以該程序的與電機(jī)系統(tǒng)模塊幾乎一樣的。具體函數(shù)代碼如下:void djsbcsh() /電機(jī)水

42、泵初始化 ting(); shuibeng1=0; shuibeng =0; fengshan =0; fengshan1=0; void sbqd() /水泵、風(fēng)扇工作 shuibeng =1; shuibeng1=0; fengshan =0; fengshan1=1;if(shuidi=1) ting(); shuibeng1=0; shuibeng =0; fengshan =0; fengshan1=0; 4.3.6 延時(shí)子程序該延時(shí)子程序主要是被本系統(tǒng)的各個(gè)模塊根據(jù)其需要來(lái)進(jìn)行調(diào)用,比如:在七段數(shù)碼管消抖時(shí)就需調(diào)用該模塊的延時(shí)消抖程序;再比如:在讀取溫度程序中為了能實(shí)現(xiàn)讀取溫度值,

43、就必須調(diào)用其相應(yīng)的延時(shí)程序。并且還有其很多的用途,在這里不一一列舉了。具體代碼如下:void delay(uint j) /溫度延時(shí)函數(shù) while(j-);void dly(int count) /大延時(shí)函數(shù) unsigned int a,b; for(b=count;b>0;b-) /控制左右轉(zhuǎn)的時(shí)間系數(shù); for(a=0;a<b;a+);4.4 本章小結(jié)本章用流程圖的方法說(shuō)明了智能尋跡滅火小車(chē)控制系統(tǒng)的軟件設(shè)計(jì),并對(duì)系統(tǒng)中主要程序的設(shè)計(jì)作了詳細(xì)說(shuō)明,通過(guò)閱讀本章內(nèi)容可以全面了解本控制系統(tǒng)的軟件設(shè)計(jì)。第5章 系統(tǒng)調(diào)試5.1 硬件調(diào)試硬件調(diào)試是用基本測(cè)試儀器(萬(wàn)用表、示波器等)和

44、自己編寫(xiě)的測(cè)試程序進(jìn)行相關(guān)的測(cè)試,來(lái)檢查系統(tǒng)硬件中存在的問(wèn)題。5.1.1 RPR220信號(hào)產(chǎn)生的調(diào)試圖5-1RPR220信號(hào)產(chǎn)生的原理圖如果RPR220遇到黑影,OUT輸出哪為低電平。否則為高電平。兩組光電開(kāi)關(guān)傳感器得到發(fā)送,遇到黑影信號(hào)后利用比較器LM393輸出送給單片機(jī),比較電壓,里面的R4電阻是上拉電阻的作用,R3滑動(dòng)變阻器是來(lái)調(diào)節(jié)RPR220兩個(gè)電壓之間比較用的,最后比較輸出接近為0,相差的大一些比較為5V,故想要輸出正常,只要調(diào)滑動(dòng)變阻器即可。符合系統(tǒng)設(shè)計(jì)要求,最終電路原理圖如5-1所示。5.1.2 溫度模塊的時(shí)序調(diào)試 在接到溫度讀指令后,如果器件不是從VCC供電的話(huà)。I/O線(xiàn)必須至

45、少要體質(zhì)10MS高電平。這樣在發(fā)出一個(gè)。溫度讀取命令后。這段時(shí)間內(nèi)單線(xiàn)總線(xiàn)上就不能有其他活動(dòng)??偩€(xiàn)控制器發(fā)出一個(gè)脈沖(一個(gè)最少要保持480US的低電平信號(hào))5.2 調(diào)試軟件WAVE介紹在調(diào)試過(guò)程,使用基于WINDOWS95/98/XP操作平臺(tái)VC風(fēng)格軟件WAVE。WAVE軟件是集編輯、編譯、連接、加載、調(diào)試等為一體的集成開(kāi)發(fā)環(huán)境??赡茉谕唤缑姝h(huán)境中完成所有任務(wù)。使用方便、易懂并且節(jié)省調(diào)試間時(shí)。5.2.1 主界面WAVE軟件是集編輯、編譯/連接、加載、調(diào)試等為一體的集成開(kāi)發(fā)環(huán)境用可以在同一界面環(huán)境中完成所有任務(wù)。1. 編輯窗口WAVE提供一個(gè)多窗口的源文件編輯器。該編輯器不受文件大小的限制,允

46、許無(wú)限的撤銷(xiāo)/重復(fù)功能。編輯器全面支持匯編、C51和PL/M51語(yǔ)言的語(yǔ)法加亮著色。用戶(hù)可以自定義各種類(lèi)型文本的顏色和不同語(yǔ)言的關(guān)鍵詞。相應(yīng)的關(guān)鍵詞文件名為ASM.KWD、C51.KWD。這些文件都保存在WAVE安裝目錄下。編輯器還支持拷貝、剪切、粘貼,全程查找等功能。2. 工作區(qū)窗口工作區(qū)窗口有兩個(gè)頁(yè)面窗口。工程頁(yè)面窗口以樹(shù)型結(jié)構(gòu)顯示工程中的項(xiàng)目文件等內(nèi)容。沒(méi)有打開(kāi)工程時(shí),該頁(yè)面窗口為空。左面為資源管理器頁(yè)面窗口3. 輸出窗口輸出窗口顯示用戶(hù)編譯連接過(guò)程中的輸出信息,用戶(hù)雙擊某條編譯出錯(cuò)信息提示即可直接定位到源文件的對(duì)應(yīng)行。4. 觀察窗口觀察窗口中顯示調(diào)試過(guò)程中長(zhǎng)期觀察的變量項(xiàng)。用戶(hù)可以添加

47、、刪除、修改、刷新觀察項(xiàng)。相應(yīng)命令在右鍵菜單中。5. 數(shù)據(jù)窗口數(shù)據(jù)窗口中成批顯示實(shí)驗(yàn)機(jī)相應(yīng)存儲(chǔ)區(qū)域的整塊數(shù)據(jù)內(nèi)容。用戶(hù)可以察看,修改相應(yīng)地址單元的數(shù)據(jù)。相應(yīng)命令在右鍵菜單中。6. 對(duì)話(huà)窗口用戶(hù)通過(guò)對(duì)話(huà)窗口可直接用監(jiān)控命令和實(shí)驗(yàn)機(jī)對(duì)話(huà)。5.2.2 菜單介紹1. 文件(F)和文件有關(guān)的操作,如打開(kāi)、關(guān)閉、打印等文件操作。2. 編輯(E)包括拷貝、剪切、粘貼、書(shū)簽、查找和替換等編輯命令。3. 搜索(S)可以為用戶(hù)查找。4. 項(xiàng)目(P)和工程有關(guān)的操作,如編譯、加入模塊、加入包含文件等工程操作。5. 執(zhí)行(R)包括調(diào)試等編譯操作。6. 窗口(W)包括等顯示一些窗口等信息命令。7. 外設(shè)(L)包括端口、

48、定時(shí)器/計(jì)數(shù)器、串行口等的設(shè)置。8. 仿真器(O)包括仿真器、設(shè)置編輯器等命令。9. 幫助(H)顯示相應(yīng)幫助文件和軟件版本信息。5.3 軟件程序調(diào)試軟件調(diào)試是通過(guò)對(duì)用戶(hù)程序的匯編、連接、執(zhí)行來(lái)發(fā)現(xiàn)程序中存在的語(yǔ)法錯(cuò)誤與邏輯錯(cuò)誤并加以排除糾正錯(cuò)誤的過(guò)程。軟件調(diào)試的一般方法是先獨(dú)立后聯(lián)機(jī)、先分塊后組合、先單步后連續(xù)。5.3.1 調(diào)試的主要方法和技巧在使用WAVE軟件時(shí),調(diào)試的方法和技巧最為重要,不同的情況采用不同的調(diào)試方法,有助于程序的實(shí)現(xiàn)。在設(shè)計(jì)過(guò)程中顯示運(yùn)行結(jié)果一般用全速調(diào)試,調(diào)試時(shí)主要使用了跟蹤調(diào)試、斷點(diǎn)調(diào)試。1. 跟蹤調(diào)試跟蹤應(yīng)用程序用戶(hù)能夠在運(yùn)行應(yīng)用程序時(shí),看到PC指針在應(yīng)用源代碼程序中

49、的確切位置,WAVE提供了跟蹤型單步和通過(guò)型單步。跟蹤型單步僅執(zhí)行一條源語(yǔ)句程序,有利于觀察變量。但是,如果調(diào)用函數(shù),則進(jìn)入函數(shù)中,在執(zhí)行函數(shù)的第一條源泉語(yǔ)句行前停止。有利于用在延時(shí)子程序中。通過(guò)跟蹤型單步僅執(zhí)行一條源語(yǔ)句程序,然后又停止。2. 斷點(diǎn)調(diào)試如果已知程序中某塊代碼實(shí)際運(yùn)行正常的情況下,仍用跟蹤調(diào)試,將大大浪費(fèi)時(shí)間,而且很枯燥,因此調(diào)試中第二個(gè)重要工具是在源代碼中預(yù)定處設(shè)置斷點(diǎn),大多數(shù)調(diào)試程序通過(guò)使用斷點(diǎn)中止程序執(zhí)行。如果用斷點(diǎn)調(diào)試,由比較容易觀察出程序變量的改變及程序運(yùn)行的結(jié)果。3. 查看變量 WAVE軟件提供了以下幾種方法以變量進(jìn)行查看:觀察窗口、數(shù)據(jù)窗口(程序空間窗口、內(nèi)部數(shù)據(jù)

50、窗口、外部數(shù)據(jù)窗口。)通過(guò)添加窗口菜單可以將用戶(hù)希望觀察的變量添加到觀察窗口及數(shù)據(jù)窗口觀察。在設(shè)計(jì)過(guò)程中常用觀察窗口觀察程序中的變量,修改程序中的錯(cuò)誤。4. 更改數(shù)值如果用戶(hù)在調(diào)試過(guò)程中了解到變量的內(nèi)容(超值、未定義等)會(huì)對(duì)程序性能產(chǎn)生影響或引起異常時(shí),立即更改變量的內(nèi)容是很有交往的方法以確保該值在正確范圍內(nèi)不會(huì)產(chǎn)生錯(cuò)誤。WAVE軟件提供一系列更改變量數(shù)值的方法,以便用戶(hù)能檢查程序?qū)φ麄€(gè)變量值范圍的反應(yīng),而無(wú)需為設(shè)置每個(gè)值而重新加載調(diào)試。在更改對(duì)話(huà)框中用戶(hù)輸入要更改的取值,點(diǎn)擊確定按鈕。用戶(hù)可以在輸入框中輸入十六進(jìn)制或十進(jìn)制數(shù)據(jù)。5.3.2 利用WAVE調(diào)試本系統(tǒng)首先打開(kāi)變量觀察窗口并添加要觀

51、察的變量,然后用跟蹤型單步的方式對(duì)各個(gè)子程序逐條指令執(zhí)行,觀察變量的變化,查看是否達(dá)到子程序的功能要求。對(duì)子程序調(diào)試完成后,用跟蹤型單步從START開(kāi)始逐條執(zhí)行指令,當(dāng)遇到WAVE指令調(diào)用子程序時(shí)使用通過(guò)型跟蹤的方式跳過(guò)子程序,通過(guò)這種方式對(duì)主程序進(jìn)行調(diào)試。當(dāng)對(duì)主程序進(jìn)行調(diào)試時(shí),如果遇到某段程序存在問(wèn)題不法繼續(xù)執(zhí)行時(shí),可用斷點(diǎn)調(diào)試的方法,在已知的程序中能夠正常運(yùn)行的代碼處設(shè)置斷點(diǎn),這樣可以大大節(jié)省時(shí)間。在本系統(tǒng)的開(kāi)發(fā)調(diào)試過(guò)程中遇到了如下幾點(diǎn)問(wèn)題:1. 將溫度模塊的延時(shí)模塊延時(shí)時(shí)間設(shè)置錯(cuò)誤開(kāi)始在軟件延時(shí)方面不準(zhǔn)確,所以七段數(shù)碼管不顯示溫度值。經(jīng)過(guò)將延時(shí)時(shí)間改為大于480us,本程序正確無(wú)誤,能夠

52、實(shí)現(xiàn)其預(yù)定功能。2. 將直流減速電機(jī)驅(qū)動(dòng)模塊的連接端口置錯(cuò)高低電平在對(duì)直流減速電機(jī)的驅(qū)動(dòng)模塊進(jìn)行編程時(shí),我先根據(jù)直流減速電機(jī)驅(qū)動(dòng)電路制定出編程方案,然后根據(jù)編程方案進(jìn)行對(duì)硬件開(kāi)始編程,并使用WAVE軟件開(kāi)始對(duì)本部分進(jìn)行調(diào)試,因?yàn)樵诰幊虝r(shí)誤將P1.0和P1.1這兩個(gè)端口的高低電平整反,在左RPR220遇黑時(shí),小車(chē)正好是實(shí)現(xiàn)右轉(zhuǎn)功能,右RPR220遇黑時(shí),小車(chē)正好是實(shí)現(xiàn)左轉(zhuǎn)功能。將其P1.0和P1.1這兩個(gè)端口的高低電平改正后問(wèn)題就解決了,并與預(yù)定效果相同。3. 要觀察變量或觀察的地址項(xiàng)雖然在復(fù)雜的程序調(diào)用之間使用了保存現(xiàn)場(chǎng),可有的時(shí)候寄存器的值還是出錯(cuò),在向老師、同學(xué)請(qǐng)教之后學(xué)會(huì)了使用“觀察項(xiàng)”

53、,方法是在觀察項(xiàng)中添加要觀察的觀察變量或要觀察的地址項(xiàng),并可設(shè)置想要觀察內(nèi)容的進(jìn)制(十六進(jìn)制值、十進(jìn)制值或二進(jìn)制值),之后在單步運(yùn)行時(shí)跟蹤觀察項(xiàng)的取值,也就可以查出是在哪一條語(yǔ)句執(zhí)行時(shí)出的錯(cuò),這樣就大大地解決了寄存器的值出錯(cuò)的問(wèn)題。通過(guò)設(shè)置觀察項(xiàng)還可以查看子程序的調(diào)用及返回是否出錯(cuò),所以設(shè)置觀察項(xiàng)是調(diào)試匯編程序的一個(gè)好工具。5.4 綜合調(diào)試將各個(gè)調(diào)試好的程序組合在一起,往往會(huì)出現(xiàn)地址重疊、覆蓋的情況,合理地分配地址空間,調(diào)整好寄存器引用。經(jīng)過(guò)多次反復(fù)的設(shè)置斷點(diǎn),單步調(diào)試,F(xiàn)4跳躍型調(diào)試以及觀察變量的值,程序可以正常運(yùn)行,達(dá)到要求。通過(guò)綜合調(diào)試,我總結(jié)了以下幾條經(jīng)驗(yàn):1. 在調(diào)試程序之前,先檢查

54、各模塊間的連接是否連接無(wú)誤,有無(wú)斷路現(xiàn)象。2. 調(diào)試程序時(shí),首先用全速運(yùn)行的方法進(jìn)行總體調(diào)試,以便快速發(fā)現(xiàn)程序中存在問(wèn)題的部分。然后設(shè)置斷點(diǎn)調(diào)試。主要針對(duì)有問(wèn)題的程序調(diào)試,更快地確定出現(xiàn)問(wèn)題的位置。最后,利用單步調(diào)試方法,分析程序中出現(xiàn)的問(wèn)題,解決問(wèn)題,使程序正常運(yùn)行。3. 在多次調(diào)試不成功的基礎(chǔ)上,考慮思路是否正確,如果確定思路無(wú)誤,考慮兩個(gè)問(wèn)題:一是程序中是否有筆誤的地方;二是運(yùn)行軟件是否正常。5.5 本章小結(jié)本章將硬件調(diào)試與軟件調(diào)試分開(kāi)敘述,并對(duì)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題作了詳細(xì)的分析。通過(guò)對(duì)硬件調(diào)試的基礎(chǔ)上,根據(jù)其功能和特性,完成了軟件的調(diào)試,整個(gè)程序能夠?qū)崿F(xiàn)預(yù)定的功能。在綜合調(diào)試中尤其要注意各子程序之間的調(diào)用、返回。閱讀本章可對(duì)智能尋跡滅火小車(chē)控制系統(tǒng)的整個(gè)調(diào)試過(guò)程了解得很全面。千萬(wàn)不要?jiǎng)h除行尾的分節(jié)符,此行不會(huì)被打印?!敖Y(jié)論”以

溫馨提示

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

評(píng)論

0/150

提交評(píng)論