版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
緒論1.1研究的背景和意義隨著第二次工業(yè)革命的結(jié)束,科學(xué)技術(shù)已經(jīng)成為第一生產(chǎn)力,科學(xué)技術(shù)的發(fā)展是每個(gè)國(guó)家的首要任務(wù),因?yàn)榭茖W(xué)技術(shù)的創(chuàng)新和發(fā)展不僅代表著一個(gè)國(guó)家在科技層面的發(fā)展,而且代表著每個(gè)國(guó)家綜合實(shí)力的表現(xiàn)。自21世紀(jì)以來,所有領(lǐng)域都開始走向高科技,每一項(xiàng)發(fā)展都為國(guó)家經(jīng)濟(jì)帶來了巨大的貢獻(xiàn)。上個(gè)世紀(jì),通信技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)對(duì)于很多國(guó)家來說還不是很成熟。如今,這些技術(shù)的研究和開發(fā)給日常生活帶來了無限的便利,不斷促進(jìn)了社會(huì)的進(jìn)步。也促進(jìn)了智能系統(tǒng)的發(fā)展。人們?cè)谏钪行枰獜?qiáng)有力的智能設(shè)施,來提升自己的生活質(zhì)量,各種各樣的智能系統(tǒng)隨之而生。但隨著數(shù)字化和網(wǎng)絡(luò)化的不斷發(fā)展,以前的智能設(shè)備在鑒別方式、速度和性能方面越來越不能滿足人們的需要,比如射頻卡、數(shù)字密碼等方式,其安全性不夠高。傳統(tǒng)的智能設(shè)備一般依靠人工采集的方法。這種方法效率極低,耗時(shí)耗力,人為因素的存在,可能會(huì)造成數(shù)據(jù)、科技研究的不準(zhǔn)確和成本高的問題。如今,隨著各領(lǐng)域需求的不斷增加,在加快效率的前提下,準(zhǔn)確性也是最基本的要求。基于此原因的推動(dòng),單片機(jī)和電子技術(shù)應(yīng)運(yùn)而生,該系統(tǒng)可以有效地解決人工控制方法下的短板問題,技術(shù)簡(jiǎn)單易懂,為人們所接受。光電傳感器通過光敏二極管或光敏三極管,接收反射回的不同光強(qiáng)信號(hào),把不同光強(qiáng)轉(zhuǎn)換為電流信號(hào),最后通過電阻,轉(zhuǎn)換為單片機(jī)可識(shí)別的高低電平以此來控制小車的行動(dòng)軌跡。1.2研究現(xiàn)狀近些年來,世界各國(guó)都在加快研究單片機(jī)的發(fā)展,單片機(jī)已經(jīng)在我們生活中的很多領(lǐng)域中實(shí)以應(yīng)用,特別是在智能汽車這一塊。我國(guó)最近幾十年單片機(jī)的發(fā)展也在飛速發(fā)展。世界各國(guó)開發(fā)、研制星球探測(cè)車系統(tǒng)已經(jīng)有了多年的歷程。美國(guó)和前蘇聯(lián)是從20世紀(jì)60年代末期開始進(jìn)行月球表面探測(cè)任務(wù)的。美國(guó)曾在1966-1968年間,向月球成功發(fā)射了兩次無人巡游探測(cè)器。1997年,由美國(guó)JPL(JetPropulsionLaboratory,美國(guó)太空總署噴氣推進(jìn)實(shí)驗(yàn)室)研制的Sojourner號(hào)探測(cè)車登上了火星。它驗(yàn)證了小型火星車的性能,并完成了一系列技術(shù)試驗(yàn)。2004年1月,美國(guó)的“勇氣號(hào)”和“機(jī)遇號(hào)”火星探測(cè)車再度登陸火星。前蘇聯(lián)在1959-1976年間,總共成功發(fā)射了兩個(gè)月球探測(cè)車。在我們的生活中,單片機(jī)應(yīng)用在很多方面,比如計(jì)算機(jī)外部設(shè)備、通訊、工業(yè)控制等。單片機(jī)系列有很多,其中主流產(chǎn)品當(dāng)屬AT89C51莫屬,因此我們學(xué)習(xí)單片機(jī)的好處有很多,提升我們的能力是一方面,應(yīng)用在生活中更是甚好。隨著社會(huì)的發(fā)展,不僅社會(huì)的智能化會(huì)越來越快,我們?nèi)祟愐惨m應(yīng)這樣的生活趨勢(shì)。1.3研究的主要內(nèi)容和目的研究的主要內(nèi)容:本次設(shè)計(jì)的基于AT89C51單片機(jī)的尋跡避障小車以51單片機(jī)作為控制器作為電動(dòng)車的控制核心,具有3種模式,分別有由個(gè)按鍵來切換這3種模式:第一種模式為尋跡模式,在地上貼上黑線,小車在此模式下可以按照黑線的軌跡進(jìn)行尋跡行走;第二種模式是避障模式,在此模式下小車會(huì)自動(dòng)躲避前方障礙物;第三種模式為遙控模式,在此模式下可以用過無線遙控器控制小車的運(yùn)行,例如前進(jìn)后退,左轉(zhuǎn)右轉(zhuǎn)。研究的目的:(1)設(shè)計(jì)出一輛能夠?qū)ほE避障功能的小車,使小車能夠自動(dòng)沿引導(dǎo)線尋跡,能夠檢測(cè)出對(duì)其運(yùn)動(dòng)方向受到的阻礙,并作出各種躲避障礙的動(dòng)作。
(2)進(jìn)一步學(xué)習(xí)單片機(jī)原理及其應(yīng)用,提高程序的編寫能力。
(3)掌握單片機(jī)系統(tǒng)外擴(kuò)器件的連接與使用以及其工作原理。
(4)掌握軟件和硬件調(diào)試的基本技巧與方法。1.4本章小結(jié)本章節(jié)主要是對(duì)研究的背景、現(xiàn)狀、主要內(nèi)容和目的進(jìn)行描述,得出本設(shè)計(jì)的大致理論知識(shí)。具體的設(shè)計(jì)方案、模塊選擇、功能實(shí)現(xiàn)將在以下幾章一一實(shí)現(xiàn)。2方案設(shè)計(jì)2.1總體方案設(shè)計(jì)單片機(jī)的尋跡避障小車設(shè)計(jì),分為系統(tǒng)硬件設(shè)計(jì)部分和系統(tǒng)軟件設(shè)計(jì)部分。硬件設(shè)計(jì)部分由微處理器單片機(jī)、光電傳感器模塊,按鍵模塊,降壓模塊所組成,為整套顯示系統(tǒng)提供了強(qiáng)有力的硬件支撐。系統(tǒng)軟件設(shè)計(jì)部分,運(yùn)用單片機(jī)的功能,編寫出一套簡(jiǎn)單實(shí)用的程序,使整套設(shè)計(jì)系統(tǒng)運(yùn)作流暢,能基本實(shí)現(xiàn)預(yù)期功能。本次設(shè)計(jì)的總體結(jié)構(gòu)圖如下所示:圖2-1設(shè)計(jì)架構(gòu)圖2.2主控器的選擇本次設(shè)計(jì)中,主控制模塊有三種選擇,分別是:(一)第一種類型的單片機(jī)是由STM32系列微控制器。由ARM研發(fā)和制造的Cortex-M3內(nèi)核就是STM32系列的微型控制器內(nèi)核,STM32類型的單片機(jī)也屬于ARM系列,可以實(shí)現(xiàn)我們需要測(cè)量的信號(hào)處理,因?yàn)樘囟ǖ男酒刑囟ǖ墓δ埽軌驅(qū)Σ煌K的不一樣的操作達(dá)到一個(gè)具體且準(zhǔn)確的反應(yīng)。STM32系列的單片機(jī)具有很多的優(yōu)點(diǎn),比如:高性能,低成本,低功耗。因?yàn)榫哂型怀鰞?yōu)勢(shì),使得該中單片機(jī)在市場(chǎng)上占有一席之地,并且發(fā)展超過了其他類型的單片機(jī)。其發(fā)展的快速性和很高效的利用性等等的一系列優(yōu)點(diǎn),使得該單片機(jī)在市場(chǎng)上具有很多應(yīng)用數(shù)據(jù),以此非常適合我們?nèi)パ邪l(fā)和探索[23]。(二)AT89C51單片機(jī)。AT89C51是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),因?yàn)檫@款單片機(jī)對(duì)我們來說并不陌生,我們?cè)趯W(xué)校學(xué)習(xí)的時(shí)候也會(huì)經(jīng)常用到這款單片機(jī),而且這款單片機(jī)各個(gè)方面的性能也是非常穩(wěn)定的,而且相對(duì)來說價(jià)格方面也不貴,并且這款單片機(jī)也可以進(jìn)行定時(shí)和計(jì)數(shù),如果將此類芯片應(yīng)用到本次畢業(yè)設(shè)計(jì)的系統(tǒng)裝置中,也是可以實(shí)現(xiàn)本次畢業(yè)設(shè)計(jì)系統(tǒng)裝置的設(shè)計(jì)要求。(三)arduino系列單片機(jī)。Arduino是一個(gè)方便且靈活的開源電子原型平臺(tái)。包括硬件(各種型號(hào)的Arduino板)和軟件(ArduinoIDE)。它建立在簡(jiǎn)單的開源I/O接口上,并具有使用Java和C之類的語言進(jìn)行處理/接線的開發(fā)環(huán)境。在使用Arduino開發(fā)開源開發(fā)環(huán)境時(shí),它還支持Windows,Linux等多種平臺(tái)的開發(fā),其代碼部署簡(jiǎn)單,支持在線編程,對(duì)外部電子組件進(jìn)行編程簡(jiǎn)單,可以讓我們發(fā)展有用的擴(kuò)展和有用的設(shè)計(jì)。根據(jù)所列出的三種方案,我們無疑選擇第二種。因?yàn)锳T89C51單片機(jī)的功能適合、設(shè)計(jì)簡(jiǎn)單、性價(jià)比高且實(shí)惠。對(duì)于我們的擴(kuò)展功能也是較為合適的,因此我們選擇AT89C51單片機(jī)作為我們的主芯片。2.3系統(tǒng)設(shè)計(jì)原則要求一個(gè)設(shè)計(jì)的存在首先考慮到的就是它的意義和可行性,所以本次設(shè)計(jì)從技術(shù)、經(jīng)濟(jì)、運(yùn)營(yíng)和發(fā)展等方面進(jìn)行調(diào)查研究,保證信息資源的合理利用,避免在項(xiàng)目設(shè)計(jì)過程中由于考慮不周而出現(xiàn)的問題,幫助我們更好地進(jìn)行項(xiàng)目的設(shè)計(jì)。也可以說,對(duì)所要進(jìn)行設(shè)計(jì)的可行性分析決定了項(xiàng)目能否完成。不僅如此,可行性分析也是實(shí)現(xiàn)從項(xiàng)目開始到中間再到項(xiàng)目結(jié)束各個(gè)環(huán)節(jié)的必由之路。正因?yàn)槿绱?,其在工程中的地位不可小覷。根據(jù)實(shí)際需要,我做了較為全面的分析,得出本次項(xiàng)目的可行性如下幾方面所示:反應(yīng)迅速:基于科學(xué)技術(shù)飛速發(fā)展的當(dāng)下,每一個(gè)不同的工作場(chǎng)所以及工作環(huán)境對(duì)于其工作設(shè)備的硬件要求不斷提高,我們這次的畢業(yè)設(shè)計(jì)是基于單片機(jī)的尋跡避障小車設(shè)計(jì)。首先我們需要用檢測(cè)器檢測(cè)相應(yīng)的數(shù)據(jù)信息,然后通過后臺(tái)管理進(jìn)行數(shù)據(jù)的處理,我們檢測(cè)出來的硬件的反應(yīng)能力和后臺(tái)的處理的能力能夠影響到用戶使用該設(shè)計(jì)時(shí)的體驗(yàn)感,然后從數(shù)據(jù)反應(yīng)來設(shè)計(jì)合適的管理方式,爭(zhēng)取給用戶打造一個(gè)完美舒適的體驗(yàn)效果。依賴可靠:為了實(shí)現(xiàn)我們預(yù)期的功能,我們的整個(gè)方案設(shè)計(jì)都是圍繞我們?cè)O(shè)計(jì)的目標(biāo)來展開的,如果在后續(xù)開發(fā)過程中系統(tǒng)無法達(dá)到我們預(yù)期的要求,那么這樣的設(shè)計(jì)是不合理的,我們研發(fā)產(chǎn)品時(shí)最不想看到這種情況的出現(xiàn),因此在設(shè)計(jì)實(shí)現(xiàn)產(chǎn)品功能的全過程中,我們以實(shí)現(xiàn)系統(tǒng)功能,滿足用戶體驗(yàn)效果為主要研發(fā)目的,包括各個(gè)模塊的性能也是設(shè)計(jì)系統(tǒng)時(shí)的軟硬件檢測(cè)開發(fā)過程中非常需要關(guān)注的指標(biāo)檢測(cè)。性價(jià)指數(shù)達(dá)標(biāo):隨著科學(xué)技術(shù)飛速發(fā)展,我們的系統(tǒng)對(duì)于軟硬件的要求也越來越高,我們的市場(chǎng)上出現(xiàn)了多種多樣的令人眼花繚亂的產(chǎn)品。我們本次設(shè)計(jì)的系統(tǒng)在完成所有功能的基礎(chǔ)上,需要選擇一個(gè)合適的設(shè)計(jì)方案,主要以節(jié)省成本為目的,來做出一個(gè)最適合該設(shè)計(jì)的一個(gè)選擇,我們?cè)谠O(shè)計(jì)硬件連接以及軟件的程序編寫時(shí),盡可能的選擇簡(jiǎn)單合適的編程語言以及較為單一的編程環(huán)境。也許市場(chǎng)上我們研發(fā)的產(chǎn)品已經(jīng)很成熟,因此我們只有不斷優(yōu)化性能以及最大程度上實(shí)現(xiàn)成本的降低,才有可能使我們研發(fā)的產(chǎn)品具有更大的競(jìng)爭(zhēng)力。在高穩(wěn)定性和更低成本的絕對(duì)優(yōu)勢(shì)下,才能讓我們的產(chǎn)品在市場(chǎng)眾多產(chǎn)品的情況下,在市場(chǎng)上占有一席之地。從而達(dá)到我們?cè)O(shè)計(jì)基于單片機(jī)的尋跡避障小車設(shè)計(jì)最終目標(biāo)。2.4本章小結(jié)本章節(jié)主要是介紹本次設(shè)計(jì)的整體框架,以及對(duì)框架中的設(shè)計(jì)模塊的方案選擇進(jìn)行較清晰的比較和選擇;同時(shí)對(duì)本次的設(shè)計(jì)進(jìn)行分析其中幾點(diǎn)要求的分析,包括從體驗(yàn)性、可靠度、復(fù)雜度以及性價(jià)比等方面出發(fā)分析。從而得出本次設(shè)計(jì)的一個(gè)比較完整的方案設(shè)計(jì)。3硬件模塊電路設(shè)計(jì)3.1主控制模塊主控模塊即我們所說的單片機(jī),想要做該部分的設(shè)計(jì),應(yīng)該看一下單片機(jī)的命名規(guī)則,如果不知道單片機(jī)的命名規(guī)則,就不知道單片機(jī)的一些屬性和使用功能,就無法根據(jù)它的內(nèi)部資源做出正確的判斷和使用。主芯片通過單片機(jī)和相應(yīng)的外部電路組成,電路通過主電源引腳、時(shí)鐘電路、復(fù)位電路、內(nèi)存讀取電路以及多個(gè)I/O引腳組成。并且想起內(nèi)部的穩(wěn)定的頻率以抗干擾能力,用他作為整個(gè)頻率精度的參考。其內(nèi)部電路加載很多的電容晶體,能夠在增加晶振頻率下提高整個(gè)系統(tǒng)的工作效率,保證脈沖寬度位為單片機(jī)提供穩(wěn)定的時(shí)鐘信號(hào)。復(fù)位電路主要的功能是為單片機(jī)進(jìn)行初始化環(huán)境的搭建,當(dāng)程序進(jìn)入死鎖以及系統(tǒng)出現(xiàn)問題的時(shí)候,通過復(fù)位電路確保系統(tǒng)能重新進(jìn)行正常工作,能夠?qū)拇嫫饕约跋嚓P(guān)電路進(jìn)行重新上電啟動(dòng)操作。復(fù)位電路進(jìn)行通過多個(gè)震蕩周期的持續(xù)進(jìn)行復(fù)位操作。整個(gè)單片機(jī)的工作在主電源引腳、外部晶振引腳、控制引腳以及信號(hào)輸入輸出引腳多個(gè)引腳的配合下完成系統(tǒng)的數(shù)據(jù)操作處理工作。而且想要做硬件部分的設(shè)計(jì),應(yīng)該看一下單片機(jī)的命名規(guī)則,如果不知道單片機(jī)的命名規(guī)則,就不知道單片機(jī)的一些屬性和使用功能,就無法根據(jù)它的內(nèi)部資源做出正確的判斷和使用。通常在我們要畫電路圖的時(shí)候要注意一個(gè)問題,我們要去搞清楚我們所使用的單片機(jī)它管腳是如何進(jìn)行排布的,還有它的管腳順序是怎樣的,我們要把這一點(diǎn)搞清楚,在焊接電路板的時(shí)候也是一樣的道理,我們也要去把它的管腳的順序還有排布搞清楚,這是由于我們?cè)谌ナ褂脝纹瑱C(jī)的時(shí)候,單片機(jī)的上面不會(huì)把管腳順序進(jìn)行標(biāo)記。不管是哪款系列的單片機(jī),它的上面都會(huì)有一個(gè)小半圓,可以用來我們區(qū)分引腳的排序,有一部分單片機(jī)的上面可能是一個(gè)完整的小圓圈,不管是圓圈也好,還是半圓也好,它的左側(cè)第一個(gè)就是第一引腳,而且所有單片機(jī)引腳的排布都是逆時(shí)針。其電路原理圖如圖所示:圖3.1電路原理圖3.2光電傳感器模塊
利用光電傳感(紅外對(duì)射管,紅外發(fā)射與接收二極管組成)檢測(cè)黑白線,實(shí)現(xiàn)小車能跟著白線(或黑線)行走,同時(shí)也可避開障礙物,即小車尋跡過程中,若遇障礙物可自行繞開,繞開后繼續(xù)尋跡。電路原理圖如下圖所示。圖3-2光電傳感器原理圖3.3按鍵模塊這種鍵盤具有硬件與軟件相對(duì)簡(jiǎn)單的特點(diǎn),其缺點(diǎn)是按鍵數(shù)量較多時(shí),要占用大量口線。當(dāng)按鍵沒按下時(shí),CPU對(duì)應(yīng)的I/O接口由于內(nèi)部有上拉電阻,其輸入為高電平;當(dāng)某鍵被按下后,對(duì)應(yīng)的I/O接口變?yōu)榈碗娖健V灰诔绦蛑信袛郔/O接口的狀態(tài),即可知道哪個(gè)鍵處于閉合狀態(tài)。按鍵不同于其他操作,是否按下,是需要程序能否感應(yīng)到有電流變化的,按鍵按下后,會(huì)發(fā)送一個(gè)電平,這里常見的情況就是,按下的時(shí)候,會(huì)由于人的手指抖動(dòng),產(chǎn)生多個(gè)電平,所以鍵盤掃描函數(shù)都有一個(gè)去抖動(dòng)的函數(shù),只有在送手的那一刻,才表示按鍵按下,也就是說,這里按鍵按下的檢測(cè)標(biāo)準(zhǔn)是手指按下后松開的一瞬間,電平會(huì)產(chǎn)生變化,而不是按下的瞬間。其設(shè)計(jì)電路如下所示:圖3-3按鍵電路原理圖3.4穩(wěn)壓模塊穩(wěn)壓電路的作用是當(dāng)輸入交流電源電壓波動(dòng)、負(fù)載和溫度變化時(shí),維持輸出直流電壓的穩(wěn)定。由于三端式穩(wěn)壓器只有三個(gè)引出端子,具有應(yīng)用時(shí)外接元件少、使用方便、性能穩(wěn)定、價(jià)格低廉等優(yōu)點(diǎn),因而廣泛應(yīng)用。三端式穩(wěn)壓器有兩種,一種稱為固定輸出三端穩(wěn)壓器,另一種稱為可調(diào)輸出三端穩(wěn)壓器。它們的基本組成及工作原理都相同,均采用串聯(lián)型穩(wěn)壓電路。其設(shè)計(jì)電路如下所示:圖3-4穩(wěn)壓模塊電路3.5指示燈模塊LED燈和普通二極管類似,只是正向壓降較大,正向電阻也較大。在一定范圍內(nèi),其正向電流與發(fā)光亮度成正比。由于常規(guī)的LED用電電流只有1~2
mA,最大極限電流也只有10~30
mA,所以它的輸入端在5
V電源或高于TTL高電平(3.5
V)的電路信號(hào)相接時(shí),一定要串加限流電阻,以免損壞器件。其設(shè)計(jì)電路如下所示:圖3-5指示燈模塊電路3.6本章小結(jié)本章節(jié)從硬件電路的設(shè)計(jì)出發(fā)考慮,對(duì)單片機(jī)最小電路、光電傳感器電路、顯示電路等設(shè)計(jì)進(jìn)行比較詳細(xì)的介紹以及它們的工作傳輸情況進(jìn)行大概的描述,總體對(duì)實(shí)現(xiàn)本次設(shè)計(jì)的硬件電路進(jìn)行的模塊化的分類介紹。4系統(tǒng)軟件設(shè)計(jì)4.1設(shè)計(jì)思路軟件的設(shè)計(jì)是本次設(shè)計(jì)實(shí)現(xiàn)的重要部分,在完成了硬件電路的設(shè)計(jì)后,下面進(jìn)行的就是軟件設(shè)計(jì)的方面。本次設(shè)計(jì)涉及多個(gè)功能的實(shí)現(xiàn),所以軟件設(shè)計(jì)的代碼量并不少,如果采用整體化的設(shè)計(jì)方案,不僅會(huì)導(dǎo)致程序的結(jié)構(gòu)變得復(fù)雜化,同時(shí)也增加了各功能代碼的耦合性,非常不利于設(shè)計(jì)的調(diào)試和后續(xù)的擴(kuò)展功能。因此本次軟件的設(shè)計(jì)更傾向模塊化的設(shè)計(jì)方式,該設(shè)計(jì)方式讓整個(gè)程序的結(jié)構(gòu)變得清晰明朗,方便設(shè)計(jì)者后期的閱讀修改,極大程度提高了程序設(shè)計(jì)的效率,同時(shí)該方式降低了各功能設(shè)計(jì)的耦合性,在保證功能實(shí)現(xiàn)完整性的情況下,將一個(gè)大功能的實(shí)現(xiàn)最大化地分割成各小模塊功能的實(shí)現(xiàn),因此,當(dāng)設(shè)計(jì)者在編輯一個(gè)功能模塊的邏輯時(shí),另外的功能模塊也不會(huì)到影響,這保證了程序設(shè)計(jì)中的可靠性和高質(zhì)量性。確定了設(shè)計(jì)的方式后,下來就是詳細(xì)到設(shè)計(jì)各功能實(shí)現(xiàn)的方面,本次設(shè)計(jì)涉及到主程序的編寫、各功能方法的編寫等,在設(shè)計(jì)的過程中要注意好同步定義到硬件連接的端口,當(dāng)程序調(diào)用不成功時(shí),要從出現(xiàn)的錯(cuò)誤日志中去尋找報(bào)錯(cuò)的地方,分析報(bào)錯(cuò)的原因,并尋求解決的方法。如果說硬件的設(shè)計(jì)是本次設(shè)計(jì)的骨架,那么軟件設(shè)計(jì)就是本次設(shè)計(jì)的靈魂,其決定著本次設(shè)計(jì)的功能是否能實(shí)現(xiàn),而設(shè)計(jì)者使用良好的設(shè)計(jì)方式去編寫出結(jié)構(gòu)優(yōu)良的程序,不僅是對(duì)本次設(shè)計(jì)功能實(shí)現(xiàn)的重要保障,同時(shí)也方便了后期的擴(kuò)展和移植,更是提高了設(shè)計(jì)者的設(shè)計(jì)經(jīng)驗(yàn)。4.2編譯工具Keil簡(jiǎn)介程序的設(shè)計(jì)是本次功能實(shí)現(xiàn)的基礎(chǔ)條件,選擇合適的編譯工具可以大大縮減編程的時(shí)間,提高軟件設(shè)計(jì)的效率。常用于單片機(jī)編譯的工具包括Keil和IAR等,IAR是全球有名的嵌入式系統(tǒng)開發(fā)工具,集成了C/C++等編程語言的編譯環(huán)境和調(diào)試環(huán)境,功能十分強(qiáng)大,但是其使用方式對(duì)初學(xué)者不是很友好。所以本次選擇采用KEIL作為本次軟件設(shè)計(jì)的編程環(huán)境;KEIL是微軟公司推出的專門用于硬件編程調(diào)試的軟件,可用于51單片機(jī)和32單片機(jī)等常用單片機(jī)的程序編譯,經(jīng)其編譯過后的程序文件可被單片機(jī)高效地識(shí)別,讓機(jī)器快速地判斷我們定義的功能邏輯,從而高效地實(shí)現(xiàn)設(shè)計(jì)者設(shè)計(jì)的功能,而且KEIL編程軟件專門用于硬件設(shè)備的數(shù)據(jù)編程,能夠進(jìn)行多種硬件軟件的統(tǒng)一編程,能夠快速地進(jìn)行各模塊配置文件的搭建。友好的交互界面能夠讓開發(fā)人員專注于工作。KEIL編程軟件在軟件編程完成后,能夠快速的把代碼編譯成機(jī)器可以識(shí)別的機(jī)器碼,程序?qū)懭胍材軌蚩焖俚倪M(jìn)行。整個(gè)代碼燒錄過程能夠人性化的導(dǎo)入,方便開發(fā)人員的后期工作。對(duì)于當(dāng)下計(jì)算機(jī)發(fā)展的迅速,各種編程軟件的盛行,能夠在眾多產(chǎn)品中選擇一個(gè)提高辦公效率的軟件相當(dāng)重要。好的交互界面以及快捷的編程過程也能讓開發(fā)者在開發(fā)基于單片機(jī)的尋跡避障小車設(shè)計(jì)的過程中起到事半功倍的作用。KEIL正好滿足了這一系列的優(yōu)點(diǎn)。本軟件也集成的多種函數(shù),開發(fā)者能夠快速的進(jìn)行數(shù)據(jù)提起,當(dāng)基于單片機(jī)的尋跡避障小車設(shè)計(jì)成功回傳數(shù)據(jù)后,我們需要的一些邏輯處理也能在封裝函數(shù)的輔助下進(jìn)行,能夠方便開發(fā)者著重處理開發(fā)邏輯,而不用進(jìn)行具體底層數(shù)據(jù)的編程,大大提高了開發(fā)周期和開發(fā)效率。4.3編程語言選擇關(guān)于硬件的程序語言選擇,常用的有C語言和匯編語言兩種,這兩種語言都各有千秋,匯編語言是直接面向硬件操作的編程語言;使用匯編語言時(shí),可以對(duì)計(jì)算機(jī)硬件和應(yīng)用程序之間的連接和交互有著比較清晰的了解;但是這需要一定語言基礎(chǔ)的積累和硬件知識(shí)及操作的經(jīng)驗(yàn),而且匯編語言規(guī)則較多以及編程比較枯燥。開發(fā)者不能掌握其編碼規(guī)則。編程人員可能會(huì)因?yàn)槠骶幋a的復(fù)雜性增加開發(fā)周期。等到了后期基于單片機(jī)的尋跡避障小車設(shè)計(jì)的維護(hù)階段,如果沒有參與相關(guān)開發(fā)的過程,很難能夠快速理解整個(gè)系統(tǒng)的編程邏輯。本次的研究提倡的是在辦證質(zhì)量的前提下高效地進(jìn)行設(shè)計(jì);所以本次編程語言選擇采用C語言,C語言的好處在于編程語言簡(jiǎn)單,開發(fā)者能夠快速上手,并且C語言編程主要是面對(duì)過程編程,正好和我們基于單片機(jī)的尋跡避障小車設(shè)計(jì)要處理的邏輯相同,這樣我們就能快速的實(shí)現(xiàn)基于單片機(jī)的尋跡避障小車設(shè)計(jì)功能,而且C語言編程的另外一個(gè)好處,我們能夠封裝不同功能到不同的函數(shù)中去,這樣在使用調(diào)用起來也特別方便。而且C語言編程的各種數(shù)據(jù)定義以及初始化非常的方便。而且C語言相對(duì)于匯編語言而言,其入門的門檻沒有那么高,不僅滿足本次工作功能實(shí)現(xiàn)的需求,同時(shí)也為后續(xù)的調(diào)試和功能擴(kuò)展等需求提供了重要保障。4.4主程序設(shè)計(jì)在整個(gè)數(shù)據(jù)的處理過程中,首先通過單片機(jī)、光電傳感器模塊、按鍵、指示燈等進(jìn)行初始化管腳信息,便于整個(gè)系統(tǒng)進(jìn)行自檢工作。因?yàn)橄到y(tǒng)不會(huì)告訴我們此時(shí)的系統(tǒng)運(yùn)行到那個(gè)階段了,但是通過我們的編程提示進(jìn)行相應(yīng)的人機(jī)交互,編譯我們了解整個(gè)設(shè)備的運(yùn)行情況,隨后將無線通信模塊傳送的數(shù)據(jù)進(jìn)行處理,最后由主控制處理后發(fā)送至系統(tǒng)中。以此實(shí)現(xiàn)數(shù)據(jù)的處理,詳細(xì)流程如下所示:圖4-1程序主流程4.5光電傳感器模塊設(shè)計(jì)小車的循跡、避障采用的是光電傳感器模塊,程序開始后首先進(jìn)行的是初始化的工作。隨后微控制器獲取并處理相關(guān)的數(shù)據(jù),在主函數(shù)調(diào)用的情況下,數(shù)據(jù)寫入光電傳感器的寄存器,并從寄存器中讀取數(shù)據(jù),最后與單片機(jī)進(jìn)行數(shù)據(jù)交互。其程序流程圖如下:圖4-2無線通信模塊程序流程圖4.6指示燈顯示模塊設(shè)計(jì)程序開始后,首先進(jìn)行的是模塊的初始化及網(wǎng)絡(luò)的發(fā)起,隨后進(jìn)行數(shù)據(jù)接收、控制指令、通信等請(qǐng)求的判斷,如果有請(qǐng)求發(fā)生,則進(jìn)行相應(yīng)的操作程序,并循環(huán)著任務(wù)的進(jìn)行。其程序流程圖如下:圖4-3指示燈顯示模塊程序流程圖4.7本章小結(jié)本章節(jié)首先對(duì)程序設(shè)計(jì)的思路進(jìn)行分析,為了方便后續(xù)工作的進(jìn)行,本次采用的是模塊化的設(shè)計(jì)方法;然后對(duì)本次使用到的編譯平臺(tái)和編譯語言進(jìn)行介紹分析,從方便性、使用的簡(jiǎn)潔性等方面去考慮分析得出結(jié)論。最后對(duì)本次設(shè)計(jì)的主程序、顯示程序以及按鍵程序等幾個(gè)主要流程進(jìn)行詳細(xì)描述。5系統(tǒng)調(diào)試與分析5.1硬件調(diào)試硬件調(diào)試是本次設(shè)計(jì)不可或缺的一個(gè)重要步驟,當(dāng)我們按照設(shè)計(jì)的電路原理圖完成各模塊的連接后,首先第一個(gè)重要的點(diǎn)就是耐心檢查本次的連接順序是否和設(shè)計(jì)的方案一樣,對(duì)應(yīng)的線路是否連接在了對(duì)應(yīng)的端口上,因?yàn)橛布碾娐飞婕暗木€路較多,這方面不夠仔細(xì)就容易造成后續(xù)更多的調(diào)試問題;然后就是線路不通的問題,在整個(gè)硬件元器件的連接過程中,虛焊、焊接不牢固、焊接錯(cuò)誤等現(xiàn)象都有可能會(huì)出現(xiàn),而且造成硬件設(shè)備的缺陷一般來說就是硬件的焊接問題,而造成這種問題的主要原因是我們使用焊錫時(shí)發(fā)生短路造成焊錫連橋。在以往的大學(xué)課設(shè)中,焊接一直是學(xué)生的困擾問題之一,畢竟手工不如工廠的流水線機(jī)器,一不小心就會(huì)焊接錯(cuò)或者焊接歪了。首先一股腦焊接完是不可取的,先焊上單片機(jī)芯片,用萬用表檢測(cè)通電、引腳正常后再繼續(xù)焊下去,這樣可以防止出現(xiàn)做完才發(fā)現(xiàn)芯片不正常的問題。接著焊完其他部位后,先用萬用表檢查線路通電正常,有錯(cuò)的地方及時(shí)修改,如果連線沒問題,元件安裝正確。以上的工作非常重要,直接決定后面的功能能否完整實(shí)現(xiàn)。當(dāng)我們調(diào)試中遇到此類問題時(shí),應(yīng)正確使用萬用表來檢查的該段線路的導(dǎo)通情況,推論出該種情況的原因,并得出解決途徑。其次就是電源的調(diào)試,給設(shè)計(jì)上電前要檢查所輸入的電源電壓是否在各硬件元器件可接受的范圍內(nèi),否則很可能會(huì)造成系統(tǒng)的崩潰,為系統(tǒng)上電前盡可能用限流的可調(diào)穩(wěn)壓電源,并預(yù)先做好過流保護(hù)的電流,上電后觀察各硬件的運(yùn)行狀態(tài),如有異常則立即切斷電源;最后就是連接的調(diào)試,運(yùn)行系統(tǒng),觀察我們定義的程序功能是否實(shí)現(xiàn),若實(shí)現(xiàn)相應(yīng)的功能,則表明調(diào)試成功。整個(gè)調(diào)試的過程比較枯燥單一,要想把這個(gè)過程做好,需要我們保持著學(xué)術(shù)研究的精神耐心一步一步地進(jìn)行。5.2軟件調(diào)試當(dāng)檢查完硬件間的連接沒有任何問題后,下來就是進(jìn)行軟件程序的調(diào)試。首先就是檢測(cè)各個(gè)模塊數(shù)據(jù)的獲取并且進(jìn)行檢測(cè),判斷是否能夠進(jìn)行相關(guān)數(shù)據(jù)的完美獲取以及數(shù)據(jù)獲取格式是否是我們所要求的具體格式。本畢業(yè)設(shè)計(jì)的基于單片機(jī)的尋跡避障小車設(shè)計(jì)系統(tǒng)的設(shè)計(jì)采用的是C語言進(jìn)行編程,通過串口將程序燒錄進(jìn)單片機(jī)。在基于單片機(jī)的尋跡避障小車設(shè)計(jì)硬件環(huán)境測(cè)試成功后,下一步要做的就是進(jìn)行軟件代碼的測(cè)試,我們要綜合考慮代碼的封裝性以及兼容性,我們?yōu)椴煌臄?shù)據(jù)采集建立子函數(shù),然后對(duì)其進(jìn)行檢測(cè),看是否能回傳指定的數(shù)據(jù)格式,每個(gè)數(shù)據(jù)采集模塊的封裝的好處就在于能夠精準(zhǔn)定位各個(gè)模塊的數(shù)據(jù)以及直接調(diào)用子函數(shù)達(dá)到數(shù)據(jù)采集的效果,在進(jìn)行黑盒檢測(cè)的時(shí)候各個(gè)模塊都能得到我們想要的數(shù)據(jù)格式,然后在主函數(shù)中要做的就是邏輯判斷,但是軟件搭建的測(cè)試重點(diǎn)是各種突發(fā)事件的處理,不能夠讓基于單片機(jī)的尋跡避障小車出現(xiàn)崩潰以及死機(jī)的狀況。軟件環(huán)境的測(cè)試也要進(jìn)行提示語的添加,這樣開發(fā)人員能夠快速的定位錯(cuò)誤,知道具體是哪一個(gè)模塊出現(xiàn)問題。5.3系統(tǒng)整體調(diào)試在實(shí)物制作過程中也不是一帆風(fēng)順的,在硬件做好調(diào)試過程中,傳感器無輸出,經(jīng)檢查硬件電路,使用萬用表量通斷發(fā)現(xiàn),部分導(dǎo)線不通,存在虛焊現(xiàn)象,導(dǎo)致整個(gè)基于單片機(jī)的尋跡避障小車無法正常運(yùn)行。在重新焊接該部分導(dǎo)線,焊接牢固后,問題得以解決。只有通過不同的反復(fù)調(diào)試,在調(diào)試中才能發(fā)現(xiàn)不同的問題,才能實(shí)現(xiàn)相關(guān)的功能,在不斷的完善改進(jìn)中完成這個(gè)基于單片機(jī)的尋跡避障小車的設(shè)計(jì)。在硬件模塊以及軟件編碼測(cè)試完成后,確保各個(gè)管腳測(cè)試成功以及軟件封裝函數(shù)數(shù)據(jù)獲取成功后,要做的就是整體環(huán)境的測(cè)試,把各個(gè)數(shù)據(jù)采集模塊以及交互模塊進(jìn)行集成測(cè)試,檢測(cè)每個(gè)模塊的數(shù)據(jù)銜接是否出現(xiàn)問題。在數(shù)據(jù)交互銜接的過程不是一帆風(fēng)順的,數(shù)據(jù)可能不會(huì)想想象中那樣正常的顯示,在數(shù)據(jù)獲取后可能因?yàn)榫幋a的原因出現(xiàn)數(shù)據(jù)亂碼錯(cuò)誤?;蛘哂捎诘却龑?shí)踐過長(zhǎng),采集的數(shù)據(jù)可能是空值,這樣下一步的邏輯處理可能會(huì)出現(xiàn)無法排查的錯(cuò)誤。在整個(gè)硬件軟件整體進(jìn)行調(diào)試的時(shí)候,就能顯現(xiàn)出之前測(cè)試工作的重要性,隨著采集模塊的變多,各種潛在的bug有人會(huì)顯現(xiàn)出來,及時(shí)的定位錯(cuò)誤能夠讓基于單片機(jī)的尋跡避障小車的開發(fā)變得事半功倍。最后,在整個(gè)調(diào)試完成后,面對(duì)給我們的將是一個(gè)低耗、高效以及處理迅速的基于單片機(jī)的尋跡避障小車。5.4調(diào)試分析整個(gè)調(diào)試過程對(duì)于初次設(shè)計(jì)者而言是一次非常有意義的挑戰(zhàn);在硬件的調(diào)試過程中,我更貼切地理解到了硬件之間的連接實(shí)現(xiàn),同時(shí)也鍛煉了我實(shí)踐操作的能力,更積累了我對(duì)硬件連接時(shí)錯(cuò)誤方式的認(rèn)知經(jīng)驗(yàn),例如線路之間的連接時(shí)常會(huì)出現(xiàn)虛焊或短路的情況,關(guān)于這一方面就需要我們使用萬用表去試驗(yàn)才能做出判斷;在軟件的調(diào)試中,我體會(huì)到了具有良好編程風(fēng)格的重要性,方法的構(gòu)思實(shí)現(xiàn)或許不難,但編寫出結(jié)構(gòu)清晰明朗的功能代碼可以在軟件設(shè)計(jì)乃至后續(xù)的整體設(shè)計(jì)中節(jié)約出很多的時(shí)間;整體的調(diào)試是本次設(shè)計(jì)接近尾聲的一個(gè)重要步驟,該操作中需要我們細(xì)心地觀察驗(yàn)證,并耐心地分析其中的不足之處以及如何修正。本次整個(gè)過程都不是一帆風(fēng)順,遇到的坎坷之處比比皆是,但是在我的勤奮努力實(shí)踐和導(dǎo)師同學(xué)的幫助下,我終究是撥開層層困難,踏上了調(diào)試成功之路,這些經(jīng)歷都將會(huì)成為我前進(jìn)道路上的重要部分。5.5本章小結(jié)本章節(jié)主要是對(duì)本次設(shè)計(jì)的調(diào)試過程進(jìn)行描述和分析;首先進(jìn)行硬件間的連接,要保證各個(gè)模塊部分間是導(dǎo)通可進(jìn)行數(shù)據(jù)交互的;然后進(jìn)行功能邏輯實(shí)現(xiàn)的編碼;下來進(jìn)行編碼和硬件的聯(lián)合測(cè)試并觀察設(shè)計(jì)的功能是否已經(jīng)實(shí)現(xiàn);最后對(duì)本次過程中遇到的困難以及解決的一個(gè)過程進(jìn)行分析。6總結(jié)我對(duì)于本次畢業(yè)設(shè)計(jì)方案的一個(gè)最初的想法,是讓研發(fā)出來的智能產(chǎn)品使我們的生活以及生產(chǎn)活動(dòng)更加的便利。二十一世紀(jì)是一個(gè)信息和科技飛速發(fā)展的時(shí)代,科技愈來愈成為時(shí)代的象征??萍紡?qiáng)國(guó)已經(jīng)成為時(shí)代的號(hào)召,我們應(yīng)該不斷學(xué)習(xí)科學(xué)文化知識(shí)并努力提高自己的科學(xué)文化素養(yǎng),讓自己能夠順應(yīng)時(shí)代的潮流,并且更好的實(shí)現(xiàn)個(gè)人價(jià)值,為我們的社會(huì)做出更大的貢獻(xiàn)。其實(shí)一開始的時(shí)候,該設(shè)計(jì)方案就遇到了很多的問題。首先,我不知道該從哪個(gè)方面去設(shè)計(jì),換句話說,我不知道要設(shè)計(jì)出一個(gè)怎么樣的智能化產(chǎn)品。后來通過一些偶然的機(jī)會(huì)了解到該類型的產(chǎn)品,于是就決定了要設(shè)計(jì)出一個(gè)這種類型的智能化產(chǎn)品。然后我就不斷地去查找關(guān)于這種智能化產(chǎn)品的信息,翻閱相關(guān)的中外文獻(xiàn)以及各種研究報(bào)告,最后自己總結(jié)和摘要我研發(fā)該智能化產(chǎn)品所需要的信息。并且為我的想法設(shè)計(jì)了一個(gè)合情合理的方案,每個(gè)步驟都
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 短視頻教學(xué)課程設(shè)計(jì)
- 2025版超低能耗建筑安裝工程承包合同A范本3篇
- 2025至2030年中國(guó)迷你水晶杯墊行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025版海洋工程建設(shè)項(xiàng)目施工結(jié)算與海洋環(huán)境保護(hù)協(xié)議3篇
- 2025至2030年中國(guó)起酥面包花色成形機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 紅星閃閃主題課程設(shè)計(jì)
- 糖葫蘆彩泥手工課程設(shè)計(jì)
- 托育班小火車課程設(shè)計(jì)
- 2025版古建筑修復(fù)施工合同標(biāo)準(zhǔn)范本2篇
- 2024年重點(diǎn)基礎(chǔ)設(shè)施工程承包合同書一
- 2025年八省聯(lián)考高考語文作文真題及參考范文
- 新課標(biāo)(水平三)體育與健康《籃球》大單元教學(xué)計(jì)劃及配套教案(18課時(shí))
- 計(jì)件工勞務(wù)合同范例
- GB/T 45076-2024再生資源交易平臺(tái)建設(shè)規(guī)范
- 10.2《師說》課件 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- 2024年度企業(yè)重組與債務(wù)重組協(xié)議3篇
- 2024年公交車開通儀式講話例文(4篇)
- 年高考新課標(biāo)I卷語文試題講評(píng)課件
- 《三 采用合理的論證方法》教學(xué)設(shè)計(jì)統(tǒng)編版高中語文選擇性必修上冊(cè)
- 2024-2025學(xué)年語文二年級(jí)上冊(cè) 部編版期末測(cè)試卷 (含答案)
- 《自理理論orem》課件
評(píng)論
0/150
提交評(píng)論