基于單片機(jī)的智能玩具車(chē)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的智能玩具車(chē)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的智能玩具車(chē)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的智能玩具車(chē)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的智能玩具車(chē)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

摘要現(xiàn)在,玩具電動(dòng)車(chē)要么是只能實(shí)現(xiàn)直線前進(jìn)的,要么是帶遙控裝置的開(kāi)環(huán)控制的,能夠?qū)崿F(xiàn)或前進(jìn)、或后退、或左轉(zhuǎn)、或右轉(zhuǎn)的功能。能夠顯示運(yùn)行狀態(tài)、里程〔圈數(shù)〕并實(shí)現(xiàn)報(bào)警的卻為數(shù)不多。本文的主要研究工作是設(shè)計(jì)和實(shí)現(xiàn)基于單片機(jī)STC89C51的智能玩具電動(dòng)車(chē),包括其硬件和軟件兩個(gè)局部。硬件電路局部主要包括控制器、信號(hào)檢測(cè)電路、避障電路、電機(jī)驅(qū)動(dòng)電路、顯示電路、電源電路等,通過(guò)軟件編程控制小車(chē)實(shí)現(xiàn)前進(jìn)、后退、加速、減速、左轉(zhuǎn)、右轉(zhuǎn)和車(chē)燈閃爍等功能,并在小車(chē)行進(jìn)中很好地實(shí)現(xiàn)避障,里程、行進(jìn)方向顯示和報(bào)警。本文是把當(dāng)前一般的玩具電動(dòng)車(chē)作為根底,增加各種傳感器,如光電傳感器、紅外傳感器、超聲波傳感器等,利用傳感器構(gòu)成的信號(hào)檢測(cè)電路實(shí)時(shí)檢測(cè)電動(dòng)車(chē)的運(yùn)行速度、運(yùn)行位置、運(yùn)行狀況,單片機(jī)接收并處理信號(hào)檢測(cè)電路檢測(cè)到的各種數(shù)據(jù),然后由單片機(jī)發(fā)出指令控制電動(dòng)小車(chē)運(yùn)行。該智能玩具小車(chē)能夠?qū)崿F(xiàn)的功能有:實(shí)時(shí)準(zhǔn)確地顯示溫度、顯示里程,能夠?qū)崿F(xiàn)語(yǔ)音控制,自動(dòng)循跡和避障,能夠自動(dòng)調(diào)節(jié)行駛速度并精確停車(chē)。關(guān)鍵詞:智能,玩具電動(dòng)車(chē),單片機(jī),軟件設(shè)計(jì)ABSTRACTNow,electrictoyiseithercanonlyachieveastraightforward,eitherwithremotecontroldeviceforopenloopcontrol,canachieveorforward,orback,orleft,orrightfunction.Tobeabletodisplayoperatingstatus,mileage(LAPS)andalarmhoweveramounttoisnotmuch.ThemainresearchworkofthisthesisistodesignandimplementbasedonSTC89C51single-chipmicrocomputerintelligenttoycar,includingitshardwareandsoftwareintwoparts.Thehardwarecircuitpartmainlycomprisesacontroller,asignaldetectioncircuit,obstacleavoidancecircuit,motordrivecircuit,displaycircuit,powersupplycircuit,throughsoftwareprogrammingtocontrolthecarforward,backward,acceleration,deceleration,turnleft,turnrightandlightsflashingandotherfunctions,andinthesmallcarrunningwellrealizetheobstacleavoidance,mileage,thedirectionofdisplayandalarm.Thispaperistopresentageneralelectrictoyasafoundation,increaseofvarioussensors,suchasphotoelectricsensor,infraredsensor,ultrasonicsensor,thesensorsignaldetectioncircuitforreal-timedetectionofelectricvehiclerunningspeed,runningposition,operation,SCMreceivesandprocessesthesignaldetectioncircuitdetectsavarietyofdata,andthenbytheMCUinstructioncontrolofelectrictrolley.Theintelligenttoycarcanachievefunctions:real-timeandaccuratetemperaturedisplay,displaythemileage,voicecontrolcanbeachieved,automatictrackingandobstacleavoidance,andcanautomaticallyadjustthespeedandtheprecisionofparking.Keywords:Intelligent,electrictoycars,SCM,softwaredesignTOC\o"1-3"\h摘要IABSTRACTII第一章引言21.1研究背景 21.2研究意義21.3國(guó)內(nèi)外研究現(xiàn)狀 31.4研究?jī)?nèi)容 4第二章相關(guān)技術(shù) 62.1單片機(jī)技術(shù) 62.2智能玩具電動(dòng)車(chē)技術(shù)7第三章系統(tǒng)需求分析 83.1功能分析 83.1.1主控模塊 83.1.2電機(jī)驅(qū)動(dòng)模塊 93.1.3顯示模塊 93.1.4電源模塊 113.1.5機(jī)械系統(tǒng)模塊 113.2性能分析 123.2.1硬件系統(tǒng)可靠性措施 123.2.2軟件系統(tǒng)可靠性措施 12第四章電路設(shè)計(jì)144.1主控電路設(shè)計(jì)15STC89C51單片機(jī)硬件結(jié)構(gòu) 154.1.2最小應(yīng)用系統(tǒng)設(shè)計(jì) 164.2信號(hào)檢測(cè)電路設(shè)計(jì) 214.2.1紅外檢測(cè)電路設(shè)計(jì) 214.2.2金屬探測(cè)電路設(shè)計(jì) 224.3驅(qū)動(dòng)電路設(shè)計(jì)234.4顯示電路設(shè)計(jì) 254.5電源電路設(shè)計(jì) 264.6接口電路設(shè)計(jì) 274.6.1前向通道設(shè)計(jì) 27第五章控制軟件的設(shè)計(jì)與實(shí)現(xiàn)345.1概述 355.1.1應(yīng)用軟件的一般要求 355.1.2應(yīng)用軟件的設(shè)計(jì)過(guò)程 365.2軟件的結(jié)構(gòu)設(shè)計(jì) 365.3主要模塊實(shí)現(xiàn)375.3.1電機(jī)驅(qū)動(dòng)流程圖及程序 375.3.2循跡流程圖及程序425.3.3顯示流程圖及程序 49第六章系統(tǒng)功能測(cè)試 606.1測(cè)試儀器及設(shè)備 616.2系統(tǒng)功能測(cè)試 616.3系統(tǒng)測(cè)試結(jié)果及分析 63第七章結(jié)論和展望657.1結(jié)論 657.2展望65參考文獻(xiàn)66第一章引言1.1研究背景當(dāng)今社會(huì),科學(xué)技術(shù)日新月異,時(shí)代前進(jìn)的步伐越來(lái)越快。隨著電子技術(shù)的開(kāi)展,屬于融合類(lèi)的個(gè)人電子終端也越來(lái)越多,比方PMP、PDA、手持游戲機(jī)和智能等等,他們都占據(jù)了很大的市場(chǎng)份額。在玩具領(lǐng)域,隨著電子技術(shù)不斷融入玩具,使得玩具也越來(lái)越智能化,也就構(gòu)成了新一類(lèi)的融合類(lèi)電子終端,這也是世界各國(guó)玩具產(chǎn)業(yè)開(kāi)展的一種方向。去年,結(jié)合了高端的電子技術(shù)的玩具的銷(xiāo)售額僅僅在在美國(guó)一個(gè)國(guó)家的玩具市場(chǎng)上就到達(dá)115億美元,大大超過(guò)了一般玩具的增長(zhǎng)速度。因?yàn)?023年全世界的智能玩具銷(xiāo)售收入才100億美元。據(jù)權(quán)威部門(mén)預(yù)計(jì),2023年末銷(xiāo)售額增加更大,可以到達(dá)200億美元。智能玩具絕對(duì)是利潤(rùn)比擬豐厚的,因?yàn)橹悄芡婢叩募夹g(shù)是建立在已有的主流融合終端上,然后在其根底山進(jìn)行了創(chuàng)新,本錢(qián)相對(duì)來(lái)說(shuō)較低。這樣一來(lái),投資者的投資回報(bào)就比擬豐厚。另一方面,鑒于電子智能玩具對(duì)于兒童成長(zhǎng)的重要性及越來(lái)越智能化和多樣化,受到了消費(fèi)者的喜愛(ài)。現(xiàn)在,中國(guó)在玩具消費(fèi)上的人均值相對(duì)其他國(guó)家來(lái)說(shuō)要低很多,因此,智能玩具在中國(guó)的市場(chǎng)空間將會(huì)很大。所以,融合了計(jì)算機(jī)控制與電子技術(shù)的智能化玩具的研究越來(lái)越受到社會(huì)各界的廣泛重視。隨著智能水平的不斷提高,人們的生活方式迅速地改變,電子智能玩具有很好的市場(chǎng)前景。作為電子智能玩具之一的智能玩具電動(dòng)車(chē)更受兒童青睞,是兒童玩具中的寵中之寵。本設(shè)計(jì)就是在這樣的背景下提出的。1.2研究意義全稱(chēng)為單片微型計(jì)算機(jī)的單片機(jī)具有集成度高、體積小,可靠性高、實(shí)用溫度范圍寬,有優(yōu)良的性能價(jià)格比,控制功能強(qiáng),外部總線豐富,功能擴(kuò)展性強(qiáng)及低功耗等特有的優(yōu)良性能,因而得到了廣泛應(yīng)用。它推動(dòng)了嵌入式系統(tǒng)的開(kāi)展并深入到各個(gè)領(lǐng)域,已經(jīng)成為工業(yè)、農(nóng)業(yè)、國(guó)防、科研、教育以及日常生活的各個(gè)領(lǐng)域的智能化工具,也是現(xiàn)代電子系統(tǒng)中重要的智能化工具,對(duì)各行各業(yè)的技術(shù)改造以及產(chǎn)品的更新?lián)Q代起到了極大的推動(dòng)作用。目前,開(kāi)發(fā)模塊化,功能強(qiáng),價(jià)格低的智能玩具小車(chē),已成為全國(guó)電子技能比賽的熱點(diǎn),而且智能玩具車(chē)在國(guó)內(nèi)和國(guó)外都有著巨大的市場(chǎng)。在全球市場(chǎng)上,智能玩具領(lǐng)域,幾乎被美國(guó)、日本等國(guó)壟斷,我國(guó)智能玩具是一個(gè)即將興起的領(lǐng)域,可編程玩具小車(chē)將會(huì)給玩具市場(chǎng)注入新的活力。玩具小車(chē)隨著傳感技術(shù)、計(jì)算機(jī)科學(xué)、人工智能及其它相關(guān)學(xué)科的迅速開(kāi)展,正向著智能化的方向開(kāi)展。智能化玩具車(chē)控制系統(tǒng)囊括了計(jì)算機(jī)技術(shù)、自動(dòng)控制技術(shù)、傳感器技術(shù)和人工智能技術(shù)等多方面的技,它是一個(gè)綜合體,有環(huán)境的感知功能,實(shí)時(shí)的決策與規(guī)劃功能,以及行為的控制和執(zhí)行等功能,是典型的機(jī)電一體化產(chǎn)品。另外,選擇單片機(jī)設(shè)計(jì)智能玩具電動(dòng)車(chē),目的在于從日常生活中能接觸到的細(xì)微處著手,通過(guò)理論與實(shí)踐的結(jié)合,更明確自己的所學(xué)所用,也在實(shí)踐中發(fā)現(xiàn)自己理論的缺乏,對(duì)目前廣泛應(yīng)用的單片機(jī)有更加理性化和感性化的認(rèn)識(shí),使理論和實(shí)踐相得益彰。1.3國(guó)內(nèi)外研究現(xiàn)狀一、國(guó)外智能車(chē)輛的研究現(xiàn)狀從20世紀(jì)50年代開(kāi)始,智能車(chē)輛的研究在國(guó)外就開(kāi)始了,其開(kāi)展歷程大致經(jīng)歷了初始研究、卓有成就的研究和深入、系統(tǒng)、大規(guī)模的研究三個(gè)階段,分別如下:初始階段:在20世紀(jì)的50年代美國(guó)出現(xiàn)了自主引導(dǎo)車(chē)系統(tǒng)。該系統(tǒng)具有了智能車(chē)輛的最根本的特征——無(wú)人駕駛。這是一個(gè)標(biāo)志,一個(gè)智能車(chē)輛出現(xiàn)的明顯的標(biāo)志。卓有成就的階段:在20世紀(jì)80年代中后期,歐洲和美洲的一些國(guó)家主要進(jìn)行智能車(chē)輛的可行性研究和如何讓智能車(chē)輛實(shí)用化的研究,取得了顯著成績(jī)。深入、系統(tǒng)、大規(guī)模的研究階段:從20世紀(jì)90年代開(kāi)始,各個(gè)國(guó)家尤其是歐洲的德國(guó)和美洲的美國(guó)等都對(duì)智能車(chē)輛進(jìn)行了廣泛地、大量地研究。尤為突出的是美國(guó)的Navlab系列的自主車(chē)的研究,該研究在卡內(nèi)基-梅隴大學(xué)機(jī)器人研究所進(jìn)行,取得的成績(jī)顯著。二、國(guó)內(nèi)智能車(chē)輛的研究現(xiàn)狀在中國(guó)很多高等院校和科研機(jī)構(gòu)都進(jìn)行了ITS核心技術(shù)和設(shè)備的研究。在近30年的研究過(guò)程中,我國(guó)已經(jīng)積累了很多經(jīng)驗(yàn)和強(qiáng)大的ITS技術(shù)研究開(kāi)發(fā)的專(zhuān)業(yè)技術(shù)隊(duì)伍。當(dāng)前,許多用于兒童的玩具電動(dòng)車(chē)只能實(shí)現(xiàn)根本的功能,即或前進(jìn)、或后退、或左轉(zhuǎn)、或右轉(zhuǎn)、或停車(chē)的功能,或加了遙控實(shí)現(xiàn)前述功能。也就是說(shuō)控制方法上根本沒(méi)有采取閉環(huán)控制。玩具小車(chē)的控制方式有:基于單片機(jī)的,基于光學(xué)傳感器的,語(yǔ)音控制的等。本設(shè)計(jì)是基于單片機(jī)的,主要完成玩具車(chē)控制系統(tǒng)硬件電路和軟件的設(shè)計(jì),控制系統(tǒng)的硬件電路局部主要包括控制器、信號(hào)檢測(cè)電路、電機(jī)驅(qū)動(dòng)電路、顯示電路、電源電路等,直流電機(jī)作為小車(chē)的驅(qū)動(dòng)電機(jī)。電機(jī)驅(qū)動(dòng)利用軟件產(chǎn)生不同占空比的PWM波來(lái)控制直流電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速。單片機(jī)作為整個(gè)玩具電動(dòng)車(chē)的控制系統(tǒng),控制著與其相連的各個(gè)模塊。該智能玩具電動(dòng)車(chē)采用的單片機(jī)是STC89C51,通過(guò)軟件編程控制小車(chē)實(shí)現(xiàn)前進(jìn)、后退、加速、減速、左轉(zhuǎn)、右轉(zhuǎn)和車(chē)燈閃爍等功能,并在此過(guò)程中很好地實(shí)現(xiàn)里程、行進(jìn)方向顯示和報(bào)警。本設(shè)計(jì)是把當(dāng)前一般的玩具電動(dòng)車(chē)作為根底,增加必要的傳感器,如光電傳感器、紅外傳感器、超聲波傳感器等,利用傳感器構(gòu)成的信號(hào)檢測(cè)電路實(shí)時(shí)檢測(cè)電動(dòng)車(chē)的運(yùn)行速度、運(yùn)行位置、運(yùn)行狀況,單片機(jī)接收并處理信號(hào)檢測(cè)電路檢測(cè)到的各種數(shù)據(jù),然后由單片機(jī)發(fā)出指令控制電動(dòng)小車(chē)的運(yùn)行。該智能玩具小車(chē)能夠?qū)崿F(xiàn)的功能有:實(shí)時(shí)準(zhǔn)確地顯示時(shí)間、顯示速度、顯示里程,智能調(diào)節(jié)行駛速度、精確停車(chē)的功能。設(shè)計(jì)方案能實(shí)現(xiàn)對(duì)電動(dòng)小汽車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)行實(shí)時(shí)控制,控制要靈活、可靠,精度要高,需滿足系統(tǒng)的各項(xiàng)要求。總之,設(shè)計(jì)的整個(gè)系統(tǒng)的電路結(jié)構(gòu)要簡(jiǎn)單,可靠性能要高。采用的技術(shù)主要包括:1.有效應(yīng)用傳感器。利用感測(cè)模塊實(shí)時(shí)監(jiān)測(cè)路面情況并及時(shí)傳輸給單片機(jī),單片機(jī)核心模塊根據(jù)感測(cè)模塊給予的信息控制小車(chē)兩電機(jī)轉(zhuǎn)動(dòng),電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)兩電機(jī)轉(zhuǎn)動(dòng),實(shí)現(xiàn)轉(zhuǎn)向與行走;2.小車(chē)的速度控制利用編程實(shí)現(xiàn);3.采用新型顯示芯片。第二章相關(guān)技術(shù)2.1單片機(jī)技術(shù)全名是單片微型計(jì)算機(jī)〔SingleClipMicrocomputer〕的單片機(jī),主要由中央處理器〔CPU〕、只讀存儲(chǔ)器(ROM)、隨機(jī)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、輸入輸出接口電路等組成,把這些功能部件集成在一塊芯片上,便構(gòu)成了一個(gè)完整的微型計(jì)算機(jī)。自從1974年12月美國(guó)Fairchild公司研制出了世界上第一臺(tái)單片機(jī)F8以來(lái),單片機(jī)迅速開(kāi)展,各種新型、高性能單片機(jī)不斷推陳出新。迄今為止,單片機(jī)的開(kāi)展經(jīng)歷了4個(gè)時(shí)期:第一階段(1974~1978年):?jiǎn)纹瑱C(jī)初級(jí)階段該階段最具有代表性的單片機(jī)就是英特爾生產(chǎn)的MCS-48。該階段的單片機(jī)的運(yùn)用了落后的制造工藝,其CPU為8位,I/O接口為并行,定時(shí)器/計(jì)數(shù)器為8位。并且,I/O口不能串行通信,尋址范圍小〔低于4KB〕。其代表產(chǎn)品為仙童公司的單片機(jī)F8等。第二階段(1978~1983年):?jiǎn)纹瑱C(jī)完善階段以Intel公司的MCS-51系列單片機(jī)為代表,該時(shí)期的單片機(jī)的特點(diǎn)是:“串行I/O口,帶有多級(jí)中斷處理系統(tǒng),16位的定時(shí)器/計(jì)數(shù)器,片內(nèi)存儲(chǔ)器的容量相對(duì)增大,而且且尋址范圍可達(dá)64KB。第三階段(1983~1990年):?jiǎn)纹瑱C(jī)穩(wěn)固和推新階段此階段的單片機(jī),既完善第一階段的單片機(jī),又開(kāi)展第二階段的單片機(jī),還推出了新的32位的單片機(jī),也出現(xiàn)了專(zhuān)用單片機(jī)。第四階段(1990至今):?jiǎn)纹瑱C(jī)全面開(kāi)展階段適合于不同領(lǐng)域要求的單片機(jī)相繼出現(xiàn)。其特點(diǎn)是運(yùn)算速度快,存儲(chǔ)容量大,運(yùn)算能力強(qiáng)。類(lèi)型有通用型和專(zhuān)用型。當(dāng)然也有專(zhuān)用于單一領(lǐng)域的廉價(jià)的單片機(jī)。單片機(jī)自身的特點(diǎn)決定了其應(yīng)用非常廣泛,它已成為工業(yè)、農(nóng)業(yè)、國(guó)防、科研、教育以及日常生活等各個(gè)領(lǐng)域的智能化工具,對(duì)各行業(yè)的技術(shù)改造以及產(chǎn)品的更新?lián)Q代起到了極大的推動(dòng)作用。2.2智能玩具電動(dòng)車(chē)技術(shù)隨著傳感技術(shù)、計(jì)算機(jī)科學(xué)、人工智能及其它相關(guān)學(xué)科的迅速開(kāi)展,玩具小車(chē)正向著智能化的方向開(kāi)展。智能玩具電動(dòng)車(chē)控制系統(tǒng)包括了計(jì)算機(jī)、控制技術(shù)、傳感技術(shù)、機(jī)械和人工智能等多方面的知識(shí),它是一個(gè)綜合系統(tǒng),它有單片機(jī)控制控制方式,有光學(xué)傳感器控制控制方式,也有語(yǔ)音控制方式等多種控制方式。其功能是可以進(jìn)行環(huán)境感知,也可以進(jìn)行動(dòng)態(tài)決策和規(guī)劃,還可以進(jìn)行行為控制和執(zhí)行等。第三章系統(tǒng)需求分析3.1功能分析根據(jù)設(shè)計(jì)要求和設(shè)計(jì)內(nèi)容,采用基于單片機(jī)的控制方案,設(shè)計(jì)出系統(tǒng)框圖如圖3-1所示,包括主控模塊、檢測(cè)模塊、電機(jī)驅(qū)動(dòng)模塊、顯示模塊和電源模塊等。主主控模塊啟停控制時(shí)鐘電路看門(mén)狗電路復(fù)位電路電源電路顯示電路調(diào)速模塊位移模塊電機(jī)驅(qū)動(dòng)模塊報(bào)警電路圖3-1系統(tǒng)框圖主控模塊現(xiàn)在,具有智能功能的電子產(chǎn)品通常用的控制器為單片機(jī),它具有集成度高、體積小,可靠性高、實(shí)用溫度范圍寬,有優(yōu)良的性能價(jià)格比,控制功能強(qiáng),外部總線豐富,功能擴(kuò)展性強(qiáng)及低功耗等特有的優(yōu)良性能,因而得到了廣泛應(yīng)用。它推動(dòng)了嵌入式系統(tǒng)的開(kāi)展并深入到各個(gè)領(lǐng)域,已經(jīng)成為工業(yè)、農(nóng)業(yè)、國(guó)防、科研、教育以及日常生活的各個(gè)領(lǐng)域的智能化工具,也是現(xiàn)代電子系統(tǒng)中重要的智能化工具,對(duì)各行各業(yè)的技術(shù)改造以及產(chǎn)品的更新?lián)Q代起到了極大的推動(dòng)作用。但是,當(dāng)今社會(huì)單片機(jī)廠商多如牛毛,產(chǎn)品性能不盡相同。常用的典型的單片機(jī)有Intel公司的MCS-51系列單片機(jī)、Motorola公司的M68系列單片機(jī)、Philips公司的P系列單片機(jī)、WinBond〔華邦〕公司的W77、W78系列單片機(jī)、Atmel公司生產(chǎn)的AT89系列單片機(jī)、EPSON公司的單片機(jī)等。本設(shè)計(jì)設(shè)計(jì)的是一個(gè)復(fù)雜程序控制系統(tǒng),具有多開(kāi)關(guān)量輸入的特點(diǎn)。因此,控制核心需要用擅長(zhǎng)處理多開(kāi)關(guān)量的標(biāo)準(zhǔn)單片機(jī),而不能用精簡(jiǎn)I/O口和程序存儲(chǔ)器的小體積單片機(jī)。在綜合考慮了傳感器、兩部電機(jī)的驅(qū)動(dòng)等諸多因素后,本設(shè)計(jì)最終決定采用一片ATMEL公司的STC89C51單片機(jī),充分利用STC89C51單片機(jī)的資源和適合復(fù)雜控制應(yīng)用場(chǎng)合的特點(diǎn)。圖3-2為STC89C51構(gòu)成的系統(tǒng)原理框圖。AT89C52AT89C52無(wú)線遙控里程檢測(cè)指示燈顯示行駛狀態(tài)顯示里程,時(shí)間圖3-2系統(tǒng)原理圖3.1.2電機(jī)驅(qū)動(dòng)模塊根據(jù)題目的要求,確定如下方案:把當(dāng)前一般的玩具電動(dòng)車(chē)作為根底,增加各種傳感器,如光電傳感器、紅外傳感器、超聲波傳感器等,利用傳感器構(gòu)成的信號(hào)檢測(cè)電路實(shí)時(shí)檢測(cè)電動(dòng)車(chē)的運(yùn)行速度、運(yùn)行位置、運(yùn)行狀況,單片機(jī)接收并處理信號(hào)檢測(cè)電路檢測(cè)到的各種數(shù)據(jù),然后由單片機(jī)發(fā)出指令,從而實(shí)現(xiàn)對(duì)電動(dòng)小車(chē)的智能化控制。顯示模塊一、顯示設(shè)備的選擇方案一:采用傳統(tǒng)數(shù)碼管作為顯示設(shè)備。傳統(tǒng)數(shù)碼管具有低能耗、低損耗、低壓、長(zhǎng)壽命、耐老化、防曬、防潮、防火、防高〔低〕溫的特點(diǎn);對(duì)外界環(huán)境要求低,易于維護(hù);同時(shí)其精度比擬高,精確可靠,操作簡(jiǎn)單,程序編寫(xiě)容易,資源占用少。本設(shè)計(jì)要求顯示的內(nèi)容較多,如果利用傳統(tǒng)數(shù)碼管來(lái)顯示,那么需要好幾塊數(shù)碼管,這樣占用單片機(jī)很多的I/O口,并且不夠美觀,也不易區(qū)分各塊數(shù)碼管顯示的是什么內(nèi)容。所以,該方案不被采用。數(shù)碼管完全可用來(lái)顯示已行駛過(guò)的路程,且數(shù)碼管亮度大,夜間觀測(cè)也比擬方便,所以數(shù)碼管在一般場(chǎng)合是首選,但是數(shù)碼管只能顯示數(shù)字,發(fā)揮的空間比擬窄。所以不采用此方案。方案二:采用液晶顯示屏〔LCD〕顯示時(shí)間和路程。液晶顯示器具有功耗低、無(wú)輻射危險(xiǎn)、平面直角顯示以及影像穩(wěn)定等,可視面積大,畫(huà)面效果好,也可以顯示漢字,分辨率高,抗干擾能力強(qiáng),顯示內(nèi)容多等特點(diǎn)。因此,只要用一塊液晶顯示器就可以顯示設(shè)計(jì)要求的全部?jī)?nèi)容。此外,液晶顯示器與單片機(jī)連接電路較簡(jiǎn)單,且占用的I/O口較少?;谝陨戏治?,我們采用該方案,用LCD1602進(jìn)行顯示。采用128×64的液晶屏作為顯示器件,可以顯示小車(chē)行駛的方向,小車(chē)行駛過(guò)的路程,小車(chē)行駛過(guò)的時(shí)間等等,最重要的是液晶能夠顯示漢字,提供的信息非常直觀,故采用此方案。其原理圖如下所示:3.1.4電源模塊采用干電池組進(jìn)行供電采用四節(jié)干電池降壓至5V后給單片機(jī)及其他邏輯單元供電,另取六節(jié)干電池為電機(jī)及光電開(kāi)關(guān)供電。這樣做的目的是抑制短暫的電壓干擾,因?yàn)殡姍C(jī)在啟動(dòng)和制動(dòng)時(shí)會(huì)產(chǎn)生這種干擾,并且這樣一來(lái),邏輯單元能正常工作,單片機(jī)也能正常的工作,所以采用此方案完全可行。故采用了此方案。3.1.5機(jī)械系統(tǒng)模塊此題目要求小車(chē)的機(jī)械系統(tǒng)穩(wěn)定、靈活、簡(jiǎn)單,而三輪運(yùn)動(dòng)系統(tǒng)具備以上特點(diǎn)。由于玩具汽車(chē)的直流電機(jī)功率較小,而小車(chē)上裝有電池、電機(jī)、電子器件等,使得電機(jī)負(fù)擔(dān)較重。為使小車(chē)能夠順利啟動(dòng),且運(yùn)動(dòng)平穩(wěn),在直流電機(jī)和輪車(chē)軸之間加裝三級(jí)減速齒輪。將電池放置在車(chē)體的電機(jī)前后位置,降低車(chē)體重心,提高穩(wěn)定性,同時(shí)可增加驅(qū)動(dòng)輪的抓地力,減小輪子空轉(zhuǎn)所引起的誤差。簡(jiǎn)單,而三輪運(yùn)動(dòng)系統(tǒng)具備以上特點(diǎn)。3.2性能分析要設(shè)計(jì)一個(gè)實(shí)用的智能玩具電動(dòng)車(chē)系統(tǒng),既要表達(dá)智能,又要表達(dá)小車(chē)的經(jīng)濟(jì)性、可靠性。要保障小車(chē)可靠的運(yùn)行〔前進(jìn)、后退、左行、右行等〕,就需要小車(chē)有較強(qiáng)的抗干擾能力。因此,該系統(tǒng)除了需要硬件的保障外,還需要軟件的保障。硬件系統(tǒng)可靠性措施單片機(jī)應(yīng)用系統(tǒng)中,任何外來(lái)的干擾或內(nèi)部電路的噪聲都可能引起地址總線的紊亂或程序計(jì)數(shù)器狀態(tài)的改變,導(dǎo)致程序運(yùn)行出錯(cuò)。有效地抑制系統(tǒng)噪聲,提高系統(tǒng)的可靠性是系統(tǒng)設(shè)計(jì)必須考慮的問(wèn)題。上述防止和消除干擾的硬件主動(dòng)性措施是有效的,但并不能完全保證系統(tǒng)的正常運(yùn)行,有時(shí)還需要工作狀態(tài)的監(jiān)視、異常情況的處理與故障自恢復(fù)的問(wèn)題。這就需要配合一些硬件措施,在軟件可靠性方面著手。監(jiān)視定時(shí)器的設(shè)計(jì)與應(yīng)用是其中最常用最有效的方法之一,甚至隨著單片機(jī)技術(shù)的開(kāi)展,越來(lái)越多的單片機(jī)本身就帶有監(jiān)視定時(shí)器。監(jiān)視用定時(shí)器實(shí)質(zhì)上就是專(zhuān)用的定時(shí)/計(jì)數(shù)器,它的時(shí)鐘來(lái)自單片機(jī)內(nèi)部或外部。通過(guò)適當(dāng)?shù)某绦蛟O(shè)計(jì),使系統(tǒng)在正常運(yùn)行時(shí),定時(shí)器每隔一定時(shí)間就將其初始化一次,保證不使其計(jì)數(shù)溢出。一旦系統(tǒng)出現(xiàn)異常,程序不能正常運(yùn)行而紊亂時(shí),那么監(jiān)視定時(shí)器不能在有限的時(shí)間內(nèi)被消零,造成計(jì)數(shù)溢出,引起系統(tǒng)中斷,而使CPU轉(zhuǎn)入故障診斷與處理程序,而后恢復(fù)系統(tǒng)的正常運(yùn)行。由此可見(jiàn),監(jiān)視定時(shí)器提供了一種使系統(tǒng)從瞬間故障中能自動(dòng)恢復(fù)的能力,其軟硬件實(shí)現(xiàn)也比擬簡(jiǎn)單,因而獲得了廣泛的應(yīng)用,常稱(chēng)之為看門(mén)狗〔WATCHDOG〕。實(shí)現(xiàn)硬件“看門(mén)狗〞電路方案較多,目前采用較多的方案有以下幾種:1、采用微處理器監(jiān)控器;2、采用單穩(wěn)態(tài)電路來(lái)實(shí)現(xiàn)“看門(mén)狗〞,單穩(wěn)定電路可采用74LS123;3、采用內(nèi)帶震蕩器的記數(shù)芯片〔本設(shè)計(jì)采用〕。軟件系統(tǒng)可靠性措施為了提高玩具車(chē)系統(tǒng)智能控制的穩(wěn)定性、可靠性和系統(tǒng)的精度,僅僅依賴硬件抗干擾是遠(yuǎn)遠(yuǎn)不夠的,還需要借助于軟件來(lái)提高抗干擾能力,克服某些干擾。在單片機(jī)控制系統(tǒng)中,如能把軟件抗干擾技術(shù)與硬件干擾措施正確有效地結(jié)合,構(gòu)成雙道的抗干擾防線,這將大大提高單片機(jī)控制系統(tǒng)的穩(wěn)定性。在軟件程序方面可以采取各種措施,如數(shù)字濾波、自診斷、自恢復(fù)、設(shè)置陷阱、指令冗余等。數(shù)字濾波數(shù)字濾波能夠去除有用信號(hào)中混雜的各種干擾信號(hào),保證采集來(lái)的信號(hào)不失真,進(jìn)而到達(dá)提高應(yīng)用系統(tǒng)精度的目的。數(shù)字濾波器是根據(jù)系統(tǒng)的性質(zhì)、信號(hào)來(lái)源、工作環(huán)境、系統(tǒng)精度要求,然后通過(guò)程序的方法,采用不同形式抑制干擾。保持信號(hào)的本來(lái)面目。數(shù)字濾波有多重形式,有中值濾波、算術(shù)平均值濾波、復(fù)合濾波等,根據(jù)實(shí)際情況的不同來(lái)加以選擇和運(yùn)用。〔1〕中值濾波所謂中值濾波就是對(duì)某一個(gè)被測(cè)參數(shù)連續(xù)采樣n次〔一般n取奇數(shù)〕,然后將n次采樣值進(jìn)行排序,最后取中值作為有效值存入單片機(jī)內(nèi)部存儲(chǔ)器中。該方法主要適用于具有脈動(dòng)干擾的場(chǎng)合,它非常適合快速變化的信號(hào)采集?!?〕算數(shù)平均值濾波該方法是將n次采樣值相加,然后取其算數(shù)平均值作為本次采樣有效值來(lái)使用。〔3〕復(fù)合濾波所謂復(fù)合濾波,就是將兩種或者兩種以上的濾波方法同時(shí)使用。復(fù)合濾波可以大大提高濾波效果。目前被經(jīng)常使用的復(fù)合濾波是中值濾波和算術(shù)平均值濾波聯(lián)合使用。二、陷阱指令為了提高單片機(jī)應(yīng)用系統(tǒng)工作的穩(wěn)定性,防止程序由于干擾而“跑飛〞,可以在程序器的空白區(qū)設(shè)置空操作指令和少量的短字節(jié)轉(zhuǎn)移指令。所謂的自陷指令通常指轉(zhuǎn)移指令。在設(shè)置陷阱時(shí)最好使用單字節(jié)轉(zhuǎn)移指令,此時(shí)效果最正確。假設(shè)選用的單片機(jī)無(wú)單字節(jié)轉(zhuǎn)移指令,也可以選擇多字節(jié)轉(zhuǎn)移指令,丹藥清楚轉(zhuǎn)移指令字節(jié)數(shù)越少越好。在使用多字節(jié)轉(zhuǎn)移指令時(shí)為了提高自陷效果,在程序存儲(chǔ)器空白區(qū)盡量多寫(xiě)空操作指令NOP,越多越好,盡量少寫(xiě)多字節(jié)轉(zhuǎn)移指令,且越少越好,但必須有多字節(jié)轉(zhuǎn)移指令。在設(shè)置陷阱前,假設(shè)由于干擾使PC的地址值跑到程序存儲(chǔ)區(qū)域外,此時(shí)程序就再也無(wú)法正常運(yùn)行了。在設(shè)置了陷阱后,有空白程序區(qū)存放了大量的空操作指令和少量的轉(zhuǎn)移指令,由于干擾使PC值脫離了程序存儲(chǔ)區(qū)而進(jìn)入空白程序存儲(chǔ)區(qū),遇到空操作指令〔單字節(jié)〕,它會(huì)順著NOP執(zhí)行,當(dāng)運(yùn)行到轉(zhuǎn)移指令時(shí),系統(tǒng)又回到了正常程序區(qū)域,使系統(tǒng)恢復(fù)正常。當(dāng)然,該方法不但適用于單片機(jī)系統(tǒng),也適用于一切計(jì)算機(jī)系統(tǒng)。陷阱可以安排在四個(gè)位置,分別為:沒(méi)被用到的中斷向量區(qū)。(2)沒(méi)被用到的ROM空間(3)表格里(4)程序里第四章電路設(shè)計(jì)4.1主控電路設(shè)計(jì)STC89C51單片機(jī)硬件結(jié)構(gòu)STC89C51是ATMEL公司生產(chǎn)的系列單片機(jī)的一個(gè)型號(hào),是一種8位的低電壓、高性能的CMOS單片機(jī),片內(nèi)有只讀程序存儲(chǔ)器〔PEROM〕和隨機(jī)存取數(shù)據(jù)存儲(chǔ)器〔RAM〕,PEROM為8Kbytes且可反復(fù)擦寫(xiě),RAM為256bytes。該芯片是由ATMEL公司生產(chǎn),生產(chǎn)時(shí)用了高密度技術(shù)和非易失性存儲(chǔ)技術(shù)。其指令系統(tǒng)與標(biāo)準(zhǔn)的MCS-51兼容,引腳與8052兼容。芯片內(nèi)部有通用的8位中央處理器〔CPU〕和存儲(chǔ)單元〔FLASH〕。許多較為復(fù)雜控制應(yīng)用場(chǎng)合都選用功能強(qiáng)大的STC89C51單片機(jī)[7]。如圖4-1所示,STC89C51外圍有引腳40個(gè),外部雙向的輸入/輸出〔即I/O〕端口32個(gè),同時(shí)芯片內(nèi)部有外中斷口2個(gè),有16位的可編程的定時(shí)計(jì)數(shù)器3個(gè),有全雙工的串行通信口2個(gè),有讀寫(xiě)口線2個(gè)。STC89C51的編程僅僅能按照常規(guī)的方法進(jìn)行,不可以實(shí)現(xiàn)在線編程,其S系列的可以實(shí)現(xiàn)在線編程。另外,它的開(kāi)發(fā)本錢(qián)極低,主要是因?yàn)樗淹ㄓ玫奈⑻幚砥骱虵lash存儲(chǔ)器結(jié)合在一起,尤其是將通用的微處理器與可反復(fù)擦寫(xiě)的Flash存儲(chǔ)器融為了一體。它有如下特點(diǎn):與MCS51指令系統(tǒng)完全兼容;2.8k的FlashROM,超過(guò)1000次反復(fù)擦寫(xiě);3.多個(gè)雙向I/O口,32個(gè);4.256x8bit的內(nèi)部RAM;5.定時(shí)/計(jì)數(shù)器中斷,3個(gè)16位且可編程;6.0-24MHz可調(diào)時(shí)鐘頻率;7.串行中斷:2個(gè),串行通道為可編程UART;8.外部中斷源:2個(gè),中斷源共有8個(gè);9.讀寫(xiě)中斷口線:2個(gè),多級(jí)〔3〕加密位;10.空閑時(shí)低功耗、掉電模式,睡眠功能軟件設(shè)置和喚醒功能軟件設(shè)置;11.封裝形式較多,例如TQFP、PDIP、PQFP和PLCC等,適應(yīng)能力強(qiáng),可滿足不同產(chǎn)品的需求。最小應(yīng)用系統(tǒng)設(shè)計(jì)用STC89C51單片機(jī)構(gòu)成的最小應(yīng)用系統(tǒng)比擬簡(jiǎn)單,并且可靠。因?yàn)镾TC89C51單片機(jī)的片內(nèi)擁有ROM/EPROM。在STC89C51的外圍接上時(shí)鐘電路及復(fù)位電路便可構(gòu)成單片機(jī)最小應(yīng)用系統(tǒng),如圖4-2所示,即為STC89C51構(gòu)成的單片機(jī)最小系統(tǒng)。但是,單片機(jī)最小應(yīng)用系統(tǒng)僅僅用于某些小型的控制單元,這主要是因?yàn)槭艿郊啥鹊南拗?。STC89C51單片機(jī)構(gòu)成的最小應(yīng)用系統(tǒng)的應(yīng)用特點(diǎn)可歸納如下:1.I/O口線多,并且供用戶使用的也多;2.內(nèi)部的存儲(chǔ)器容量?。?.開(kāi)發(fā)應(yīng)用系統(tǒng)會(huì)遇到許多特殊情況。時(shí)鐘電路被譽(yù)為單片機(jī)的心臟,單片機(jī)的工作節(jié)奏完全由它控制。不同的指令功能是通過(guò)其CPU的復(fù)雜的時(shí)序電路完成的。對(duì)于STC89C51來(lái)說(shuō),時(shí)鐘信號(hào)有兩種產(chǎn)生的方式,即內(nèi)部方式和外部方式。后一種方式是從外部引入時(shí)鐘信號(hào),由外部電路產(chǎn)生,而前一種方式產(chǎn)生時(shí)鐘信號(hào)是依靠芯片內(nèi)部的振蕩電路。STC89C51單片機(jī)有兩種類(lèi)型,即HMOS型和CHMOS型,二者的時(shí)鐘電路是不同的。內(nèi)部的時(shí)鐘電路,利用STC89C51內(nèi)部具有的高增益的一個(gè)反向放大器,把一個(gè)石英晶體或陶瓷晶體和兩個(gè)無(wú)極性電容組成自激振蕩器,分別接在19腳〔XTAL1〕和18腳〔XTAL2〕之間。因此,振蕩器產(chǎn)生的脈沖就可以直接送入內(nèi)部的時(shí)鐘電路。無(wú)論是石英晶體的晶振體,還是陶瓷結(jié)構(gòu)的晶振體,振蕩頻率都可任意選擇,一般而言,頻率范圍為2.2~12MHz。對(duì)于構(gòu)成石英晶體振蕩器的兩個(gè)電容容量在20pF左右,而對(duì)于陶瓷晶體構(gòu)成振蕩器的兩個(gè)電容容量也在20pF左右。內(nèi)部時(shí)鐘電路如圖4-3所示,STC89C51的內(nèi)部工作時(shí)鐘也可以由外部振蕩器提供,這時(shí),對(duì)HMOS型芯片,XTAL1應(yīng)接地,XTAL2引入外部振蕩器的信號(hào),XTAL2引腳為內(nèi)部時(shí)鐘發(fā)生器的輸出端,XTAL1引腳為內(nèi)部反相放大器的輸人端。對(duì)于CHMOS芯片,采用外部時(shí)鐘源時(shí)接線方式與HMOS型有所不同,其外部信號(hào)接至引腳XTALI,XTAL2引腳不用。這主要是因?yàn)镃HMOS內(nèi)部時(shí)鐘發(fā)生器的信號(hào)取自反相放大器的輸入端(即與非門(mén)的一個(gè)輸入端)。CHMOS對(duì)外部振蕩器的信號(hào)沒(méi)有特殊的要求,一般為0.5~12MHz的方波,方波的波形的上升沿、下降沿時(shí)間盡可能的短,即波形應(yīng)盡量接近于理想化。μs,由此可算出單片機(jī)執(zhí)行程序延時(shí)子程序時(shí)間隔的時(shí)間?!?〕復(fù)位電路復(fù)位電路有兩種方式,即上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。圖4-3所示的復(fù)位電路屬于按鍵手動(dòng)復(fù)位。復(fù)位電路中的電阻、電容數(shù)值是為了保證在RST端能夠保持兩個(gè)機(jī)器周期以上的高電平以完成復(fù)位而設(shè)定的。按鍵手動(dòng)復(fù)位實(shí)質(zhì)包含了上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩個(gè)方面。當(dāng)手動(dòng)開(kāi)關(guān)沒(méi)有閉合時(shí),構(gòu)成上電自動(dòng)復(fù)位。此時(shí)外接的電容和電阻與電源構(gòu)成通路,電容被充電后實(shí)現(xiàn)了上電自動(dòng)復(fù)位功能。但要注意的是電容上的電壓上升時(shí)間要短,小于1ms到達(dá)Vcc,只有這樣才可以完成自動(dòng)上電復(fù)位功能。按鍵手動(dòng)復(fù)位也有兩種方式,即電平方式和脈沖方式。其中,電平復(fù)位方式是通過(guò)使RSP端經(jīng)電阻與Vcc電源接通而實(shí)現(xiàn)的,如圖4-4所示。主控電路該系統(tǒng)的主控電路的核心器件為STC89C51單片機(jī),依靠它實(shí)現(xiàn)智能控制。起初小車(chē)的起動(dòng)、復(fù)位都需要手動(dòng)完成。紅外傳感器構(gòu)成的檢測(cè)電路實(shí)時(shí)檢測(cè),并把檢測(cè)到的信號(hào)送給單片機(jī),單片機(jī)處理后由小車(chē)開(kāi)始計(jì)數(shù),動(dòng)態(tài)液晶顯示系統(tǒng)顯示行駛時(shí)間和里程。另外,單片機(jī)控制小車(chē)實(shí)現(xiàn)避障、調(diào)速。安裝在小車(chē)正前方和左右側(cè)位置的多個(gè)電傳感器檢測(cè)后傳送給單片機(jī),單片機(jī)處理該信號(hào),然后控制小車(chē)實(shí)現(xiàn)自動(dòng)避障。在電動(dòng)小車(chē)行駛過(guò)程中主要采用雙極式H型PWM脈寬調(diào)制技術(shù)實(shí)現(xiàn)小車(chē)速度的控制。電動(dòng)小車(chē)行駛過(guò)程中的靜動(dòng)態(tài)性能依賴于系統(tǒng)中的調(diào)制技術(shù)〔雙極H型調(diào)制和PWM脈寬調(diào)制〕。系統(tǒng)原理圖如圖4-5所示。智能小車(chē)采用前輪驅(qū)動(dòng),前輪左右兩邊各用一個(gè)電機(jī)驅(qū)動(dòng),調(diào)制前面兩個(gè)輪子的轉(zhuǎn)速起停從而到達(dá)控制轉(zhuǎn)向的目的,后輪是萬(wàn)象輪,起支撐的作用。將循跡光電對(duì)管分別裝在車(chē)體下的左右。當(dāng)車(chē)身下左邊的傳感器檢測(cè)到黑線時(shí),主控芯片控制左輪電機(jī)停止,車(chē)向左修正,當(dāng)車(chē)身下右邊傳感器檢測(cè)到黑線時(shí),主控芯片控制右輪電機(jī)停止,車(chē)向右修正。避障的原理和循跡一樣,在車(chē)身右邊裝一個(gè)光電對(duì)管,當(dāng)其檢測(cè)到障礙物時(shí),主控芯片給出信號(hào)報(bào)警并控制小車(chē)倒退、轉(zhuǎn)向,從而避開(kāi)障礙物。本模塊主要是對(duì)采集信號(hào)進(jìn)行分析,同時(shí)給出PWM波控制電機(jī)速度、起停,以及檢測(cè)到障礙立即報(bào)警等作用。其電路圖如圖4-6。4.2信號(hào)檢測(cè)電路設(shè)計(jì)檢測(cè)技術(shù)是自動(dòng)檢測(cè)技術(shù)和自動(dòng)轉(zhuǎn)換技術(shù)的總稱(chēng)。它是以研究自動(dòng)檢測(cè)系統(tǒng)中的信息提取、信息轉(zhuǎn)換以及信息處理的理論和技術(shù)為主要內(nèi)容的一門(mén)應(yīng)用的技術(shù)學(xué)科。它已經(jīng)滲透到人類(lèi)的一切活動(dòng)領(lǐng)域。檢測(cè)技術(shù)中的傳感器好比人完成視、聽(tīng)、味、嗅、觸〔稱(chēng)為“電五官〞〕的感覺(jué)器官,沒(méi)有傳感器就好似人沒(méi)有了“電五官〞,因此就不能實(shí)現(xiàn)自動(dòng)化,也就不能完成智能控制。自動(dòng)檢測(cè)技術(shù)與自動(dòng)保護(hù),自動(dòng)報(bào)警和自動(dòng)診斷系統(tǒng)等密不可分,有了它,就可以完成自動(dòng)計(jì)量、自動(dòng)管理。特別是近年來(lái)將傳感器與微型計(jì)算機(jī)有機(jī)結(jié)合后,帶微處理器的新型“智能化〞裝置不斷涌現(xiàn),實(shí)現(xiàn)了生產(chǎn)過(guò)程的自動(dòng)控制,從而大大提高了勞動(dòng)生產(chǎn)率,提高了產(chǎn)品質(zhì)量,減輕了勞動(dòng)強(qiáng)度和改善了勞動(dòng)條件。圖4-7信號(hào)循跡原理圖小車(chē)的信號(hào)檢測(cè)電路設(shè)計(jì)實(shí)際就是對(duì)傳感技術(shù)、檢測(cè)技術(shù)的應(yīng)用。因?yàn)樾≤?chē)要實(shí)現(xiàn)自動(dòng)循跡、自動(dòng)避障并實(shí)時(shí)顯示行進(jìn)方向、時(shí)間、里程等,必須依賴于傳感器,本設(shè)計(jì)中就選用了紅外等傳感器構(gòu)成檢測(cè)電路,如循跡功能的檢測(cè)電路,如圖4-7所示。紅外檢測(cè)電路設(shè)計(jì)該設(shè)計(jì)采用紅外對(duì)管構(gòu)成的紅外傳感器,具體電路如下圖:在小車(chē)的前端及左右安裝三對(duì)相同的紅外對(duì)管,用來(lái)檢測(cè)行駛路線的前方及左右的障礙信號(hào),每個(gè)紅外對(duì)管都有一個(gè)發(fā)射管和一個(gè)接收管,發(fā)射管發(fā)射紅外線到地面前方和左右,如果遇到障礙物那么光信號(hào)會(huì)反射回來(lái),否那么會(huì)被吸收。檢測(cè)到障礙物接收管不導(dǎo)通,輸出高電平,否那么輸出低電平。單片機(jī)根據(jù)接收到的上下電平來(lái)決定小車(chē)如何行駛。當(dāng)然障礙的檢測(cè)主要還是依靠在小車(chē)的正前端安裝的一對(duì)紅外對(duì)管,當(dāng)小車(chē)前端的紅外對(duì)管發(fā)射出的紅外光線被反射回來(lái)時(shí),說(shuō)明前方有障礙物,此時(shí)小車(chē)會(huì)進(jìn)行相應(yīng)的反響。金屬探測(cè)電路設(shè)計(jì)此局部電路的功能是模擬檢測(cè)行進(jìn)道路上的小型的障礙物,如鋁錢(qián)幣,在此我們使用的金屬傳感器是電感接近式開(kāi)關(guān)。該傳感器主要由兩局部組成,即放大處理電路、LC高頻振蕩電路。它的檢測(cè)原理是:當(dāng)金屬物體靠近感應(yīng)頭時(shí),LC高頻振蕩電路發(fā)生電磁場(chǎng)振蕩,從而產(chǎn)生渦流。接近開(kāi)關(guān)被這個(gè)渦流作用,使其振蕩能力減弱,參數(shù)就會(huì)因此在電路的內(nèi)部發(fā)生變化,這樣就可以判別出有無(wú)金屬體靠近,即地面有無(wú)小障礙,從而控制開(kāi)關(guān)的開(kāi)或關(guān)。其工作原理圖如下列圖所示:當(dāng)小車(chē)靠近鋁錢(qián)幣時(shí),控制開(kāi)關(guān)將會(huì)發(fā)生變化,輸出電壓為零伏,否那么輸出的是1.12V。由于兩者都屬于低電平,在此我們?cè)俅问褂秒妷罕葦M器,使兩種不同情況下,分別輸出高、低電平,并將它傳給單片機(jī)。單片機(jī)再根據(jù)接收到的信號(hào)去判斷是否有鋁錢(qián)幣。對(duì)小車(chē)側(cè)面障礙物的檢測(cè)由于要求檢測(cè)距離較近,外界干擾相對(duì)較弱,為簡(jiǎn)化設(shè)計(jì),我選用直流直接驅(qū)動(dòng)方式。如圖4-12所示,此電路主要通過(guò)LM393比擬器,與外部輸入信號(hào)進(jìn)行比擬,在此設(shè)計(jì)中,發(fā)光二級(jí)管的功率為25V/160?=0.156W通過(guò)調(diào)節(jié)R20可變電阻〔電位器〕來(lái)調(diào)節(jié)LM393中的比擬電壓。通過(guò)比擬器輸出0-+5V的電壓,被單片機(jī)口讀入。LM358內(nèi)部擁有兩個(gè)雙運(yùn)算放大器,雙運(yùn)算放大器各自獨(dú)立,增益高,能頻率補(bǔ)償。適合于寬電源電壓的單電源使用和雙電源工作模式,在給定的條件下,電源電流和電源電壓無(wú)直接聯(lián)系。引腳如圖4-14。它可用于傳感放大器,也可用4.3驅(qū)動(dòng)電路設(shè)計(jì)電機(jī)驅(qū)動(dòng)一般采用H橋式驅(qū)動(dòng)電路,L298N內(nèi)部集成了H橋式驅(qū)動(dòng)電路,從而可以采用L298N電路來(lái)驅(qū)動(dòng)電機(jī)。通過(guò)單片機(jī)給予L298N電路PWM信號(hào)來(lái)控制小車(chē)的速度,起停。其引腳圖如4-16,驅(qū)動(dòng)原理圖如圖4-17。電機(jī)驅(qū)動(dòng)電路使用的步進(jìn)電機(jī)是四項(xiàng)六線式,用L297和L298N驅(qū)動(dòng)芯片驅(qū)動(dòng),其中一個(gè)的驅(qū)動(dòng)電路如下圖〔另外一個(gè)于此相同〕:?jiǎn)纹瑱C(jī)AT89S52通過(guò)I/O口向L297的17和18腳發(fā)送驅(qū)動(dòng)控制信號(hào),從而控制步進(jìn)電機(jī)的速度及正反轉(zhuǎn)。4.4顯示電路設(shè)計(jì)本系統(tǒng)的顯示有兩種器件,一是LED,二是LCD。用以顯示檢測(cè)的溫度和小車(chē)運(yùn)行的狀況。4.5電源電路設(shè)計(jì)本系統(tǒng)所有芯片都需要+5V的工作電壓,而一節(jié)電池只能提供的電壓為1.2V的倍數(shù)的電壓,10節(jié)電池電壓為12V,那么需要7805穩(wěn)壓芯片。L7805能提供小于1.5A的電流,足以滿足芯片供電的要求。雖然微處理器和微控制器不需要支持電路,功耗也很低,但必須要加以考慮。由于直流電機(jī)的額定電壓大且額定電流大,可直接由12V而不經(jīng)降壓為其供電,電機(jī)驅(qū)動(dòng)電源由它來(lái)提供的。圖4-20為9V電壓經(jīng)7805穩(wěn)壓后得到5V電壓的穩(wěn)壓電路。4.6接口電路設(shè)計(jì)4.6.1前向通道設(shè)計(jì)在計(jì)算機(jī)控制系統(tǒng)中,控制對(duì)象運(yùn)行的狀態(tài)信息需要通過(guò)傳感器轉(zhuǎn)換為電信號(hào)才能輸入給計(jì)算機(jī),計(jì)算機(jī)處理后的信息也需轉(zhuǎn)換為適宜的電信號(hào)輸出到執(zhí)行器,由執(zhí)行器對(duì)控制對(duì)象實(shí)施控制作用。能實(shí)現(xiàn)控制對(duì)象與計(jì)算機(jī)之間信號(hào)傳遞和交換的裝置在計(jì)算機(jī)控制系統(tǒng)中稱(chēng)之為過(guò)程通道。過(guò)程通道解決兩類(lèi)根本問(wèn)題:一是將外部傳感器信號(hào)轉(zhuǎn)換成計(jì)算機(jī)能接收的數(shù)字信號(hào);二是將計(jì)算機(jī)輸出的數(shù)字信號(hào)轉(zhuǎn)換為外部執(zhí)行器能接受的信號(hào)。由此,過(guò)程通道可分為輸入通道和輸出通道,習(xí)慣上輸入通道又稱(chēng)為前向通道,主要用于采集來(lái)自傳感器的各種數(shù)據(jù);輸出通道又稱(chēng)后向通道,主要用于驅(qū)動(dòng)各種執(zhí)行器。在單片機(jī)系統(tǒng)中,對(duì)被控對(duì)象進(jìn)行數(shù)據(jù)采集或現(xiàn)場(chǎng)參數(shù)監(jiān)視的信息通道稱(chēng)為前向通道。包括:第一,被測(cè)參數(shù)〔如位置、位移、速度、加速度、壓力、溫度等〕被傳感器檢測(cè)轉(zhuǎn)換成電量后還需要將其轉(zhuǎn)換成數(shù)字量〔這就是AD轉(zhuǎn)換〕,,才能被單片機(jī)接受;有的雖已被轉(zhuǎn)換成數(shù)字量,如開(kāi)關(guān)信號(hào)、頻率信號(hào)等,但與單片機(jī)的數(shù)字電平不匹配,需進(jìn)一步轉(zhuǎn)換成單片機(jī)能接受的TTL數(shù)字信號(hào)。第二,被測(cè)參數(shù)較多時(shí),單片機(jī)I/O口在數(shù)量上有時(shí)不夠用。前向通道的擴(kuò)展包括:輸入信號(hào)通道數(shù)目的擴(kuò)展和信號(hào)轉(zhuǎn)換兩個(gè)技術(shù)處理問(wèn)題。簡(jiǎn)單來(lái)說(shuō)前向通道就是各種輸入設(shè)備與單片機(jī)或者控制系統(tǒng)的傳輸通道或者模式,一般來(lái)說(shuō)都是用AD轉(zhuǎn)換實(shí)現(xiàn)。如音頻信號(hào)的輸入、各種傳感器信號(hào)的輸入。根據(jù)處理信號(hào)類(lèi)型的不同,輸入通道可分為數(shù)字量輸入通道和模擬量輸入通道,輸出通道可分為數(shù)字量輸出通道和模擬量輸出通道。前向通道組成和特點(diǎn)要對(duì)生產(chǎn)過(guò)程實(shí)現(xiàn)自動(dòng)控制,就必須對(duì)它的運(yùn)行狀態(tài)進(jìn)行檢測(cè)。生產(chǎn)過(guò)程中的開(kāi)關(guān)信號(hào)、脈沖信號(hào)、數(shù)字編碼信號(hào)等,可通過(guò)數(shù)字量輸入通道輸入計(jì)算機(jī)。生產(chǎn)過(guò)程中還有許多信號(hào)〔諸如壓力、流量、溫度、液面高度等等〕是模擬信號(hào),模擬信號(hào)的大小隨著時(shí)間而連續(xù)變化,該信號(hào)由傳感器接收,由變送器轉(zhuǎn)換,把模擬的電流或電壓轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字信號(hào),這些被轉(zhuǎn)換電流或電壓信號(hào)經(jīng)過(guò)接口電路送入計(jì)算機(jī)。信號(hào)不同,其特征也不一樣,處理的要求也不一致,如表4-1圖4-21是一種前向通道結(jié)構(gòu)圖,該前向通道處理的信號(hào)主要是數(shù)字信號(hào)。感應(yīng)開(kāi)關(guān)和機(jī)械式行程開(kāi)關(guān)得到的信號(hào)必須經(jīng)轉(zhuǎn)換電平的電路轉(zhuǎn)換到達(dá)要求的開(kāi)關(guān)信號(hào)〔一般為T(mén)TL電平〕,然后送到接口電路;轉(zhuǎn)速傳感器得到的信號(hào)被送到整形電路,整形成邊的脈沖信號(hào),上升沿和下降沿才能完好,經(jīng)計(jì)數(shù)器記錄其脈沖的個(gè)數(shù);V/F〔電壓/頻率〕轉(zhuǎn)換器提供的信號(hào)是頻率信號(hào),該信號(hào)可以可直接送往接口電路或經(jīng)計(jì)數(shù)器后送往接口電路;角度編碼器提供的雖是數(shù)字信號(hào),但它需要經(jīng)相位鑒別和鎖存后才能送到計(jì)算機(jī)。傳感器送出的數(shù)字信號(hào)一般需要經(jīng)光電隔離后再傳送到計(jì)算機(jī)的接口電路。很多智能化的傳感器具備串行數(shù)字的輸出功能,因此就可以通過(guò)隔離電路送到串行接口;而具有現(xiàn)場(chǎng)總線功能的傳感器是可直接連接到現(xiàn)場(chǎng)總線,因?yàn)樗褜⑾辔昏b別和鎖存的通道集成在芯片的內(nèi)部。所示。圖4-22是另一種前向通道結(jié)構(gòu)示意圖,它主要處理模擬信號(hào)。熱敏電阻通過(guò)電橋?qū)㈦娮枳柚档淖兓哭D(zhuǎn)換為電壓信號(hào);熱電偶把溫度信號(hào)轉(zhuǎn)換為電勢(shì)信號(hào)輸出。這些信號(hào)經(jīng)放大、線性化處理、模/數(shù)轉(zhuǎn)換后送入計(jì)算機(jī)接口電路。大電流信號(hào)需要分流衰減,大電壓信號(hào)需要分壓衰減,高速信號(hào)需要采樣保持后,才能進(jìn)行A/D轉(zhuǎn)換;對(duì)輸出電流信號(hào)的傳感器,需要將電流信號(hào)轉(zhuǎn)換為電壓信號(hào),才能進(jìn)行A/D轉(zhuǎn)換;為防止現(xiàn)場(chǎng)對(duì)計(jì)算機(jī)系統(tǒng)的干擾,在前向通道中,通常還要有光電或變壓器隔離措施?!?〕傳感器的比擬〔2〕超聲波障礙檢測(cè)超聲波是一種在彈性介質(zhì)中的機(jī)械振蕩,其頻率超過(guò)20KHz,分橫向振蕩和縱向振蕩兩種,超聲波可以在氣體、液體及固體中傳播,其傳播速度不同。它有折射和反射現(xiàn)象,且在傳播過(guò)程中有衰減。利用超聲波的特性,可做成各種超聲波傳感器,結(jié)合不同的電路,可以制成超聲波儀器及裝置,在通訊、醫(yī)療及家電中獲得廣泛應(yīng)用[1]。如圖4-23所示,該圖是由超聲波構(gòu)成的檢測(cè)電路。4.6.2后向通道設(shè)計(jì)在單片機(jī)系統(tǒng)中,對(duì)控制對(duì)象輸出控制信息的通道稱(chēng)為后向通道。在后向通道設(shè)計(jì)中,必須解決單片機(jī)與執(zhí)行機(jī)構(gòu)〔如電磁鐵、步進(jìn)電動(dòng)機(jī)、伺服電功機(jī)、直流電動(dòng)機(jī)等〕功率驅(qū)動(dòng)模塊的接口問(wèn)題,這時(shí)也會(huì)遇到信號(hào)轉(zhuǎn)換〔這時(shí)由于與執(zhí)行機(jī)構(gòu)相連接,那么必須把數(shù)字信號(hào)轉(zhuǎn)換成執(zhí)行機(jī)構(gòu)能接受的模擬信號(hào)這就叫DA轉(zhuǎn)換〕、隔離及輸出通道數(shù)的擴(kuò)展等技術(shù)問(wèn)題。簡(jiǎn)單地說(shuō),后向通道指單片機(jī)或者其他控制器輸出到執(zhí)行單元的通道,在這里需要進(jìn)行把單片機(jī)能識(shí)別的數(shù)字信號(hào)轉(zhuǎn)換成執(zhí)行單元可識(shí)別的電壓或電流模擬信號(hào)。對(duì)于執(zhí)行機(jī)構(gòu)來(lái)說(shuō),后向通道就是它的信號(hào)源,因?yàn)樗瓿晌⑿陀?jì)算機(jī)與執(zhí)行機(jī)構(gòu)的信號(hào)轉(zhuǎn)換,完成微型計(jì)算機(jī)與執(zhí)行機(jī)構(gòu)的功率驅(qū)動(dòng),完成微型計(jì)算機(jī)與執(zhí)行機(jī)構(gòu)的速度匹配,完成實(shí)際應(yīng)用中的抗干擾等功能。輸出通道包括數(shù)字量的輸出和模擬量的輸出,按照輸出信號(hào)的類(lèi)型可以把后向通道分為兩種,即數(shù)字量的輸出通道和模擬量的輸出通道。模擬通道D/A轉(zhuǎn)換器——把數(shù)字量轉(zhuǎn)換為使輸出模擬量。平滑濾波器——使輸出模擬量連續(xù)。分路器——將轉(zhuǎn)換后的模擬量依次分配到多個(gè)模擬設(shè)備,使多個(gè)設(shè)備能共用一個(gè)D/A轉(zhuǎn)換器。數(shù)字通道數(shù)字量輸出通道主要由輸出鎖存器、數(shù)字光電隔離器、輸出地址譯碼電路和功率驅(qū)動(dòng)電路等組成數(shù)據(jù)鎖存——鎖存數(shù)據(jù)總線輸出信號(hào)光電隔離——防止現(xiàn)場(chǎng)干擾下列圖所示的雙極式H型可逆PWM變換器電路式的向通道?!?〕元器件的性能參數(shù)應(yīng)當(dāng)匹配通常,電子器件在出廠前都進(jìn)行了空載老化等質(zhì)量處理。必要時(shí)可對(duì)重要器件進(jìn)行帶載老化處理,使他們通上電,帶上額定負(fù)載,在恒溫箱中存放幾十小時(shí)后取出再篩選。第五章控制軟件的設(shè)計(jì)與實(shí)現(xiàn)5.1概述在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),一方面要進(jìn)行系統(tǒng)的硬件設(shè)計(jì),另一方面還要對(duì)系統(tǒng)的軟件進(jìn)行設(shè)計(jì)。對(duì)于基于單片機(jī)的智能玩具電動(dòng)車(chē)系統(tǒng)而言,大量的工作還有應(yīng)用程序的設(shè)計(jì),這個(gè)工作對(duì)于該系統(tǒng)而言更為重要。應(yīng)用軟件的一般要求在應(yīng)用系統(tǒng)軟件設(shè)計(jì)的過(guò)程中,想要設(shè)計(jì)出一個(gè)高質(zhì)量的程序,必須清楚地掌握程序的功能、程序運(yùn)行的環(huán)境以及用戶對(duì)系統(tǒng)的要求。而在通常情況下,對(duì)軟件應(yīng)用程序的要求大致可以包括以下幾個(gè)方面:實(shí)時(shí)性是指單片機(jī)應(yīng)用系統(tǒng)的軟件應(yīng)具有實(shí)時(shí)性,在工業(yè)或其它各個(gè)領(lǐng)域中控制系統(tǒng)一般都是實(shí)時(shí)控制的,所以對(duì)應(yīng)用軟件的執(zhí)行速度都會(huì)或多或少有一定的要求,即要求設(shè)計(jì)出來(lái)的程序在速度上要盡可能的快。程序的簡(jiǎn)練性是指設(shè)計(jì)出來(lái)的程序應(yīng)盡可能的簡(jiǎn)練,既要完成目標(biāo)要求,還要以最簡(jiǎn)潔的方式表達(dá)出來(lái)。在完成功能和技術(shù)要求的前提下,程序應(yīng)當(dāng)越簡(jiǎn)單越好,程序占用的存儲(chǔ)空間越小越好,這樣可減少空間應(yīng)用,防止資源的浪費(fèi)。3.程序的靈活性、可擴(kuò)展性該要求主要是指設(shè)計(jì)出的系統(tǒng)程序應(yīng)該具有較強(qiáng)的適應(yīng)能力,在設(shè)計(jì)的過(guò)程中應(yīng)盡量編寫(xiě)子程序來(lái)增加程序的靈活性,當(dāng)計(jì)算機(jī)應(yīng)用系統(tǒng)的功能需要擴(kuò)展時(shí),程序在原有根底是否容易修改,即位程序的擴(kuò)展性。在單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的過(guò)程中,系統(tǒng)運(yùn)行的過(guò)程中如果經(jīng)常出現(xiàn)因軟件問(wèn)題而產(chǎn)生的故障,那么就失去了程序應(yīng)該具有的可靠性,系統(tǒng)的可靠性在整個(gè)系統(tǒng)中是至關(guān)重要的,是決定系統(tǒng)正常工作的保障。單片機(jī)應(yīng)用系統(tǒng)的可靠性一方面取決于硬件系統(tǒng),另一方面也取決于軟件系統(tǒng)。應(yīng)用軟件的設(shè)計(jì)過(guò)程根據(jù)程序設(shè)計(jì)的要求,以及應(yīng)用系統(tǒng)功能及性能的要求,我們便可以進(jìn)行單片機(jī)匯編語(yǔ)言程序設(shè)計(jì)了,具體的設(shè)計(jì)步驟為:1.明確要求,劃定軟硬件界面。2.分析具體問(wèn)題,建立數(shù)學(xué)模型。3.根據(jù)數(shù)學(xué)模型確定相應(yīng)的算法。4.繪制出各程序模塊,如主程序、子程序的流程圖。5.選擇適宜的語(yǔ)言,如C51或匯編語(yǔ)言等,根據(jù)流程圖編制源程序,編寫(xiě)的過(guò)程中,應(yīng)盡量使用子函數(shù),以提高程序設(shè)計(jì)的速度。6.最后將各個(gè)程序模塊組合在一起,構(gòu)成一個(gè)完整的程序。應(yīng)用軟件的設(shè)計(jì)考前須知在軟件系統(tǒng)的設(shè)計(jì)過(guò)程中,應(yīng)用軟件是根據(jù)系統(tǒng)的功能和技術(shù)要求,需要根據(jù)硬件設(shè)計(jì)進(jìn)行設(shè)計(jì)。然而,由于應(yīng)用系統(tǒng)有很多種類(lèi),不同硬件有不同的特點(diǎn),因此,單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計(jì)也是千差萬(wàn)別的。一般在設(shè)計(jì)的過(guò)程中應(yīng)注意以下幾點(diǎn):1.盡量增強(qiáng)軟件抗干擾能力;2.各功能的程序盡量模塊化和層次化;3.存儲(chǔ)空間規(guī)劃合理、分配明確,并注意節(jié)省內(nèi)存;4.軟件結(jié)構(gòu)要簡(jiǎn)潔,軟件流程要合理,軟件布局要清晰;5.及時(shí)整理和備份軟件資料,使軟件檔案工作標(biāo)準(zhǔn)化。5.2軟件的結(jié)構(gòu)設(shè)計(jì)軟件控制系統(tǒng)有兩個(gè)根本的類(lèi)型:數(shù)據(jù)處理和過(guò)程控制。數(shù)據(jù)處理有標(biāo)度的變換、數(shù)據(jù)的采集和數(shù)字濾波等。過(guò)程控制主要指單片機(jī)按一定的算法實(shí)行計(jì)算,計(jì)算后輸出,從而控制生產(chǎn)。在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)控制分解成很多個(gè)局部,每一個(gè)小的局部叫做一個(gè)控制模塊。所說(shuō)的“模塊〞,實(shí)際上就是為了實(shí)現(xiàn)一定功能而相對(duì)獨(dú)立的小程序段,這種設(shè)計(jì)程序的方法就叫做程序的模塊設(shè)計(jì)法。該系統(tǒng)軟件的軟件結(jié)構(gòu)設(shè)計(jì)采用了模塊化結(jié)構(gòu)設(shè)計(jì),由主程序模塊、避障程序模塊﹑顯示程序模塊﹑電機(jī)驅(qū)動(dòng)調(diào)速程序模塊等構(gòu)成。主控程序模塊主控程序模塊電機(jī)驅(qū)動(dòng)程序模塊顯示程序模塊可靠性及保護(hù)程序復(fù)位控制程序啟??刂瞥绦蛑骺貑卧獔D5-1系統(tǒng)軟件結(jié)構(gòu)圖5.3主要模塊實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)流程圖及程序該局部主要實(shí)現(xiàn)的功能是:一方面,無(wú)障礙時(shí)車(chē)速的自動(dòng)控制;另一方面,40到障礙后,根據(jù)障礙控制小車(chē)電機(jī)的轉(zhuǎn)速和正反轉(zhuǎn)方向,使小車(chē)在相應(yīng)車(chē)速下或右轉(zhuǎn),或左轉(zhuǎn)。從而實(shí)現(xiàn)避開(kāi)障礙,繼續(xù)前進(jìn)。電機(jī)驅(qū)動(dòng)程序如下:1.PWM控制小車(chē)速度程序#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitK1=P2^4;sbitK2=P2^5;sbitIN1=P1^0;sbitIN3=P1^1;sbitEN1=P1^2;sbitEN2=P1^3;bitK1_flag=0;bitK2_flag=0;/********以下是延時(shí)函數(shù)********/voidDelay_ms(uintxms){uinti,j;for(i=xms;i>0;i--)//i=xms即延時(shí)約xms毫秒for(j=110;j>0;j--);}/********以下是0.1占空比運(yùn)轉(zhuǎn)函數(shù)********/voidspeed1(){EN1=0;//P1.0為低電平,經(jīng)ULN2003反相后輸出高電平,電機(jī)停轉(zhuǎn)EN2=0;Delay_ms(10);EN1=1;//P1.0為高電平,經(jīng)ULN2003反相后輸出低電平,電機(jī)轉(zhuǎn)動(dòng)EN2=1;Delay_ms(90);}/********以下是0.5占空比運(yùn)轉(zhuǎn)函數(shù)********/voidspeed2(){EN1=0;//P1.0為低電平,經(jīng)ULN2003反相后輸出高電平,電機(jī)停轉(zhuǎn)EN2=0;Delay_ms(40);EN1=1;//P1.0為高電平,經(jīng)ULN2003反相后輸出低電平,電機(jī)轉(zhuǎn)動(dòng)EN2=1;Delay_ms(10);}/********以下是主函數(shù)********/main(){while(1){if(K1==0){K1_flag=1;K2_flag=0;}if(K2==0){K2_flag=1;K1_flag=0;}if(K1_flag==1)speed1();if(K2_flag==1)speed2();}}2.用定時(shí)中斷控制小車(chē)速度#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitK1=P2^4;sbitK2=P2^5;sbitIN1=P1^0;sbitIN3=P1^1;sbitEN1=P1^2;sbitEN2=P1^3;uinttim=0;bitK1_flag=0;bitK2_flag=0;//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$//$函數(shù)名稱(chēng):定時(shí)器中斷處理函數(shù)$//$函數(shù)功能:定時(shí)器0中斷處理$//$輸入變量:沒(méi)有$//$輸出變量:沒(méi)有$//$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$voidTimer0(void)interrupt1//定時(shí)器0中斷處理函數(shù)入口{TH0=0xfc;//定時(shí)1msTL0=0x66;EA=0;//關(guān)中斷tim=tim+1;//時(shí)間計(jì)數(shù)加1if(tim<20){EN1=0;EN2=0;}else{EN1=1;EN2=1;}if(tim==100)tim=0;EA=1;//開(kāi)中斷}//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//$$//$函數(shù)名稱(chēng):定時(shí)器中斷初始化函數(shù)$//$函數(shù)功能:定時(shí)器0中斷初始化$//$輸入變量:沒(méi)有$//$輸出變量:沒(méi)有$//$$//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$voidtimer_init(){TMOD=0x01;//定時(shí)器0工作在方式1ET0=1;//定時(shí)器0中斷允許TH0=0xfc;//定時(shí)1msTL0=0x66;TR0=1;//定時(shí)器0開(kāi)始計(jì)數(shù)EA=1;//系統(tǒng)中斷允許}main(){timer_init();while(1);}循跡流程圖及程序#include<at89x51.h>//包含51單片機(jī)相關(guān)的頭文件#defineucharunsignedchar#defineuintunsignedintsbitLeftLed=P2^4;//定義前方左側(cè)指示燈端口sbitRightLed=P2^5;//定義前方右側(cè)指示燈端口sbitLeftIR=P3^6;//定義前方左側(cè)紅外探頭端口sbitRightIR=P3^5;//定義前方右側(cè)紅外探頭端口sbitFontIR=P3^7;//定義前方正前方紅外探頭端口sbitIN1=P1^0;//左輪前進(jìn)后退控制sbitIN3=P1^1;//右輪前進(jìn)后退控制sbitEN1=P1^2;//左輪轉(zhuǎn)動(dòng)速度控制sbitEN2=P1^3;//右輪轉(zhuǎn)動(dòng)速度控制sbitBEEP=P1^6;//蜂鳴器//sbitB1=P1^4;//定義聲控輸入端uinttim=0;/********以下是延時(shí)函數(shù)********/voidDelay_ms(uintxms)//延時(shí)程序,xms是形式參數(shù){uinti,j;for(i=xms;i>0;i--)for(j=115;j>0;j--);//此處分號(hào)不可少BEEP=!BEEP;}/********以下是延時(shí)函數(shù)********/voidDelay()//定義小車(chē)調(diào)轉(zhuǎn)子時(shí)間子程序{unsignedintDelayTime=6000;//定義小車(chē)轉(zhuǎn)彎時(shí)間變量while(DelayTime--);//小車(chē)轉(zhuǎn)彎循環(huán)BEEP=!BEEP;//蜂鳴器閃響return;}voidControlCar(unsignedcharConType)//定義電機(jī)控制子程序{//EN1=1;//EN2=1;switch(ConType)//判斷用戶設(shè)定電機(jī)形式{case1://前進(jìn){ET0=1;EN1=0;EN2=0;IN1=1;IN3=1;LeftLed=1;RightLed=1;//小車(chē)前進(jìn),左右兩指示燈熄滅break;}case2://后退{(lán)ET0=1;EN1=0;EN2=0;IN1=0;IN3=0;LeftLed=0;RightLed=0;//小車(chē)后退,左右兩指示燈點(diǎn)亮break;}case3://左轉(zhuǎn){ET0=1;EN1=0;EN2=0;IN1=0;IN3=1;LeftLed=0;RightLed=1;//小車(chē)左轉(zhuǎn),左指示燈點(diǎn)亮break;}case4://右轉(zhuǎn){ET0=1;EN1=0;EN2=0;IN1=1;IN3=0;LeftLed=1;RightLed=0;//小車(chē)右轉(zhuǎn),右指示燈點(diǎn)亮break;}case5://停止{ET0=0;EN1=1;EN2=1;IN1=1;IN3=1;LeftLed=1;RightLed=1;//關(guān)閉定時(shí)器T0,小車(chē)停止,左右兩指示燈熄滅break;//退出當(dāng)前選擇}}}voidtimer_init(){TMOD=0x01;//定時(shí)器0工作在方式1ET0=1;//定時(shí)器0中斷允許TH0=0xfc;//定時(shí)1msTL0=0x66;TR0=1;//定時(shí)器0開(kāi)始計(jì)數(shù)EA=1;//系統(tǒng)中斷允許}voidmain()//主程序入口{bitRunFlag=0;//定義小車(chē)運(yùn)行標(biāo)志位//RunShow=0;//初始化顯示狀態(tài)timer_init();ControlCar(1);//初始化小車(chē)運(yùn)行狀態(tài)while(1)//程序主循環(huán){//LeftLed=LeftIR;//前方左側(cè)指示燈指示出前方左側(cè)紅外探頭狀態(tài)//RightLed=RightIR;//前方右側(cè)指示燈指示出前方右側(cè)紅外探頭狀態(tài)//RunShow=FontIR;//數(shù)據(jù)顯示窗口,指示前方紅外探頭狀態(tài)/*if(FontIR==0)//前方紅外接收探頭接收到前方有物體信號(hào){Delay();ControlCar(2);//小車(chē)開(kāi)始后退Delay();//后退時(shí)間Delay();Delay();Delay();ControlCar(3);//后退一段時(shí)間后小車(chē)向左運(yùn)行。以避過(guò)障礙物}*/if(LeftIR==0)//左側(cè)的紅外探頭未接收到白道路信號(hào){ControlCar(4);//左側(cè)無(wú)信號(hào)時(shí),小車(chē)向右轉(zhuǎn)相應(yīng)的角度Delay();//修改該值可以調(diào)整轉(zhuǎn)彎角度Delay();//同上Delay();//同上Delay();//同上//Delay_ms(500);ControlCar(1);//轉(zhuǎn)過(guò)后開(kāi)始前進(jìn)}if(RightIR==0){ControlCar(3);//右側(cè)沒(méi)有信號(hào)時(shí),開(kāi)始向左轉(zhuǎn)一定的角度Delay();//修改這里進(jìn)行轉(zhuǎn)彎角度的調(diào)整Delay();//同上Delay();//同上Delay();//同上//Delay_ms(500);ControlCar(1);//轉(zhuǎn)過(guò)后開(kāi)始前進(jìn)}}}voidTimer0(void)interrupt1//定時(shí)器0中斷處理函數(shù)入口{TH0=0xfc;//定時(shí)1msTL0=0x66;EA=0;//關(guān)中斷tim=tim+1;//時(shí)間計(jì)數(shù)加1if(tim<30){EN1=0;EN2=0;}//假設(shè)tim小于20,那么允許小車(chē)轉(zhuǎn)動(dòng)else{EN1=1;EN2=1;}//假設(shè)tim大于20,那么小車(chē)停止轉(zhuǎn)動(dòng)if(tim==100)tim=0;//占空比為20%EA=1;//開(kāi)中斷}5.3.3顯示流程圖及程序該局部要完成小車(chē)在行進(jìn)的過(guò)程中的狀態(tài)指示,行進(jìn)方向、速度等的顯示。由于用液晶顯示,所以程序里除了要實(shí)現(xiàn)以上功能外,還需要進(jìn)行初始化、地址歸位、查忙、功能設(shè)定等等功能。程序清單如下:1.DS18B20初始化程序#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^4;//定義顯示器件DQ端口bityes0;/**********************************************************/voidDelay(uintnum)//實(shí)現(xiàn)延時(shí){while(--num);}/**********************************************************/bitInit_DS18B20(void)//DS18B20的初始化{DQ=1;//復(fù)位DQDelay(8);//延時(shí)一點(diǎn)DQ=0;//單片機(jī)拉低DQDelay(90);//精確延時(shí)大于480usDQ=1;//拉高總線Delay(8);yes0=DQ;//如果=0那么初始化成功=1那么初始化失敗Delay(100)[8];DQ=1;return(yes0);//返回信號(hào),假設(shè)yes0為0那么存在,假設(shè)yes0為1那么不存在}/**********************************************************/ReadOneByte(void)//讀一個(gè)字節(jié){uchari=0;uchardat=0;for(i=8;i>0;i--){DQ=0;//提供脈沖dat>>=1;DQ=1;//提供脈沖if(DQ)dat|=0x80;Delay(4);}return(dat);}/**********************************************************/WriteOneByte(uchardat)//寫(xiě)一個(gè)字節(jié){uchari=0;for(i=8;i>0;i--){DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;}}3.LCD顯示程序#include<reg51.h>#include"LCD_drive.h"#defineucharunsignedchar#defineuintunsignedintsbitIRIN=P3^2;//遙控輸入腳sbitLeftLed=P2^4;//定義前方左側(cè)指示燈端口sbitRightLed=P2^5;//定義前方右側(cè)指示燈端口sbitIN1=P1^0;//左輪前進(jìn)后退控制sbitIN3=P1^1;//右輪前進(jìn)后退控制sbitEN1=P1^2;//左輪轉(zhuǎn)動(dòng)速度控制sbitEN2=P1^3;//右輪轉(zhuǎn)動(dòng)速度控制sbitBEEP=P1^6;//蜂鳴器ucharIR_buf[4]={0x00,0x00,0x00,0x00};//IR_buf[0]、IR_buf[1]為用戶碼低位、用戶碼高位接收緩沖區(qū)//IR_buf[2]、IR_buf[3]為鍵數(shù)據(jù)碼和鍵數(shù)據(jù)碼反碼接收緩沖區(qū)uchardisp_buf[2];//定義顯示緩沖單元ucharcodeline1_data[]="Waiting";//定義第1行顯示的字符ucharcodeline1_Ldata[]="LEFT";//定義第1行顯示左轉(zhuǎn)的字符ucharcodeline1_Rdata[]="RIGHT";//定義第1行顯示右轉(zhuǎn)的字符ucharcodeline1_Fdata[]="FRONT";//定義第1行顯示向前的字符ucharcodeline1_Bdata[]="BACK";//定義第1行顯示向后的字符ucharcodeline1_Sdata[]="STOP";//定義第1行顯示停止的字符ucharcodeline2_data[]="--H";//定義第2行顯示的字符/********以下是0.14ms的x倍延時(shí)函數(shù)********/{uchari;while(x--)for(i=0;i<13;i++);}/*********以下是蜂鳴器響一聲函數(shù)********/voidbeep(){BEEP=0;//蜂鳴器響Delay_ms(100);BEEP=1;//關(guān)閉蜂鳴器Delay_ms(100);}/********以下是LCD顯示函數(shù),負(fù)責(zé)將鍵值碼顯示在LCD上********/voidDisplay(){if(disp_buf[1]>9){disp_buf[1]=disp_buf[1]+0x37;}//假設(shè)為字母a~f,那么加0x37,轉(zhuǎn)換為ascii碼elsedisp_buf[1]=disp_buf[1]+0x30;//假設(shè)為數(shù)字0~9,那么加0x30,轉(zhuǎn)換為ascii碼if(disp_buf[0]>9){disp_buf[0]=disp_buf[0]+0x37;}//假設(shè)為字母a~f,那么加0x37,轉(zhuǎn)換為ascii碼elsedisp_buf[0]=disp_buf[0]+0x30;//假設(shè)為數(shù)字0~9,那么加0x30,轉(zhuǎn)換為ascii碼lcd_wcmd(0x44|0x80);//從第2行第4列開(kāi)始顯示lcd_wdat(disp_buf[1]);//顯示十位lcd_wdat(disp_buf[0]);//顯示個(gè)位}/********以下是遙控鍵值解碼函數(shù)********/voidIR_decode(){ucharj,k,count=0;EX0=0;//暫時(shí)關(guān)閉外中斷0中斷請(qǐng)求if(IRIN==1)//等待IRIN低電平出現(xiàn){EX0=1;//開(kāi)外中斷0return;//中斷返回}while(!IRIN)delay(1);//等待IRIN變?yōu)楦唠娖剑^(guò)9ms的低電平引導(dǎo)碼for(j=0;j<4;j++)//收集四組數(shù)據(jù),即用戶碼低位、用戶碼高位、鍵值數(shù)據(jù)碼和鍵值數(shù)碼反碼{for(k=0;k<8;k++)//每組數(shù)據(jù)有8位{while(IRIN

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論