版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、基于激光傳感器和嵌入式系統(tǒng)的移動(dòng)機(jī)器人作 者 姓 名 臧少剛 專 業(yè) 測控08-1 指導(dǎo)教師姓名 孫凱 專業(yè)技術(shù)職務(wù) 講師 目 錄 目錄I第一章 緒論41.1選題背景41.2主要內(nèi)容及研究意義41.3系統(tǒng)框架及整體設(shè)計(jì)思路5第二章 系統(tǒng)硬件設(shè)計(jì)62.1電源系統(tǒng)62.2智能車的眼睛:激光收發(fā)模塊82.3智能車核心處理器92.4智能車動(dòng)力部分馬達(dá)132.5轉(zhuǎn)向工具:舵機(jī)162.6調(diào)試工具17第三章 機(jī)械結(jié)構(gòu)設(shè)計(jì)182.1激光頭的安裝方案設(shè)計(jì)192.2舵機(jī)位置的選擇192.3核心板的設(shè)計(jì)202.4激光管結(jié)構(gòu)設(shè)計(jì)21第四章 軟件開發(fā)及調(diào)試224.1單片機(jī)程序設(shè)計(jì)234.2應(yīng)用系統(tǒng)開發(fā)過程244.3工程
2、創(chuàng)建254.4程序編譯274.1下載調(diào)試284.2單片機(jī)的資源分配28第五章 程序分析29第六章 參考文獻(xiàn)35摘 要“飛思卡爾杯”全國大學(xué)生智能汽車邀請賽屬教育部主辦的全國五大競賽之一,其專業(yè)知識(shí)涉及控制、模式識(shí)別、傳感技術(shù)、汽車電子、電氣、計(jì)算機(jī)、機(jī)械等諸多學(xué)科。根據(jù)大賽的技術(shù)要求,設(shè)計(jì)制作了智能車控制系統(tǒng)。在整個(gè)智能車控制系統(tǒng)中,如何準(zhǔn)確地識(shí)別道路及實(shí)時(shí)地對智能車的方向進(jìn)行控制是整個(gè)控制系統(tǒng)的關(guān)鍵。本文首先對智能車的硬件進(jìn)行設(shè)計(jì),其次對系統(tǒng)的軟件部分進(jìn)行設(shè)計(jì),整個(gè)系統(tǒng)涉及車模機(jī)械結(jié)構(gòu)調(diào)整以及傳感器電路設(shè)計(jì)及與信號(hào)處理。通過軟件與硬件的搭配,實(shí)現(xiàn)避障的功能和遠(yuǎn)程控制的功能。關(guān)鍵字:智能車 傳
3、感器 嵌入式 AbstractFreescale Cup National Undergraduate Smart Car Competition is sponsored by the National Ministry of Education, one of the five contests, their professional knowledge related to control, pattern recognition, sensor technology, automotive electronics, electrical, computer, machinery and
4、 many other disciplines. According to the technical requirements of the contest, we design the intelligent vehicle control system. In the entire control system of the smart car, how to accurately identify the road and real-time control the direction of the Smart Car is the key to the whole control s
5、ystem. This paper first introduces the hardware of the smart car. The second part of the system is software design. The entire system is involved in mechanical models of structural adjustment and the sensor circuit design. Through the software and hardware collocation, realize the function of obstac
6、le avoidance and the function of remote control.Key word: intelligent car; Sensors; Embedded; Remote contr第一章 緒論1.1選題背景物質(zhì)生活的提高,使人們更加注重和諧與健康,本來危險(xiǎn)系數(shù)極高但人們卻習(xí)以為常的工作,如今也少有人參與,因?yàn)槿缃竦娜藗円颜业搅舜嫠麄儏⑴c人類難以到達(dá)的位置的智能設(shè)備,當(dāng)然,設(shè)備必須具有一定的智能性,能夠獨(dú)立的判斷所處環(huán)境的所有有用信息,并加以判斷,予以歸類,尋找最合適的位置,捕捉最難得最珍貴最具實(shí)時(shí)性的信息,然后進(jìn)行實(shí)時(shí)反饋,讓我們可以更加客觀地采取判斷,不至于
7、因環(huán)境的變化或者不適應(yīng)等各種外界因素影響我們的主管意識(shí),可以說,這種智能設(shè)備的出現(xiàn),一定程度上解放了人類的勞動(dòng)力,既如此,我們就更應(yīng)繼續(xù)從事這方面的學(xué)習(xí)與研究,充分發(fā)揮這一領(lǐng)域給社會(huì)帶來的益端.目前最為前沿的就是仿生機(jī)器人,但比之稍簡單的就是智能車,因?yàn)樗鼰o需判斷各種平衡的因素,更具穩(wěn)定性和實(shí)用性,在此基礎(chǔ)上賦予它一定的感知、判斷和交互能力,同樣可以做出與人類能力相及甚至超越人類極限的事情。工業(yè)上,這種機(jī)器人已經(jīng)應(yīng)用于各種行業(yè),目前所要追求的目標(biāo)就是更加的小巧與低成本,更大的實(shí)用性。1.2主要內(nèi)容及研究意義智能車即輪式移動(dòng)機(jī)器人,是一種集環(huán)境感知、決策規(guī)劃、自動(dòng)行駛等功能于一體的綜合智能系統(tǒng),
8、智能車集中地運(yùn)用了自動(dòng)控制、模式識(shí)別、傳感器技術(shù)、汽車電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科的知識(shí)1 。隨著控制技術(shù)、計(jì)算機(jī)技術(shù)和信息技術(shù)的發(fā)展,智能車在工業(yè)生產(chǎn)和日常生活中已經(jīng)扮演了非常重要的角色。近年來,智能車在野外、道路、現(xiàn)代物流及柔性制造系統(tǒng)中都有廣泛運(yùn)用,已成為人工智能領(lǐng)域研究和發(fā)展的熱點(diǎn)。目前,智能車領(lǐng)域的研究已經(jīng)能夠在具有一定標(biāo)記的道路上為司機(jī)提供輔助駕駛系統(tǒng)甚至實(shí)現(xiàn)無人駕駛,這些智能車的設(shè)計(jì)通常依靠特定道路標(biāo)記完成識(shí)別,通過推理判斷模仿人工駕駛進(jìn)行操作2。本文所述智能車就是一種自動(dòng)導(dǎo)引小車,能夠在給定的區(qū)域內(nèi)沿著軌跡自動(dòng)進(jìn)行行進(jìn)。1953年,美國Barrett Electric公司
9、制造了世界上第1臺(tái)采用埋線電磁感應(yīng)方式跟蹤路徑的自動(dòng)導(dǎo)向車,也被稱作“無人駕駛牽引車”(automated guided vehicle,簡稱AGV)。這些自動(dòng)導(dǎo)向車主要用于自動(dòng)化倉貯系統(tǒng)和柔性裝配系統(tǒng)的物料運(yùn)輸3。20世紀(jì)60年代和70年代初,AGV仍采用這種導(dǎo)向方式。但是,20世紀(jì)70年代中期,具有載貨功能的AGV在歐洲得到了應(yīng)用并被引入到美國。這些自動(dòng)導(dǎo)向車主要用于自動(dòng)化倉儲(chǔ)系統(tǒng)和柔性專配系統(tǒng)的物料運(yùn)輸。在20世紀(jì)70年代和80年代初,“智能車”的應(yīng)用領(lǐng)域擴(kuò)大而且工作條件也變得多樣化,因此,新的導(dǎo)向方式和技術(shù)得到了更廣泛的研究與開發(fā)4。自動(dòng)導(dǎo)向無軌行走車輛常用蓄電池作為動(dòng)力源,它是機(jī)電一
10、體化的典型5。AGV技術(shù)在汽車工業(yè)上有著廣泛的用途,歐洲和美、日等國的汽車生產(chǎn)工業(yè)在80年代就開始大量使用AGV技術(shù),現(xiàn)已成為比較成熟的技術(shù)。智能車有著極為廣泛的應(yīng)用前景6。結(jié)合傳感器技術(shù)和自動(dòng)駕駛技術(shù)可以實(shí)現(xiàn)汽車的自適巡航并把車開得開得又快又穩(wěn)、安全可靠;汽車夜間行駛時(shí),如果裝上紅外攝像頭,就能實(shí)現(xiàn)夜晚汽車的安全輔助駕駛;他也可以工作在倉庫、碼頭、工廠或危險(xiǎn)、有毒、有害的工作環(huán)境里,此外他還能擔(dān)當(dāng)起無人值守的巡邏監(jiān)視、物料的運(yùn)輸、消防滅火等任務(wù)。在普通家庭轎車消費(fèi)中,智能車的研發(fā)也是有價(jià)值的,比如霧天能見度差,人工駕駛經(jīng)常發(fā)生碰撞,如果用上這種設(shè)備,激光雷達(dá)會(huì)自動(dòng)探測前方的障礙物,電腦會(huì)控制
11、車輛自動(dòng)停下來撞車就不會(huì)發(fā)生了。對于歷史而言,解放和發(fā)展勞動(dòng)力永遠(yuǎn)是人們提出的自私卻又可行的目標(biāo),這其中就包括人身安全的保證,在人類無法到達(dá)或者危險(xiǎn)性極高的環(huán)境下,能夠自行潛入并獲取我們所需要的信息,最理想的就是能夠自發(fā)的進(jìn)行簡單的處理,但是這種設(shè)想的實(shí)現(xiàn)卻有著很大的難度。比如說這種機(jī)器人小車的運(yùn)行,車子一旦研制出來,就應(yīng)成批量生產(chǎn),也就是外形無法隨著環(huán)境的改變而改變,這就給機(jī)器人小車的制造產(chǎn)生了困難,比如說摩擦系數(shù)、軟硬程度、空氣阻力、傾斜度、行走空間等等各種無法預(yù)料的因素,只有生產(chǎn)一種小巧、靈活多變的探測設(shè)備,才能夠真正的實(shí)現(xiàn)人力的替代;當(dāng)然除了環(huán)境的多變性,還有車子整體的性能和承載外界不
12、良因素的力度,要采集信息的強(qiáng)弱與收發(fā)的干擾等等。無疑,四個(gè)或者更多輪子的車型機(jī)器人要比人形的機(jī)器人穩(wěn)定的多,控制也更為簡單,體積更加小巧,所以,目前世界各大探測公司都在研發(fā)這種機(jī)器人,比較實(shí)用且有代表性的是GE的探測小車,能夠?qū)⑼饨绮杉母鞣N影像采集并進(jìn)行處理和保存,然后完整的反饋回來,具有工業(yè)上的可行性。1.3系統(tǒng)框架及整體設(shè)計(jì)思路智能車系統(tǒng)采用飛思卡爾的16位微控制器MC9S12XS128單片機(jī)作為核心控制單元用于智能車系統(tǒng)的控制。在選定智能車系統(tǒng)采用光電傳感器方案后,智能車的位置信號(hào)由車體前方的光電傳感器采集,經(jīng)MC9S12XS128 MCU的I/O口輸入后,用于智能車的運(yùn)動(dòng)控制決策,同
13、時(shí)內(nèi)部PWM模塊發(fā)出PWM波,控制舵機(jī)轉(zhuǎn)彎,同時(shí)驅(qū)動(dòng)直流電機(jī)對智能車進(jìn)行加速和減速控制,最終使智能車能夠自主行駛,并自覺繞開前方障礙。第二章 系統(tǒng)硬件設(shè)計(jì)在小車的整體設(shè)計(jì)中,采用紅外信號(hào)作收發(fā)模塊,讓小車具有識(shí)別功能;MC9S12XS128作為處理器,判斷有誤障礙物,并給與舵機(jī)相應(yīng)命令,繞開障礙達(dá)到避障功能。機(jī)械上獨(dú)特的設(shè)計(jì),讓小車在保證簡單的情況下盡量的美觀!下面將對智能避障車整體系統(tǒng)進(jìn)行詳細(xì)講述!2.1電源系統(tǒng)整體結(jié)構(gòu)圖:圖 2-1 電源系統(tǒng)供電圖圖 2-2 電機(jī)驅(qū)動(dòng)板智能避障車的動(dòng)力電源采用飛思卡爾比賽專用電源,負(fù)荷電壓7.8V左右,在充電結(jié)束后會(huì)有一定的上浮,升至8.1V左右,對于小車
14、的馬達(dá),可以直接使用,期間曾試過變壓后給馬達(dá)供電,但是效果不是很好,經(jīng)常導(dǎo)致變壓塊發(fā)熱現(xiàn)象嚴(yán)重,后采用電源直接供電,這個(gè)直接供電當(dāng)然也是通過下面將要介紹的這個(gè)模塊予以驅(qū)動(dòng)。這個(gè)驅(qū)動(dòng)是用場效應(yīng)管搭建H橋來驅(qū)動(dòng)電機(jī),因?yàn)閳鲂?yīng)管具有內(nèi)阻小、開關(guān)速度快等優(yōu)點(diǎn),并且方便加散熱片。場效應(yīng)管是電壓驅(qū)動(dòng)器件,只要柵極電壓稍高一點(diǎn)就能使管子導(dǎo)通。本模塊電路輸入電壓5-15V,最大輸出電流理論上74A。如圖所示,從正面看,CD4011的14腳接VDD(7.2V左右),7腳接GND,要接上拉電阻,否則可能會(huì)出現(xiàn)邏輯混亂。下圖就是電機(jī)驅(qū)動(dòng)的電路原理圖:圖 2-3 電機(jī)驅(qū)動(dòng)電路原理圖圖 2-4 電源引腳顯然,電源這對
15、于小車的激光收發(fā)模塊無疑是不能使用的,這就需要進(jìn)行變壓輸出,降低至5V穩(wěn)定輸出,采用最簡單的穩(wěn)壓模塊LM7805,作為核心板的電源,78*系列的穩(wěn)壓集成塊的極限輸入電壓是36V,最低輸入電壓比輸出電壓高3-4V。還要考慮輸出與輸入間壓差帶來的功率損耗,所以一般輸入為9-15V之間,適合我所用的7.8V直流電源,同時(shí)再獨(dú)立接另一個(gè)LM7805作為激光管的電源,這樣可以避免激光管啟動(dòng)時(shí)的高功率干擾到核心板的電平信號(hào);由于在允許電壓范圍內(nèi),電壓越大,舵機(jī)響應(yīng)速度越快,因此采用6V電壓給舵機(jī)供電,由LM7806 為主要芯片的6V 穩(wěn)壓電路,完全可以滿足舵機(jī)對電壓和電流的要求,因此選用此電路作為舵機(jī)的供
16、電電源。具體5V和6V供電電路接線圖2-5所示:圖 2-5 電源原理圖由于在智能車運(yùn)行過程中阻力的變化頻繁,這種阻力可能由于加速制動(dòng)劇烈,也可能由于拐向帶來的力矩方向變化造成的阻力,因此電池負(fù)載變化劇烈,輸出電壓也劇烈變化,且幅度很大,所以在電池端多加了濾波電容,予以補(bǔ)償。2.2智能車的眼睛:激光收發(fā)模塊說起激光傳感器,相信大家都不陌生,下面先介紹下感應(yīng)障礙物的原理:圖 2-6 激光頭由發(fā)射管發(fā)射一定波長的紅光,經(jīng)障礙物反射到接收管。由于在遠(yuǎn)近不同距離上反射回的光強(qiáng)度不同,在遠(yuǎn)處的大部分光線都被吸收或者散射掉了,而障礙物上可以反射回大部分光線,所以接收到的反射光強(qiáng)不一樣,由障礙物反射回來的大量
17、光線直接導(dǎo)致接收三極管導(dǎo)通,而由遠(yuǎn)處(空曠處為無限遠(yuǎn) )反射回來的光線不能導(dǎo)致接收三極管導(dǎo)通,信號(hào)輸入到單片機(jī)中便是高電平和低電平,這樣就可以將有無障礙物區(qū)分開來。但是一個(gè)好的激光傳感器,多少會(huì)存在不穩(wěn)定現(xiàn)象其實(shí)不穩(wěn)定,很大的因素就是發(fā)射出來的激光信號(hào)頻率,不是接收管最佳的接收管的最佳頻率。盡管激光接收頻率可以用芯片編程序,輸出PWM信號(hào)驅(qū)動(dòng),但是那樣的抗干擾能力欠佳,既然要做又知道哪里出的問題,那就盡量改善嘛!一個(gè)好的調(diào)制管,使用效果明顯有改進(jìn),究其原因,半導(dǎo)體光電元件的頻率特性是指它們的輸出信號(hào)與調(diào)制光頻變化的關(guān)系,當(dāng)光敏電阻受到脈沖照射時(shí),光電流達(dá)到其穩(wěn)態(tài)值;當(dāng)光突然消失時(shí),光電流變?yōu)榱?/p>
18、,這就是激光收發(fā)模塊的基本原理。我所使用的調(diào)制管根據(jù)下拉電阻的不同能夠產(chǎn)生140KHZ-205KHZ方波信號(hào),經(jīng)過信號(hào)發(fā)到驅(qū)動(dòng)激光發(fā)射管,理論上接收管在頻率180KHZ205KHZ左右的頻率下接收能力最強(qiáng),我的接收管發(fā)射管實(shí)測頻率為180KHZ,另外配一個(gè)聚光透鏡,增強(qiáng)接收管對反射光的吸收。當(dāng)然,要對準(zhǔn)焦點(diǎn)能夠增強(qiáng)接收管接收效果和抗干擾能力!圖 2-7 接收管及原理圖在焊接激光模塊的電路時(shí),要注意的事項(xiàng)很多,激光發(fā)射器的供電電壓應(yīng)在,由于我的電源模塊相互獨(dú)立,因此避免了各種電路同時(shí)上電造成的電壓波動(dòng),經(jīng)過測試,能夠保證激光發(fā)射器的電壓在5.0±0.2V,也就保證了激光管的長使用壽命。
19、同時(shí),由于激光發(fā)射器的特殊工作原理,具有靜電敏感性,使用過程中要做好ESD,盡量避免人體接觸和帶靜電物體接觸激光管,避免靜電傷害,否則容易出現(xiàn)發(fā)光效率降低甚至不工作等現(xiàn)象,解決辦法是:1. 焊接前先洗手,摸一下暖氣片,釋放人體靜電;2. 電烙鐵接地,每次用之前釋放靜電;3. 堅(jiān)持室內(nèi)操作,避免日光直接照射激光接收芯片(多次試車,盡管樓道狹小,仍然堅(jiān)持室內(nèi))。4. 每次試跑,注意極性不能戒飯,電壓一定不超過5.5V(予以保證),電流不能大于50mA(予以保證)。圖 2-8 調(diào)制管及原理圖如圖所示,電壓經(jīng)調(diào)制管調(diào)制給與激光頭,產(chǎn)生所需調(diào)頻光信號(hào),電路搭建時(shí)一定要注意保證限流電阻大于65歐姆,這樣才
20、能給予激光頭足夠的保護(hù)作用,但是不能過大,這樣產(chǎn)生的激光信號(hào)將會(huì)很弱,影響小車前瞻的距離,直接影響小車對障礙物的判斷時(shí)間,嚴(yán)重時(shí),小車將會(huì)無法躲開障礙物。調(diào)制激光信號(hào)產(chǎn)生后,下面就是由接收管來接收我們的特定光信號(hào),然后判斷前方、左前方或者右前方是否有障礙物,也就是起到了眼睛的作用。 當(dāng)然,這其中曾走過很多的彎路,比如說激光頭焊接時(shí),因?yàn)楹附蛹夹g(shù)不達(dá)標(biāo),造成激光頭燒壞,理論上焊接時(shí)電烙鐵與激光引腳的解除時(shí)間應(yīng)不多于10s.為了增強(qiáng)對障礙物的敏感度,也就是增加對反射光線的吸收率,我在原來的接收管上增加了一個(gè)透鏡,這樣做有兩個(gè)目的:1. 增強(qiáng)對反射光線的吸收;2. 利用透鏡只能接收前方光線、阻隔側(cè)面
21、光線的功能,減小外接漫反射光線對接收管的影響。如圖2-9,是我采用的透鏡:圖 2-9 聚光透鏡固定時(shí),透鏡的焦點(diǎn)與激光發(fā)射然后反射回來的光線不在同一直線上,造成透鏡不但沒有發(fā)揮出聚光的作用,卻將室內(nèi)外的干擾光線連同激光信號(hào)一起屏蔽了,但是在這過程中,我卻學(xué)習(xí)到很多課本上無法獲得也無從想象的東西。在進(jìn)行激光發(fā)射與接收的時(shí)候,曾如右圖外接LED指示燈,用于測試小車激光發(fā)射與接收是否故障,這讓故障的檢測更加直觀。2.3智能車核心處理器在所有的前期準(zhǔn)備結(jié)束后,我已經(jīng)獲得了小車前方是否有障礙物的信號(hào),下面就是要對這個(gè)信號(hào)進(jìn)行判斷、處理,我采用的是飛思卡爾半導(dǎo)體公司的MC9S12XS128單片機(jī),是一個(gè)1
22、6位處理器,總體上分為三個(gè)模塊:IO模塊(帶有中斷)、脈沖寬度調(diào)制模塊(主要針對舵機(jī))和定時(shí)器模塊。其中,大部分I/O引腳可由相應(yīng)的寄存器位來配置選擇數(shù)據(jù)方向、驅(qū)動(dòng)能力,使能上拉或下拉式裝置。當(dāng)用作通用IO口時(shí),所有的端口都有數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器。由于小車最大的難點(diǎn)在于轉(zhuǎn)向的控制,所以下面主要介紹所用到的最多的模塊。圖 2-10 最小系統(tǒng)版引腳圖XS128具有XS128具有8位8通道的PWM,相鄰的兩個(gè)通道可以級(jí)聯(lián)組成16位的通道。XS128具有8位8通道的PWM,相鄰的兩個(gè)通道可以級(jí)聯(lián)組成16位的通道。下面是脈沖調(diào)制模塊的幾種功能:PWME:PWM通道使能寄存器。PWMEx=1將立即使
23、能該通道PWM波形輸出。若兩個(gè)通道級(jí)聯(lián)組成一個(gè)16位通道,則低位通道(通道數(shù)大的)的使能寄存器成為該級(jí)聯(lián)通道的使能寄存器,高位通道(通道數(shù)小的)的使能寄存器和高位的波形輸出是無效的。PWMPOL:PWM極性寄存器。PPOLx=1,則該通道的周期初始輸出為高電平,達(dá)到占空比后變?yōu)榈碗娖?;相反,若PPOLx=0,則初始輸出為低電平,達(dá)到占空比后變?yōu)楦唠娖健WMCLK:PWM時(shí)鐘源選擇寄存器。0、1、4、5通道,PCLKx=0使用Clock A,PCLKx=1使用Clock SA;2、3、6、7通道,PCLKx=0使用Clock B,PCLKx=1使用Clock SB。PWMPRCLK:PWM預(yù)分
24、頻時(shí)鐘源選擇寄存器。PWMPERx:PWM通道周期寄存器,每個(gè)通道都有一個(gè)獨(dú)立的8位周期寄存器,它的值將間接決定該通道的PWM波形周期。該寄存器采用雙緩沖器設(shè)計(jì),即寫入的新值不立即生效,直到本次有效周期結(jié)束或者計(jì)數(shù)器寄存器清零或者該通道被禁止。讀該寄存器將返回最近一次寫入的值(不一定是當(dāng)前生效的值)。復(fù)位將重置值為0xFF。下面是如何由周期寄存器的值計(jì)算最終PWM輸出波形的周期與頻率方法:左對齊輸出:(CAEx = 0)PWMx Period = Clock (A, B, SA, or SB) * PWMPERxPWMx Frequency = Clock (A, B, SA, or SB)
25、/ PWMPERx中心對齊輸出:(CAEx=1)PWMx Period = Clock (A, B, SA, or SB) * (2 * PWMPERx)PWMx Frequency = Clock (A, B, SA, or SB) / (2 * PWMPERx)Clock A、Clock B由下面的PWMPRCLK設(shè)置:表 2-1 表 2-2PWMDTYx:PWM占空寄存器。每個(gè)通道都有一個(gè)獨(dú)立的8位占空寄存器,它的值將間接決定該通道的PWM波形占空比。該寄存器采用雙緩沖器設(shè)計(jì),即寫入的新值不立即生效,直到本次有效周期結(jié)束或者計(jì)數(shù)器寄存器清零或者該通道被禁止。讀該寄存器將返回最近一次寫入的
26、值(不一定是當(dāng)前生效的值)。復(fù)位將重置值為0xFF。下面是如何由占空寄存器的值計(jì)算最終PWM輸出波形的占空比的方法:Polarity = 0 (PPOLx = 0)Duty Cycle = (PWMPERx - PWMDTYx) / PWMPERx * 100%Polarity = 1 (PPOLx = 1)Duty Cycle = PWMDTYx / PWMPERx * 100%定時(shí)器模塊由1個(gè)增強(qiáng)的可編程預(yù)分頻器驅(qū)動(dòng)的可編程計(jì)數(shù)器、8個(gè)輸入捕捉/輸出比較通道和1個(gè)脈沖累加器組成。定時(shí)器模塊一共有8個(gè)引腳,其中脈沖累加器與第7號(hào)通道的引腳是共用的。其中:TCNT:定時(shí)器計(jì)數(shù)寄存器。TSCR1
27、:定時(shí)器系統(tǒng)控制寄存器1。TTOV:定時(shí)器溢出時(shí)觸發(fā)寄存器。TCTL1/TCTL2:定時(shí)器控制寄存器1/2。PR2、PR1、PR0三位決定了定時(shí)器預(yù)分頻比。表 2-3PTPSR:精確定時(shí)器預(yù)分頻器選擇寄存器。若TSCR1中的PRNT=1,PTPSR的值將決定主定時(shí)器預(yù)分頻比。表:2-4圖2-11為處理器電路板:圖 2-11 系統(tǒng)板外觀2.4智能車動(dòng)力部分馬達(dá)驅(qū)動(dòng)電機(jī)采用直流伺服電機(jī),在此我選用的是RS-380SH型號(hào)的伺服電機(jī),這是因?yàn)橹绷魉欧姍C(jī)具有優(yōu)良的速度控制性能,它輸出較大的轉(zhuǎn)矩,直接拖動(dòng)負(fù)載運(yùn)行,同時(shí)它又受控制信號(hào)的直接控制進(jìn)行轉(zhuǎn)速調(diào)節(jié)。在很多方面有優(yōu)越性,具體來說,它具有以下優(yōu)點(diǎn):
28、 (1)具有較大的轉(zhuǎn)矩,以克服傳動(dòng)裝置的摩擦轉(zhuǎn)矩和負(fù)載轉(zhuǎn)矩。 (2)調(diào)速范圍寬,高精度,機(jī)械特性及調(diào)節(jié)特性線性好,且運(yùn)行速度平穩(wěn)。圖 2-12 電機(jī)外觀 (3)具有快速響應(yīng)能力,可以適應(yīng)復(fù)雜的速度變化。 (4)電機(jī)的負(fù)載特性硬,有較大的過載能力,確保運(yùn)行速度不受負(fù)載沖擊的影響。(5)可以長時(shí)間地處于停轉(zhuǎn)狀態(tài)而不會(huì)燒毀電機(jī),一般電機(jī)不能長時(shí)間運(yùn)行于停轉(zhuǎn)狀態(tài),電機(jī)長時(shí)間停轉(zhuǎn)時(shí),穩(wěn)定溫升不超過允許值時(shí)輸出的最大堵轉(zhuǎn)轉(zhuǎn)矩稱為連續(xù)堵轉(zhuǎn)轉(zhuǎn)矩,相應(yīng)的電樞電流為連續(xù)堵轉(zhuǎn)電流。下圖為該伺服電機(jī)的結(jié)構(gòu)圖。圖 2-13 電機(jī)參數(shù)圖2-14是此伺服電機(jī)的性能曲線。圖 2-14 電機(jī)性能曲線由于小車的馬達(dá)全速轉(zhuǎn)動(dòng)時(shí),速
29、度過快,激光收發(fā)的距離又過短,所以,如果小車滿功率運(yùn)行,勢必難以躲開障礙物,因此,必須給小車限速,這就用到了剛才介紹的PWM模塊,讓處理器給予馬達(dá)一占空比較低的信號(hào),這個(gè)過程可以理解為小車的功率受占空比所限制,因此達(dá)不到滿功率,所以只能以與占空比相對應(yīng)的速度行進(jìn)。表2-5 RS380-ST/3545技術(shù)指標(biāo)No Load無負(fù)載Max Efficiency最大效率(64.6)Max Output最大功率(26.68W)Stall停止Current電流Speed轉(zhuǎn)速Current電流Speed轉(zhuǎn)速Torque扭矩Current電流Speed轉(zhuǎn)速Torque扭矩Current電流Torque扭矩Ar
30、pmArpmg·cmArpmg·cmAg·cm0.49153002.8513100998.61765034016.726802.5轉(zhuǎn)向工具:舵機(jī)圖 2-15 舵機(jī)外觀舵機(jī)是一種位置伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。其工作原理是:控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個(gè)基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號(hào),將獲得的直流偏置電壓與電位器的電壓比較,獲得電壓差輸出。最后,電壓差的正負(fù)輸出到電機(jī)驅(qū)動(dòng)芯片決定電機(jī)的正反轉(zhuǎn)。當(dāng)電機(jī)轉(zhuǎn)速一定時(shí),通過級(jí)聯(lián)減速齒輪帶動(dòng)電位器旋轉(zhuǎn),使得電壓差為0,電機(jī)停止轉(zhuǎn)
31、動(dòng)。舵機(jī)的控制信號(hào)是PWM信號(hào),利用占空比的變化改變舵機(jī)的位置。一般舵機(jī)的控制要求如圖所示。圖 2-16 舵機(jī)控制舵機(jī)的接線方法如圖2-17:圖 2-17 舵機(jī)接線控制線輸入一個(gè)周期性的正向脈沖信號(hào),這個(gè)周期性脈沖信號(hào)的高電平時(shí)間通常在1ms-2ms之間。而低電平時(shí)間應(yīng)在5ms到20ms間,并不很嚴(yán)格。下表3.3表示出一個(gè)典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達(dá)的輸出臂的位置的關(guān)系:圖 2-19 下載器圖 2-18 位置關(guān)系圖 由于我采用的是比賽中剩下的車模,在零件和機(jī)械結(jié)構(gòu)上均作了變更,具體的參數(shù)都是后期實(shí)驗(yàn)調(diào)出來的,關(guān)于舵機(jī)的具體參數(shù),將在軟件部分具體介紹。在允許電壓范圍內(nèi),電壓
32、越大,舵機(jī)響應(yīng)速度越快,因此采用6V電壓給舵機(jī)供電,模塊在電源部分有介紹的。2.6調(diào)試工具BDM下載器,將程序下載到核心板中,我采用的是8位16位通用型BDM下載器,在程序拷貝過程中,會(huì)有紅燈閃爍,若出現(xiàn)解除不良,等等其他原因,燈就不會(huì)出現(xiàn)閃爍現(xiàn)象。圖示為下載器外觀和內(nèi)部結(jié)構(gòu)電路板。第三章 機(jī)械結(jié)構(gòu)設(shè)計(jì)本設(shè)計(jì)采用前輪驅(qū)動(dòng),前輪轉(zhuǎn)向。使用激光收發(fā)模塊判斷有誤障礙,主要電路板安裝在車身后側(cè),舵機(jī)和馬達(dá)位于小車腹部,整體重心偏后,有較好的穩(wěn)定性,經(jīng)過改裝后的車模參數(shù)如下表:表 3-1長400mm 寬200mm 高350mm 重1.16Kg 傳感器個(gè)數(shù)2個(gè)其它伺服電機(jī)個(gè)數(shù)0檢測精度、頻率50Hz車模平
33、均電流(勻速行駛)800毫安基本參數(shù)尺寸軸距173mm前輪距154mm后輪距149mm車輪直徑65mm傳動(dòng)比18/76長150mm寬77mm除DG128外的主要芯片LM2940,MC33886,LM1881,B05123.1激光頭的安裝方案設(shè)計(jì)車身前端寬度比較大,舵機(jī)控制轉(zhuǎn)向又只有±45°,這時(shí)候前輪導(dǎo)向距離如果過短,將會(huì)導(dǎo)致車身無法繞開障礙物?;诖藛栴},我們將兩組激光收發(fā)模塊的間距盡量緊湊,然后以相對的角度來增加前瞻的寬度,再采用兩根鋼絲,固定住我們的激光收發(fā)模塊,然后以固定膠將其按照事先調(diào)好的角度固定在車身上,這樣,就解決了由于車身龐大無法繞開的問題,同時(shí)又變相增加了
34、小車對障礙物的反應(yīng)靈敏度。圖 3-1 車身外觀 在保證了探測障礙物和及時(shí)躲避的問題的同時(shí),這種設(shè)計(jì)方案還讓小車的重心前移了一定距離,由于重心基本都在后輪上,小車又是前輪導(dǎo)向,所以難免會(huì)有一點(diǎn)吃力,因此這樣做也可以增加小車前輪的受力,讓導(dǎo)向更加靈活有力。3.2舵機(jī)位置的選擇如下圖所示,舵機(jī)的位置選擇在了車身的右側(cè),這樣做有兩個(gè)原因,一個(gè)就是車模原來的結(jié)構(gòu)設(shè)計(jì)中,馬達(dá)安裝在稱身左側(cè),通過傳輸軸給予前后輪驅(qū)動(dòng)力,左側(cè)已經(jīng)沒有足夠的空間安裝這個(gè)舵機(jī)了;另一個(gè)重要原因是,如果舵機(jī)安排在輪子正上方,理論上可以給予小車最大的力矩,但是這樣做的話,需要多安裝2-4個(gè)轉(zhuǎn)軸和傳輸軸,加之轉(zhuǎn)軸之間相互傳輸力的損耗,
35、基本可以與現(xiàn)在的力矩相差無幾;機(jī)械上的難點(diǎn)還有,較大的力矩需要更有力的固定點(diǎn),車身前端為彈簧減震器,沒有多余的地方安裝多個(gè)轉(zhuǎn)軸,可以說,舵機(jī)的位置選擇如何,直接影響到舵機(jī)的效率。當(dāng)然,在進(jìn)行軟件調(diào)試的時(shí)候,本來應(yīng)該先調(diào)好角度,然后再固定車模,但是圖 3-2 舵機(jī)位置我的選擇讓我只能先固定舵機(jī)和前輪的連接,因?yàn)槎鏅C(jī)的安裝方向不是與車身平行,而是成一個(gè)30左右的角度,這就導(dǎo)致輪子在左右轉(zhuǎn)開相同角度的時(shí)候,舵機(jī)向兩個(gè)極端轉(zhuǎn)過的角度也是不同的,為了盡量配合集合角度,舵機(jī)曾安裝過多次,終于找到舵機(jī)的左極端、中點(diǎn)、右極端。具體位置如下圖:3.3核心板的設(shè)計(jì)為了便于各部分電路在出現(xiàn)故障的情況下,能夠及時(shí)統(tǒng)一
36、的斷電,盡早保護(hù)元器件不受損害,在小車的尾部,固定了一個(gè)電源開關(guān),負(fù)責(zé)整個(gè)小車所有電路的供電;同時(shí)為了保護(hù)核心板在調(diào)試時(shí),遇到無法繞開障礙物的情況下,避免撞到障礙物,將核心板盡量安排在小車后面,將驅(qū)動(dòng)電路安裝在核心板的一側(cè),并外接了一個(gè)電腦散熱板的散熱扇,幫助小車在轉(zhuǎn)向時(shí)由于馬達(dá)降低轉(zhuǎn)速而帶來的負(fù)擔(dān),電池盡量緊貼小車底部,讓小車在行進(jìn)過程中的轉(zhuǎn)向更加穩(wěn)定。圖 3-3 散熱器位置為了便于調(diào)試,小車的前端傳感器與核心板的連接均不用焊錫焊接,采用杜邦線,這樣可以隨時(shí)調(diào)試,查找問題,及時(shí)修改。3.4激光管結(jié)構(gòu)設(shè)計(jì)圖 3-4 激光束方向圖激光頭發(fā)射路徑的設(shè)計(jì),與小車自身的大小相關(guān),就是在接收管所能感應(yīng)到
37、的最遠(yuǎn)距離處的兩束激光的寬度與車身大小相同或者大于小車的寬度,這樣更加有利于小車對障礙物的躲閃。根據(jù)小車轉(zhuǎn)向的多次測量,估算小車的轉(zhuǎn)向半徑,就是圖中的R大于0.5m,這與不同路面的摩擦系數(shù)相關(guān)。簡單示意圖:圖 3-5 舵機(jī)位置第四章 軟件開發(fā)及調(diào)試 由于智能車的控制核心為Freescale 16位單片機(jī),故用由飛思卡爾公司提供的軟件CodeWarrior進(jìn)行編譯開發(fā)。程序的下載采用CodeWarrior軟件包自帶的下載工具h(yuǎn)iwave.exe,智能車與PC采用BDM下載器進(jìn)行通信,方便了車模參數(shù)調(diào)試。4.1單片機(jī)程序設(shè)計(jì)單片機(jī)的行為是受程序控制的,因此開發(fā)與使用單片機(jī)必然會(huì)遇到程序設(shè)計(jì)的問題,
38、單片機(jī)設(shè)計(jì)是一個(gè)硬件與軟件結(jié)合的問題,而其軟件設(shè)計(jì)的工作往往占有更多的成分。一個(gè)完整的嵌入式系統(tǒng)開發(fā)過程,除了硬件電路的設(shè)計(jì)外,軟件工作包括程序編輯、匯編或編譯、程序下載、程序調(diào)試、脫機(jī)驗(yàn)證等過程。程序的編輯就是按照一定的格式,采用匯編或者C等高級(jí)語言進(jìn)行編寫,在這里,我采用的是C語言。早期的單片機(jī)程序設(shè)計(jì)在DOS環(huán)境下符合一定的格式編輯,然后采用一個(gè)合適的軟件匯編,生成二進(jìn)制等CPU能識(shí)別的目標(biāo)代碼,將單片機(jī)(內(nèi)帶程序存儲(chǔ)器的情形)或程序存儲(chǔ)器放入編程器,編程器通過串口或USB等接口與PC機(jī)相連,將PC機(jī)存放的CPU能識(shí)別的代碼下載到單片機(jī)或程序存儲(chǔ)器中。下圖是一個(gè)簡單的說明。串并口或usb
39、目標(biāo)文件源文件程序編輯軟件匯編或編譯軟件編程器PC機(jī)上的下載軟件程序設(shè)計(jì)過程采用以上方式進(jìn)行開發(fā)的情形下,單片機(jī)必須是能從電路板上取下來,這對貼片封裝的單片機(jī)就無能為力了。此時(shí)為了能在線仿真調(diào)試,需要昂貴的仿真頭和仿真電纜與軟件,而且?guī)缀鯖]有仿真器能做到100%的功能仿真,甚至有的問題正是來自于仿真器。隨著技術(shù)的發(fā)展,采用ISP技術(shù),只要在目標(biāo)電路板上預(yù)留一個(gè)接口,通過一個(gè)很小的下載器,與PC機(jī)串、并口或USB口相連,就可以進(jìn)行程序的調(diào)試與下載,尤其是有的單片機(jī)具有JTAG接口,下載調(diào)試更加方便,調(diào)試盡可能少占用單片機(jī)資源。單片機(jī)系統(tǒng)的開發(fā)離不開相應(yīng)的開發(fā)工具,包括編程器、實(shí)時(shí)仿真器、虛擬仿真
40、軟件、編譯軟件等。開發(fā)工具的主要作用包括系統(tǒng)硬件電路的診斷與檢查、程序的輸入與修改、程序的調(diào)試、程序的固化等。編程器的作用就是將單片機(jī)程序的機(jī)器碼燒寫到單片機(jī)的存儲(chǔ)器中,也稱為程序的下載、燒寫或固化。對于支持ISP功能的單片機(jī),只需要下載電纜(或下載器)就可以完成。實(shí)時(shí)仿真器包括相應(yīng)的軟件和硬件,一般是通過PC機(jī),用軟件監(jiān)視程序在單片機(jī)中的實(shí)際情況。有的時(shí)候,程序?qū)嶋H是在PC機(jī)上運(yùn)行,當(dāng)需要與硬件交換信息的時(shí)候,才通過適當(dāng)?shù)慕涌趯?shí)現(xiàn)PC機(jī)與目標(biāo)板的信息交換。仿真器的主要功能是實(shí)時(shí)運(yùn)行程序,在程序中設(shè)置斷點(diǎn),通過仿真接口,監(jiān)視和控制程序的運(yùn)行,查看和修改內(nèi)部寄存器和數(shù)據(jù)存儲(chǔ)器等。除了硬件實(shí)時(shí)仿真
41、器,另一種做法就是軟件監(jiān)控程序的方法,在單片機(jī)的程序存儲(chǔ)器中開辟一塊地方,預(yù)先下載一段代碼,該代碼與PC機(jī)通訊,接受PC機(jī)的命令,同時(shí)接管單片機(jī)正常的中斷,讀取單片機(jī)內(nèi)部寄存器與存儲(chǔ)器信息,并發(fā)送到PC機(jī),以達(dá)到程序監(jiān)控的目的。針對支持ISP功能的單片機(jī),可以通過實(shí)時(shí)仿真器或監(jiān)控軟件完成程序的下載工作。在制作過程中,運(yùn)行的編譯環(huán)境為 CodeWarrior 5.0,CodeWarrior5.0是Metrowerks公司一套比較著名的集成開發(fā)環(huán)境,具有直觀,易用的優(yōu)點(diǎn)。CodeWarrior5.0包括項(xiàng)目管理,代碼生成,語法敏感編輯器等,具有快速下載,單步調(diào)控的特點(diǎn),同時(shí)可以融合C語言和匯編語言
42、的混合編程。CodeWarrior5.0具有在線調(diào)試,單步運(yùn)行程序的功能,同時(shí)能夠觀察到主程序中定義的所有的變量的值。這一功能在進(jìn)行程序錯(cuò)誤檢查和改正時(shí)起到了至關(guān)重要的作用。圖4.1即為CodeWarrior5.0的編程界面:圖 4-1 CodeWarrior界面圖4.2應(yīng)用系統(tǒng)開發(fā)過程(1)軟件結(jié)構(gòu)設(shè)計(jì)。當(dāng)硬件設(shè)計(jì)完成后,就能夠具體明確軟件的設(shè)計(jì)要求了。軟件結(jié)構(gòu)設(shè)計(jì)的任務(wù)就是劃分程序功能模塊,把功能相對獨(dú)立的程序劃分成一個(gè)功能模塊是一種常用的方法,如數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)輸出、程序循環(huán)等模塊。模塊劃分后,進(jìn)一步明確各模塊之間的關(guān)系,各模塊之間的接口。考慮一個(gè)系統(tǒng)的最后歸檔也需要詳細(xì)的流程圖
43、,所以無論模塊簡單還是復(fù)雜,都有必要畫出各模塊的流程圖。在這一階段,應(yīng)盡量將和硬件有關(guān)的底層程序封裝起來,以便底層硬件測試和驅(qū)動(dòng)程序與高層程序可以同時(shí)研發(fā),并保證程序的調(diào)試效率和可移植性。(2)選擇開發(fā)平臺(tái)(語言)。程序設(shè)計(jì)語言對程序設(shè)計(jì)效率有重大影響。匯編語言是最為常用的一種程序設(shè)計(jì)語言,用它編寫的程序代碼精簡、直接面向硬件。但匯編語言的編程效率低下,不易縮短產(chǎn)品或系統(tǒng)的開發(fā)周期。現(xiàn)在普遍采用的單片機(jī)系統(tǒng)高級(jí)開發(fā)語言是C語言。(3)具體程序的編寫。在程序編寫時(shí)應(yīng)注意程序模塊的可測性,有些重要的模塊可能還要規(guī)劃出測試數(shù)據(jù)接口,便于使用軟件仿真進(jìn)行測試。(4)軟件編譯和仿真調(diào)試。采用各種顯示手段
44、,盡量對程序進(jìn)行比較完整的測試,不把問題遺留到硬件仿真和脫機(jī)驗(yàn)證階段階段。4.3工程創(chuàng)建圖 4-2 工程創(chuàng)建一圖 4-3 工程創(chuàng)建二圖 4-4 工程創(chuàng)建三如需添加已經(jīng)創(chuàng)建過的項(xiàng)目,則需在上圖中選擇下一步,則會(huì)進(jìn)入到下個(gè)界面: 圖 4-5 工程創(chuàng)建四找到項(xiàng)目,添加即可。4.4程序編譯 圖4-6 程序界面一圖4-7 程序界面一主程序框架,顯示程序地址和循環(huán)等部分。主程序要實(shí)現(xiàn)的具體功能見下表:表4-1避障電路功能表傳感器避障電路輸出(上升沿動(dòng)作)待執(zhí)行命令左轉(zhuǎn)信號(hào)右轉(zhuǎn)信號(hào)左 中 右右轉(zhuǎn)左 中 右右轉(zhuǎn)左 中 右右轉(zhuǎn)左 中 右右轉(zhuǎn)左 中 右左轉(zhuǎn)左 中 右右轉(zhuǎn)左 中 右左轉(zhuǎn)左 中 右前進(jìn)注解:“0”表示
45、有障礙物,“1”表示無障礙物4.1下載調(diào)試調(diào)試軟件為Codewarrior4.5,調(diào)試器為清華大學(xué)工程物理系開發(fā)的 BDM。軟件編寫初期進(jìn)行調(diào)試,只要讓車在靜態(tài)狀態(tài)下,邊采集傳感器信息,邊通過hiwave.exe程序的窗口中讀取通過軟件處理的數(shù)據(jù),通過與理論值進(jìn)行對比來判斷程序的正誤。利用 BDM 可以即時(shí)的對軟件和硬件進(jìn)行監(jiān)控,在調(diào)試過程中可以方便的設(shè)置斷點(diǎn)、選用單步運(yùn)行的方式,同時(shí)查看各個(gè)寄存器的值,EEPROM中的數(shù)據(jù)掉電之后不會(huì)丟失,可以用來記錄數(shù)據(jù)再進(jìn)行后處理。這些強(qiáng)大的功能,都為我們的軟件調(diào)試提供了極大的便利。我所采用的方法為在線調(diào)試,如上面介紹的開發(fā)工具,使車處于靜止?fàn)顟B(tài),利用
46、BDM 將數(shù)據(jù)從單片機(jī)傳入電腦,可以直接在線分析數(shù)據(jù),對錯(cuò)誤和故障進(jìn)行診斷。這個(gè)調(diào)試方法適用于整個(gè)智能車的制作和調(diào)試過程。根據(jù)實(shí)際情況與理想數(shù)值的偏差,不斷修改數(shù)據(jù),漸近于理想狀態(tài)??傮w上,可以充分利用了現(xiàn)有的調(diào)試工具和通信設(shè)備,得到了我所需要的數(shù)據(jù)和結(jié)果,以便更好的為我的決策進(jìn)行優(yōu)化。4.2單片機(jī)的資源分配根據(jù)本次設(shè)計(jì)的特點(diǎn),智能車的控制系統(tǒng)主要有道路信息采集模塊,電機(jī)驅(qū)動(dòng)模塊,舵機(jī)驅(qū)動(dòng)模塊及串口模塊等。為了讓這些模塊能正常工作就要對單片機(jī)的引腳進(jìn)行合理分配。對于XS128引腳資源豐富,它有兩種封裝80PIN和112PIN,由于設(shè)計(jì)時(shí)采用的是112PIN封裝形式,故不用擔(dān)心引腳不夠使用的問題
47、。但是,DG128的112PIN封裝引腳比較亂,同一功能的引腳有可能在不同的側(cè)面,故在進(jìn)行最小系統(tǒng)板的設(shè)計(jì)時(shí),花了很長時(shí)間去調(diào)整單片機(jī)引腳的引出方法。最終,根據(jù)這些模塊的功能和特點(diǎn),現(xiàn)將所需要的資源總結(jié)如表4.1所示。表4.2系統(tǒng)資源分配表直流電機(jī)速度控制2路16位PWM輸出,PWM01和PWM23工作電壓7.2V舵機(jī)轉(zhuǎn)向控制1路8位PWM輸出,PWM45工作電壓7.2VRPR220速度反饋1個(gè)脈沖累加器,PACN01工作電壓5V攝像頭圖像采集AD端口AD0通道工作電壓9V串口與PC進(jìn)行數(shù)據(jù)通信接收RX口和發(fā)送TX口,屬SCI控制板電源開關(guān)1個(gè)復(fù)位按鈕1個(gè)指示燈4個(gè),PB0-PB3第五章 程序
48、分析#include<hidef.h>#include"derivative.h"#include<MC9S12XS128.H>#include <stdio.h>int i;int j;int k;word *AD_wValue;int m;word sensortemp=0x0000;void Initial_PLL(void);void PORT_Init(void);void AD_Init(void);void sensor_judge(void); void AD_GetValue(void);void PWMInit(voi
49、d);void PWM_01(void);void PWM_02(void);#pragma CODE_SEG DEFAULTvoid Initial_PLL(void) /*鎖相環(huán)初始化設(shè)定鎖相環(huán)周期和總線周期 總線16M*/CLKSEL=0X00; PLLCTL_PLLON=1; SYNR=0x00 | 0x01; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; void PWMInit(void)PWMPOL=0X10; /*設(shè)置先輸出高電平
50、PWMCLK=0X10; /*選擇時(shí)鐘源為Clock SA PWMPRCLK=0X07; /*始終分頻寄存器,選擇128分頻 PWMCAE=0X00; /*所有通道對齊方式選擇左對齊 PWMCTL=0X00; /*設(shè)置PWM通道不級(jí)聯(lián) PWMSCLA=0X05; /*0 和 2通道設(shè)置預(yù)分頻 PWMPER4=0X64;/*對4腳周期寄存器設(shè)置 16M/(128*2*64)=1k PWMDTY4=100; /*通道占空比設(shè)置 PWME=0x10; /*4通道使能void PWM_01(void) /*PWM1通道設(shè)置PWMCTL_CON01=1; PWMCAE_CAE1=0; PWMCNT01
51、= 0; PWMPOL_PPOL1=1; PWMPRCLK = 0X04; PWMSCLA = 0x08; PWMCLK_PCLK1 = 1; PWMPER01 = 20000; PWMDTY01 = 2010; PWME_PWME1 = 1; void PWM_02(void) /*PWM2通道設(shè)置PWMPRCLK=0X60; PWMCLK_PCLK2=1; PWMSCLB=0X7D; PWMPOL_PPOL2=0XFF; PWMCAE_CAE2=0X00; PWMPER2=0X13; PWMDTY2=0X13; PWME_PWME2=1;void PORT_Init(void) /*磀端口
52、初始化*/ DDRA=0x00; /*端口A方向輸入*/ PUCR_PUPAE=1; /*端口A信號(hào)上拉*/ PORTA=0x00; /*端口A初值為0*/ DDRP=0XFF; /*PWM口輸出*/ PTP_PTP2=0X00; /*PWM2口為低電平*/ void AD_Init(void) /*AD初始化*/ ATD0CTL1=0X00; /*外部觸發(fā),8位精度,采樣前不放電*/ ATD0CTL2=0X40; /*標(biāo)志位自動(dòng)清零,禁止外部觸發(fā),關(guān)中斷,低電平有效*/ ATD0CTL3=0X90; /*右對齊,每次2個(gè)序列,非先進(jìn)先出,遇到斷點(diǎn)繼續(xù)*/ ATD0CTL4=0X01; /*采樣時(shí)間為4個(gè)AD時(shí)鐘周期,PRS為預(yù)分頻器=f(BUS)/2*(PRS+1)=6MHZ,即時(shí)鐘分頻為6MHZ*/ ATD0CTL5=0X30; /*特殊通道禁止,連續(xù)轉(zhuǎn)換,多通道,其實(shí)通道0*/ ATD0DIEN=0X00; /*禁止數(shù)字輸入*/ void AD_GetValue(void) /*讀AD轉(zhuǎn)換結(jié)果*/ *AD_wValue=ATD0DR0; /*讀取結(jié)果寄存器的值*/ if(*AD_wValue>=128) m=1; else m=0; sensortemp=m; *AD_wValue=ATD0DR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025上半年四川省內(nèi)江資中縣事業(yè)單位考聘215人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年事業(yè)單位聯(lián)考云南省招聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 家用電器產(chǎn)品研發(fā)制造項(xiàng)目合作框架協(xié)議
- 云南財(cái)經(jīng)職業(yè)學(xué)院《材料構(gòu)造與預(yù)算》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度高科技公司合伙人協(xié)議書2篇
- 《二零二五年度夫妻協(xié)議離婚及財(cái)產(chǎn)分割、子女監(jiān)護(hù)權(quán)合同》
- 2025年度工地安全事故責(zé)任界定與免責(zé)協(xié)議3篇
- 2025年度廣告內(nèi)容創(chuàng)意與制作服務(wù)合同2篇
- 2025年度高效節(jié)能大棚種植項(xiàng)目合作協(xié)議3篇
- 2025年度城市更新項(xiàng)目土地使用權(quán)抵押合同3篇
- 2023年甲型H1N1流感防控考核試題及答案
- T-ZJASE 024-2023 呼吸閥定期校驗(yàn)規(guī)則
- 流浪乞討人員救助工作總結(jié)
- 新生兒疼痛評估與管理課件
- 云南省昆明市盤龍區(qū)2023-2024學(xué)年高二上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試題【含答案解析】
- 腎上腺皮質(zhì)功能減退通用課件
- 《安徒生童話》試題及答案
- 提高學(xué)生學(xué)習(xí)策略的教學(xué)方法
- 小學(xué)開學(xué)第一課《筑夢新起點(diǎn) 一起向未來》課件
- 廣東省深圳市2023-2024學(xué)年上冊七年級(jí)歷史期末模擬試題(附答案)
- 關(guān)于元旦的雙人相聲
評論
0/150
提交評論