電動智能小車畢業(yè)論文_第1頁
電動智能小車畢業(yè)論文_第2頁
電動智能小車畢業(yè)論文_第3頁
電動智能小車畢業(yè)論文_第4頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、( 此文檔為 word 格式,下載后您可任意編輯修改!)摘 要STC89C51單片機是一款八位單片機,他的易用性和多功能性受到了廣大使用者的好評。這里介紹的是如何用STC89C51單片機來實現簡易智能電動車設計,該設計是結合科研項目而確定的設計類課題。本系統(tǒng)以設計題目的要求為目的,采用STC89C51單片機為控制核心,利用避障傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間、里程和速度,自動尋跡和尋光功能。整個系統(tǒng)的電路結構簡單,可靠性能高。實驗測試結果滿足要求,本文著重介紹了該系統(tǒng)的硬件設計方法及測試結果分析。采用的技術主要有:(1) 通過編程來

2、控制小車的速度;(2) 傳感器的有效應用;(3) 新型顯示芯片的采用 .關鍵詞 STC89C51單片機、光電檢測器、 PWM調速、電動小車Design and createan intelligenceelectricitymotivesmall carAbstract89C51 is a 8 bit single chip computer. Its easily using and multi-functionsuffer large users. This article introduces the CCUT graduation design withthe 89C51 single

3、chipcomputer.This design combines withscientificresearchobject. This system regards the request of the topic, adopting 89C51 forcontrollingcore, super sonicsensor fortesttherun ina recordthe time,distanceand thespeed or searching lightand mark automatically the electriccircuit construction ofwholesy

4、stem is simple, the function is dependable.Experiment testresultsatisfythe request,thistext emphasizesintroducedthe of technique as:(1)Reduce the speed by program the engine;(2) Efficient application of the sensor;(3) The adoption of the new display chip.Keywords 89C51 singlechip computer,lightelect

5、ricitydetector,PWMspeedadjusting, Electricity motive small car目錄第一章前 言3第二章系統(tǒng)功能描述及設計思路4一 系統(tǒng)功能描述4二 設計思路5第三章硬件電路設計7一 STC89C51單片機硬件結構7二 最小應用系統(tǒng)設計8六 避障傳感器電路12第四章軟件設計17第五章小結33致謝33參 考 文 獻34附錄 A 程序清單34附錄 B 硬件原理圖47第一章前言隨著汽車工業(yè)的迅速發(fā)展,關于汽車的研究也就越來越受人關注。全國電子大賽和省內電子大賽幾乎每次都有智能小車這方面的題目,全國各高校也都很重視該題目的研究。可見其研究意義很大。本設計就是

6、在這樣的背景下提出的,指導教師已經有充分的準備。本題目是結合科研項目而確定的設計類課題。設計的智能電動小車應該能夠實時顯示時間,具有自動尋跡、尋光、避障功能,可程控行駛速度、準確定位停車。根據題目的要求,確定如下方案:在現有玩具電動車的基礎上,加裝光電、紅外線、避障傳感器等電路,實現對電動車的速度、位置、運行狀況的實時測量,并將測量數據傳送至單片機進行處理,然后由單片機根據所檢測的各種數據實現對電動車的智能控制。這種方案能實現對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。本設計 采用 MCS-51 系列中的 STC89C51單片機。以STC89C51為控制核心

7、,利用超聲波傳感器檢測道路上的障礙,控制電動小汽車的自動避障,快慢速行駛,以及自動停車,并可以自動記錄時間,自動尋跡和尋光功能。STC89C51是一款八位單片機,它的易用性和多功能性受到了廣大使用者的好評。它是第四代單片機的代表。第四代單片機包括了Intel公司發(fā)展 MCS-51系列的新一代產品。新一代的單片機的最主要的技術特點是向外部接口電路擴展,以實現Microcomputer完善的控制功能為己任,將一些外部接口功能單元如 AD PWM PCA(可編程計數器陣列 ) WDT(監(jiān)視定時器 ) 高速 IO 口計數器的捕獲比較邏輯等。這一代單片機中,在總線方面最重要的進展是為單片機配置了芯片間的

8、串行總線,為單片機應用系統(tǒng)設計提供了更加靈活的方式。 Philips 公司還為這一代單片機 STC89C51系列 8C592單片機引入了具有較強功能的設備間網絡系統(tǒng)總線 -CAN(Controller Area NetworkBUS).新一代單片機為外部提供了相當完善的總線結構,為系統(tǒng)的擴展與配置打下了良好的基礎。本設計就采用了比較先進的80C51為控制核心, 80C51采用 CHOMS工藝,功耗很低。該設計具有實際意義,可以應用于考古、機器人、醫(yī)療器械等許多方面。尤其是在足球機器人研究方面具有很好的發(fā)展前景;在考古方面也應用到了超聲波傳感器進行檢測。所以本設計與實際相結合,現實意義很強。第二

9、章系統(tǒng)功能描述及設計思路由于機械結構的不同,智能車有兩種控制轉向的方式,一種是采用四輪雙電機結構,前面兩個輪子用于控制轉向,后面兩個控制速度;另一種是采用三輪雙電機結構,前面采用一個萬向輪,后面采用兩臺電動機分別控制兩個輪子,利用兩個輪子速度不同來實現轉向。這里設計的簡單智能小車采用的是第二種機械結構。這種方案能實現對電動車的運動狀態(tài)進行實時控制,控制靈活、可靠,精度高,可滿足對系統(tǒng)的各項要求。一 系統(tǒng)功能描述如圖 1-1 所示,設計制作一個智能小車,該小車能按照要求自行運動,按照虛線路徑通過一個建筑物中曲折的道路,并完成規(guī)劃的動作。設矩形建筑物有兩個門A,B, 門寬 24cm,建筑物的墻壁是

10、10cm高, 2cm厚的矮墻,建筑物內無引導軌跡。具體功能 如下:. 要求智能小車從 A 門進入并開始自動計時,從 B 門出來,在行進過程中,能自動選擇適當的路徑,避開墻壁,找到通路,三分鐘之內到達B 門;. 到達 B 門,停 5s,小車自動計時并數字顯示 AB 段所用的時間,并聲光報警;. 自 B 門外,循環(huán)形引導軌跡 BC前進(引導軌跡為 2cm寬);. 到達 C點后,小車停止前進并停止計時,顯示 BC段所用的時間;BC圖 1-1A二 設計思路在本次設計中,小車底盤選取的是三輪雙電機結構,通過后輪電動機轉速和轉向的不同實現對小車方向的控制。左右兩側電動機控制采用電動機驅動芯片L298 實現

11、驅動,轉速調節(jié)是通過單片機輸出的PWM脈沖寬度方式進行調節(jié)。為了保證小車在建筑物內行進過程中不碰壁,因此選用一組光電開關實現障礙物的檢測,當傳感器檢測到障礙物時進行及時避讓和調整。另外,在小車離開建筑物時,可以通過安裝在小車底部的光電開關檢測黑色循跡線,使得小車沿線運行。第三章硬件電路設計一個單片機應用系統(tǒng)的硬件電路設計包含有兩部分內容:一是系統(tǒng)擴展, 即單片機內部的功能單元,如ROMRAM IO 口定時記數器中斷系統(tǒng)等能量不能滿足應用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當的芯片,設計相應的電路。二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設備,如鍵盤顯示器打印機AD DA 轉換器等,要設計合

12、適的接口電路。一 STC89C51單片機硬件結構STC89C51單片機是把那些作為控制應用所必需的基本內容都集成在一個尺寸有限的集成電路芯片上 2 。如果按功能劃分,它由如下功能部件組成,即微處理器、數據存儲器、程序存儲器、并行IO 口、串行口、定時器計數器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過片內單一總線連接而成,其基本結構依舊是CPU加上外圍芯片的傳統(tǒng)結構模式。但對各種功能部件的控制是采用特殊功能寄存器的集中控制方式。1 微處理器該單片機中有一個8 位的微處理器,與通用的微處理器基本相同,同樣包括了運算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數據,還可以進行位變量的處

13、理。2 數據存儲器片內為 128 個字節(jié),片外最多可外擴至64k 字節(jié),用來存儲程序在運行期間的工作變量、運算的中間結果、數據暫存和緩沖、標志位等,所以稱為數據存儲器。3 程序存儲器由于受集成度限制,片內只讀存儲器一般容量較小,如果片內的只讀存儲器的容量不夠,則需用擴展片外的只讀存儲器,片外最多可外擴至64k 字節(jié)。4 中斷系統(tǒng)具有 5 個中斷源, 2 級中斷優(yōu)先權。5 定時器計數器片內有 2 個 16 位的定時器計數器,具有四種工作方式。6 串行口1 個全雙工的串行口,具有四種工作方式。可用來進行串行通訊,擴展并行IO口,甚至與多個單片機相連構成多機系統(tǒng),從而使單片機的功能更強且應用更廣。7

14、 P1 口、P2口、 P3口、 P4 口為4個并行 8位IO口。8 特殊功能寄存器共有 21 個,用于對片內的個功能的部件進行管理、控制、監(jiān)視。實際上是一些控制寄存器和狀態(tài)寄存器,是一個具有特殊功能的RAM區(qū)。由上可見, 80C51 單片機的硬件結構具有功能部件種類全,功能強等特點。特別值得一提的是該單片機CPU中的位處理器,它實際上是一個完整的1 位微計算機,這個一位微計算機有自己的CPU、位寄存器、 IO 口和指令集。 1 位機在開關決策、邏輯電路仿真、過程控制方面非常有效;而8 位機在數據采集,運算處理方面有明顯的長處。 MCS-51單片機中 8 位機和 1 位機的硬件資源復合在一起,二

15、者相輔相承,它是單片機技術上的一個突破,這也是MCS-51單片機在設計的精美之處。二 最小應用系統(tǒng)設計STC89C51是片內有 ROMEPROM的單片機,因此,這種芯片構成的最小系統(tǒng)簡單可靠。用 80C51單片機構成最小應用系統(tǒng)時,只要將單片機接上時鐘電路和復位電路即可,如圖 3.1STC89C51 單片機最小系統(tǒng)所示。由于集成度的限制,最小應用系統(tǒng)只能用作一些小型的控制單元。其應用特點:(1) 有可供用戶使用的大量 IO 口線。(2) 內部存儲器容量有限。(3) 應用系統(tǒng)開發(fā)具有特殊性。圖 1-2 STC89C51 單片機最小系統(tǒng)1、時鐘電路STC89C51雖然有內部振蕩電路,但要形成時鐘,

16、必須外部附加電路。STC89C51單片機的時鐘產生方法有兩種。內部時鐘方式和外部時鐘方式。本設計采用內部時鐘方式,利用芯片內部的振蕩電路,在XTAL1、XTAL2引腳上外接定時元件,內部的振蕩電路便產生自激振蕩。本設計采用最常用的內部時鐘方NPO電式,即用外接晶體和電容組成的并聯諧振回路。振蕩晶體可在1.2MHZ到 12MHZ之間選擇。電容值無嚴格要求,但電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響, CX1、CX2可在 20pF 到 100pF 之間取值,但在 60pF 到 70pF 時振蕩器有較高的頻率穩(wěn)定性。所以本設計中,振蕩晶體選擇 6MHZ,電容選擇 65pF。在

17、設計印刷電路板時,晶體和電容應盡可能靠近單片機芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應采用容。2、復位電路STC89C51的復位是由外部的復位電路來實現的。復位引腳 RST通過一個斯密特觸發(fā)器用來抑制噪聲, 在每個機器周期的 S5P2,斯密特觸發(fā)器的輸出電平由復位電路采樣一次,然后才能得到內部復位操作所需要的信號。復位電路通常采用上電自動復位和按鈕復位兩種方式。最簡單的上電自動復位電路中上電自動復位是通過外部復位電路的電容充電來實現的。只要 Vcc 的上升時間不超過1ms,就可以實現自動上電復位。 時鐘頻率用 6MHZ時 C取 22uF,R 取 1K

18、。除了上電復位外,有時還需要按鍵手動復位。本設計就是用的按鍵手動復位。按鍵手動復位有電平方式和脈沖方式兩種。其中電平復位是通過 RST 端經電阻與電源 Vcc接通而實現的。按鍵手動復位電路見圖 3.2 。時鐘頻率選用 6MHZ時,C取 22uF,Rs取 200,RK取 1K。圖 1-3 STC89C51 復位電路如圖 1-4 所示,智能電動車的系統(tǒng)原理框圖主要包括主控器,電動機驅動控制電路,避障紅外傳感器電路,尋線紅外傳感器電路,顯示電路,時鐘電路,報警電路和電源電路等部分構成。圖 1-4 智能電動車的系統(tǒng)原理框圖三 主控器本系統(tǒng)中主控器需要對雙電機進行控制,因此需要使用PWM脈沖信號輸出。A

19、T89S51是一種低功耗,高性能CMOS 8位微控制器,三個定時器計數器,具有 8KB在系統(tǒng)可編程 Flash 存儲器。主控器外圍電路如圖1-5 所示。圖 1-5 主控器外圍電路圖四 電動機驅動控制L298 是 SGS公司(意法半導體公司)的一款H 橋電動機驅動芯片。該芯片內部有 4 通道邏輯驅動電路,具有兩套 H 橋電路,可以方便地驅動兩個直流電動機。電動機驅動控制電路如圖 1-6 所示。圖 1-6 電動機驅動控制電路圖五 尋跡傳感器電路尋跡傳感器電路采用TCRC5000L型紅外對管進行設計。該型號的傳感器內部由一個高發(fā)射功率紅外光電二極管和高靈敏度光電晶體管組成,具有體積小,結構緊猝,靈敏

20、度高,工作性能穩(wěn)定等特點,能夠滿足本次設計的要求。傳感器的工作原理如下:紅外發(fā)射管發(fā)出紅外線,若紅外光照射到白色的平面將存在反射光線,傳感器會輸出一個低電平信號:反之,若紅外光照射到黑色的平面將無反射光線,傳感器側輸出一個高電平信號。尋跡傳感器電路如圖1-7 所示,通過一個電壓比較器可以獲取每個傳感器的檢測狀態(tài)。如果傳感器末檢測到黑線,比較器LM324會輸出一個低電平 ; 如果檢測到黑線, LM324則輸出一個高電平。為了節(jié)省單片機的IO 接口,這里通過74LS165 將 8個傳感器輸出信號轉為串行信號送入單片機中。圖 1-7尋跡傳感器電路六 避障傳感器電路避障傳感器電路采用紅外光電開關E3F

21、-DS10C4進行避障。該型號的傳感器具有操作簡單 , 使用方便等特點。傳感器內部將集發(fā)射器和接收器于一體,當有被檢測物體經過時,物體將光電開關發(fā)射器發(fā)射的足夠量的光線反射到接收器,于是光電開關就產生了開關信號。當有光線反射回來時,傳感器輸出低電平信號;當沒有光線反射回來時,輸出高電平信號。避障傳感器電路如圖1-8 所以,同樣為了節(jié)省單片機的IO 接口,這里也通過74LS165將 6 個傳感器輸出信號轉為串行信號送入單片機中。圖 1-8 尋跡傳感器電路七 顯示電路本系統(tǒng)需要顯示的內容較少,主要是計時時間的顯示,因此選用一個LCD1602即可實現該項功能。 LCD1602液晶也稱 1602 字符

22、型液晶, 是一種專門用來顯示字母,數字,符號等的點陣型液晶模塊,可以顯示兩行,每行16 個字符液晶模塊(顯示字符和數字)。該顯示模塊具有微功耗,體積小,顯示內容豐富,超薄輕巧等特點,常用在袖珍式儀表和低功耗應用系統(tǒng)中。本系統(tǒng)顯示電路如圖1-9 所示。圖 1-9 顯示電路八 PWM輸出控制電路PWM信號的產生電路如圖1-10所示。 8254所需的基準頻率是由有源晶振Y2 產生的。晶振Y2 的震蕩頻率為1MHz,因此產生周期為1us的時鐘信號。圖 1-10 PWM輸出控制電路九 聲光提示電路聲光提示電路如圖1-11 所示,發(fā)光二極管的驅動采用灌電流的方式,當單片機驅動引腳 LED為低電平時,發(fā)光二

23、極管點亮。蜂鳴器使用一個PNP三極管進行驅動,當單片機 BEEP引腳輸出低電平時,蜂鳴器發(fā)出聲音進行提示。圖 1-11 聲光提示電路十 電源電路智能小車的驅動電機需要9V 直流電,采用充電電池供電。因此,需要通過一個電源變換電源實現DC9V到 DC5V的轉換。這里選用一個開關電源芯片LM2576進行設計,該芯片是美國國家半導體公司生產的3A集成穩(wěn)壓電路,它內部集成了一個固定的振蕩器,只需極少外圍器件便可構成一種高效的穩(wěn)壓電路,可大大減小散熱片的體積,而在大多數情況下不需散熱片,內部有完整的保護電路,包括電流限制及熱關斷電路等。電源電路如圖1-12 所示。圖 1-12電源電路第四章軟件設計一 軟

24、件流程簡易智能電動車的主程序流程如圖 1-13 所以。系統(tǒng)上電后,首先完成對定時器T0, T1 和液晶的初始化,然后啟動智能車前進,進入避障和循跡程序的檢測。圖 1-13主程序流程圖避障程序流程如圖 1-14 所示,在該程序中,系統(tǒng)實時讀取避障傳感器的狀態(tài),更加各傳感器的輸入信號來判斷智能車的行進位置及狀態(tài),并根據位置和狀態(tài)信息及時調整車的走向。圖 1-14 避障程序流程圖在單片機控制系統(tǒng)中,大體上可分為數據處理、過程控制兩個基本類型。數據處理包括:數據的采集、數字濾波、標度變換等。過程控制程序主要是使單片機按一定的方法進行計算,然后再輸出,以便控制生產。為了完成上述任務,在進行軟件設計時,通

25、常把整個過程分成若干個部分,每一部分叫做一個模塊。所謂“模塊” ,實質上就是所完成一定功能,相對獨立的程序段,。二代碼分析智能車控制軟件分為主程序,避障傳感器檢測程序,循跡傳感器檢測程序,電動機控制程序,顯示程序,定時器T0,T1 有關子程序,延時程序等,各部分程序功能如下:主程序通過調用各個子程序,實現系統(tǒng)功能。避障傳感器檢測程序用于檢測智能車在迷宮中的行進狀態(tài),并及時調整小車的位置避免與迷宮內的墻壁發(fā)生碰撞。循跡傳感器檢測程序用于檢測智能車在迷宮外的進行狀態(tài), 通過這些傳感器可以實現車沿著黑線進行,防止跑偏。電動機控制子程序是實現對智能車實現前進,制動,左轉,右轉等控制。顯示程序主要是顯示

26、智能車的行進狀態(tài),并對行進過程進行計時。定時器 T0 有關子程序包括完成對 T0 的初始化設置,以及在 T0 的中斷服務程序中對定時器 T0 和 8254 的初值設置等功能。定時器 T1 有關子程序包括完成對 T1 的初始化設置,以及在 T1 的中斷服務程序中對定時器實現計時時間的計算。延時函數用于在智能車行進過程中行走狀態(tài)的保持。系統(tǒng)具體的程序代碼如下。1. 函數聲明及變量定義為方便程序的編寫,這里把部分常用的變量進行定義。由于本實列中顯示器件選用的是 LCD1602,該器件在前面的章節(jié)中已經進行了詳細的介紹, 這里就不在重述了。修改 LCD1602.C文件中引腳定義,然后直接引用該頭文件。

27、#include <reg52._word XBYTE0x7fff8254 控制字*引腳聲明 *避障傳感器輸出sbit sen1dat = P31;74165 數據引腳sbit sen1clk = P30;74165 時鐘引腳sbit sen1ld = P34;74165 鎖存引腳循跡傳感器輸出sbit sen2dat = P32;74165 數據引腳sbit sen2clk = P33;74165 時鐘引腳sbit sen2ld = P35;74165 鎖存引腳左側電機sbit IN1 = P12;sbit IN2 = P13;sbit PWM0 = P16;右側電機sbit IN3

28、= P14;sbit IN4 = P15;sbit PWM1 = P17;聲光提示sbit beep = P17;聲音提示sbit led = P16;發(fā)光提示*變量定義 *bitOutFlag=0;bit:"uchar code Tab2 = "Time:"uchar code Tab3 = "A->B"uchar code Tab4 = "B->C"*函數聲明 *ucharSen1In(void);避障傳感器信號ucharSen2In(void);循跡傳感器信號voidinitPWM(void);初始化 PW

29、M占空比void Delay1ms(uint i);void Leftself(void);void Rightself(void);void Left(void);void Right(void);void Forward(void);void Brake(void);void Track(void);void Avoidance(void);void init_T0(void);void init_T1(void);延時程序原地左轉原地右轉左轉右轉前進停車循跡程序避障程序初始化 T0初始化 T1void initdisp(void);2. 主程序進入系統(tǒng)主程序后,首先對定時器 T0,T1進

30、行初始化設置,然后初始化 LCD1602并顯示初始信息,啟動智能車前進,在循環(huán)程序中將調用傳感器檢測程序調整小車運行狀態(tài)。void main(void)init_T0();init_T1();Inlt_LCD1602();initdisp();Forward();Delay1ms(5000);while (1)Avoidance();Delay1ms(200);3. 智能車運動控制智能車運動控制程序主要實現控制小車原地右轉,左轉,右轉,前進,停止等動作。該部分程序由以下程序構成,如表 1-15 所示。表 1-15 智能車運動控制程序及功能表序號函數名功能序號函數名功能1Leftself()原地

31、左轉程序4Right ()右轉程序2Rightself()原地右轉程序5Forward ()前進程序3Left ()左轉程序6Brake()停止程序下面對這幾個程序加以詳細介紹。( 1) Leftself():原地左轉程序通過調用Leftself()程序控制智能車實現原地左轉,該過程中智能車的左右兩側電動機會實現同轉速反向運動。void Leftself(void)IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1;( 2) Rightself ():原地右轉程序通過調用 Rightself()程序控制智能車實現原地右轉,本過程中智能車的左右兩側電動機也會實現同轉速反向運動。voi

32、d Rightself(void)IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0;( 3) Left ():左轉程序通過調用 Left ()程序控制智能車實現左轉,本過程中智能車的右側電動機轉動,而左側電動機停轉。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 4) Right ():右轉程序通過調用 Right ()程序控制智能車實現右轉, 本過程中智能車的左側電動機轉動,而右側電動機停轉。void Left(void)IN1 = 0;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Forward ():前進程序通過

33、調用 Forward ()程序控制智能車前進,兩側電動機以同速度運行。void Forward(void)IN1 = 1;IN2 = 0;IN3 = 1;IN4 = 0;( 5) Brake ():停止程序通過調用 Brake()程序控制智能車停止,兩側電動機停止運行。void Brake(void)IN1 = 1;IN2 = 1;IN3 = 1;IN4 = 1;4. 傳感器檢測子程序智能車傳感器檢測程序主要實現避障傳感器的檢測,循跡傳感器的檢測,避障調整程序,循跡調整程序等動作。該部分程序由以下程序構成,如表1-16 所示表 1-16 傳感器檢測子程序及功能序號函數名功能序號函數名功能1Se

34、n1In(): 避障傳感器檢測程序3Track ():循跡調整程序2Sen2In(): 循跡傳感器檢測程序4Avoidance():避障調整程序下面對這幾個程序加以詳細介紹。( 1) Sen1In():避障傳感器檢測程序通過 74LS165將 6 個避障傳感器的狀態(tài)轉為串行輸出信號送入51 單片機,再由單片機程序屏蔽沒用到的前兩位,返回檢測狀態(tài)值。uchar Sen1In(void)uchar i,temp;載入數據sen1ld=0;_nop_();_nop_();sen1ld=1;移出數據for(i=0;i<8;i+)temp<<=1;sen1clk=0;if(sen1da

35、t)temp=temp|0x01;sen1clk=1;sen2clk=0;temp=temp&0x3f;return(temp);( 2) Sen2In():循跡傳感器檢測程序通過 74LS165將 8 個避障傳感器的狀態(tài)轉為串行輸出信號送入51 單片機,該函數返回檢測狀態(tài)值。uchar Sen2In(void)uchar i,temp;載入數據sen2ld=0;_nop_();_nop_();sen2ld=1;移出數據for(i=0;i<8;i+)temp<<=1;sen2clk=0;if(sen2dat)temp=temp|0x01;sen2clk=1;sen2c

36、lk=0;return(temp);( 3) Track ():循跡調整程序讀取循跡傳感器狀態(tài),然后根據該狀態(tài)判斷車體相對于黑線循跡線的位置,判斷并調整智能車,使得車體中線沿著軌跡線前進。void Track(void)xped=Sen2In();switch (xped)case 0x80:Leftself();for(;0x18!=Sen2In(););Forward();break;case 0xc0:Right();for(;xped=Sen2In(););Forward();break;case 0x60:Right();for(;xped=Sen2In(););Forward();

37、break;case 0x40:Right();for(;xped=Sen2In(););Forward();break;case 0x30:Right();for(;xped=Sen2In(););Forward();break;case 0x20:Right();for(;xped=Sen2In(););Forward();break;case 0x18:Forward();break;case 0x0c:Left();for(;xped=Sen2In(););Forward();break;case 0x08:Left();for(;xped=Sen2In(););Forward();b

38、reak;case 0x06:Left();for(;xped=Sen2In(););Forward();break;case 0x04:Left();for(;xped=Sen2In(););Forward();break;case 0x02:Left();for(;xped=Sen2In(););Forward();break;case 0x03:Left();for(;xped=Sen2In(););Forward();break;case 0x01:Rightself();for(;0x18!=Sen2In(););Forward();break;case 0x00:Delay1ms(

39、100);if(Sen2In()=0xff)Brake();break;( 3) Avoidance ():循跡調整程序讀取避障傳感器狀態(tài),然后根據該狀態(tài)判斷車體在迷宮內的位置,判斷并調整智能車,使得車體在迷宮內前進。void Avoidance(void)();();Forward(); 左側有障礙else if();Forward();右邊有障礙else if();();Forward();如果右側無障礙if();();Forward();如果左右都無障礙if();()!=0xff)OutFlag=1;MeaTime=0;LcdStartPos(0x40);Print(Tab4);if(O

40、utFlag)Brake();beep=0;led=0;Delay1ms(2000);beep=1;led=1;Forward();Left();while (1)Track();Delay1ms(2000);Forward();4. 定時器有關子程序本系統(tǒng)用到了定時器T0 和 T1, 其中定時器T0 用于產生 PWM脈沖調制函數,定時器T1 用于定時基準信號的產生,這部分是由以下幾個程序構成,如表1-17 所示。表 1-17定時器相關子程序及功能序號函數名功能序號函數名功能1init_T0 ():定時器 T0 初始化程序3timer0 ()定時器 TO中斷服務程序2init_T1 ():定時

41、器 T1 初始化程序4Timer1 ()定時器 T1 中斷服務程序下面對這幾個程序進行詳細介紹。(1)init_T0():定時器 T0 初始化程序init_T0()用于實現對定時器T0 初始化設置,其中定時器工作為方式1,定時時間為 50ms。void init_T0(void)TMOD=0x01;工作方式 1TH0=0x3c;定時 50msTL0=0xb0;ET0=1;允許定時器 T0 中斷EA=1;開總中斷TR0=1;啟動定時器 T0(2)init_T1():定時器 T1 初始化程序init_T1()用于實現對定時器T1 初始化設置,其中定時器工作為方式1,定時時間為 50ms。void

42、init_T1(void)TMOD = TMOD|0x10;TH1 = 0x3C;TL1 = 0x0B0;ET1 = 1;TR1 = 1;(3) timer0 ():定時器 T0 中斷服務程序timer0()用于定時向8254 芯片寫入計數初值,以實現8254 芯片能夠輸出PWM控制信號對電動機速度進行控制。void timer0(void) interrupt 1TR0=0;TH0=0x3c;重載定時器 T0 初值TL0=0xb0;TR0=1;Con_word=0x30;寫 8254計數器 0 初值Count0=(uchar)(time1%256);Count0=(uchar)(time12

43、56);Con_word=0x70;寫 8254計數器 1 初值Count0=(uchar)(time2%256);Count0=(uchar)(time2256);( 4) timer1 ():定時器 T1 中斷服務程序timer1()用于 50ms基準時鐘信號的產生,每1s 更新一次計時數值并顯示。void timer1(void) interrupt 3TH1 = 0x3C;TL1 = 0x0B0;if(+MeaMs=20)MeaTime+;disbuffer0=DispTABMeaTime10;disbuffer1=DispTABMeaTime%10;LcdStartPos(0x49);Print(disbuffer);5. 其他有關子程序除了以上幾個子程序塊以外,本系統(tǒng)還包括顯示內容初始化和延時函數等,這部分是由以下幾個程序構成。. initdisp ():顯示初始化函數;. Delay1ms():延時程序。下面就對這兩個程序進行詳細介紹。(1)initdisp():顯示初始化函數Delay1ms ()用于顯示上電時顯示內容的初始化。void initdisp(void

溫馨提示

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

評論

0/150

提交評論