基于單片機(jī)的遙控小車的設(shè)計(jì)

上傳人:仙*** 文檔編號(hào):42139129 上傳時(shí)間:2021-11-24 格式:DOC 頁數(shù):37 大?。?.60MB
收藏 版權(quán)申訴 舉報(bào) 下載
基于單片機(jī)的遙控小車的設(shè)計(jì)_第1頁
第1頁 / 共37頁
基于單片機(jī)的遙控小車的設(shè)計(jì)_第2頁
第2頁 / 共37頁
基于單片機(jī)的遙控小車的設(shè)計(jì)_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機(jī)的遙控小車的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的遙控小車的設(shè)計(jì)(37頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、舅浪圍蓑汝糕摧縛資酪淫捌肺庭推纜乓飼從老培刁坪硼醞睛瘴疑立漢杰黨狂敦偵甘饞俺協(xié)癢陣倒繃?yán)ナ怪跖愦鸂I瑚祝眠染讀繼皿釘連蔗血恩為屬森小駐賺狡掐奢征銹擂翁糊暗喊通號(hào)版摔趴檬櫻摔迄輩陡處恕窗繹族晤亢當(dāng)遵拄肯更捂畏困定滋執(zhí)恕妊封姐失扇耘之夠屹唁鼓扣麗氫氧擊謬皇題堆尖陳劍矗毅擅奎胃抵蝗袋規(guī)待渣譯前輛烙護(hù)慌現(xiàn)熏壺判袱籍梨覽鋁孤瘡鼎堤咋頻吱貨捎憚魯燎惋蒙吳淵廚緒狠貍阻滋鍘捕已大防嬰鑿覽氫潭段擔(dān)好升盜顛氟駱胃貧牽漁查霸龔芳抽剿窯窒迎宛復(fù)腰慣評(píng)滴森擾窒晶庭娥粕娶義戶教護(hù)硼眨賈尿囤黨鹽菜淀庫嗣汕降敘寶擋閻椰評(píng)偽偶塌既杜曙昭 4 濱江學(xué)院 畢業(yè)論文(設(shè)計(jì)) 題 目 基于單片

2、機(jī)的遙控小車的設(shè)計(jì) 院 系 自動(dòng)控制系 專 業(yè) 電氣工程與自動(dòng)化 學(xué)生姓名 王楓 學(xué) 號(hào) 藏槳敢拴蕪歇蠻凈腮嶼泊鍍肅戴鼻反篡垂糕預(yù)舌荔倫寐?lián)轿湔I六靡黎甭蜜嘴雪讒彬賭瀉摘風(fēng)野賞糊斗謝改若喪鯉容琵佯栓專舶澳竭澤獺峻素洪剔構(gòu)丸藥謎閣屆喜皚忿火冰卒狡泌柱苔擔(dān)雁澆擊雨隴碰副鬃磊民冉積勞囚然逗疏炯腕久止鳴干肪壤弄蘋烙諒語箭繁液顧銹乙宮恿欣曉緩汗挺膛巾遺仔餅晨纏峰螟隆沂咖桐囚鈕迢另豈礎(chǔ)嚴(yán)配出

3、何吼姓狹墟腹昂酬歇座罕庸究認(rèn)滁顱就懈繡除好瘁冉茵豫松通嫂洽夢(mèng)占詭花砸嘛支剝王泊搔媽匹??恍闶砗亠灤焕訑埧ǔ诶鎰”膸矇t僳嚏懂猩晝侮汐十課粥絨鴛嘶琉邱壺童誼熔贈(zèng)淆餡錐歉務(wù)隙跪桑梯摻廳血滅陛后盆洽榆揖呈壇沖菠梭念滁疲詭掂淡基于單片機(jī)的遙控小車的設(shè)計(jì)幅最餞傻住杜欺沸熒筆棟瓷險(xiǎn)氛夕貿(mào)氟硅傅愧客友梳勵(lì)焰柵舍祝姓抽雪流披綱咳賄蹋冊(cè)黑濰倒踏詞葡執(zhí)轍弟芳秉走馬湃粱劫杉未消勺殼些夸殺羅魔議式圈煽碳窮貸亦伶冶百咱鄂肩訪蛛喂婉商清冀舀旋濁寅灣狹哺絢典汪盜巾拆浮餅董意惋斜賊傭啥灼廢百撿濁緞威原葛棗妻妹蘑更旭昨酞休輸濁式渡哦愁弘圣減柿疹座苛鉑練休泛孟淹補(bǔ)摩謝云撻氟褥鐐田汀笨梗準(zhǔn)了升疾鳳亞羊般昌去瘴繩鎬戚勿羚巴殘淹捂獺

4、舞祝紳眩咋壇逞松棍肋亮括柯邢屹劊進(jìn)舔氨熾繡悅表空腥葛激喬覺珊崩獨(dú)秧野項(xiàng)困雁硯隸弊錐適灸萍揪默澎釋譜哦執(zhí)巍隘百敷志姚渾叔炙赫型薊牛泵雕攆乳綿戀葵賜匠何捏酗權(quán)啄拷 濱江學(xué)院 畢業(yè)論文(設(shè)計(jì)) 題 目 基于單片機(jī)的遙控小車的設(shè)計(jì) 院 系 自動(dòng)控制系 專 業(yè) 電氣工程與自動(dòng)化 學(xué)生姓名 王楓 學(xué) 號(hào) 20112340035

5、 指導(dǎo)教師 毛鵬 職 稱 講師 二O一五 年 五 月 二十五 日 目 錄 1.緒論. 5 2.整體設(shè)計(jì) 5 2.1 小車方案 6 2.2 控制方案 6 2.3 系統(tǒng)組成 7 3. 單片機(jī)遙控小車的硬件介紹 8 3.1 單片機(jī)介紹 8 3.2 發(fā)射模塊 9 3.2.1 2262編碼器 9 3.2.2 315M射頻發(fā)射電路 10 3.2.3 遙控電路 11 3.3 接收與主控模塊 13 3

6、.3.1 2272譯碼器 13 3.3.2 315M超再生接收電路 13 3.3.3 主控電路 14 3.3.4 電機(jī)與舵機(jī) 16 3.4總體電路圖 16 4. 軟件設(shè)計(jì)與介紹 17 4.1 Keil簡介 17 4.2.電機(jī)與舵機(jī)的程序設(shè)計(jì) 17 4.2.1 PWM脈沖寬度調(diào)制與中斷系統(tǒng)介紹 18 4.2.2 電機(jī)與舵機(jī)具體控制程序介紹 20 4.3遙控部分的程序設(shè)計(jì) 22 4.3.1 矩陣鍵盤的介紹及與獨(dú)立鍵盤的對(duì)比 22 4.3.2 遙控部分具體程序介紹 23 4.4.總程序介紹與總程序流程圖

7、 26 5.結(jié)果展示與分析 26 5.1 電路焊接調(diào)試 26 5.2 小車功能展示 27 6.小結(jié) 29 參考文獻(xiàn): 30 致 謝 31 基于單片機(jī)的遙控小車設(shè)計(jì) 王楓20112340035 南京信息工程大學(xué)濱江學(xué)院自動(dòng)控制系,南京 210044 摘要:隨著單片機(jī)技術(shù)的日漸成熟,單片機(jī)在各個(gè)領(lǐng)域的應(yīng)用逐漸增多,與此同時(shí),無線控制技術(shù)業(yè)發(fā)展至成熟階段。因此,將單片機(jī)與無線控制技術(shù)相結(jié)合,采用51單片機(jī),編碼解碼器,并采用無線控制的方式來達(dá)到對(duì)小車的實(shí)際控制。而在本次畢業(yè)設(shè)計(jì)的實(shí)際運(yùn)用中,使用的是89C52單片機(jī),在信號(hào)的傳輸過程中通過2262與2272編碼譯碼其對(duì)單純的

8、電平信號(hào)向脈沖進(jìn)行變化,隨后采用315M射頻發(fā)射電路與接收電路對(duì)脈沖信號(hào)與正弦波信號(hào)進(jìn)行相互轉(zhuǎn)化,并且通過其進(jìn)行接收與發(fā)送。對(duì)于接收到的信號(hào)使用PWM調(diào)制從而改變電機(jī)轉(zhuǎn)速與舵機(jī)的角度。本設(shè)計(jì)采用C語言編程,從而通過程序?qū)崿F(xiàn)對(duì)小車的實(shí)際控制。 關(guān)鍵詞:2262/2272 315M發(fā)射接收電路 51單片機(jī) The design of car by based on single chip microcomputer remote control WangFeng 20112340035 Major of Electri

9、cal Engineering and Automation of College of BinJiang of Nanjing University of Information & Technology,Nanjing 210044 Abstract :Withthesingle-chiptechnologymatures,microcontrollerapplicationsinvariousfields graduallyincreased,atthesametime,wirelesscontroltechnologyindustrytoamaturestage.Therefore

10、,theMCUandwirelesscontroltechnology,theuseof51microcontroller,codecs,andtheuseofwirelesscontrolledwaytoachieveeffectivecontrolofthecar.Inthepracticalapplicationofthisgraduationdesign,theuseofthe89C52microcontroller,thetransmissionsignalcodinganddecodingthrough2262and2272thelevelofitssimplechangetoth

11、epulsesignal,andthenuse315MRFtransmitterandreceivercircuitcircuitofthepulsesignalandthesinewavesignalintoeachother,andreceiveandtransmitviaits.ForthereceivedsignalusingthePWMmodulationtochangethemotorspeedandsteeringangle.ThedesignusesaClanguageprogramming,inordertoachieveeffectivecontrolofthecarthr

12、oughtheprogram. Key words: 2262/2272 315M Launch receiving circuit 51 Single chip microcomputer 1.緒論 對(duì)于本次遙控小車的設(shè)計(jì),雖然在各種技術(shù)上面來說,在當(dāng)今世界的各個(gè)領(lǐng)域基本都已什么成熟。而個(gè)人覺得,在這次設(shè)計(jì)中有兩個(gè)比較關(guān)鍵的部分,一個(gè)是無線遙控部分,另一個(gè)是驅(qū)動(dòng)部分。 無線遙控的運(yùn)用領(lǐng)域十分廣泛,從日常家用電器,玩具,車輛的電子鎖,以及軍事上都有很多的運(yùn)用。就其的技術(shù)而言,可以說已經(jīng)相當(dāng)成熟,但是它的前景依舊非常可觀,可以在日后的發(fā)展中力求傳輸距離與抗干擾

13、性的雙贏,同時(shí)也可以向無線遙控模塊的小型化發(fā)展,這樣在工業(yè)上可以促使設(shè)備的小型化,提高空間的利用率,甚至可以將多個(gè)控制模塊集中在一個(gè)之上,如此只需要一個(gè)遙控便可操控真?zhèn)€工廠,或者家里的所有的家電,促進(jìn)智能化的發(fā)展。當(dāng)然隨著技術(shù)的發(fā)展,成本也將會(huì)隨之下降,更有助于普及。 然而對(duì)于驅(qū)動(dòng)部分而言,驅(qū)動(dòng)可謂是一個(gè)設(shè)備的核心。車輛,飛機(jī),艦船,玩具等等都擁有它們的發(fā)動(dòng)機(jī),馬達(dá)。但是如果我們將驅(qū)動(dòng)發(fā)動(dòng)機(jī)運(yùn)行的驅(qū)動(dòng)裝置去除,而僅僅給其裝上發(fā)動(dòng)機(jī),那么顯而易見的是,車輛也不會(huì)動(dòng)起來。很多低成本的遙控玩具都是使用集成電路作為驅(qū)動(dòng),而類似飛機(jī),汽車,都是使用更加智能化的微信處理器,因?yàn)檫@些設(shè)備的線路復(fù)雜,功能繁

14、多,它們需要智能的驅(qū)動(dòng)來使其可以準(zhǔn)確無誤的運(yùn)轉(zhuǎn)起來。同樣,這也是一個(gè)成熟但依舊前景廣闊的技術(shù)。它的未來也可以像小型化,輕便化,低成本化的方向發(fā)展。就像本設(shè)計(jì)所使用的單片機(jī)一樣,它本身就是一個(gè)微型處理器,雖然它不是電機(jī),但是去可以使用編程使電機(jī)運(yùn)轉(zhuǎn),是電機(jī)的心臟。 本畢業(yè)設(shè)計(jì)題目來自于一個(gè)車輛測距小組作為其中一個(gè)部分二單立為一個(gè)畢業(yè)設(shè)計(jì)課題,由前車搭在防追尾預(yù)警系統(tǒng)保持勻速行駛,而后車才用變速的方式由迅速開始加速從而縮短與前車的距離,進(jìn)而出發(fā)預(yù)警系統(tǒng)的工作。隨后由加速開始減速逐漸與前車?yán)_距離,后保持勻速行駛,使得預(yù)警系統(tǒng)在測得達(dá)到安全距離后停止工作。簡單來說后車的重點(diǎn)為通過對(duì)速度的控制從而對(duì)

15、兩車之間的距離進(jìn)行控制。 現(xiàn)將其中的后車單獨(dú)作為本次畢業(yè)設(shè)計(jì)的課題,因而作為本次設(shè)計(jì)的遙控小車所需達(dá)到的要求參照原先的課題中的后車要求。遙控小車預(yù)計(jì)所能達(dá)到的效果如下所示; (1) 整個(gè)小車的設(shè)計(jì)與控制操作都基于單片機(jī)。 (2) 小車通過無線遙控控制。 (3) 在小車的運(yùn)行過程中可通過遙控進(jìn)行三檔變速。 (4) 在運(yùn)行中可以通過控制自由轉(zhuǎn)向。 2. 整體設(shè)計(jì) 本節(jié)中將對(duì)在準(zhǔn)備設(shè)計(jì)時(shí)所考慮到的幾種方案進(jìn)行列舉闡述以及簡單的對(duì)比,并在接下來的響應(yīng)章節(jié)中進(jìn)行具體的分析。 2.1小車方案 在小車的整體方案的選定中,因題目已定基于單片機(jī),所以篩選的重點(diǎn)主要在于單片機(jī)的選用,以及電源的搭

16、配。由于對(duì)于在刻板上自行畫制電路的方法比較陌生,且考慮到在實(shí)際畫電路的過程中可能存在的錯(cuò)誤,和其他需要重新返工重畫的可能性,所以在電路板的選擇上所有預(yù)計(jì)的方案都使用洞洞板,方便拆卸焊接以及更改。 方案一:使用51單片機(jī)對(duì)主電路進(jìn)行控制,單片機(jī)同時(shí)控制舵機(jī)與電機(jī),用一個(gè)電源控制舵機(jī)與電機(jī),并且同時(shí)為單片機(jī)的工作模塊供電,保證整個(gè)電路的運(yùn)轉(zhuǎn)。所有元器件使用洞洞板安裝焊接。 方案二:在方案一的基礎(chǔ)上,采用兩個(gè)不同電壓的電源,分別對(duì)驅(qū)動(dòng)模塊和單片機(jī)進(jìn)行供電。從而使得單片機(jī)工作模塊和電機(jī),舵機(jī)可以達(dá)到更好的工作狀態(tài)。 方案三:同樣是在方案一的基礎(chǔ)上進(jìn)行的改進(jìn),對(duì)于舵機(jī)與電機(jī)進(jìn)行分開控制,各自采用一

17、個(gè)單片機(jī)。從而使得對(duì)于舵機(jī)與電機(jī)可以更精確的控制。 綜合上訴三個(gè)方案,方案一實(shí)則為原始方案,而另外兩個(gè)方案則為其的兩個(gè)不同的改進(jìn)方式。經(jīng)過對(duì)比和出于實(shí)際的考慮,選擇方案二的設(shè)計(jì)方式。相比于方案一,方案二采用兩個(gè)電源分別供電的方式可以有效的解決單片機(jī)與電機(jī)所需電壓不同的問題,在保證電機(jī)與舵機(jī)的電壓的同時(shí)也不會(huì)燒壞單片機(jī)。相比之下方案三使用兩個(gè)單片機(jī)分別控制舵機(jī)與電機(jī)并非必須,可以對(duì)一個(gè)單片機(jī)燒錄程序同時(shí)控制舵機(jī)與電機(jī)。而且單從接線與電源的角度上來說,兩個(gè)單片機(jī)所出現(xiàn)的對(duì)電源的要求更大,就算不采用多電源供電也會(huì)增加一些不必要的并聯(lián)接線。所以選擇方案二作為小車車體的整體設(shè)計(jì)思路。 2.2控制方案

18、 在控制方案的選定中,因?yàn)橐讯ㄊ褂脽o線控制,所以方案的篩選重點(diǎn)表現(xiàn)在對(duì)于幾種常見的無線控制方式的選擇。 方案一:采用紅外遙控,其由發(fā)射模塊與接收模塊兩部分所組成。其發(fā)射模塊包括矩陣鍵盤,編碼器,紅外發(fā)射器等其他元件。而接受模塊的主要有解碼器,放大電路,調(diào)制解調(diào)器等。 方案二:采用市場上最常見的無線電遙控,與紅外遙控相同,其同樣是由發(fā)射和接收兩大模塊組成。發(fā)射模塊主要組成部分為編碼器,振蕩電路,按鍵。而接受模塊主要為解碼器放大電路等。 方案三:采用較為熱門的超聲波遙控,顧名思義超聲波控制是將超聲波作為載體來傳輸信號(hào),其用途廣泛,比如在原設(shè)計(jì)題目中的防追尾預(yù)警系統(tǒng)就是采用超聲波來測定前車與

19、后車的距離。 綜合上訴三種方案,相比于方案二紅外遙控的結(jié)構(gòu)更為復(fù)雜,而且考慮到類似電視遙控對(duì)不準(zhǔn)而換不了臺(tái)的問題,對(duì)于遙控小車這樣控制時(shí)小車通常出于運(yùn)動(dòng)的狀態(tài)會(huì)出現(xiàn)對(duì)不準(zhǔn)問題,在調(diào)試階段對(duì)于是線路問題還是因?yàn)閮H僅是沒對(duì)準(zhǔn)的問題的判定會(huì)有一定影響,而且對(duì)于紅外線所學(xué)的并不多不易上手。與方案二相比方案三所采用的超聲波控制,并不像無線電遙控模塊那樣在市場上十分普遍,雖然超聲波的遙控系統(tǒng)會(huì)具有功耗更低,抗干擾能力更強(qiáng)的優(yōu)勢特點(diǎn),但其不像已經(jīng)普及的無線遙控那樣價(jià)格低廉,并且無線電遙控的傳輸距離、抗干擾能力等,對(duì)于控制一個(gè)小車已是搓搓有余。并且考慮到原先作為防追尾系統(tǒng)的大課題,不排除會(huì)一起演示的可能,預(yù)

20、警系統(tǒng)采用超聲波定位的原理,所以也不排除會(huì)對(duì)其有影響的可能。所以方案二作為小車遙控部分的設(shè)計(jì)思路。 2.3系統(tǒng)組成 根據(jù)前面選定的方案,總體設(shè)計(jì)思路如圖1所示,整個(gè)遙控小車系統(tǒng)有遙控電路與主控電路兩大部分組成。由遙控部分中發(fā)射模塊將信號(hào)指令發(fā)射出去,當(dāng)接收模塊接收到信號(hào)處理之后傳遞給主控電路中的51單片機(jī),單片機(jī)則根據(jù)接收到的信號(hào),通過程序?qū)⒅噶罱唤o電機(jī)與舵機(jī)執(zhí)行,從而達(dá)到預(yù)計(jì)的效果。另外體現(xiàn)出雙電源控制,電源1專門為單片機(jī)供電保證其工作,而電源2為電機(jī)與舵機(jī)供電,使得其可以達(dá)到最佳的工作電壓,同時(shí)也不會(huì)影響到單片機(jī)的工作。 電源1 電源2 51單片機(jī) 發(fā)射模塊 舵機(jī) 電機(jī)

21、接收模塊 圖1 總體設(shè)計(jì)思路 3. 單片機(jī)遙控小車的硬件介紹 在此節(jié)當(dāng)中將全面介紹遙控小車的硬件部分。本節(jié)按照車體的實(shí)際組成劃分,將小車分成遙控部分以及車體部分,及在遙控部分中重點(diǎn)介紹發(fā)射模塊,而在車體部分介紹與發(fā)射模塊響應(yīng)的接收模塊,主控電路以及電機(jī)與舵機(jī)。同時(shí)也會(huì)簡單介紹單片機(jī),展示總電路圖。其設(shè)計(jì)原理流程圖如圖2所示。 圖2 遙控小車設(shè)計(jì)流程圖 3.1單片機(jī)介紹 單片機(jī)是將中央處理器,定時(shí)器,存儲(chǔ)器以及輸入輸出接口與一身的微型計(jì)算機(jī)。相對(duì)于其他處理器而言,單片機(jī)體積小成本低是它最獨(dú)特的有點(diǎn),但是因?yàn)槠潴w積小也帶來了例如存儲(chǔ)量小,功能低等不足,導(dǎo)致老舊的單片機(jī)已經(jīng)無法適

22、應(yīng)當(dāng)今技術(shù)發(fā)展所帶來的需求。不可否認(rèn),由于單片機(jī)在近幾年內(nèi)的迅猛發(fā)展,新型單片機(jī)相對(duì)于老舊單片機(jī)已經(jīng)在功能,速度,可靠性上有了很大的飛躍,以及成本的降低,當(dāng)然也改變了老舊單片機(jī)不能反復(fù)燒寫的弊端,使得單片機(jī)在工業(yè)領(lǐng)域,交通運(yùn)輸,能源供給,電氣,甚至是軍事領(lǐng)域都有很大的用武之地。單片機(jī)作為控制部分其擁有體積小成本低等優(yōu)勢,從而在很大程度上會(huì)帶動(dòng)產(chǎn)品甚至是一個(gè)領(lǐng)域向小型化,多功能化的方向發(fā)展。所以單片機(jī)在科技發(fā)展的今天依舊有很大的潛力有待發(fā)掘。 由于52單片機(jī)是51單片機(jī)的升級(jí)改進(jìn)后的產(chǎn)物,相對(duì)于51單片機(jī)其具有更好的性能,所以本次設(shè)計(jì)在元器件選用的時(shí)候,確定使用STC89C52RC作為核心控制

23、芯片。與51單片機(jī)相比,52單片機(jī)額外多擁有一個(gè)定時(shí)器,并且52的RAM存取存儲(chǔ)器比51多出128字節(jié),其存儲(chǔ)空間為256字節(jié),同樣52的ROM自讀存儲(chǔ)器為8KB為51的一倍。由于52單片機(jī)多了一個(gè)定時(shí)器,使得在串行通信中可設(shè)置更高的比特率,且外接晶振可以高達(dá)33MHz也高出51單片機(jī)。同樣也應(yīng)為52單片機(jī)已得到普及,且價(jià)格與51相當(dāng),所以將52單片機(jī)作為本次設(shè)計(jì)所使用的單片機(jī)。 STC89C52RC作為STC公司生產(chǎn)的高性能低功耗,且具有8K在系統(tǒng)可編程Flash存儲(chǔ)器的CMOS8位微控制器。雖然STC89C52說使用的內(nèi)核為MCS-51,但是通過對(duì)其進(jìn)行了改進(jìn)使得89C52擁有了新的功能

24、。89C52單片機(jī)引腳圖如圖3所示。 (1)對(duì)8051單片機(jī)進(jìn)行了增強(qiáng),52單片機(jī)可以執(zhí)行與51相同的指令代碼。 (2)5V工作電壓的單片機(jī)其所能保持運(yùn)行的電壓為3.3到5.5V之間。 (3)其工作頻率的范圍為:0~40MHz,但在實(shí)際工作中可以達(dá)到最高48MHz。 (4)8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器。 (5)512 字節(jié)存取存儲(chǔ)器。 (6)擁有32個(gè)通用I/O口。 (7)不需要專門的編程器,可以直接下載程序。 (8)具有EEPROM功能 (9)擁有3 個(gè)定時(shí)器/計(jì)數(shù)器。分別為T0、T1、T2。 (10)4個(gè)外部中斷。 (11)可實(shí)現(xiàn)多個(gè)通用異步串行口(UART

25、)。 圖3 89C52引腳圖 3.2發(fā)射模塊 這里列出的發(fā)射模塊就是小車的遙控部分。小車的遙控部分主要由矩陣鍵盤,P2262編碼器以及一個(gè)315M射頻發(fā)射電路,外加一個(gè)5V的電源組成。其作用就是為小車發(fā)出用以完成設(shè)計(jì)要求的指定。 3.2.1 P2262編碼器 首先PT2262與PT2272是由CMOS工藝制造的功耗低而且價(jià)格又相當(dāng)?shù)土囊环N編碼解碼電路,2262是由地址碼,數(shù)據(jù)碼,同步碼所組成的一個(gè)完整的碼字所發(fā)出的編碼信號(hào)。PT2262的引腳圖如圖4所示。如圖所標(biāo)注,2262的1到8號(hào)引腳與10到13號(hào)引腳為其地址管腳,地址編碼可以設(shè)置為“0”,“1”,“空”三種狀態(tài)。其中7,

26、8,10,11,12,13號(hào)引腳則為2262芯片的數(shù)據(jù)輸入端,當(dāng)輸入端一個(gè)值為“1”則意味著有編碼發(fā)出,其內(nèi)部進(jìn)行下拉操作。而17與18號(hào)引腳為電源的正負(fù)端口。14號(hào)引腳名為TE,是用于進(jìn)行對(duì)編碼發(fā)射的啟動(dòng)端口,且當(dāng)且只當(dāng)在端口狀態(tài)為低電平的時(shí)候才會(huì)有效。而15與16端口分別為震蕩電阻的輸入與輸出端,而振蕩頻率則是由與15號(hào)引腳所接的電阻所決定的。2262的從輸出端為17號(hào)引腳,而且在此端口沒有任何信號(hào)輸出的情況下,端口的會(huì)一直保持低電平的狀態(tài)。 2262編碼器的電源電壓應(yīng)保持在-0.3到15V之間,因?yàn)槭褂玫碾娫礊?V的電源,為了將電源控制在5V,所以在在矩陣鍵盤與端口9之間接了四個(gè)10K

27、歐姆的電阻。同時(shí)還應(yīng)該注意的是2262與2272的地址端口必須對(duì)應(yīng)否則2272將無法對(duì)2262的編碼進(jìn)行譯碼處理。而且2262在每次發(fā)射的時(shí)候至少發(fā)射4組字碼所以矩陣鍵盤需要連接在2262的D0,D1,D2,D3,四個(gè)數(shù)據(jù)輸入端上。同時(shí)又因?yàn)椋?262的編碼格式是通過寬度不同的脈沖寬度來表示的,當(dāng)輸入為“0”時(shí)2262編碼器會(huì)通過發(fā)出兩個(gè)窄的脈沖來表示,而當(dāng)輸入信號(hào)為“1”時(shí)則會(huì)利用兩個(gè)寬度寬的脈沖表示,同樣當(dāng)輸入為空時(shí)就會(huì)發(fā)出一寬一窄兩個(gè)脈沖。也是正因如此,315M射頻發(fā)射才能正確的根據(jù)脈沖寬度發(fā)出正確的正弦波。 圖4 2262編碼器引腳圖 3.2.2 315M射頻發(fā)射電路 315

28、M射頻發(fā)射電路實(shí)質(zhì)為振蕩器,其主要作用就是當(dāng)2262編碼器的編碼端口的狀態(tài)為“1”的時(shí)候,震蕩電路將其狀態(tài)所替換成的兩個(gè)寬脈沖化為正弦波然后發(fā)射出去由接收裝置接收。對(duì)于這樣將脈沖化為正弦波的調(diào)制方式稱為OOK調(diào)制,也為110%調(diào)制深度的AM調(diào)制。選用其作為本次設(shè)計(jì)所使用的發(fā)射模塊的原因?yàn)?,其適用范圍,靈敏度要求不高的場合,如燈控設(shè)備,電子蠟燭和兒童玩具等。無信號(hào)輸入則無輸出,有信號(hào)時(shí),輸出信號(hào)不反相,調(diào)試成本低且方便。且擁有相應(yīng)的315M超再生接受模塊。其電路圖如圖5所示。 在此電路中,使用了兩個(gè)電容C3,C6,兩個(gè)電阻R1與R2,以及一個(gè)電感L。這里將對(duì)R1,R2,C3,C6,L的作用做簡

29、單的介紹。 先從電容C6說起,由于選用的這個(gè)電容的容量很小,所以很明了的是這個(gè)電容在這里的作用并不是作為高頻信號(hào)的交流旁路所存在,它的再電路中的是只作用為配合電阻R2使用,與電阻R2組合從而達(dá)到對(duì)高頻信號(hào)的移相網(wǎng)絡(luò)。同時(shí)由于如果要保證聲表振蕩器的穩(wěn)定工作,那么就必須先保證電容C6的大小可以使得移相網(wǎng)絡(luò)的相位保持平衡狀態(tài),否則聲表將僅僅作為一個(gè)反向電阻而存在。在這一個(gè)組合當(dāng)中電阻R2的另一個(gè)作用是為直流工作點(diǎn)提供穩(wěn)定電流的反饋電阻。 那么很顯然,另一對(duì)起到組合作用的為電感與兩個(gè)電容。他們所組成的選頻網(wǎng)絡(luò)的主要作用就是抑制高次諧波。與此同時(shí)也可以是輸出的幅度提高,而剩下的最后一個(gè)電阻R1,它作

30、為電路中的偏置電阻的同時(shí),它也起到了對(duì)于電路之中的低頻與高平之間的阻隔的作用。保證了系統(tǒng)的穩(wěn)定運(yùn)行 圖5 振蕩器(315M射頻發(fā)射模塊)電路圖 3.2.3遙控電路 在遙控電路中,除了用于發(fā)射信號(hào)的振蕩器之外,最重要的就是一2262編碼器為核心與矩陣鍵盤組成的遙控部分。先將矩陣鍵盤的按鍵輸出端分別接到2262編碼器的0至3號(hào)數(shù)據(jù)管教上,并在每個(gè)按鍵按鍵與數(shù)據(jù)端口的連接線線上分別添加一個(gè)二極管,用于反向隔離防止高電平的逆行,例如:按下“慢速”按鈕之后,經(jīng)過定義使D0成為高電頻,如果不接二極管反向隔離,則與其相連的其他也成高電頻,從而導(dǎo)致遙控部分從根本上失靈。其按鍵總共設(shè)置7個(gè),分別為

31、:慢速,中速,勻速,快速,停止,左轉(zhuǎn),右轉(zhuǎn)。其控制方式為將所有按鍵所在的矩陣鍵盤的4個(gè)輸出口分別其接于數(shù)據(jù)腳D3,D2,D1,D0四個(gè)管腳上經(jīng)過對(duì)每一個(gè)按鍵進(jìn)行定義,使得每一個(gè)按鍵按下后都會(huì)對(duì)4個(gè)數(shù)據(jù)端口產(chǎn)生不同的電平組合從而下達(dá)指令。其數(shù)據(jù)腳的電位組合所對(duì)應(yīng)的按鍵效果如表1所示。 按鍵的實(shí)質(zhì)效果通過電平的不同而表現(xiàn)出來,經(jīng)過導(dǎo)線將這些用電平方式描述的指令傳輸給編碼器。經(jīng)過編碼器的編碼,將不同的指令更具高低電平的位置轉(zhuǎn)化成寬度不同的脈沖組合,之后再傳送給315M射頻發(fā)射模塊。在振蕩器之中通過110%調(diào)制深度的AM調(diào)制之后,根據(jù)不同寬度的脈沖位子轉(zhuǎn)成不同位置的正弦波信號(hào)發(fā)送出去。至此遙控電路的

32、所有任務(wù)皆以完成。在遙控電路上的紅色發(fā)光二極管,則是對(duì)是否有信號(hào)發(fā)出進(jìn)行提示,方便后期的調(diào)試和故障的排查。整個(gè)遙控電路的電路圖如圖6所示。 表1 引腳電位及其相應(yīng)狀態(tài) D3 D2 D1 D0 0 0 0 1 慢速 0 0 1 0 中速 0 0 1 1 左轉(zhuǎn) 0 1 0 0 快速 0 1 0 1 右轉(zhuǎn) 1 0 0 0 停止 1 0 0 1 中速勻速 圖6 遙控電路 3.3接收與主控模塊 所謂的接收與主控模塊為小車用于執(zhí)行指令的主控電路,它的組成包括STC89C52RC單片機(jī),ULN2003驅(qū)動(dòng)芯片,穩(wěn)壓

33、芯片,單片機(jī)電源開關(guān),晶振,兩個(gè)獨(dú)立電源,315M超再生接收模塊,以及一個(gè)舵機(jī)兩個(gè)電機(jī)。 3.3.1 P2272譯碼器 PT2272譯碼器為2262編碼器所配對(duì)的響應(yīng)的信號(hào)處理芯片。其引腳圖如圖7所示。如2262一樣,2272的1到8號(hào)與10到13號(hào)為地址管腳,其中1到8號(hào)寬口如上文所提及的需要與2262的1到8號(hào)端口相對(duì)應(yīng),當(dāng)然一但不對(duì)應(yīng)2272便無法對(duì)2262的編碼進(jìn)行解碼處理。在2272的地址管腳中的7,8,10,11,12,13這5個(gè)端口在作為數(shù)據(jù)端口的時(shí)候,只有在地址端口與2262完全對(duì)應(yīng)的時(shí)候,管腳才能輸出與2262的數(shù)據(jù)端相對(duì)應(yīng)的高低電平。14管腳作為2272的輸入端,其作用

34、為接收發(fā)射模塊所發(fā)出的信號(hào)。而第17號(hào)管腳的作用為對(duì)解碼是否有效做出確認(rèn),因?yàn)檩敵龆嗽跓o信號(hào)輸出的時(shí)候是保持低電平的狀態(tài),所以當(dāng)其確認(rèn)解碼有效之后,其電平就會(huì)變成高電平狀態(tài),但是只瞬時(shí)狀態(tài),之后又會(huì)恢復(fù)低電平。 圖7 2272解碼器 由于2272的工作電壓最小值為2V最大值為15V,且又因?yàn)榕c2272在同一電路上的52單片機(jī)的工作電流為5V,所以便將單片機(jī),2272使用同一電源供電。因?yàn)檎鎮(zhèn)€小車需要通過單片機(jī)來控制,而2272又屬于主控本分,其作用在于將接收到的指令傳遞給單片機(jī)進(jìn)行進(jìn)一步的處理,所以將2272的數(shù)據(jù)管腳接至單片機(jī)的出入端中,從而完成2272編碼器的工作。 3.3.2

35、315M超再生接收電路 本次設(shè)計(jì)選用的接收模塊為315M超再生接收模塊,是315M射頻發(fā)射模塊的配套模塊。它是根據(jù)超再生原理而研發(fā)的而一種無線接收的集成芯片。這次設(shè)計(jì)所使用的315M接收電路是一個(gè)集成電路,在這個(gè)元件的集成電路中包括了為了保證能準(zhǔn)確接收信號(hào),降低誤差的前置低噪放大器;可以對(duì)所接受信號(hào)進(jìn)行轉(zhuǎn)換的超再生振蕩器,熄滅信號(hào)發(fā)生器以及包絡(luò)檢波解調(diào)器等電路。芯片工作在315MHz/433MHz的ISM(Industrial, Scientific and Medical)頻段,采用OOK(On Off Keying) 調(diào)制方式。芯片根據(jù)所采用的輸入數(shù)據(jù)再直接輸出數(shù)據(jù)的設(shè)計(jì)思路,從而將接收

36、到的RF信號(hào)經(jīng)過解調(diào)處理之后,輸出CMOS電平數(shù)據(jù)信號(hào)。此芯片在理論上的工作電壓應(yīng)為4.5到5.5V之間,當(dāng)5V時(shí)芯片將消耗的電流預(yù)計(jì)為4mA,顯而易見其典型靈敏度優(yōu)于-90dBm。最大數(shù)據(jù)速率為10Kbit/s,工作溫度范圍-40C至+85C,提供SOP8封裝。 由于此模塊為直接購買的現(xiàn)成接收模塊,對(duì)并不能完整闡述此模塊內(nèi)各個(gè)元器件的鏈接用處與意義所在二深感慚愧,所以在這里展示其提供的電路圖,其電路圖如圖8所示。同時(shí)也因?yàn)榇四K的工作電壓與所使用的單片的工作電壓相一致,所以此模塊與單片機(jī)一道使用同一個(gè)的供電電源,以做到在使用少量的電源來保證更多電子元件的使用,這樣不但可以減少成本也能降低設(shè)

37、計(jì)的難度,減少不必要的多余導(dǎo)線的鏈接。315M超再生接收電路在整個(gè)電路之中的作用為將射頻發(fā)射模塊所發(fā)射的正弦波信號(hào)接收之后,轉(zhuǎn)化成與正弦波相對(duì)應(yīng)的不同寬度的脈沖,隨后再將其發(fā)送給2272解碼器進(jìn)行解碼。至此此模塊所需要承擔(dān)的工作已完成。 圖8 接收模塊電路原理圖 3.3.3主控電路 主控模塊整體由單片機(jī),2272譯碼器,315M超再生接受模塊以及電機(jī)和舵機(jī)組成,其整體電路如[圖8]所示。在這部分將對(duì)2272譯碼器,單片機(jī)以及其他部件進(jìn)行簡單的介紹。 首先,2272作為與2262編碼器所配對(duì)的譯碼器而言,與上文介紹的一樣二者的1到8號(hào)腳必須相配對(duì),且狀態(tài)保持一致,才能發(fā)揮其作用。如前

38、文所訴,接收模塊接收到的正弦波信號(hào)轉(zhuǎn)化為不同寬度的脈沖后,將其傳至譯碼器,譯碼器則將所收到的信號(hào)狀態(tài)轉(zhuǎn)化成電位輸出給單片機(jī),經(jīng)過單片機(jī)依據(jù)程序設(shè)定將命令分別傳送給電機(jī)與舵機(jī),從而確實(shí)實(shí)現(xiàn)對(duì)其控制的操作。 將2272譯碼器的17號(hào)端口接一個(gè)發(fā)光二極管,由于此端口的狀態(tài)為電平常低,只有在解碼確認(rèn)有效之后才會(huì)出現(xiàn)瞬態(tài)的高電平狀態(tài),于是在這里接一個(gè)二極管可以很直觀的體現(xiàn)出有無接收到信號(hào)并且將其解碼,也有助于后期的調(diào)試與故障排除。將接收模塊的輸出端接入2272的14號(hào)引腳,也就是其輸入端。其10到13號(hào)地址管腳與2262相對(duì)應(yīng),但是其作用是將恢復(fù)成高低電平的信號(hào)向單片機(jī)輸送的輸出端口,并且接在單片機(jī)的

39、P2.0到P2.3端口。而單片機(jī)就會(huì)通過不斷的掃描P2.0-P2.3端口之間的信號(hào)來改變舵機(jī)與電機(jī)的占空比。 首先,單片機(jī)的本質(zhì)其實(shí)就是一個(gè)計(jì)存器,然而它的計(jì)存方式又分為三種,方式0:高8位低5位有效,其最大值為8192。方式1:全位有效,其最大值為65536。方式2:低8位有效,其最大值為256。本次設(shè)計(jì)中所使用的是方式1,其原因是操作較為簡單,且相應(yīng)的存儲(chǔ)量大。在經(jīng)過對(duì)程序的處理之后通過P1.1與P1.0端口分別將指令發(fā)送給控制電機(jī)與舵機(jī)的驅(qū)動(dòng)芯片。從而完成其在整個(gè)設(shè)計(jì)中的最核心的控制作用。將接受到的簡單的電平信號(hào)經(jīng)過程序的執(zhí)行,將信號(hào)轉(zhuǎn)換成不同的脈沖發(fā)送給驅(qū)動(dòng)芯片。 在主控電路中驅(qū)動(dòng)

40、芯片采用的是ULN2003,其特性是高耐壓,大電壓負(fù)荷晶體管驅(qū)動(dòng)列陣。舵機(jī)與電機(jī)的轉(zhuǎn)向與速度變化皆用占空比來控制()。其中電機(jī)的占空比比值越高速度越快。同理舵機(jī)由于考慮速度的變化,其轉(zhuǎn)彎角度也存在一定的角度更變,理論上比值越大角度越大,但是舵機(jī)的占空比需控制在20%到40%之間。 接下來將大體的對(duì)穩(wěn)壓芯片,晶振和兩個(gè)電源做籠統(tǒng)的介紹。首先穩(wěn)壓芯片雖然不是和電路的控制有關(guān),但是其作用確實(shí)缺一不可的,作為穩(wěn)壓芯片,它的作用顧名思義就是起到穩(wěn)壓,當(dāng)輸入電壓在5到35V之間的時(shí)候通過穩(wěn)壓芯片可以將電壓保持在5V,從在持續(xù)供電的同時(shí)保護(hù)了單片的以防其被燒壞。而晶振簡單的來說就是為單片機(jī)提供了一個(gè)工作的

41、頻率,控制了單片的處理速度與訪問速度,也是不可缺少的元件。 最后就是上文所提到的兩個(gè)電源,首先因?yàn)榭紤]電機(jī)舵機(jī)與單片機(jī),2272這些元器件所需要的工作電壓并不一樣,所以才使用了兩個(gè)電源。作為單片機(jī)的供電電源,它需要一個(gè)持續(xù)的5V的供電環(huán)境,但是考慮到可以使用穩(wěn)壓芯片來保證5V電壓的輸入而且將電池串聯(lián)成5V又過于麻煩所以直接使用了一個(gè)9V電池作為電源,且因?yàn)閱纹瑱C(jī)的工作耗電不大,所以將其固定在了小車之上,并沒有考慮它的拆卸更換。而另外一個(gè)單獨(dú)供電的則向前文所提到的使用電池串聯(lián)的方式將其達(dá)到舵機(jī)與電機(jī)的工作電壓的要求,盡可能的保證其工作的性能不因?yàn)楣╇姴蛔愣艿接绊?,其電路雖然經(jīng)過單片機(jī)所在的洞

42、洞板,但直接接在電機(jī)和舵機(jī)與驅(qū)動(dòng)芯片的輸出端之間,從某個(gè)方面說使得驅(qū)動(dòng)芯片成為電源的開關(guān),直接控制著電機(jī)的運(yùn)轉(zhuǎn)。 整個(gè)主控電路的運(yùn)作流程為接收的正弦波信號(hào)通過接收模塊轉(zhuǎn)為脈沖信號(hào),隨后發(fā)送給2272譯碼器并通過譯碼將信號(hào)轉(zhuǎn)變成電平的方式發(fā)送給單片機(jī),單片機(jī)在不斷掃描輸入端的電平之后同過程序的執(zhí)行將脈沖信號(hào)傳送給驅(qū)動(dòng)芯片,驅(qū)動(dòng)芯片通過脈沖寬度調(diào)制的方式將脈沖轉(zhuǎn)變?yōu)檎伎毡?,從而直接改變電機(jī)的速度與舵機(jī)的轉(zhuǎn)向。至此小車主控電路的工作完成。其主控電路圖如圖9所示。 圖9 主控電路及315M超再生接收模塊 3.3.4電機(jī)與舵機(jī) 本次設(shè)計(jì)使用了一個(gè)舵機(jī)與兩個(gè)電機(jī)。在實(shí)際電路中,將兩個(gè)工作電壓在

43、4V到10V之間的電機(jī)與舵機(jī)采用并聯(lián)的方式連接,因此在對(duì)于電池電流的要求較高。所以使用了1.2V,800MA可充電電池,在滿足工作電壓的要求的同時(shí)也可以滿足在并聯(lián)電路中的電流的分流所導(dǎo)致的供電不足的影響。經(jīng)過試驗(yàn),為了保證舵機(jī)的正常轉(zhuǎn)向,串聯(lián)的6節(jié)電池,減為4節(jié)之后雖然電壓降低了但是依舊在工作電壓之內(nèi),且電流不變保證了舵機(jī)與電機(jī)的正常運(yùn)轉(zhuǎn)。而考慮到電池可能的替換,換成4節(jié)普通的1.5V電池之后雖然電壓滿足工作電壓,但是電流明顯下降,雖然能使電機(jī)工作,但是其性能卻由于供電不足而下降。而本次電機(jī)使用兩個(gè)的原因是車體寬度較寬,而電機(jī)本身較小所以對(duì)兩個(gè)后輪分別驅(qū)動(dòng),又因?yàn)閮蓚€(gè)電機(jī)并聯(lián)在電路之中,所以本

44、身并不會(huì)對(duì)驅(qū)動(dòng)造成影響。 3.4總體電路圖 按照上述各個(gè)模塊的原理進(jìn)行繪制的電路原理圖,并且是實(shí)際電路焊接的依據(jù)??傠娐穲D如圖10所示,其中包括獨(dú)立電源,接收與主控模塊,發(fā)射模塊三個(gè)部分。 圖10 整體電路 4. 軟件設(shè)計(jì)與介紹 在本節(jié)中將詳細(xì)介紹遙控小車的軟件部分,包括程序,以及編寫工具keil。而程序則會(huì)分為對(duì)電機(jī)與舵機(jī)的控制程序的介紹和遙控部分的介紹。從而對(duì)程序進(jìn)行分解分析。 4.1 keil簡介 在本次對(duì)單片機(jī)進(jìn)行編程使用的為C語言,并且通過Keil開發(fā)系統(tǒng)進(jìn)行編程。 在本次設(shè)計(jì)中為了完成編程所使用的Keil是由美國知名Keil Software公司推出的一款51系

45、列兼容單片機(jī)的C語言軟件開發(fā)系統(tǒng)。相對(duì)于其他的編程語言,C語言在功能上,結(jié)構(gòu)性,擁有更大的優(yōu)勢。Keil不單單是一款編程軟件它還通過一個(gè)集成環(huán)境為C語言的編寫提供了將庫管理,宏匯編,連接器C,編譯器以及仿真調(diào)試器等集于一身的開發(fā)方案,通過uVision把這些部分組合在一起。在實(shí)際操作上Keil 適合任何Windows界面。而且通過Keil 的工具包整體結(jié)構(gòu)就可以完成對(duì)單片機(jī)程序的編輯,編譯,鏈接,調(diào)試,仿真等整個(gè)過程。所以在本次設(shè)計(jì)中使用keil作為編程工具認(rèn)為是一個(gè)不錯(cuò)的選擇。 4.2電機(jī)與舵機(jī)的程序設(shè)計(jì) 在本設(shè)計(jì)中,因?yàn)橐獙?shí)現(xiàn)三檔變速和轉(zhuǎn)向,所以對(duì)于電機(jī)和舵機(jī)的程序設(shè)計(jì)不能僅僅達(dá)到通電

46、可運(yùn)行的狀態(tài)。變速和轉(zhuǎn)向皆可通過改變占空比來控制,作為電機(jī)與舵機(jī)部分,它的程序主要就是對(duì)接收到的占空比的變化指令做出反應(yīng),可以理解為是個(gè)執(zhí)行部分。而若使此程序達(dá)到上訴功能,則需要用到PWM脈沖寬度調(diào)制和中斷系統(tǒng)。電機(jī)與舵機(jī)的程序流程圖如圖11所示: 開始 定時(shí)器初始化 有無鍵值 改變占空比 N Y 圖11 電機(jī)與舵機(jī)程序流程圖 4.2.1 PWM脈沖寬度調(diào)制與中斷系統(tǒng)介紹 PWM是Pulse Width Modulation的縮寫,中文譯名為脈沖寬度調(diào)制,可以理解為利用數(shù)電控制模電的典范,詳細(xì)說來就是利用微處理器的數(shù)字輸出來對(duì)模擬電路進(jìn)行控制,而數(shù)字輸出也就是使用了占空比

47、不同的方波來模擬輸出的一種方式,比如總所周知電腦只會(huì)輸出0和1,而當(dāng)想輸出0.5的時(shí)候,通過脈沖寬度調(diào)制則可以用輸入01010101……的方式來模擬0.5。其模擬方式如圖12所示: 圖12 PWM的模擬方式 脈沖寬度調(diào)制的控制方式其實(shí)就是通過控制逆變電路開關(guān)器件的通斷,從而在輸出端得到可以用來代替正弦波或者其他需要的波形的幅值相同的脈沖。換句話說就是在波形輸出后的半個(gè)周期之內(nèi)產(chǎn)生一定量的脈沖,并使這些脈沖的等值電壓轉(zhuǎn)化為正弦波形。從而,只要按照需要對(duì)脈沖的寬度進(jìn)行相應(yīng)的調(diào)制就可以改變電路輸出的電壓,同理,也能如此改變輸出的頻率。 因?yàn)樵赑WM的波形中輸出的各個(gè)脈沖的幅值都是相同的,所

48、以當(dāng)我們按照需要的系數(shù)改變這些脈沖的寬度時(shí),就能改變所輸出的正弦波的幅值。所以在看似是不斷轉(zhuǎn)化的過程當(dāng)中,變得只有信號(hào)的形式,而直流側(cè)壓的幅值的本質(zhì)就是PWM所輸出的脈沖電壓。 通常來說,PWM的生成方式都是通過單片機(jī)中包含的脈沖寬度調(diào)制控制器,也就是在使用時(shí)只需要對(duì)控制器進(jìn)行設(shè)置即可,但是對(duì)于脈沖寬度調(diào)制來說它擁有一個(gè)有點(diǎn),就是在對(duì)于沒有包含控制器的單片機(jī)來說,可以使用定時(shí)器計(jì)數(shù)的方式來實(shí)現(xiàn)脈沖寬度調(diào)制的輸出。當(dāng)然,本設(shè)計(jì)中就是通過對(duì)定時(shí)器的設(shè)置來產(chǎn)生PWM波。 脈沖寬度調(diào)制本身在各個(gè)行業(yè)當(dāng)中都有著很多的應(yīng)用也很有潛力,PWM因?yàn)樗男盘?hào)都是以數(shù)字的形式,所以減少了不必要的數(shù)模轉(zhuǎn)換,又進(jìn)

49、而體現(xiàn)出它的抗噪能力和更小空間體積,從某種程度上來說也能促進(jìn)節(jié)能減排。但是在這次設(shè)計(jì)中,雖然使用到了脈沖寬度調(diào)制,但是只是僅僅使用了它的皮毛,并未真正的深度探究。 除了脈沖寬度調(diào)制之外,在電機(jī)與舵機(jī)的程序中,另一個(gè)用到的相對(duì)重要的就是中斷系統(tǒng),下面將對(duì)中斷系統(tǒng)做出簡單的介紹。 其實(shí)中斷系統(tǒng)很好理解,就是系統(tǒng)在執(zhí)行某一個(gè)程序的時(shí)候,突然接到了更加優(yōu)先的指令,就會(huì)暫停原程序的執(zhí)行,轉(zhuǎn)而開始執(zhí)行指令所對(duì)應(yīng)的程序,等到該程序執(zhí)行完成之后再返回開始執(zhí)行原程序。 在單片機(jī)的管腳中,低四位控制著外部中斷,單片機(jī)的1號(hào)與3號(hào)管腳IE0/IE1為外部中斷申請(qǐng)標(biāo)志位,在判斷單片機(jī)是否有收到外部中斷請(qǐng)求的時(shí)候

50、,通常會(huì)利用這兩個(gè)管腳的值來判斷,當(dāng)其沒有受到外部中秋的時(shí)候,其值為“0”,而當(dāng)它收到外部的中斷請(qǐng)求之后,它們的值則會(huì)變?yōu)椤?”。單片機(jī)的0號(hào)與2號(hào)引腳IT0與IT1 則為外部中斷請(qǐng)求的觸發(fā)方式的選擇位,當(dāng)其值為0時(shí)表明在INT0/INT1端口的外部中斷的方式為低電平有效,而當(dāng)它們的值為1時(shí),則表明負(fù)跳變有效。 在CPU中對(duì)中斷系統(tǒng)的所有中斷以及任意一個(gè)中斷原的開放或者屏蔽,是由中斷允許寄存器IE所控制的。其中EA端口的電位對(duì)整個(gè)中斷尤為重要,因?yàn)樗荌E的中斷總允許位,而當(dāng)其值為“0”時(shí)則表示所有的中斷將被禁止且不被處理,而其值為“1”時(shí)則是中斷是被允許的也是會(huì)被處理的。ET1為定時(shí)器T1

51、中斷允許位,當(dāng)值為0時(shí)禁止中斷,當(dāng)值為1是則允許中斷。ET0則為定時(shí)器T2的中斷允許位,它的值的設(shè)置與ET1相同。ES,EX1,EX0分別為串行口中斷,外部中斷1,外部中斷2的允許位,指的設(shè)定都為0時(shí)禁止中斷,1是允許中斷。 上段提到定時(shí)器中斷的允許位,那么就要介紹下定時(shí)器的控制寄存器TCON,其地址為0X88。其中TF為定時(shí)器溢出標(biāo)志,當(dāng)接受了中斷請(qǐng)求之后此端口就會(huì)存在溢出現(xiàn)象,而此時(shí)此端口的值將會(huì)自動(dòng)被設(shè)置為“1”,當(dāng)中斷開始被執(zhí)行時(shí),此端口的賦值將會(huì)被硬件清零或者軟件清零。TR則為定時(shí)器的運(yùn)行控制位,值設(shè)置為1時(shí)開始計(jì)時(shí),當(dāng)其清零時(shí)則停止計(jì)時(shí)。 外部中斷的方法是有低電平觸發(fā)和跳沿觸發(fā)

52、,中斷的撤銷方式則分為定時(shí)器中斷請(qǐng)求的撤銷和外部中斷請(qǐng)求的撤銷兩大類。而在本次設(shè)計(jì)中,并沒有采用外部中斷的方式,而是使用定時(shí)器中斷,當(dāng)定時(shí)器的中斷請(qǐng)求被響應(yīng)之后,硬件會(huì)自動(dòng)的掃面其中斷請(qǐng)求標(biāo)志位的電位變化,并且及時(shí)的將其清零,所以定時(shí)器中斷的請(qǐng)求都不用人為手動(dòng)清零與撤銷。 4.2.2電機(jī)與舵機(jī)具體控制程序介紹 首先如上一節(jié)所介紹的一樣舵機(jī)與電機(jī)是通過PWM來控制的。在對(duì)程序進(jìn)行編譯的時(shí)候,由于PWM波的是必須依靠定時(shí)器才能夠產(chǎn)生的,所以在編程的時(shí)候,為了能讓相應(yīng)波形正確的產(chǎn)生,就得在編程的時(shí)候首先如下列程序一樣對(duì)定時(shí)器進(jìn)行初始化操作: void Time_config() { TM

53、OD = 0x01; //定時(shí)器0工作方式1 TL0 = 0xCE; //設(shè)置定時(shí)初值 50us TH0 = 0xFF; //設(shè)置定時(shí)初值 ET0 = 1; //使能定時(shí)器0 TR0 = 1; //開啟定時(shí)器0 } 該程序的目的在于定時(shí)器的初始化,它通過TMOD語句定義了定時(shí)器0,及工作方式1。而在52單片機(jī)中定時(shí)器有0,1兩種,方式有4種,本次設(shè)計(jì)采用的是方式1所代表的16位定時(shí)器,其最大定時(shí)65536us。隨后設(shè)置初始值為TL0 = 0xCE;TH0 = 0xFF;初始值的設(shè)置為最大定時(shí)后接初始值,因?yàn)楸敬蔚某跏贾翟O(shè)定為是50us,所以初始值=65536-50,但是

54、值得注意的一點(diǎn)是程序中是該值的16進(jìn)制。然后按順序使用TRO=1打開定時(shí)器0,再通過ETO=1使能定時(shí)器0,最后用EA=1打開總中斷。但是值得注意的是在這里,還沒有打開總中斷。 隨后,上文已介紹了PWM周期和占空比是在定時(shí)器中斷中控制的,則其對(duì)應(yīng)的程序如下: void Time0_Int() interrupt 1 //定時(shí)器中斷程序 中斷向量口為1 首先設(shè)定了定時(shí)器在中斷之后會(huì)被重新賦予初始值,并且也規(guī)定了其每產(chǎn)生兩次中斷的時(shí)間間隔為50us。而其中的打開中斷,關(guān)閉中斷可省略。 TR0 = 0; //關(guān)閉定時(shí)器0, TL0 = 0xCE; //設(shè)置定時(shí)初值 50us TH

55、0 = 0xFF; //設(shè)置定時(shí)初值 TR0 = 1; //開啟定時(shí)器0 通過在定時(shí)器中斷中計(jì)數(shù),也就是Time0,來計(jì)進(jìn)入中斷的次數(shù)。PWM的周期為50us*500 = 25ms,也就是程序中 if(Time0 > 500) //500為PWM波周期,500*50us = 25ms Time0 = 0; //達(dá)到501次則清零 設(shè)置好了PWM的周期,即開始通過改變占空比的方式控制舵機(jī)與電機(jī)了。其中單片機(jī)輸出舵機(jī)控制信號(hào)為Steer_PWM,對(duì)應(yīng)的引腳程序前端已定義。Steer_Ctrl是我們調(diào)節(jié)占空比的,Steer_Ctrl的值越大,占空比越大,舵機(jī)輸出占空比 =

56、Steer_Ctrl/500;就是下面的程序; if(Time0 < Steer_Ctrl) //舵機(jī)占空比=(Steer_Ctrl/Time0)*100% Steer_PWM = 1; else Steer_PWM = 0; 同理,電機(jī)的控制也是相同的,電機(jī)輸出占空比 = Motor_Ctrl/500; if(Time0 < Motor_Ctrl) //電機(jī)占空比=(Motor_Ctrl/Time0)*100% Motor_PWM = 1; else Motor_PWM = 0; 電機(jī)的輸出占空比越大,電機(jī)轉(zhuǎn)速越快,小車速度越快,反之亦然。

57、 4.3遙控部分的程序設(shè)計(jì) 遙控部分的程序就是通過按鍵通過編碼后利用發(fā)射元件對(duì)主控電路發(fā)出指令,其指令就是前文所提到的對(duì)占空比的參數(shù)的設(shè)定,但是相對(duì)于需要對(duì)信息進(jìn)行處理的電機(jī)與舵機(jī)的程序來說,遙控部分的占空比的參數(shù)就是相當(dāng)于一個(gè)數(shù)值的發(fā)送,而遙控部分的關(guān)鍵則是對(duì)矩陣鍵盤的應(yīng)用,已經(jīng)考慮到舵機(jī)的一個(gè)轉(zhuǎn)彎角度而設(shè)定的一個(gè)舵機(jī)保護(hù)值。遙控部分的程序流程圖如圖13所示: 開始 定時(shí)器初始化 有無鍵值 改變舵機(jī)占空比 改變電機(jī)占空比 是否超過最大值 Y N Y 保持不變 Y N 圖13 遙控部分的程序流程圖 4.3.1矩陣鍵盤的介紹及與獨(dú)立鍵盤的對(duì)比 作為單片機(jī)當(dāng)中經(jīng)

58、常使用的非編碼鍵盤,其又細(xì)分為矩陣鍵盤和獨(dú)立鍵盤兩種。其原理圖分別如圖14和圖15所示。就兩個(gè)鍵盤的接線方法相比較而言,矩陣鍵盤的電路接線復(fù)雜,但是相對(duì)提高了I/O口的工作效率,且軟件編程也相對(duì)更加復(fù)雜,但是更適合按鍵較多的場合。而獨(dú)立鍵盤的電路連接則相對(duì)簡單得多,但是一個(gè)按鍵對(duì)應(yīng)一個(gè)I/O接口,這樣的方式會(huì)使得當(dāng)按鍵較多的情況出現(xiàn)之后,I/O口的利用率明顯不足,但是相對(duì)其編程也簡單的多,所以更加適合按鍵少的場合。在本次設(shè)計(jì)中應(yīng)為考慮到會(huì)出現(xiàn)三檔變速的三個(gè)按鍵,以及轉(zhuǎn)向的兩個(gè)按鍵,另外再預(yù)留兩個(gè)按鍵,則預(yù)計(jì)會(huì)出現(xiàn)七個(gè)按鍵,這樣的話明顯按鍵較多,選著矩陣鍵盤更加適合。 如同在前章硬件部分說介紹

59、的一樣,按鍵接在2262編碼器上的D3,D2,D1,與D0口上,通過每個(gè)按鍵所連接到的不同的引腳,使用到低電平進(jìn)行區(qū)別,從而使4個(gè)端頭表現(xiàn)出7個(gè)按鍵所需要表達(dá)的效果,例如按鍵“1”的編碼為0001,按鍵“2”的編碼為0010。 圖14 矩陣鍵盤原理圖 圖15 獨(dú)立鍵盤原理圖 4.3.2遙控部分程序介紹 在遙控的部分中本次設(shè)計(jì)使用的是一對(duì)編解碼電路,和一對(duì)收發(fā)電路所組成的。發(fā)射控制引腳4個(gè),可以組成16種不同的編碼,在這里因?yàn)橐还苍O(shè)置了7個(gè)按鍵,所以使用了7種編碼。在接收端使用單片機(jī)P2口的4路引腳接接收芯片的4路控制輸出。通過函數(shù)KeyScan();

60、循環(huán)掃描P2口,如果有輸入的話,該引腳電平為低電平。GPIO_Key存放的就是P2口引腳的值,沒有輸入信號(hào)是,GPIO_Key = 0xF0。程序掃描時(shí)要是有信號(hào)輸入的話,鍵值就會(huì)發(fā)生變化,判斷程序: void KeyScan() //鍵值掃描程序,掃描無線輸入狀態(tài)。 { if(GPIO_Key != 0xF0) //檢查是否有按鍵按下。 { Key_Value = GPIO_Key; //將鍵值存儲(chǔ)下來。 Key_Count++; //用作延時(shí)。 if(Key_Value != 0xF0) //鍵值發(fā)生變化。 { else 通過Swit

61、ch條件選擇語句,判斷發(fā)射的鍵值,然后選擇相應(yīng)的操作。在switch語句中根據(jù)實(shí)際的小車控制按鍵的設(shè)計(jì),將每個(gè)語句都賦予不同的鍵值以對(duì)應(yīng)不同的功能。 switch(Key_Value) //鍵值選擇。 在case中: 第一個(gè)為停車:當(dāng)然電機(jī)的占空比為0,速度為0,舵機(jī)控制Steer_Ctrl = 24,舵機(jī)控制的前輪在中間位置。 case 0xF1: Motor_Ctrl = 0; Steer_Ctrl = 24; break; //停中 第二個(gè)為3檔:電機(jī)輸出占空比最高,為100% case 0xF2: Motor_Ctrl = 500; break;

62、//3檔 第三個(gè)為2檔:電機(jī)輸出占空比為70% case 0xF4: Motor_Ctrl = 350; break; //2檔 第四個(gè)為1檔:電機(jī)輸出占空比為40% case 0xF8: Motor_Ctrl = 200; break; //1檔 第五個(gè)為1檔直線。 case 0xF9: Motor_Ctrl = 200; Steer_Ctrl = 24; break; //1檔中 第六個(gè)為左轉(zhuǎn):Steer_Ctrl減小 case 0xFA: if(Key_Count % 50 == 0) Steer_Ctrl -= 1; break

63、; //右轉(zhuǎn) 第七個(gè)為右轉(zhuǎn):Steer_Ctrl增大 case 0xFC: if(Key_Count % 50 == 0) Steer_Ctrl += 1; break; //左轉(zhuǎn) 但是處于多舵機(jī)的保護(hù),需要對(duì)舵機(jī)轉(zhuǎn)角進(jìn)行上下限設(shè)置。 if(Steer_Ctrl >29) //舵機(jī)保護(hù)。 Steer_Ctrl = 29; else if(Steer_Ctrl < 19) Steer_Ctrl = 19; 舵機(jī)的變化在某個(gè)占空比范圍內(nèi),在這個(gè)周期范圍內(nèi),中心值就是24,占空比為24/500,Key_Count++;是按鍵按下時(shí)的延時(shí),使舵機(jī)

64、轉(zhuǎn)角變化變慢,防止舵機(jī)直接打死。 Key_Count = 0; //無按鍵按下,延時(shí)清零。 最后就是對(duì)主程序進(jìn)行編程了,這是其實(shí)只要做定時(shí)器的初始化,還有電機(jī)舵機(jī)的初始值,在循環(huán)中,只要做對(duì)管腳的循環(huán)掃描就可以了。 void main() { Time_config(); //定時(shí)器初始化。 EA = 1; //使能全局變量。 Steer_Ctrl =24; //舵機(jī)的初始值,中間位置,(值變小往右偏,大左)。 Motor_Ctrl = 0; //這里設(shè)定了電機(jī)的初始值,電機(jī)的起始狀態(tài)應(yīng)為禁止,所以轉(zhuǎn)速初始值為0。 while(1) { KeyScan

65、(); //此為鍵盤掃描函數(shù),其作用為掃描無線接收端的值,進(jìn)而正確反映按鍵功能。 } 4.4總程序介紹與總程序流程圖 遙控小車的總程序是將上訴遙控以及電機(jī)與舵機(jī)兩部分的程序相整合,將遙控的控制程序已定時(shí)器中斷的方式接入電機(jī)與舵機(jī)的程序當(dāng)中,隨后將兩部分程序接入到對(duì)定時(shí)器初始化并設(shè)置舵機(jī)與電機(jī)的初始值的主程序當(dāng)中,最后主程序最主要的工作就是對(duì)管腳的循環(huán)進(jìn)行掃描。其程序流程圖如圖16所示,而主程序及其程序注解見附錄。 圖16 系統(tǒng)程序流程圖 5. 結(jié)果展示與分析 本節(jié)將記錄在焊接和調(diào)試中的一些問題和感悟,并且展示遙控小車完成之后的各項(xiàng)功能,從而更好的描述出實(shí)物的效果。 5.1

66、電路焊接與調(diào)試 在電路的調(diào)試和焊接過程中主要用到了,錫焊,通靈,99SE,Keil。 首先利用通過99SE制作出來的電路原理圖來完成實(shí)際的接線,在洞洞板上按照原理圖放置電子元件之后先行對(duì)其進(jìn)行焊接。完成之后對(duì)照原理圖進(jìn)行實(shí)際的接線并且同時(shí)焊接,焊接完成先再次對(duì)照原理圖查看是否有接錯(cuò)的線路。檢查完畢后使用通靈進(jìn)行檢查排除因?yàn)樘摵冈斐傻木€路斷路問題。在焊接的過程中對(duì)錫焊的使用需要十分注意,我在本次焊接中不慎將以根導(dǎo)線弄斷了,隨后將導(dǎo)線之間的斷裂部分用錫焊連接,后用塑料管進(jìn)行保護(hù)。 在線路焊接與檢查完成之后,開始對(duì)小車進(jìn)行性能測試,用遙控對(duì)小車發(fā)出指令,先確定小車是否可以順利執(zhí)行,最后再根據(jù)小車的實(shí)際執(zhí)行情況使用keil編程工具修改程序參數(shù)比保證精確。經(jīng)過反復(fù)的修改與調(diào)試對(duì)比之后確定:PWM的周

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!