智能小車(單片機格式)循跡 遙控 避障_第1頁
智能小車(單片機格式)循跡 遙控 避障_第2頁
智能小車(單片機格式)循跡 遙控 避障_第3頁
智能小車(單片機格式)循跡 遙控 避障_第4頁
智能小車(單片機格式)循跡 遙控 避障_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、西安科技大學自動尋跡及避障小車學院: 電氣與控制工程學院 專業(yè): 測控技術與儀器 學生: 潘富強 袁鑫 朱明 指導老師:侯媛彬 陳毅靜 王建摘 要單片機應用技術飛速發(fā)展,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機。單片機是集CPU,RAM,ROM ,定時,計數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強,廣泛應用于智能產業(yè)和工業(yè)自動化上。本文是基于單片機的智能小車設計,通過紅外遙控、躲避障礙物功能,尋跡功能和測速功能來詮釋智能小車的冰山一角,向大家展示智

2、能小車的強大功能。關鍵詞:單片機,智能小車,紅外遙控,躲避障礙物,尋跡,測速。AbstractSCM application technology is developing rapidly from the missile's navigation devices, to the aircraft instrument control, computer network communications and data transmission, industrial automation process real-time control and data processing, a

3、s well as the widely used in a variety of intelligent life IC card, electronic pets, which are inseparable from the microcontroller. SCM is a set of the CPU, RAM, ROM, timing, counting and a variety of interfaces in one of the microcontroller. Its small size, low cost, functional, widely used in sma

4、rt industries and industrial automation.Microcontroller-based intelligent car design, infrared remote control, to avoid obstacles feature, look for the trace function and speed function to interpret the tip of the iceberg of the smart car, to show a strong function of the smart car.Keywords: microco

5、ntroller, smart car, infrared remote control to avoid obstacles, tracing velocimetry.40目錄第1章 緒論31.1 智能小車成果31.2 智能小車發(fā)展31.3 本次智能小車設計3第2章 智能小車設計及器件介紹52.1 設計思路52.2 器件介紹62.2.1 主芯片STC89C5262.2.2 馬達控制驅動芯片L911072.2.3 MAX23282.2.4 OPTC光斷續(xù)器82.2.5 液晶顯示LM016L8第3章 單元模塊設計103.1 紅外遙控及避障模塊設計103.1.1 功能103.1.2 電路結構103

6、.1.3 程序流程圖103.1.4 實現(xiàn)效果123.2 尋跡模塊設計123.2.1 功能123.2.2 電路結構123.2.3 程序流程圖133.2.4 實現(xiàn)效果133.3 測速模塊設計143.3.1 功能143.3.2 電路設計143.3.3 程序流程圖153.3.4 實現(xiàn)功能15小車附加功能16設計總結17參考文獻18附錄一 紅外遙控及避障編程19附錄二 尋跡編程27附錄三 測速編程30附錄四 元件清單38附錄五 實物圖39第1章 緒論1.1 智能小車成果 系統(tǒng)運用多重傳感器與控制器良好的結合,系統(tǒng)可分為傳感器檢測部分,智能控制部分和電源模塊。傳感器部分為紅外循跡模塊。智能控制部分包括四個

7、主要單元模塊:單片機控制模塊、電機驅動模塊、顯示模塊、信號傳輸模塊。該系統(tǒng)的獨特之處在于沒有人的操作與干預下可以智能的完成多項任務,比如小車的直線行駛,尋跡,避障,測速等各項任務。1.2 智能小車發(fā)展 智能小車的發(fā)展主要是在自動化控制領域,一些高校為了培養(yǎng)學生動手及編程能力,同時提高學生的興趣,為智能小車控制領域提供了環(huán)境。同時一些比較大型的比賽,如全國電子設計大賽開始采用這類的題目,雖然都是用小車,但是控制方式都是不一樣。智能小車的研究、開發(fā)和應用涉及傳感技術、電氣技術、電氣控制技術、智能控制等學科,智能控制技術是一門跨科學的綜合性技術,當代研究十分活躍,應用日益廣泛的領域。智能作為現(xiàn)代社會

8、的新產物,是以后的發(fā)展方向,它可以按照預先設定的模塊在一個特定的環(huán)境里自動的運行,可運用于科學勘探等用途,無需人為的管理,便可以完成預期所要達到的或更高的目標。智能機器人正在代替人們完成這些任務,凡不宜有人直接承擔的任務,均可由智能機器人代替,可以適應不同環(huán)境,不受溫度、濕度等條件的影響,完成危險地段,人類無法介入等特殊情況下的任務,智能小車就是其中的一個體現(xiàn)。智能車輛又稱為輪式移動機器人,是移動機器人的一種,是一個集環(huán)境感知、規(guī)劃決策、自動駕駛等多種功能于一體的綜合體統(tǒng)。如果將以上技術引用到現(xiàn)實生活中,可以使我們的未來生活變得更加智能。除了潛在的軍用價值外,還可以應用于科學研究、地質勘探、危

9、險搜索、智能救援等,其在交通運輸中的應用前景也受到西方國家的普遍關注。1.3 本次智能小車設計 智能尋跡機器人采用現(xiàn)在較為流行的8 位單片機作為系統(tǒng)大腦。以8051系列家族中的STC89C51/STC89C52 為主芯片。40 腳的DIP 封裝使它擁有32 個完全I/O(GPIO通用輸入輸出)端口,通過對這些端口加以信號輸入電路,控制電路,執(zhí)行電路共同完成尋跡機器人。P0.0,P0.1,P0.2,P0.3 分別通過LG9110電機驅動來驅動電機1 和電機2。由電機的正轉與反轉來完成機器人的前進,后退,左轉,右轉,遇障礙物繞行等基本動作。在機器人前進時如果前方有障礙物,由紅外發(fā)射管發(fā)射的紅外信號

10、被反射給紅外接收管,紅外接收管將此信號經過P3.7 傳送入STC89C52 中,主芯片通過內部的代碼進行機器人的繞障礙物操作,同時主芯片將P3.7 的信號狀態(tài)通過P2.5 的LED 指示燈顯示出來。機器人行走時會通過P3.5 與P3.6 的紅外接收探頭來進行檢測路面情況,實現(xiàn)小車自動尋跡功能。P0.4 為機器人的聲控檢測端口,在運行為前進狀態(tài)時,可以能過聲控(如拍手聲)來控制它的運行與停止。P0.6 為機器人的聲音輸出端。在機器人遇到障礙物時可以通過此端口控制蜂鳴器發(fā)出報警聲。當為白天或黑夜時可以通過P0.5端口中的光敏電阻來進行判斷,以方便完成機器人夜間自動照明等功能。兩個按鍵以查詢/中斷兩

11、種不同的方式來展現(xiàn)按鍵操作。你可以按下S1 鍵來進行機器的停止。再按下S2 鍵來進行機器人的運行。這個按鍵的信息分別被P3.2,P3.4接收到。IR1 為紅外遙控接收器,這就為機器人進行遠程遙控創(chuàng)造了可能。這個紅外遙控接收頭接收到紅外信號時將信號經過P3.3 送入到主芯片,主芯片對其進行解密后以不同的方式對機器人進行控制。同時將使用者的按鍵信息通過P2 端口上LED 數(shù)碼管顯示出來。 第2章 智能小車設計及器件介紹2.1 設計思路本次設計主要實現(xiàn)小車的自動尋跡,紅外遙控、躲避障礙物及測速功能,由紅外發(fā)射管發(fā)射紅外信號被紅外接收管反射接收,紅外接管將此信號經過數(shù)據(jù)線傳送入STC89C52 中,主

12、芯片通過內部的代碼進行機器人的功能操作,同時主芯片將接收的信號狀態(tài)通過數(shù)據(jù)線由LED指示燈或數(shù)碼管顯示出來。在測速模塊中,由另一塊STC89C52為控制核心,采用光電斷續(xù)器檢測車輪運轉情況,通過計算處理后,由LM16L液晶屏顯示速度。單片機紅外發(fā)射管紅外接收管LG9110驅動芯片數(shù)碼管顯示LED指示燈顯示驅動電機M1M2晶振電路復位電路圖1 紅外遙控、避障模塊,尋跡模塊硬件設計圖單片機光電斷續(xù)器LM16L液晶顯示屏晶振電路復位電路圖2 測速模塊硬件設計圖2.2 器件介紹2.2.1 主芯片STC89C52STC89C52是美國ATMEL公司生產的低功耗,高性能COMS8位單片機,片內含4Kbyt

13、es的可反復擦寫的Flash只讀程序存儲器和256bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度,非易失性存儲技術生產,兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器和Flash存儲單元,功能強大的STC89C52單片機為我們提供許多較復雜系統(tǒng)控制應用場合。STC89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線。2.2.2 馬達控制驅動芯片L9110L9110 是為控制和驅動電機設計的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片IC 之中,使外圍器

14、件成本降低,整機可靠性提高。該芯片有兩個TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個輸出端能直接驅動電機的正反向運動,它具有較大的電流驅動能力,每通道能通過800mA 的持續(xù)電流,峰值電流能力可達1.5A;同時它具有較低的輸出飽和壓降;內置的鉗位二極管能釋放感性負載的反向沖擊電流,使它在驅動繼電器、直流電機、步進電機或開關功率管的使用上安全可靠。L9110 被廣泛應用于玩具汽車電機驅動、脈沖電磁閥門驅動,步進電機驅動和開關功率管等電路上。2.2.3 MAX232max232是一種把 電腦的串行口rs232信號電平(-10 ,+10v)轉換為單片機所用到的TTL信號點平(0 ,+5)

15、的芯片。RS232引腳定義:1 載波測       DCD2 接收據(jù)       RXD3 發(fā)送據(jù)       TXD4 數(shù)據(jù)終端準備端 DTR5 信號地       SG6 數(shù)據(jù)準備端     DSR 7 請求發(fā)送    

16、60; RTS8 清除發(fā)送      CTS9 振鈴提示      RI 2.2.4 OPTC光斷續(xù)器光斷續(xù)器都是用來檢測物體的靠近、通過等狀態(tài)。其發(fā)射、接收器做在體積很小的同一塑料殼體中,所以兩者能可靠對準。可分為遮斷式和反射式兩種,遮斷式的槽寬,深度及光敏元件各不同,反射式的檢測距離較短,多用于安裝空間較小的場合。由于檢測范圍小,光電斷續(xù)器的發(fā)光二極管可用直流電驅動,紅外LED的正向壓降約1.2到1.5V,驅動電流控制在幾十毫安。光電斷續(xù)器是較便宜,簡單,可靠的

17、光電器件,廣泛用于自動控制系統(tǒng),機電一體化設備,辦公設備和家用電器中。本設計采用遮斷式光電斷續(xù)器,將其輸出端口與單片機的P3.2口相連接,用于向單片機提供一定頻率的脈沖。 2.2.5 液晶顯示LM016LLM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強的指令集,可以實現(xiàn)字符移動,閃爍等功能,LM016L與單片機MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生器RAM(CGRAM),地址計數(shù)器RAM(AC)。I

18、R用于寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內部操作自動寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時,液晶模塊處于內部模式,不響應外部操作指令和接受數(shù)據(jù),DDRAM用來存儲顯示的字符,能存儲80個字符碼,CGROM由8位字符碼生成5*7點陣字符160中和5*10點陣字符32種。可以自定義8個5*7點陣字符或者4個5*10點陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,則IR自動把地址碼裝入AC,同時選擇DDRAM或CGRAM但愿,LM016L液晶模塊的引腳功能如下表所示圖3 LM016L功能引腳圖在本設計中,我

19、們將LCD的D0D7口分別與單片機的p1.0p1.7口相連接,因p1口是一個準雙向口,可用作通用I/O口。內部有上拉電阻與電源相連。實際上,電阻是兩個場效應管(FET)并在一起:一個FET為負載管,其電阻固定。另一個FET可工作在導通或者截止狀態(tài),使其總阻值變化近似為0或阻值很大的兩種情況。當阻值近似為0時,可將引腳快速拉致高電平;當阻值很大時,P1口為高阻輸入狀態(tài)。當p1口輸出高電平時,能向外提供電流負載,所以不必再接上拉電阻。第3章 單元模塊設計3.1 紅外遙控及躲避障礙物模塊設計3.1.1 功能小車在完成自動躲避障礙物動作外,還可以通過紅外遙控器進行遠程遙控。在正常的運行過程中,還可以通

20、過聲控(拍手聲)來對小車進行控制,每一種控制小車都會完成相應的功能。為了更清晰的看到小車運行過程狀態(tài),特將P1 端口中的8 個指示燈作為運行狀態(tài)指示燈。以用來觀察小車運行中的每一步。3.1.2 電路結構3.1.3 程序流程圖 左轉180度車后退,蜂鳴器報警遙控按1小車前進,數(shù)碼管顯示1停止前方是否有障礙是否聲控是否聲控是否紅外遙控遙控按2小車后退,數(shù)碼管顯示2遙控按3小車左轉,數(shù)碼管顯示3遙控按4小車后退,數(shù)碼管顯示4按下電源電,小車停止,數(shù)碼管顯示5系統(tǒng)初始化前進狀態(tài)開始判斷S2是否按下判斷S1是否按下小車停止數(shù)碼管顯示3小車前進,數(shù)碼管顯示13.1.4 實現(xiàn)效果將小車置于一個桌面上。打開電

21、源的開關,小車開始前進運行,同時運行指示燈閃亮,這時如果前方有障礙物,小車將會先進行后退一段時間,并有蜂鳴器報警,再向左轉一段時間,最后開始向前運行、左轉、后退、右轉、可以通過前方指示燈來觀察。這時可以能過聲控(如拍手聲)來讓小車停止和開啟.同時也可以用遙控來控制小車的運行。按“1”,小車將向前運行,按“2”小車將后退,按“3”小車將左轉,按“4”小車將右轉.按其它(0-9)鍵,小車數(shù)管碼顯示相應的數(shù)字符號。按電源鍵,小車將會停止運行當然S1、S2 也是起作用,分別用于控制小車的停止和開啟。3.2 尋跡模塊設計3.2.1 功能通過前方下端的四個紅外探頭來檢測地面的信號,根據(jù)設計的要求,當?shù)缆窞?/p>

22、白色時,紅外接收到信號,與地面檢測的紅外相應端口低電平,當?shù)缆窞楹谏珪r,與地面檢測的紅外相應端口為高電平,我們就可以根據(jù)這和判斷條件來進行道路黑白線的尋找。 3.2.2 電路結構3.2.3 程序流程圖開始系統(tǒng)初始化小車前進,數(shù)碼管顯示“1”左、右轉選擇小車左轉,數(shù)碼管顯示“3”,前端左邊燈亮,蜂鳴器報警小車右轉,數(shù)碼管顯示“4”,前端左邊燈亮,蜂鳴器報警左邊是否越界右邊是否越界 3.2.4 實現(xiàn)效果 進行走黑線功能。 3.3 測速模塊設計3.3.1 功能通過光斷續(xù)器對外部物理量(通光與遮光)進行測量,再將物理信號轉換為電壓信號(脈沖電壓),輸入單片機,單片機對所輸入的電壓信號,在匯編程序的控制

23、之下,進行處理、計算、儲存,最后通過LCD輸出顯示速度、里程的信息。3.3.2 電路設計3.3.3 程序流程圖開始初始化OPTC光電斷續(xù)器數(shù)據(jù)轉換數(shù)據(jù)算法處理LCD顯示3.3.4 實現(xiàn)功能 對小車速度進行檢測。小車附加功能1 按鍵查詢中斷:通過兩個按鍵對數(shù)碼管進行操作,分別演示了查詢與中斷的操作方式,中斷中應用了對按鍵進行查詢的方法來判斷按鍵的鍵值,查詢按鍵方法中則采用了鍵盤延遲的方法來消除按鍵重復輸入。通過這兩種方法的學習,讓其理解中斷的應用技巧,及對查詢方法的理解。2 程序狀態(tài)指示燈:通過閃燈不斷的閃動,及閃燈閃動的快慢來表示程序不同工作狀態(tài).它也是常數(shù)字設備中進行狀態(tài)表示的方法之一。3

24、光敏電阻:述了光敏電阻的使用方法。當處于光暗時,光敏電阻導通,將信號傳入到單片機,單片機將控制蜂鳴器按一定的頻率響亮,并且前方的指示燈也開始閃亮。通過對光敏電阻信號的接收,從而實現(xiàn)了夜間自動照明的功能。4 紅外反射:通過前端,底端的紅外發(fā)射頭和接收頭來判斷小車的運行軌跡,當前與底端發(fā)生信號輸入時,信號將被單片機接收,單片機來控制機器按照寫好的程序開始運行。同時為達到好的效果,加入聲音識別與蜂鳴器輸入輸出設備,使得此機人的運動變得更加有趣。5 話筒識別:通過話筒對聲音信號進行識別,由于本電路有效的去除雜波,所以僅能對響度較大的聲音進行識別(例:拍手聲)。像正常的說話聲對本電路慮除,不會產生信息的

25、輸入.話筒識別的加入,為我們建立了聲控平臺。6 流水燈演示:程序全面的表現(xiàn)了子程序的用法,它從對幾個子程序的操作,顯示不同的流燈技術,流水燈的不同需要不同的表現(xiàn)的形式,而這里主要介紹了移位操作和內部數(shù)據(jù)存儲及讀入操作。延時函數(shù)采用可重入標志,可進行函數(shù)的遞歸調用。7 數(shù)碼管演示:通過對端口的置數(shù)操作,展示了數(shù)碼管的應用技術,數(shù)碼管是將發(fā)光二 極管通過一定的形式封裝在一個數(shù)字的外殼中,可以通過不同的點亮方式來顯不同的數(shù)字符號。8 數(shù)碼管與跑馬燈:將數(shù)碼管及跑馬燈放在一起顯示,它主要說明了,如何將在單系 中運行多個看似并行運行的子系統(tǒng).本程序在此將跑馬燈子程序放入到一個頭文件中,對于一個大的工程這

26、樣將有益于程序文件的管理。設計總結通過這次智能小車制作,把理論知識與實際動手相結合,更加深刻學習了單片機知識。在制作之前,參考了一些相關的資料。在制作過程中參考了所學單片機的知識及單片機應用設計舉例,有了設計系統(tǒng)的基本框架,加之在網(wǎng)上找到的一些相關資料最終制作出了智能小車。在實際動手過程中遇到了許多問題,例如各芯片的引腳連接及實現(xiàn)功能,電路各模塊的意義,和在焊接過程中出現(xiàn)的錯誤查找等等。有問題就要解決,通過查找資料,我們對電路的設計,芯片的學習都有了更深入的學習了解。在原先設計中通過4節(jié)五號電池供電,但由于電池消耗過快,我們想過多種供電方法,例如使用直流電源,使用USB接口為系統(tǒng)供電,但由于技

27、術能力不足,只有繼續(xù)使用電池供電。在實現(xiàn)小車尋跡功能時多次出現(xiàn)差錯,通過調整紅外發(fā)射頭和紅外接收頭的位置,和軟件中的調整延時,使小車尋跡功能更加精準穩(wěn)定。在設計過程中學會熟練運用多種軟件,如Keil uVision2,STC_ISP_V479等,并且發(fā)現(xiàn)許多有趣并有用的小軟件如電阻色環(huán)的識別,數(shù)碼管段碼查詢軟件等。本次設計還有許多的不足之處,比如說小車的設計電路中多出了一些多余的模塊,使電力耗費更多。另外就是對速度控制方面不是很全面,在對小車測度模塊中,由于小車勻速行駛,所以只能測量得到的值不變,且由于知識能力善不足我們現(xiàn)在無法對小車進行速度控制,這激勵著我們再今后的學習中更加認真,爭取早日解

28、決問題。總之,通過這次智能小車的設計,我們都受益匪淺,不僅培養(yǎng)了我們的設計思維,增加了動手實踐能力,更重要的是我們學會了團結合作,在制作過程中一起發(fā)現(xiàn)問題,一起解決問題,在制作中獻言獻策,積極發(fā)揮著個人的聰明與才智。共同體會制作過程的努力和成功后的喜悅。在這里,我們也要對陳毅靜老師,侯媛彬老師,王建老師說一聲真誠的感謝。謝謝老師對我們的小車制作提出寶貴的建議。此外,感謝同學們對我們的幫助。另外,還要感謝學校能安排這次單片機競賽,為我們提供了良好的平臺。參考文獻【1】 柴鈺 單片機原理及應用 西安:西安電子科技大學出版社 2009.2【2】 張振榮,晉明武 MSC-51系列單片機原理及實用技術

29、人民郵電出版社 2000.6【3】 趙燕 傳感器原理及應用 北京:北京大學出版社 2010.2【4】 譚浩強 C程序設計(第二版)M 北京,清華大學出版社 1999.【5】 周潤景,張麗娜 基于PROTEUS的電路及單片機系統(tǒng)設計與仿真M 北京,北京航空航天大學出版社 2006.【6】 徐愛鈞,彭秀華 Keil Cx51 V7.0 單片機高級語言編程與uVision2應用實踐M 北京,電子工業(yè)出版社 2004.6【7】 馬達控制驅動芯片L9110 【8】 max232中文資料及應用 附錄一 紅外遙控及躲避障礙物編程#include <reg52.h> /包含51單片機相關的頭文件#

30、define uint unsigned int /重定義無符號整數(shù)類型#define uchar unsigned char /重定義無符號字符類型uchar code LedShowData=0x03,0x9F,0x25,0x0D,0x99, /定義數(shù)碼管顯示數(shù)據(jù) 0x49,0x41,0x1F,0x01,0x19;/0,1,2,3,4,5,6,7,8,9uchar code RecvData=0x07,0x0A,0x1B,0x1F,0x0C,0x0D,0x0E,0x00,0x0F,0x19;uchar IRCOM7; /接收數(shù)據(jù)緩沖區(qū)static unsigned int LedFlash

31、; /定義閃動頻率計數(shù)變量unsigned char RunFlag=0; /定義運行標志位bit EnableLight=0; /定義指示燈使能位/*完成基本數(shù)據(jù)變量定義*/sbit S1State=P10; /定義S1狀態(tài)標志位sbit S2State=P11; /定義S2狀態(tài)標志位sbit B1State=P12; /定義B1狀態(tài)標志位sbit IRState=P13; /定義IR狀態(tài)標志位sbit RunStopState=P14; /定義運行停止標志位sbit FontIRState=P15; /定義FontIR狀態(tài)標志位sbit LeftIRState=P16; /定義LeftIR

32、狀態(tài)標志位sbit RightIRState=P17; /定義RightIRState狀態(tài)標志位/*完成狀態(tài)指示燈定義*/sbit S1=P32; /定義S1按鍵端口sbit S2=P34; /定義S2按鍵端口/*完成按鍵端口的定義*/ sbit LeftLed=P20; /定義前方左側指示燈端口sbit RightLed=P07; /定義前方右側指示燈端口/*完成前方指示燈端口定義*/sbit LeftIR=P35; /定義前方左側紅外探頭sbit RightIR=P36; /定義前主右側紅外探頭sbit FontIR=P37; /定義正前方紅外探頭/*完成紅外探頭端口定義*/sbit M1

33、A=P00; /定義電機1正向端口sbit M1B=P01; /定義電機1反向端口sbit M2A=P02; /定義電機2正向端口sbit M2B=P03; /定義電機2反向端口/*完成電機端口定義*/sbit B1=P04; /定義話筒傳感器端口sbit RL1=P05; /定義光敏電阻端口sbit SB1=P06; /定義蜂鳴端口/*完成話筒,光敏電阻,蜂鳴器.端口定義*/sbit IRIN=P33; /定義紅外接收端口/*完成紅外接收端口的定義*/#define ShowPort P2 /定義數(shù)碼管顯示端口extern void ControlCar(uchar CarType); /聲

34、明小車控制子程序void delay(unsigned char x) /0.14mS延時程序 unsigned char i; /定義臨時變量 while(x-) /延時時間循環(huán) for (i = 0; i<13; i+) /14mS延時 void Delay() /定義延時子程序 uint DelayTime=33000; /定義延時時間變量 while(DelayTime-); /開始進行延時循環(huán) return; /子程序返回void ControlCar(uchar CarType) /定義小車控制子程序 M1A=0; /將電機1正向電平置低 M1B=0; /將電機1反向電平置低

35、 M2A=0; /將電機2正向電平置低 M2B=0; /將電機2反向電平置低 LeftLed=1; /關閉前方左側指示燈 RightLed=1; /關閉前方右側指示燈 Delay(); /將此狀態(tài)延時一段時間 switch(CarType) /判斷小車控制指令類型 case 1: /前進 /判斷是否是前進 M1A=1; /將電機1正向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData1; /數(shù)碼管顯示前進狀態(tài) break; /退出判斷 case 2: /后退 /判斷是否是后退 M1B=1; /將電機1反向端口置高 M2B=1; /將電機2反向端口置高 Sh

36、owPort=LedShowData2; /數(shù)碼管顯示后退狀態(tài) RightLed=0; /將前方右側指示燈置低(亮) LeftLed=0; /將前方左側指示燈置低(亮) break; /退出判斷 case 3: /左轉 /判斷是否是左轉 M1B=1; /將電機1反向端口置高 M2A=1; /將電機2正向端口置高 ShowPort=LedShowData3; /數(shù)碼管顯示左轉狀態(tài) LeftLed=0; /將前方左側指示燈置低(亮) break; /退出判斷 case 4: /右轉 /判斷是否是右轉 M1A=1; /將電機1正向端口置高 M2B=1; /將電機2反向端口置高 ShowPort=Le

37、dShowData4; /數(shù)碼管顯示右轉狀態(tài) RightLed=0; /將前方右側指示燈置低(亮) break; /退出判斷 default: /默認情況下的判斷 break; /直接退出判斷 void IR_IN() interrupt 2 using 0 /定義INT2外部中斷函數(shù) unsigned char j,k,N=0; /定義臨時接收變量 EX1 = 0; /關閉外部中斷,防止再有信號到達 delay(15); /延時時間,進行紅外消抖 if (IRIN=1) /判斷紅外信號是否消失 EX1 =1; /外部中斷開 return; /返回 while (!IRIN) /等IR變?yōu)楦唠娖剑^9ms的前導低電平信號。 delay(1); /延時等待 for (j=0;j<4;j+) /采集紅外遙控器數(shù)據(jù) for (k=0;k<8;k+) /分次采集8位數(shù)據(jù) while (IRIN) /等 IR 變?yōu)榈碗娖剑^4.5ms的前導高電平信號。 delay(1); /延時等待 while (!IR

溫馨提示

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

評論

0/150

提交評論