九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

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

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

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

10 積分

下載資源

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

資源描述:

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

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

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

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

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

5、 指導教師 毛鵬 職 稱 講師 二O一五 年 五 月 二十五 日 目 錄 1.緒論. 5 2.整體設(shè)計 5 2.1 小車方案 6 2.2 控制方案 6 2.3 系統(tǒng)組成 7 3. 單片機遙控小車的硬件介紹 8 3.1 單片機介紹 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 電機與舵機 16 3.4總體電路圖 16 4. 軟件設(shè)計與介紹 17 4.1 Keil簡介 17 4.2.電機與舵機的程序設(shè)計 17 4.2.1 PWM脈沖寬度調(diào)制與中斷系統(tǒng)介紹 18 4.2.2 電機與舵機具體控制程序介紹 20 4.3遙控部分的程序設(shè)計 22 4.3.1 矩陣鍵盤的介紹及與獨立鍵盤的對比 22 4.3.2 遙控部分具體程序介紹 23 4.4.總程序介紹與總程序流程圖

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

8、電平信號向脈沖進行變化,隨后采用315M射頻發(fā)射電路與接收電路對脈沖信號與正弦波信號進行相互轉(zhuǎn)化,并且通過其進行接收與發(fā)送。對于接收到的信號使用PWM調(diào)制從而改變電機轉(zhuǎn)速與舵機的角度。本設(shè)計采用C語言編程,從而通過程序?qū)崿F(xiàn)對小車的實際控制。 關(guān)鍵詞:2262/2272 315M發(fā)射接收電路 51單片機 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.緒論 對于本次遙控小車的設(shè)計,雖然在各種技術(shù)上面來說,在當今世界的各個領(lǐng)域基本都已什么成熟。而個人覺得,在這次設(shè)計中有兩個比較關(guān)鍵的部分,一個是無線遙控部分,另一個是驅(qū)動部分。 無線遙控的運用領(lǐng)域十分廣泛,從日常家用電器,玩具,車輛的電子鎖,以及軍事上都有很多的運用。就其的技術(shù)而言,可以說已經(jīng)相當成熟,但是它的前景依舊非常可觀,可以在日后的發(fā)展中力求傳輸距離與抗干擾

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

32、所有任務皆以完成。在遙控電路上的紅色發(fā)光二極管,則是對是否有信號發(fā)出進行提示,方便后期的調(diào)試和故障的排查。整個遙控電路的電路圖如圖6所示。 表1 引腳電位及其相應狀態(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單片機,ULN2003驅(qū)動芯片,穩(wěn)壓

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)資源

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

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

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


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