摘 要
80C51單片機是一款八位單片機,他的易用性和多功能性受到了廣大使用者的好評。這里介紹的是如何用80C51單片機來實現(xiàn)設(shè)計,該設(shè)計是結(jié)合科研項目而確定的設(shè)計類課題。本系統(tǒng)以設(shè)計題目的要求為目的,采用80C51單片機為控制核心,利用超聲波傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間、里程和速度,自動尋跡和尋光功能。整個系統(tǒng)的電路結(jié)構(gòu)簡單,可靠性能高。實驗測試結(jié)果滿足要求,本文著重介紹了該系統(tǒng)的硬件設(shè)計方法及測試結(jié)果分析。
采用的技術(shù)主要有:
通過編程來控制小車的速度;
傳感器的有效應(yīng)用;
新型顯示芯片的采用.
目 錄
第一章 前 言
第二章 方案設(shè)計與論證
一 直流調(diào)速系統(tǒng)
二 檢測系統(tǒng)
三 顯示電路
四 系統(tǒng)原理圖
第三章 硬件設(shè)計
一 80C51單片機硬件結(jié)構(gòu)
二 最小應(yīng)用系統(tǒng)設(shè)計
三 前向通道設(shè)計
四 后向通道設(shè)計
五 顯示電路設(shè)計
第四章 軟件設(shè)計
一 主程序設(shè)計
二 顯示子程序設(shè)計
三 避障子程序設(shè)計
四 軟件抗干擾技術(shù)
五 “看門狗”技術(shù)
六 可編程邏輯器件
第五章 測試數(shù)據(jù)、測試結(jié)果分析及結(jié)論
致 謝
參 考 文 獻
附錄A 程序清單
附錄B 硬件原理圖
第一章 前 言
隨著汽車工業(yè)的迅速發(fā)展,關(guān)于汽車的研究也就越來越受人關(guān)注。全國電子大賽和省內(nèi)電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究?梢娖溲芯恳饬x很大。本設(shè)計就是在這樣的背景下提出的,指導(dǎo)教師已經(jīng)有充分的準(zhǔn)備。本題目是結(jié)合科研項目而確定的設(shè)計類課題。設(shè)計的智能電動小車應(yīng)該能夠?qū)崟r顯示時間、速度、里程,具有自動尋跡、尋光、避障功能,可程控行駛速度、準(zhǔn)確定位停車。
根據(jù)題目的要求,確定如下方案:在現(xiàn)有玩具電動車的基礎(chǔ)上,加裝光電、紅外線、超聲波傳感器及金屬探測器,實現(xiàn)對電動車的速度、位置、運行狀況的實時測量,并將測量數(shù)據(jù)傳送至單片機進行處理,然后由單片機根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對電動車的智能控制。
這種方案能實現(xiàn)對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。本設(shè)計采用MCS-51系列中的80C51單片機。以80C51為控制核心,利用超聲波傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間、里程和速度,自動尋跡和尋光功能。80C51是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評。它是第三代單片機的代表。
第三代單片機包括了Intel公司發(fā)展MCS-51系列的新一代產(chǎn)品,如8xC152﹑80C51FA/FB﹑80C51GA/GB﹑8xC451﹑8xC452,還包括了Philips﹑Siemens﹑ADM﹑Fujutsu﹑OKI﹑Harria-Metra﹑ATMEL等公司以80C51為核心推出的大量各具特色﹑與80C51兼容的單片機。新一代的單片機的最主要的技術(shù)特點是向外部接口電路擴展,以實現(xiàn)Microcomputer完善的控制功能為己任,將一些外部接口功能單元如A/D﹑PWM﹑PCA(可編程計數(shù)器陣列)﹑WDT(監(jiān)視定時器)﹑高速I/O口﹑計數(shù)器的捕獲/比較邏輯等。這一代單片機中,在總線方面最重要的進展是為單片機配置了芯片間的串行總線,為單片機應(yīng)用系統(tǒng)設(shè)計提供了更加靈活的方式。Philips公司還為這一代單片機80C51系列8xC592單片機引入了具有較強功能的設(shè)備間網(wǎng)絡(luò)系統(tǒng)總線----CAN(Controller Area Network BUS).
新一代單片機為外部提供了相當(dāng)完善的總線結(jié)構(gòu),為系統(tǒng)的擴展與配置打下了良好的基礎(chǔ)。
本設(shè)計就采用了比較先進的80C51為控制核心,80C51采用CHOMS工藝,功耗很低。該設(shè)計具有實際意義,可以應(yīng)用于考古、機器人、醫(yī)療器械等許多方面。尤其是
在足球機器人研究方面具有很好的發(fā)展前景;在考古方面也應(yīng)用到了超聲波傳感器進行檢測。所以本設(shè)計與實際相結(jié)合,現(xiàn)實意義很強。
第二章 方案設(shè)計與論證根據(jù)題目的要求,確定如下方案:在現(xiàn)有玩具電動車的基礎(chǔ)上,加裝光電檢測器,實現(xiàn)對電動車的速度、位置、運行狀況的實時測量,并將測量數(shù)據(jù)傳送至單片機進行處理,然后由單片機根據(jù)所檢測的各種數(shù)據(jù)實現(xiàn)對電動車的智能控制。 這種方案能實現(xiàn)對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。 一 直流調(diào)速系統(tǒng)方案一:串電阻調(diào)速系統(tǒng)。 方案二:靜止可控整流器。簡稱V-M系統(tǒng)。 方案三:脈寬調(diào)速系統(tǒng)。 旋轉(zhuǎn)變流系統(tǒng)由交流發(fā)電機拖動直流電動機實現(xiàn)變流,由發(fā)電機給需要調(diào)速的直流電動機供電,調(diào)節(jié)發(fā)電機的勵磁電流即可改變其輸出電壓,從而調(diào)節(jié)電動機的轉(zhuǎn)速。改變勵磁電流的方向則輸出電壓的極性和電動機的轉(zhuǎn)向都隨著改變,所以G-M系統(tǒng)的可逆運行是很容易實現(xiàn)的。該系統(tǒng)需要旋轉(zhuǎn)變流機組,至少包含兩臺與調(diào)速電動機容量相當(dāng)?shù)男D(zhuǎn)電機,還要一臺勵磁發(fā)電機,設(shè)備多、體積大、費用高、效率低、維護不方便等缺點。且技術(shù)落后,因此擱置不用。 V-M系統(tǒng)是當(dāng)今直流調(diào)速系統(tǒng)的主要形式。它可以是單相、三相或更多相數(shù),半波、全波、半控、全控等類型,可實現(xiàn)平滑調(diào)速。V-M系統(tǒng)的缺點是晶閘管的單向?qū)щ娦,它不允許電流反向,給系統(tǒng)的可逆運行造成困難。它的另一個缺點是運行條件要求高,維護運行麻煩。最后,當(dāng)系統(tǒng)處于低速運行時,系統(tǒng)的功率因數(shù)很低,并產(chǎn)生較大的諧波電流危害附近的用電設(shè)備。 采用晶閘管的直流斬波器基本原理與整流電路不同的是,在這里晶閘管不受相位控制,而是工作在開關(guān)狀態(tài)。當(dāng)晶閘管被觸發(fā)導(dǎo)通時,電源電壓加到電動機上,當(dāng)晶閘管關(guān)斷時,直流電源與電動機斷開,電動機經(jīng)二極管續(xù)流,兩端電壓接近于零。脈沖寬度調(diào)制(Pulse Width Modulation),簡稱PWM。脈沖周期不變,只改變晶閘管的導(dǎo)通時間,即通過改變脈沖寬度來進行直流調(diào)速。 與V-M系統(tǒng)相比,PWM調(diào)速系統(tǒng)有下列優(yōu)點: (1)由于PWM調(diào)速系統(tǒng)的開關(guān)頻率較高,僅靠電樞電感的濾波作用就可以獲得脈動很小的直流電流,電樞電流容易連續(xù),系統(tǒng)的低速運行平穩(wěn),調(diào)速范圍較寬,可達1:10000左右。由于電流波形比V-M系統(tǒng)好,在相同的平均電流下,電動機的損耗和發(fā)熱都比較小。 (2)同樣由于開關(guān)頻率高,若與快速響應(yīng)的電機相配合,系統(tǒng)可以獲得很寬的頻帶,因此快速響應(yīng)性能好,動態(tài)抗擾能力強。 (3)由于電力電子器件只工作在開關(guān)狀態(tài),主電路損耗較小,裝置效率較高。 根據(jù)以上綜合比較,以及本設(shè)計中受控電機的容量和直流電機調(diào)速的發(fā)展方向,本設(shè)計采用了H型單極型可逆PWM變換器進行調(diào)速。 脈寬調(diào)速系統(tǒng)的主電路采用脈寬調(diào)制式變換器,簡稱PWM變換器。 脈寬調(diào)速也可通過單片機控制繼電器的閉合來實現(xiàn),但是驅(qū)動能力有限。為順利實現(xiàn)電動小汽車的前行與倒車,本設(shè)計采用了可逆PWM變換器?赡鍼WM變換器主電路的結(jié)構(gòu)式有H型、T型等類型。我們在設(shè)計中采用了常用的雙極式H型變換器,它是由4個三極電力晶體管和4個續(xù)流二極管組成的橋式電路。 二 檢測系統(tǒng)檢測系統(tǒng)主要實現(xiàn)光電檢測,即利用各種傳感器對電動車的避障、位置、行車狀態(tài)進行測量。 1.行車起始、終點及光線檢測: 本系統(tǒng)采用反射式紅外線光電傳感器用于檢測路面的起始、終點(2cm寬的黑線),玩具車底盤上沿黑線放置一套,以適應(yīng)起始的記數(shù)開始和終點的停車的需要。利用超聲波傳感器檢測障礙。光線跟蹤,采用光敏三極管接收燈泡發(fā)出的光線,當(dāng)感受到光線照射時,其c-e間的阻值下降,檢測電路輸出高電平,經(jīng)LM393電壓比較器和74LS14施密特觸發(fā)器整形后送單片機控制。 本系統(tǒng)共設(shè)計兩個光電三極管,分別放置在電動車車頭的左、右兩個方向,用來控制電動車的行走方向,當(dāng)左側(cè)光電管受到光照時,單片機控制轉(zhuǎn)向電機向左轉(zhuǎn);當(dāng)右側(cè)光電管受到光照時,單片機控制轉(zhuǎn)向電機向右轉(zhuǎn);當(dāng)左、右兩側(cè)光電管都受到光照時,單片機控制直行。見圖2.1 電動車的方向檢測電路(a)。 行車方向檢測電路(見圖2.2 電動車的方向檢測電路(b))采用反射接收原理配置了一對紅外線發(fā)射、接收傳感器。該電路包括一個紅外發(fā)光二極管、一個紅外光敏三極管及其上拉電阻。紅外發(fā)光二極管發(fā)射一定強度的紅外線照射物體,紅外光敏三極管在接收到反射回來的紅外線后導(dǎo)通,發(fā)出一個電平跳變信號。 此套紅外光電傳感器固定在底盤前沿,貼近地面。正常行駛時,發(fā)射管發(fā)射紅外光照射地面,光線經(jīng)白紙反射后被接收管接收,輸出高電平信號;電動車經(jīng)過黑線時,發(fā)射端發(fā)射的光線被黑線吸收,接收端接收不到反射光線,傳感器輸出低電平信號后送80C51單片機處理,判斷執(zhí)行哪一種預(yù)先編制的程序來控制玩具車的行駛狀態(tài)。前進時,驅(qū)動輪直流電機正轉(zhuǎn),進入減速區(qū)時,由單片機控制進行PWM變頻調(diào)速,通過軟件改變脈沖調(diào)寬波形的占空比,實現(xiàn)調(diào)速。最后經(jīng)反接制動實現(xiàn)停車。前行與倒車控制電路的核心是橋式電路和繼電器。電橋上設(shè)置有兩組開關(guān),一組常閉,另一組常開。 
圖2.1 電動車的方向檢測電路(a) 圖2.2 電動車的方向檢測電路(b) 電橋一端接電源,另一端接了一個三極管。三極管導(dǎo)通時,電橋通過三極管接地,電機電樞中有電流通過;三極管截止時,電橋浮空,電機電樞中沒有電流通過。系統(tǒng)通過電橋的輸出端為轉(zhuǎn)向電機供電。通過對繼電器開閉的控制即可控制電機的開斷和轉(zhuǎn)速方向進而達到控制玩具車前行與倒車的目的,實現(xiàn)隨動控制系統(tǒng)的糾偏功能。如圖2.3 前行與倒車控制電路所示。 
圖2.3前行與倒車控制電路 檢測放大器方案: 方案一:使用普通單級比例放大電路。其特點是結(jié)構(gòu)簡單、調(diào)試方便、價格低廉。但是也存在著許多不足。如抗干擾能力差、共模抑制比低等。 方案二:采用差動放大電路。選擇優(yōu)質(zhì)元件構(gòu)成比例放大電路,雖然可以達到一定的精度,但有時仍不能滿足某些特殊要求。例如,在測量本設(shè)計中的光電檢測信號時需要把檢測過來的電平信號放大并濾除干擾,而且要求對共模干擾信號具有相當(dāng)強的抑制能力。這種情況下須采用差動放大電路,并應(yīng)設(shè)法減小溫漂。但在實際操作中,往往滿足了高共模抑制比的要求,卻使運算放大器輸出飽和;為獲得單片機能識別的TTL電平卻又無法抑制共模干擾。 方案三:電壓比較器方案。電壓比較器的功能是比較兩個電壓的大小,例如將一個信號電壓Ui和一個參考電壓Ur進行比較,在Ui>Ur和Ui<Ur兩種不同情況下,電壓比較器輸出兩個不同的電平,即高電平和低電平。而Ui變化經(jīng)過Ur時,比較器的輸出將從一個電壓跳變到另一個電平。 比較器有各種不同的類型。對它的要求是:鑒別要準(zhǔn)確,反應(yīng)要靈敏,動作要迅速,抗干擾能力要強,還應(yīng)有一定的保護措施,以防止因過電壓或過電流而造成器件損壞。 比較器的特點: ⑴ 工作在開環(huán)或正反饋狀態(tài)。放大、運算電路為了實現(xiàn)性能穩(wěn)定并滿足 一定的精度要求,這些電路中的運放均引入了深度負(fù)反饋;而為了提高比較器的反應(yīng)速度和靈敏度,它所采用的運放不但沒有引入負(fù)反饋,有時甚至還加正反饋。因此比較器的性能分析方法與放大、運算電路是不同的。 ⑵ 非線性。由于比較器中運放處于開環(huán)或正反饋狀態(tài),它的兩個輸入端之間的電位差與開環(huán)電壓放大倍數(shù)的乘積通常超過最大輸出電壓,使其內(nèi)部某些管子進入飽和區(qū)或截止區(qū),因此在絕大多數(shù)情況下輸出與輸入不成線性關(guān)系,即在放大、運算等電路中常用的計算方法對于比較器不再適用。 ⑶ 開關(guān)特性。比較器的輸出通常只有高電平和低電平兩種穩(wěn)定狀態(tài),因此它相當(dāng)與一個受輸入信號控制的開關(guān),當(dāng)輸入電壓經(jīng)過閾值時開關(guān)動作,使輸出從一個電平跳變到另一個電平。由于比較器的輸入信號是模擬量,而它的輸出電平是離散的,因此電壓比較器可作為模擬電路與數(shù)字電路之間的過渡電路。 由于比較器的上述特點,在分析時既不能象對待放大電路那樣去計算放大倍數(shù),也不能象分析運算電路那樣去求解輸出與輸入的函數(shù)關(guān)系,而應(yīng)當(dāng)著重抓住比較器的輸出從一個電平跳變到另一個電平的臨界條件所對應(yīng)的輸入電壓值(閾值)來分析輸入量與輸出量之間的關(guān)系。 如果在比較器的輸入端加理想階躍信號,那么在理想情況下比較器的輸出也應(yīng)當(dāng)是理想的階躍電壓,而且沒有延遲。但實際集成運放的最大轉(zhuǎn)換速率總是有限的,因此比較器輸出電壓的跳變不可能是理想的階躍信號。電壓比較器的輸出從低電平變?yōu)楦唠娖剿毜臅r間稱為響應(yīng)時間。響應(yīng)時間越短,響應(yīng)速度越快。 減小比較器響應(yīng)時間的主要方法有: (1) 盡可能使輸入信號接近理想情況,使它在閾值附近的變化接近理想階躍 且幅度足夠大。 (2) 選用集成電壓比較器。 
(3) 如果選用集成運放構(gòu)成比較器,為了提高響應(yīng)速度可以加限幅措施,以避免集成運放內(nèi)部的管子進入深飽和區(qū)。具體措施多為在集成運放的兩個輸入端并聯(lián)二極管。如圖2.4 電壓比較器電路所示:圖2.4 電壓比較器電路 在本設(shè)計中,光電傳感器只輸出一種高低電平信號且伴有外界雜波干擾,所以我們嘗試采用了一種滯回比較器。簡單電壓比較器結(jié)構(gòu)簡單,而且靈敏度高,但它的抗干擾能力差,也就是說如果輸入信號因受干擾在閾值附近變化,則比較器輸出就會反復(fù)的從一個電平跳到另一個電平。如果用這樣的輸出電壓控制電機或繼電器,將出現(xiàn)頻繁動作或起停現(xiàn)象。這種情況,通常是不允許的。而滯回比較器則解決了這個問題。滯回比較器有兩個數(shù)值不同的閾值,當(dāng)輸入信號因受干擾或其他原因發(fā)生變化時,只要變化量不超過兩個閾值之差,滯回比較器的輸出電壓就不會來回變化。所以抗干擾能力強。 但是,滯回比較器畢竟是模擬器件,溫度的漂移是它無法消除的。 方案四:施密特觸發(fā)器。 綜合考慮系統(tǒng)的各項性能,最后我們決定采用數(shù)字器件——施密特觸發(fā)器。 施密特觸發(fā)器是雙穩(wěn)態(tài)觸發(fā)器的變形,它有兩個穩(wěn)定狀態(tài),觸發(fā)方式為電平觸發(fā),只要外加觸發(fā)信號的幅值增加到足夠大,它就從一個穩(wěn)定狀態(tài)翻轉(zhuǎn)到另一個穩(wěn)定狀態(tài)。施密特觸發(fā)器具有與滯回比較器相類似的滯回特性,但施密特觸發(fā)器的抗干擾能力比滯回比較器更強。 2.行車距離檢測  由于紅外檢測具有反應(yīng)速度快、定位精度高,可靠性強以及可見光傳感器所不能比擬的優(yōu)點,故采用紅外光電碼盤測速方案。具體電路同圖2.5 行車距離檢測電路所示:
圖2.5 行車距離檢測電路 紅外測距儀由測距輪,遮光盤,紅外光電耦合器及凹槽型支架組成的。測長輪的周長為記數(shù)的單位,最好取有效值為單一的數(shù)值(如本設(shè)計中采用0.1米),精度根據(jù)電動車控制的需要確定。測距輪安裝在車輪上,這樣能使記數(shù)值準(zhǔn)確一些。 遮光盤有一缺口,盤下方的凹形物為槽型光電耦合器,其兩端高出部分的里面分別裝有紅外發(fā)射管和紅外接收管。遮光盤在凹槽中轉(zhuǎn)動時,缺口進入凹槽時,紅外線可以通過,缺口離開凹槽紅外線被阻擋。由此可見,測距輪每轉(zhuǎn)一周,紅外光接收管均能接收到一個脈沖信號經(jīng)過整形器后送入計數(shù)器或直接送入單片機中。 為實現(xiàn)可逆記數(shù)功能,我們在測距儀中并列放置了兩個槽型光電耦合器,遮光盤先后通過凹槽可產(chǎn)生兩個脈沖信號。根據(jù)兩個脈沖信號發(fā)生的先后順序與兩個光電耦合器的位置關(guān)系,即可計算出玩具車的行駛方向(前進或后退)。 遮光盤及槽型光電耦合器均安裝在不透光的盒子里,以避免外界光線的干擾,使電路不能正常工作。 測距原理:將光柵安裝在電機軸上,當(dāng)電機轉(zhuǎn)動時,光柵也隨之轉(zhuǎn)動,同時安裝在光柵一側(cè)的紅外發(fā)光二極管點亮,在光柵的另一側(cè)設(shè)有紅外三極管,用于接收紅外發(fā)光二極管發(fā)出的紅外線信號。由于光柵隨電機高速轉(zhuǎn)動,則紅外線三極管接收到的就是一系列脈沖信號。將該信號傳輸?shù)?0C51單片機的內(nèi)部計數(shù)器計數(shù),根據(jù)預(yù)先實測的數(shù)據(jù)換算關(guān)系即可計算出電動機車的行車距離。 三 顯示電路本設(shè)計中用兩片4位八段數(shù)碼管gem4561ae作顯示器,并具有雙重功能,在小車不行駛時其中一片顯示年﹑月,另一片顯示時﹑分; 當(dāng)小車行駛時,分別顯示時間和行駛距離。 四 系統(tǒng)原理圖 簡易智能電動車采用80C51單片機進行智能控制。開始由手動啟動小車,并復(fù)位,當(dāng)經(jīng)過規(guī)定的起始黑線,由超聲波傳感器和紅外光電傳感器檢測,通過單片機控制小車開始記數(shù)顯示并避障、調(diào)速;系統(tǒng)的自動避障功能通過超聲波傳感器正前方檢測和紅外光電傳感器左右側(cè)檢測,由單片機控制實現(xiàn);在電動車進駛過程中,采用雙極式H型PWM脈寬調(diào)制技術(shù),以提高系統(tǒng)的靜動態(tài)性能;采用動態(tài)共陰顯示行駛時間和里程。 系統(tǒng)原理圖如圖2.6所示。
圖2.6 系統(tǒng)原理圖
第三章 硬件設(shè)計一個單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包含有兩部分內(nèi)容:一是系統(tǒng)擴展,即單片機內(nèi)部的功能單元,如ROM﹑RAM﹑I/O口﹑定時/記數(shù)器﹑中斷系統(tǒng)等能量不能滿足應(yīng)用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當(dāng)?shù)男酒O(shè)計相應(yīng)的電路。二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤顯示器﹑打印機﹑A/D﹑D/A轉(zhuǎn)換器等,要設(shè)計合適的接口電路。 一 80C51單片機硬件結(jié)構(gòu)80C51單片機是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個尺寸有限的集成電路芯片上[2]。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲器、程序存儲器、并行I/O口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過片內(nèi)單一總線連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。 1 微處理器 該單片機中有一個8位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進行位變量的處理。 2 數(shù)據(jù)存儲器 片內(nèi)為128個字節(jié),片外最多可外擴至64k字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱為數(shù)據(jù)存儲器。 3 程序存儲器 由于受集成度限制,片內(nèi)只讀存儲器一般容量較小,如果片內(nèi)的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k字節(jié)。 4 中斷系統(tǒng) 具有5個中斷源,2級中斷優(yōu)先權(quán)。 5 定時器/計數(shù)器 片內(nèi)有2個16位的定時器/計數(shù)器, 具有四種工作方式。 6 串行口 1個全雙工的串行口,具有四種工作方式?捎脕磉M行串行通訊,擴展并行I/O口,甚至與多個單片機相連構(gòu)成多機系統(tǒng),從而使單片機的功能更強且應(yīng)用更廣。 7 P1口、P2口、P3口、P4口 為4個并行8位I/O口。 8 特殊功能寄存器 共有21個,用于對片內(nèi)的個功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。 由上可見,80C51單片機的硬件結(jié)構(gòu)具有功能部件種類全,功能強等特點。特別值得一提的是該單片機CPU中的位處理器,它實際上是一個完整的1位微計算機,這個一位微計算機有自己的CPU、位寄存器、I/O口和指令集。1位機在開關(guān)決策、邏輯電路仿真、過程控制方面非常有效;而8位機在數(shù)據(jù)采集,運算處理方面有明顯的長處。MCS-51單片機中8位機和1位機的硬件資源復(fù)合在一起,二者相輔相承,它是單片機技術(shù)上的一個突破,這也是MCS-51單片機在設(shè)計的精美之處。 二 最小應(yīng)用系統(tǒng)設(shè)計80C51是片內(nèi)有ROM/EPROM的單片機,因此,這種芯片構(gòu)成的最小系統(tǒng)簡單﹑可靠。用80C51單片機構(gòu)成最小應(yīng)用系統(tǒng)時,只要將單片機接上時鐘電路和復(fù)位電路即可,如圖3.1 80C51單片機最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點:
- 有可供用戶使用的大量I/O口線。
- 內(nèi)部存儲器容量有限。
- 應(yīng)用系統(tǒng)開發(fā)具有特殊性。

圖3.1 80C51單片機最小系統(tǒng) 1、時鐘電路 80C51雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外部附加電路。80C51單片機的時鐘產(chǎn)生方法有兩種。內(nèi)部時鐘方式和外部時鐘方式。 本設(shè)計采用內(nèi)部時鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計采用最常用的內(nèi)部時鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無嚴(yán)格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度
有少許影響,CX1、CX2可在20pF到100pF之間取值,但在60pF到70pF時振蕩器有較高的頻率穩(wěn)定性。所以本設(shè)計中,振蕩晶體選擇6MHZ,電容選擇65pF。 在設(shè)計印刷電路板時,晶體和電容應(yīng)盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應(yīng)采用NPO電容。 2、復(fù)位電路 80C51的復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。復(fù)位引腳RST通過一個斯密特觸發(fā)器用來抑制噪聲,在每個機器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。 復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式。 最簡單的上電自動復(fù)位電路中上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的。只要Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位。時鐘頻率用6MHZ時C取22uF,R取1KΩ。 
除了上電復(fù)位外,有時還需要按鍵手動復(fù)位。本設(shè)計就是用的按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過RST端經(jīng)電阻與電源Vcc接通而實現(xiàn)的。按鍵手動復(fù)位電路見圖3.2。時鐘頻率選用6MHZ時,C取22uF,Rs取200Ω,RK取1KΩ。 圖3.2 80C51復(fù)位電路 三 前向通道設(shè)計單片機用與測控系統(tǒng)時,總要有與被測對象相聯(lián)系的前向通道。因此,前向通道設(shè)計與被測對象的狀態(tài)、特征、所處環(huán)境密切相關(guān)。在前向通道設(shè)計時要考慮到傳感器或敏感元件選擇、通道結(jié)構(gòu)、信號調(diào)節(jié)、電源配置、抗干擾設(shè)計等。在通道電路設(shè)計中還涉及到模擬電路諸多問題。 1﹑前向通道的含義 當(dāng)將單片機用作測﹑控系統(tǒng)時,系統(tǒng)中總要有被測信號輸入通道,有計算機拾取必要的輸入信息。作為測試系統(tǒng),對被測對象拾取必要的原始參量信號是系統(tǒng)的核心任務(wù),對控制系統(tǒng)來說,對被控對象狀態(tài)的測試以及對控制條件的監(jiān)測也是不可缺少的環(huán)節(jié)。 對被測對象狀態(tài)的測試一般都離不開傳感器或敏感元件,這是因為被測對象的狀態(tài)參數(shù)常常是一些非電物理量,如溫度、壓力、載荷、位移等,而計算機是一個數(shù)字電路系統(tǒng)。因此,在前向通道中,傳感器、敏感元件及其相關(guān)電路占有重要地位。 對被測對象的信號的拾取其主要任務(wù)就是最忠實地反映被測對象的真實狀態(tài),它包括實時性與測量精度。同時使這些測量信號能滿足計算機輸入接口的電平要求。 因此,單片機應(yīng)用系統(tǒng)中的前向通道體現(xiàn)了被測對象與系統(tǒng)相互聯(lián)系的信號輸入通道,原始參數(shù)輸入通道。由于在該通道中主要是傳感器與傳感器有關(guān)的信號調(diào)節(jié)、變換電路,故也可稱為傳感器接口通道。 在單片機應(yīng)用系統(tǒng)中,對信號輸入、傳感、變換應(yīng)作廣義理解,例如開關(guān)量的檢測及信號輸入,在單片機的各種應(yīng)用系統(tǒng)中有著廣泛的應(yīng)用。最簡單的開關(guān)量輸入通道就是一個具有TTL電平的狀態(tài)開關(guān),如水銀溫度觸點、溫度晶閘管、時間繼電器、限位開關(guān)等。故只要反映外界狀態(tài)的信號輸入通道都可稱為前向通道。 并不是所有單片機應(yīng)用系統(tǒng)都有前向通道,例如時序控制系統(tǒng),只根據(jù)系統(tǒng)內(nèi)部的時間序列來控制外部的運行狀態(tài);分布式測控系統(tǒng)中的智能控制總站完成上級主計算機與現(xiàn)場測、控子站計算機之間的指令、數(shù)據(jù)傳送。這些應(yīng)用系統(tǒng)沒有被測對象,故不需要前向通道。 2﹑前向通道的設(shè)計 (1)傳感器的比較[3] 識別障礙的首要問題是傳感器的選擇,下面對幾種傳感器的優(yōu)缺點進行說明(見表3.1)。探測障礙的最簡單的方法是使用超聲波傳感器,它是利用向目標(biāo)發(fā)射超聲波脈沖,計算其往返時間來判定距離的。該方法被廣泛應(yīng)用于移動機器人的研究上。其優(yōu)點是價格便宜,易于使用,且在10m以內(nèi)能給出精確的測量。不過在ITS系統(tǒng)中除了上文提出的場景限制外,還有以下問題。首先因其只能在10m以內(nèi)有效使用,所以并不適合ITS系統(tǒng)。另外超聲波傳感器的工作原理基于聲,即使可以使之測達100m遠(yuǎn),但其更新頻率為2Hz,而且還有可能在傳輸中受到它信號的干擾,所以在CW/ICC系統(tǒng)中使用是不實際的。 表3.1 傳感器性能比較 傳感器類型 | 優(yōu) 點 | 缺 點 | 超聲波
視覺
激光雷達
MMW雷達 | 價格合理,夜間不受影響。
易于多目標(biāo)測量和分類,分辨率好。
價格相合理,夜間不受影響
不受燈光、天氣影響。 | 測量范圍小,對天氣變化敏感。
不能直接測量距離,算法復(fù)雜,處理速度慢。
對水、灰塵、燈光敏感。
價格貴 |
視覺傳感器在CW系統(tǒng)中使用得非常廣泛。其優(yōu)點是尺寸小,價格合理,在一定的寬度和視覺域內(nèi)可以測量定多個目標(biāo),并且可以利用測量的圖像根據(jù)外形和大小對目標(biāo)進行分類。但是算法復(fù)雜,處理速度慢。雷達傳感器在軍事和航空領(lǐng)域已經(jīng)使用了幾十年。主要優(yōu)點是可以魯棒地探測到障礙而不受天氣或燈光條件限制。近十年來隨著尺寸及價格的降低,在汽車行業(yè)開始被使用。但是仍存在性價比的問題。 (2)超聲波障礙檢測[4] 超聲波是一種在彈性介質(zhì)中的機械振蕩,其頻率超過20KHz,分橫向振蕩和縱向振蕩兩種,超聲波可以在氣體、液體及固體中傳播,其傳播速度不同。它有折射和反射現(xiàn)象,且在傳播過程中有衰減。利用超聲波的特性,可做成各種超聲波傳感器,結(jié)合不同的電路,可以制成超聲波儀器及裝置,在通訊、醫(yī)療及家電中獲得廣泛應(yīng)用。 作為超聲波傳感器的材料,主要為壓電晶體。壓電晶體組成的超聲波傳感器是一種可逆?zhèn)鞲衅鳎梢詫㈦娔苻D(zhuǎn)變成機械振蕩而產(chǎn)生超聲波,同時它接收到超聲波時,也能轉(zhuǎn)變成電能,故它分為發(fā)送器和接收器。超聲波傳感器有透射型、反射型兩種類型,常用于防盜報警器、接近開關(guān)、測距及材料探傷、測厚等。 本設(shè)計采用T/R-40-12小型超聲波傳感器作為探測前方障礙物體的檢測元件,其中心頻率為40Hz,由80C51發(fā)出的40KHz脈沖信號驅(qū)動超聲波傳感器發(fā)送器發(fā)出40KHz的脈沖超聲波,如電動車前方遇到有障礙物時,此超聲波信號被障礙物反射回來,由接收器接收,經(jīng)LM318兩級放大,再經(jīng)帶有鎖相環(huán)的音頻解碼芯片LM567解碼,當(dāng)LM567的輸入信號大于25mV時,輸出端由高電平變?yōu)榈碗娖,?0C51單片機處理。超聲波檢測如圖3.3超聲波檢測電路所示。 
圖 3.3 超聲波檢測電路 四 后向通道設(shè)計 在工業(yè)控制系統(tǒng)中,單片機總要對控制對象實現(xiàn)操作,因此,在這樣的系統(tǒng)中,總要有后向通道。后向通道是計算機實現(xiàn)控制運算處理后,對控制對象的輸出通道接口。 根據(jù)單片機的輸出和控制對象實現(xiàn)控制信號的要求,后向通道具有以下特點: (1) 小信號輸出、大功率控制。根據(jù)目前單片機輸出功率的限制,不能輸出控制對象所要求的功率信號。 (2) 是一個輸出通道。輸出伺服驅(qū)動系統(tǒng)控制信號,而伺服驅(qū)動系統(tǒng)中的狀態(tài)反饋信號通常是作為檢測信號輸入前向通道。 (3) 接近控制對象,環(huán)境惡劣?刂茖ο蠖酁榇蠊β仕欧(qū)動機構(gòu),電磁、機械干擾較為嚴(yán)重。但后向通道是一個輸出通道,而且輸出電平較高,不易受到直接損害。但這些干擾易從系統(tǒng)的前向通道竄入。 單片機在完成控制處理后,總是以數(shù)字信號通過I/O口或數(shù)據(jù)總線送給控制對象。這些數(shù)字信號形態(tài)主要有開關(guān)量、二進制數(shù)字量和頻率量,可直接用于開關(guān)量、數(shù)字量系統(tǒng)及頻率調(diào)制系統(tǒng),但對于一些模擬量控制系統(tǒng),則應(yīng)通過數(shù)/模轉(zhuǎn)換成模擬量控制信號。 根據(jù)單片機輸出信號形態(tài)及控制對象要求,后向通道應(yīng)解決: - 功率驅(qū)動。將單片機輸出信號進行功率放大,以滿足伺服驅(qū)動的功率要求。
- 干擾防治。主要防治伺服驅(qū)動系統(tǒng)通過信號通道﹑電源以及空間電磁場對計算機系統(tǒng)的干擾。通常采用信號隔離﹑電源隔離和對功率開關(guān)實現(xiàn)過零切換等方法進行干擾防治。
- 數(shù)/模轉(zhuǎn)換。對于二進制輸出的數(shù)字量采用D/A變換器;對于頻率量輸出則可以采用
本設(shè)計調(diào)速采用PWM調(diào)速[5]: 為順利實現(xiàn)電動小汽車的左轉(zhuǎn)和右轉(zhuǎn),本設(shè)計采用了可逆PWM變換器?赡鍼WM變換器主電路的結(jié)構(gòu)式有H型、T型等類型。我們在設(shè)計中采用了常用的雙極式H型變換器,它是由4個三極電力晶體管和4個續(xù)流二極管組成的橋式電路。圖3.4為雙極式H型可逆PWM變換器的電路原理圖。 4個電力晶體管的基極驅(qū)動電壓分為兩組。VT1和VT4同時導(dǎo)通和關(guān)斷,其驅(qū)動電路中Ub1=Ub4;VT2和VT3同時動作,其驅(qū)動電壓Ub2=Ub3= -Ub1。 雙極式PWM變換器的優(yōu)點如下: (1)電流一定連續(xù); (2)可使電動機在四象限中運行; (3)電機停止時有微振電流,能消除靜摩擦死區(qū); (4)低速時,每個晶體管的驅(qū)動脈沖仍較寬,有利于保證晶體管可靠導(dǎo)通; (5)低速平穩(wěn)性好,調(diào)速范圍可達20000左右。 1、脈寬調(diào)制原理: 脈寬調(diào)制器本身是一個由運算放大器和幾個輸入信號組成的電壓比較器。運算放

圖3.4 雙極式H型可逆PWM變換器電路原理圖 大器工作在開換狀態(tài),稍微有一點輸入信號就可使其輸出電壓達到飽和值,當(dāng)輸入電壓極性改變時,輸出電壓就在正、負(fù)飽和值之間變化,這樣就完成了把連續(xù)電壓變成脈沖電壓的轉(zhuǎn)換作用。加在運算放大器反相輸入端上的有三個輸入信號。一個輸入信號是鋸齒波調(diào)制信號,另一個是控制電壓,其極性大小可隨時改變,與鋸齒波調(diào)制信號相減,從而在運算放大器的輸出端得到周期不變、脈寬可變的調(diào)制輸出電壓。只要改變控制電壓的極性,也就改變了PWM變換器輸出平均電壓的極性,因而改變了電動機的轉(zhuǎn)向.改變控制電壓的大小,則調(diào)節(jié)了輸出脈沖電壓的寬度,從而調(diào)節(jié)電動機的轉(zhuǎn)速.只要鋸齒波的線性度足夠好,輸出脈沖的寬度是和控制電壓的大小成正比的. 2、邏輯延時環(huán)節(jié): 在可逆PWM變換器中,跨接在電源兩端的上下兩個晶體管經(jīng)常交替工作.由于晶體管的關(guān)斷過程中有一段存儲時間和電流下降時間,總稱關(guān)斷時間,在這段時間內(nèi)晶體管并未完全關(guān)斷.如果在此期間另一個晶體管已經(jīng)導(dǎo)通,則將造成上下兩管之通,從而使電源正負(fù)極短路.為避免發(fā)生這種情況,設(shè)置了由RC電路構(gòu)成的延時環(huán)節(jié). 3、電源的設(shè)計 本設(shè)計的電源為車載電源。為保證電源工作可靠,單片機系統(tǒng)與動力伺服系統(tǒng)的電源采用了大功率、大容量的蓄電池;而傳感器的工作電源則采用了小巧輕便的干電池。 五 顯示電路設(shè)計本設(shè)計中用兩片4位八段數(shù)碼管gem4561ae作顯示器,并具有雙重功能,在小車不行駛時其中一片顯示年月,另一片顯示時.分. 當(dāng)小車行駛時,分別顯示時間和行駛距離原理圖如圖1. 
本設(shè)計中采用新型芯片EM78P458作為顯示驅(qū)動器,它的管腳如圖3.5 EM78P458管腳介紹所示,用單片機的并行口控制,一個數(shù)碼顯示電路用4個口線,用專用驅(qū)動芯片控制可以減少對CPU的利用時間,單片機將有更多的時間去完成其他功能. 圖3.5 EM78P458的管腳 該芯片共有20個管腳,管腳 LED1﹑LED2﹑LED3﹑LED4分別接10k電阻和三極管后與4位八段數(shù)碼管5461中的a1﹑a2﹑a3﹑a4四個數(shù)位選擇端相連,這四個數(shù)位選擇端用來產(chǎn)生LED選通信號。 管腳a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp分別接680歐電阻后與四位八段數(shù)碼管5461中的a﹑b﹑c﹑d﹑e﹑f﹑g﹑dp相連,分別控制各段碼和小數(shù)點。 管腳d0﹑d1﹑d2﹑d3接單片機并行口,通過對單片機對芯片進行控制。管腳vss串上10k電阻后與vcc管腳相接后再接+5v電源,管腳gnd接地。 該芯片所驅(qū)動的顯示電路如圖3.6 EM78P458集成顯示電路所示 顯示驅(qū)動器支持動態(tài)顯示,其顯示功能如表4.2真值表所示,0000-1001顯示從0-9數(shù)字,1010是未進位時是小數(shù)點清位,1011是進位后加小數(shù)點,1100-1111是八段共陰數(shù)碼管的位選。

圖3.6 EM78P458集成顯示電路 表4.2真值表
第四章 軟件設(shè)計
系統(tǒng)軟件設(shè)計說明 在進行微機控制系統(tǒng)設(shè)計時,除了系統(tǒng)硬件設(shè)計外,大量的工作就是如何根據(jù)每個生產(chǎn)對象的實際需要設(shè)計應(yīng)用程序。因此,軟件設(shè)計在微機控制系統(tǒng)設(shè)計中占重要地位。對于本系統(tǒng),軟件更為重要。 在單片機控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過程控制兩個基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波、標(biāo)度變換等。過程控制程序主要是使單片機按一定的方法進行計算,然后再輸出,以便控制生產(chǎn)。 為了完成上述任務(wù),在進行軟件設(shè)計時,通常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊”,實質(zhì)上就是所完成一定功能,相對獨立的程序段,這種程序設(shè)計方法叫模塊程序設(shè)計法。 模塊程序設(shè)計法的主要優(yōu)點是:
- 單個模塊比起一個完整的程序易編寫及調(diào)試;
- 模塊可以共存,一個模塊可以被多個任務(wù)在不同條件下調(diào)用;
- 模塊程序允許設(shè)計者分割任務(wù)和利用已有程序,為設(shè)計者提供方便。
本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑定時子程序、避障子程序﹑中斷子程序顯示子程序﹑調(diào)速子程序﹑算法子程序構(gòu)成。 一 主程序設(shè)計 主程序清單如下: limiw equ 30h ;厘米位 miao equ 31h ;秒位 fenmi equ 32h ;分米位 fmiao equ 33h ;分秒位 meter equ 34h ;米位 fenzh equ 35h ;分位 point equ 36h ;小數(shù)點位 shimi equ 37h ;十米位 shifn equ 38h ;十分位
sudu equ 39h ;速度控制 jishk equ 3ah ;記時開始
zhond equ 3bh zhodu equ 3ch zhon equ 3eh maicho equ 3fh jinweb equ 40h bhcs equ 41h
dpan equ 42h fenchu equ 43h fencun equ 44h pand equ 45h
fenmc equ 51h org 0000h ajmp main org 000bh ajmp st0 org 001bh ajmp st1 org 0100h main: mov limiw,#00h mov miao,#00h mov fenmi,#00h mov fmiao,#00h mov meter,#00h mov fenzh,#00h mov point,#0bh mov shimi,#00h mov shifn,#00h mov jishk,#00h mov zhond,#00h mov zhodu,#00h mov zhon,#00h mov maicho,#00h mov jinweb,#03h mov bhcs,#00h mov sp,#6fh mov tmod,#21h mov th0,#3ch mov tl0,#0b0h mov th1,#9ch mov tl1,#9ch setb ea setb et0 setb et1 mov p1,#0aah acall xianshi 軟件流程 如圖4.1流程圖所示:
圖4.1 流程圖
二 顯示子程序設(shè)計
程序清單如下: xianshi: mov p1,#0aah mov p1,#0cch mov a,limiw swap a add a,miao mov p1,a nop nop mov p1,#0ddh mov a,fenmi swap a add a,fmiao mov p1,a nop nop mov p1,#0eeh mov a,#0b0h add a,point mov p1,a nop nop mov p1,#0eeh mov a,meter swap a add a,fenzh mov p1,a nop nop mov p1,#0ffh mov a,shimi swap a add a,shifn mov p1,a ret 三 避障子程序設(shè)計程序清單如下: zhangai: jb 25h,stop jnb 22h,youzhuan jnb 23h,youzhuan jnb 24h,zuozhuan jnb 26h,zuozhuan ajmp jiance zuozhuan: clr p0.5 clr p0.4 mov sudu,#05h acall delaa setb p0.4 setb p0.5 mov sudu,#07h ajmp jiance youzhuan: clr p0.6 clr p0.7 mov sudu,#05h acall delaa setb p0.7 setb p0.6 mov sudu,#07h ajmp jiance stop: acall delay jnb 25h,zhangai clr tr0 mov a,fenmi mov fenmc,a mov a,#02h add a,fenmc mov fenmc,a here: cjne a,fenmi,here clr tr1 setb p2.6 acall delaa setb p2.7 ajmp $ 四 軟件抗干擾技術(shù)提高玩具車智能控制的可靠性,僅靠硬件抗干擾是不夠的,需要進一步借助于軟件抗干擾技術(shù)來克服某些干擾[6]。在單片機控制系統(tǒng)中,如能正確的采用軟件抗干擾技術(shù),與硬件干擾措施構(gòu)成雙道抗干擾防線,無疑為了將大大提高控制系統(tǒng)的可靠性。經(jīng)常采用的軟件抗干擾技術(shù)是數(shù)字濾波技術(shù)、開關(guān)量的軟件抗干擾技術(shù)、指令冗余技術(shù)、軟件陷阱技術(shù)等。 1、數(shù)字濾波技術(shù): 一般單片機應(yīng)用系統(tǒng)的模擬輸入信號中,均含有種種噪音和干擾,它們來自被測量本身、傳感器、外界干擾等。為了進行準(zhǔn)確測量和控制,必須消除被測信號中的噪音和干擾。對于這類信號,采用積分時間等于20ms的整數(shù)倍的雙積分A/D轉(zhuǎn)換器,可有效的消除其影響。后者為隨機信號,它不是周期信號。對于隨機干擾,我們可以用數(shù)字濾波方法予以削弱或濾除。所謂數(shù)字濾波,就是通過一定的計算或判斷程序減少干擾在有用信號中的比重。故實質(zhì)上它是一種程序濾波。數(shù)字濾波克服了模擬濾波器的不足,它與模擬濾波器相比 ,有以下幾個優(yōu)點: 數(shù)字濾波是用程序?qū)崿F(xiàn)的,不需要增加硬設(shè)備,所以可靠性高,穩(wěn)定性好。 數(shù)字濾波可以根據(jù)信號的不同,采用不同的濾波方法或濾波參數(shù),具有靈活、方便,功能強的特點。 數(shù)字濾波可以對頻率很低的信號實現(xiàn)濾波,克服了模擬濾波器的缺陷。 數(shù)字濾波器具有以上優(yōu)點,所以數(shù)字濾波在微機應(yīng)用系統(tǒng)中得到了廣泛應(yīng)用。 2、開關(guān)量的軟件抗干擾技術(shù): 干擾信號多呈毛刺狀,作用時間短,利用這一點,我們在采集某一開關(guān)量信號時,可多次重復(fù)采集,直到連續(xù)兩次或兩次以上結(jié)果完全一致方為有效。若多次采樣后,信號總是變化不定,可停止采集,給出報警信號,由于開關(guān)量信號主要是來自各類開關(guān)型狀態(tài)傳感器,如限位開關(guān)、操作按鈕、電氣觸點等,對這些信號的采集不能用多次平均的方法,必須絕對一致才行。如果開關(guān)量信號超過8個,可按8個一組進行分組處理,也可定義多字節(jié)信息暫存區(qū),按類似方法處理。在滿足實時性要求的前提下,如果在各次采集數(shù)字信號之間接入一段延時,效果會好一些,就能對抗較寬的干擾。
輸出設(shè)備是電位控制型還是同步鎖存型,對干擾的敏感性相對較大。前者有良好的抗‘毛刺’干擾能力,后者不耐干擾,當(dāng)鎖存線上出現(xiàn)干擾時,它就會盲目鎖存當(dāng)前的數(shù)據(jù),也不管此時數(shù)據(jù)是否有效。輸出設(shè)備和慣性(響應(yīng)速度)與干擾的耐受能力也有很大關(guān)系。慣性大的輸出設(shè)備(如各類電磁執(zhí)行機構(gòu))對‘毛刺’干擾有一定的耐受能力。慣性小的輸出設(shè)備(如通行口、顯示設(shè)備)耐受能力就小一些。在軟件上,最為有效的方法就是重復(fù)輸出同一個數(shù)據(jù)。只要有可能,其重復(fù)周期盡可能短些。外設(shè)設(shè)備接受到一個被干擾的錯誤信息后,還來不及作出有效的反應(yīng),一個正確的信息又來了,就可及時防止錯誤動作的產(chǎn)生。另外,各類數(shù)據(jù)鎖存器盡可能和CPU安裝在同一電路板上,使傳輸線上傳送的都是鎖存好的電位控制信號,對于重要的輸出設(shè)備,最好建立檢測通道,CPU可以檢測通道來確定輸出結(jié)果的正確性。 3、指令冗余技術(shù): 當(dāng)CPU受到干擾后,往往將一些操作數(shù)當(dāng)作指令碼來執(zhí)行,引起程序混亂。當(dāng)程序彈飛到某一字節(jié)指令上時,便自動納入正軌。當(dāng)彈飛到某一雙字節(jié)指令上時,有可能落到其操作數(shù)上,從而繼續(xù)出錯。當(dāng)程序彈飛到三字節(jié)指令上時,因它有兩個操作數(shù),繼續(xù)出錯的機會就更大。因此,我們應(yīng)多采用單字節(jié)指令(NOP)或?qū)巫止?jié)指令重復(fù)書寫,這便是指令冗余。指令冗余無疑會降低系統(tǒng)的效率,但在絕大多數(shù)情況下,CPU還不至于忙到不能多執(zhí)行幾條指令的程度,故這種方法還是被廣泛采用。 在一些對程序流向起決定作用的指令之前插入兩條NOP指令,以保證彈飛的程序迅速納入正確軌道。在某些對系統(tǒng)工作狀態(tài)重要的指令前也可插入兩條NOP指令,以保證正確執(zhí)行。指令冗余技術(shù)可以減少程序彈飛的次數(shù),使其很快進入程序軌道,但這并不能保證在失控期間不干壞事,更不能保證程序納入正常軌道后就太平無事了,解決這個問題必須采用軟件容錯技術(shù)。 4﹑軟件陷阱技術(shù): 指令冗余使彈飛的程序安定下來是有條件的。首先,彈飛的程序必須落到程序區(qū);其次,必須執(zhí)行到冗余指令。所謂軟件陷阱,就是一套引導(dǎo)指令,強行將捕獲的程序引向一個指定的地址,在那里有一段專門對程序出錯進行處理的程序。如果我們把這段程序的入口標(biāo)號記為 ERR 的話,軟件陷阱即為一條無條件轉(zhuǎn)移指令,為了加強其捕捉效果,一般還在它前面加兩條 NOP 指令,因此真正的軟件陷阱由3條指令構(gòu)成: NOP NOP ERR 軟件陷阱安排在以下四種地方: (1)未使用的中斷向量區(qū)。 (2)未使用的大片ROM空間 (3)表格 5、程序區(qū) 由于軟件陷阱都安排在正常程序執(zhí)行不到的地方,故不影響程序執(zhí)行效率,在當(dāng)前EPROM容量不成問題的條件下,還是多多益善。 五 “看門狗”技術(shù)PC受到干擾而失控,引起程序亂飛,也可能使程序陷入“死循環(huán)” [6]。指令技術(shù)、軟件陷阱技術(shù)不能使失控的程序擺脫“死循環(huán)”的困境,這時系統(tǒng)完全癱瘓。如果操作者在場,就可以按下人工復(fù)位安鈕,強制系統(tǒng)復(fù)位。但操作者不能一直監(jiān)視著系統(tǒng),也往往是在引起不良后果之后才進行人工復(fù)位。為使程序脫離“死循環(huán)”,通常采用“看門狗技術(shù)”!翱撮T狗”技術(shù)就是不斷監(jiān)視程序循環(huán)運行時間,若發(fā)現(xiàn)時間超過已知的循環(huán)設(shè)定時間,則認(rèn)為系統(tǒng)陷入了“死循環(huán)”,然后強迫程序返回到0000H入口,在0000H處安排一段出錯處理程序,使系統(tǒng)運行納入正規(guī)。 “看門狗”技術(shù)可由硬件實現(xiàn),可由軟件實現(xiàn),也可由兩者結(jié)合實現(xiàn)。本系統(tǒng)采用硬件“看門狗”電路。 實現(xiàn)硬件“看門狗”電路方案較多,目前采用較多的方案有以下幾種:
- 采用微處理器監(jiān)控器;
- 采用單穩(wěn)態(tài)電路來實現(xiàn)“看門狗”,單穩(wěn)定電路可采用74LS123;
- 采用內(nèi)帶震蕩器的記數(shù)芯片。
本設(shè)計采用第三種方案實現(xiàn)“看門狗”電路,下面就對該方案作以介紹。 (1)基本原理 CD4060 是帶震蕩器的14位計數(shù)器,由該芯片構(gòu)成的看門狗電路如圖4.2看門狗電路圖所示。 4060記數(shù)頻率由RT和CT決定。設(shè)實際的程序所需工作周期為T,分頻器記滿時間為T’,當(dāng)T’>T 且系統(tǒng)正常工作時,程序每隔T對4060進行掃描一次,分頻且永無記滿輸出信號。如系統(tǒng)工作不正常(如程序跑飛、死循環(huán)等),程序?qū)?060發(fā)不出掃描信號,分頻器記滿輸出一脈沖號使CPU復(fù)位。 (2)參數(shù)選擇 4060的振蕩頻率f由 RT 、CT決定。Rs用于改善振蕩器的穩(wěn)定性,Rs 要大于RT。一般取Rs=10RT,且RT>1kΩ,CT≥100pF。如果Rs=450Ω,RT=45Ω,CT=1uF,則f=10HZ。4060的振蕩頻率和Qi(i=6,7,8,9,10,12,13,14)的選擇要根據(jù)情況確定。 (3)幾個原則 看門狗電路必須由硬件邏輯組成,不宜由可編程計數(shù)器充當(dāng),因為CPU失控后,可能會修改可編程器件參數(shù),使看門狗失效。 4060的RST線上阻容組成的微分電路很重要,因為掃描輸入信號是CPU產(chǎn)生的正脈沖,若此信號變“1”后,由于干擾,程序亂飛,微分電路只能讓上跳沿通過,不會封死4060,看門狗仍能計數(shù)起作用。若沒有微分電路,掃描輸入信號上的“1”狀態(tài)封死4060,使之不能記數(shù),看門狗不起作用 
圖4.2看門狗電路圖 CPU必須在正確完成所有工作后才能發(fā)掃描輸入信號,且程序中發(fā)掃描信號的地方不能太多。否則,正好在哪里有死循環(huán),看門狗就不產(chǎn)生記滿輸出信號,不能重新啟動CPU。 4060的記滿輸出信號不但要接到MCS-51的RST腳,而且還應(yīng)接到其它芯片的RST腳,因為程序亂飛后,其它具有RST腳的芯片也混亂了,必須全部復(fù)位。 六 可編程邏輯器件可編程邏輯器件GAL16V8是LATTICE公司研制的一種電可擦除的可重復(fù)編程的低密度PLD器件。它采用更為靈活的可編I/O結(jié)構(gòu),并采用了先進的EECOMS工藝,數(shù)秒內(nèi)即可完成芯片的擦除和編程過程,并可反復(fù)改寫,是產(chǎn)品開發(fā)研制的理想器件之一。 GAL16V8技術(shù)特性 (1)電可擦除工藝 可重編程單元 100%成品率 可重配置邏輯 (2)高性能E2CMOS工藝 低功耗:45mA最大運行功耗,35mA最大維持功耗 高速度:15~25us最快存取速度 (3)8個輸出邏輯單元 對于復(fù)雜邏輯設(shè)計具有最大靈活性 GAL16V8可仿真20條引腳的PAL器件,具有功能 / 熔絲圖 /參數(shù)的完全兼容性 (4)預(yù)置、加電復(fù)位全部寄存器 (5)具有保密單元、電子標(biāo)簽 (6)數(shù)據(jù)保持超過20年。 80C51按鍵電路直接由80C51接口電路查詢。消抖(延時20ms)由軟件延時完成。
第五章 測試數(shù)據(jù)、測試結(jié)果分析及結(jié)論測試方法與儀器: 測試儀器包括秒表、數(shù)字萬用表、信號發(fā)生器、示波器、MCS51仿真機、直流穩(wěn)壓電源等。 2、測試方法 數(shù)字萬用表主要用來測試分立元件的電阻、壓降、漏電流、截止/導(dǎo)通狀態(tài)等參數(shù); 信號發(fā)生器與示波器用于測試各光電傳感器信號的接收與傳輸; MCS51仿真機用于測試軟件; 直流穩(wěn)壓電源在測試期間為各待測系統(tǒng)供電; 秒表用于產(chǎn)品測試,按照任務(wù)書的基本要求對制成的電動車進行產(chǎn)品測試。 測試數(shù)據(jù)及測試結(jié)果分析: ⑴ 計時精度分析 計時系統(tǒng)采用了新型顯示芯片。理論上的誤差不到1秒/年。 ⑵ 測距精度分析 測速系統(tǒng)采用了電機軸光電碼盤檢測技術(shù)。電機軸與車輪軸之間采用了齒輪箱二級減速,變比1/16。車輪周長135mm,光電碼盤與電機軸安裝在一起,電機軸每一轉(zhuǎn)產(chǎn)生2個脈沖,車輪每轉(zhuǎn)產(chǎn)生32個脈沖,理論測量精度可達135mm/32=4.22mm<4.5mm ⑶ 定位精度分析 本設(shè)計采用實際測量與軟件補償技術(shù),理論上可使定位精度提高到誤差<10mm。 3、結(jié)論 歷時三個月的設(shè)計過程中,我首先邊查資料,邊在實驗室焊接小車的線路板。在焊接過程中,我感覺到即使是一個簡單的電路,要想很輕松的焊好,也不是很容易的事情。有時是“虛焊”的原因,有時可能是阻值選錯。在焊接顯示電路時,我就錯將680歐的電阻焊成了6.8千歐。這使我深深感受到理論與實際間的差距。通過這樣的設(shè)計,提高了我的動手能力。每天在實驗室除了焊接線路板,還可以上機編程,使我軟件調(diào)試知識也提高了。 本設(shè)計采用的是80C51單片機,這主要是因為該單片機的穩(wěn)定性比較好。還可以采用其它系列的單片機。比如采用陵陽單片機,就可以簡化編程,但其穩(wěn)定性不是很好。
單片機源程序如下: - limiw equ 30h ;厘米位
- miao equ 31h ;秒位
- fenmi equ 32h ;分米位
- fmiao equ 33h ;分秒位
- meter equ 34h ;米位
- fenzh equ 35h ;分位
- point equ 36h ;小數(shù)點位
- shimi equ 37h ;十米位
- shifn equ 38h ;十分位
-
- sudu equ 39h ;速度控制
- jishk equ 3ah ;記時開始
-
- zhond equ 3bh
- zhodu equ 3ch
- zhon equ 3eh
- maicho equ 3fh
- jinweb equ 40h
- bhcs equ 41h
-
- dpan equ 42h
- fenchu equ 43h
- fencun equ 44h
- pand equ 45h
-
- fenmc equ 51h
- org 0000h
- ajmp main
- org 000bh
- ajmp st0
- org 001bh
- ajmp st1
- org 0100h
- main:
- mov limiw,#00h
- mov miao,#00h
- mov fenmi,#00h
- mov fmiao,#00h
- mov meter,#00h
- mov fenzh,#00h
- mov point,#0bh
- mov shimi,#00h
- mov shifn,#00h
- mov jishk,#00h
- mov zhond,#00h
- mov zhodu,#00h
- mov zhon,#00h
- mov maicho,#00h
- mov jinweb,#03h
- mov bhcs,#00h
- mov sp,#6fh
- mov tmod,#21h
- mov th0,#3ch
- mov tl0,#0b0h
- mov th1,#9ch
- mov tl1,#9ch
- setb ea
- setb et0
- setb et1
- mov p1,#0aah
- acall xianshi
- qidong:
- jb p0.0,qidong
- acall delay
- jb p0.0,qidong
- mov sudu,#03h
- clr p2.6
- clr p2.7
- setb tr1
- start:
- jnb p2.3,start
- acall delay
- jnb p2.3,start
- mov sudu,#07h
- setb tr0
- mov jishk,#01h
- call delaa
- call delaa
- call delaa
- call delaa
- call delaa
- jiance:
- mov c,p2.0
- mov 22h,c
- mov c,p2.1
- mov 23h,c
- mov c,p2.2
- mov 24h,c
- mov c,p2.3
- mov 25h,c
- mov c,p2.4
- mov 26h,c
- zhangai:
- jb 25h,stop
- jnb 22h,youzhuan
- jnb 23h,youzhuan
- jnb 24h,zuozhuan
- jnb 26h,zuozhuan
- ajmp jiance
- zuozhuan:
- clr p0.5
- clr p0.4
- mov sudu,#05h
- acall delaa
- setb p0.4
- setb p0.5
- mov sudu,#07h
- ajmp jiance
- youzhuan:
- clr p0.6
- clr p0.7
- mov sudu,#05h
- acall delaa
- setb p0.7
- setb p0.6
- mov sudu,#07h
- ajmp jiance
- stop:
- acall delay
- jnb 25h,zhangai
- clr tr0
- mov a,fenmi
- mov fenmc,a
- mov a,#02h
- add a,fenmc
- mov fenmc,a
- here: cjne a,fenmi,here
- clr tr1
- setb p2.6
- acall delaa
- setb p2.7
- ajmp $
- st0:
- push acc
- push psw
- mov th0,#3ch
- mov tl0,#0b0h
- inc zhond
- mov a,#0ah
- cjne a,zhond,out
- mov zhond,#00h
- inc zhodu
- mov a,#02h
- cjne a,zhodu,miepo
- mov point,#0bh
- mov zhodu,#00h
- inc miao
- mov a,#0ah
- cjne a,miao,out
- mov miao,#00h
- inc fmiao
- mov a,#06h
- cjne a,fmiao,out
- mov fmiao,#00h
- inc fenzh
- mov a,#0ah
- cjne a,fenzh,out
- mov fenzh,#00h
- inc shifn
- out:
- call xianshi
- outb:
- pop psw
- pop acc
- reti
- miepo:
- mov point,#0ah
- ajmp out
- st1:
- push acc
- push psw
- inc zhon
- mov a,sudu
- cjne a,zhon,hig
- setb p2.7
- ajmp outi
- hig:
- mov a,#0ah
- cjne a,zhon,outi
- mov zhon,#00h
- clr p2.7
- outi:
- mov a,#01h
- cjne a,jishk,outb
- jb p2.5,gao
- mov c,p2.5
- mov 21h,c
- orl c,20h
- clr 20h
- jc youbh
- ajmp outb
- gao:
- setb 20h
- ajmp outb
- youbh:
- inc maicho
- mov a,jinweb
- cjne a,maicho,outb
- mov maicho,#00h
- inc bhcs
- mov a,#02h
- cjne a,bhcs,jici
- mov jinweb,#03h
- goon:inc limiw
- mov a,#0ah
- cjne a,limiw,out
- mov limiw,#00h
- inc fenmi
- cjne a,fenmi,out
- mov fenmi,#00h
- inc meter
- cjne a,meter,out
- mov meter,#00h
- inc shimi
- ajmp out
- jici:
- mov jinweb,#02h
- ajmp goon
- xianshi:
- mov p1,#0aah
- mov p1,#0cch
- mov a,limiw
- swap a
- add a,miao
- mov p1,a
- nop
- nop
- mov p1,#0ddh
- mov a,fenmi
- swap a
- add a,fmiao
- mov p1,a
- nop
- nop
- mov p1,#0eeh
- mov a,#0b0h
- add a,point
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
word文件.7z
(307.41 KB, 下載次數(shù): 9)
2018-12-7 01:51 上傳
點擊文件名下載附件
|