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

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

智能循跡小車設(shè)計(jì)

  • 資源ID:37900601       資源大?。?span id="24d9guoke414" class="font-tahoma">472.17KB        全文頁數(shù):29頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

智能循跡小車設(shè)計(jì)

裝訂線X X 大 學(xué) 課程設(shè)計(jì)紙智能尋跡小車設(shè)計(jì)與實(shí)現(xiàn)摘要:本課題是基于AT89C52單片機(jī)的智能小車的設(shè)計(jì)與實(shí)驗(yàn),設(shè)計(jì)主要有三個(gè)模塊,包括信號(hào)檢測(cè)模塊、主控模塊、電機(jī)驅(qū)動(dòng)模塊。小車完成的主要功能是能夠自主識(shí)別黑色引導(dǎo)線并根據(jù)黑線走向?qū)崿F(xiàn)快速穩(wěn)定的尋線行駛。采用L298電機(jī)驅(qū)動(dòng)及PWN電機(jī)調(diào)速,利用紅外對(duì)管傳感器檢測(cè)黑線達(dá)到循跡目的,以及自動(dòng)停車,自動(dòng)循跡。整體系統(tǒng)的電路結(jié)構(gòu)簡單,可靠性高。關(guān)鍵詞:AT89C52單片機(jī) L298電機(jī)驅(qū)動(dòng)及PWN電機(jī)調(diào)速 自動(dòng)循跡Smart car tracing Abstract:This subject is the design and experiment of intelligent car based on AT89C52 single-chip microcomputer, the design has three main modules, including the module of signal detection module, main control module, motor. The main function of the car is able to independently identify black guide line and according to the black line to achieve rapid and stable line running. Using L298 motor and PWN motor, the tube sensor to detect black line to tracking objective using infrared, and automatic stop, automatic tracking. The circuit construction of whole system is simple, high reliability.Keyword :AT89S52 Microcomputer L298 motor and PWN motor automatic trackingI目 錄第一章 前 言.11.1設(shè)計(jì)目的21.2設(shè)計(jì)要求2第二章 智能小車的總體方案設(shè)計(jì)32.1總體方案的思路32.2總體設(shè)計(jì)方案和框圖3第三章 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)53.1單片機(jī)單元53.2電機(jī)控制單元63.3 串口通訊單元83.4 按鍵中斷單元93.5蜂鳴器單元9第四章 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)104.1程序流程圖104.2程序11總 結(jié)23致 謝24參 考 文 獻(xiàn)25附錄 電路原理圖26共 1 頁 第 0 頁前言科學(xué)技術(shù)的發(fā)展,機(jī)器人的感系統(tǒng),對(duì)于視覺的各種技術(shù)而言圖像處理技術(shù)已相當(dāng)發(fā)達(dá),而基于圖像的理解技術(shù)還很落后,機(jī)器視覺需要通過大量的運(yùn)算也只能識(shí)別一些結(jié)構(gòu)化環(huán)境簡單的目標(biāo)。視覺傳感器的核心器件是攝像管或CCD,目前的CCD已能做到自動(dòng)聚焦。但CCD傳感器的價(jià)格、體積和使用方式上并不占優(yōu)勢(shì),因此在不要求清晰圖像只需要粗略感覺的系統(tǒng)中考慮使用接近覺傳感器是覺傳感器種類越來越多,其中視覺傳感器成為自動(dòng)行走和駕駛的重要部件。視覺的典型應(yīng)用領(lǐng)域?yàn)樽灾魇街悄軐?dǎo)航一種實(shí)用有效的方法。該智能小車可以作為機(jī)器人的典型代表。它可以分為三大組成部分:傳感器檢測(cè)部分、CPU、執(zhí)行部分。機(jī)器人要實(shí)現(xiàn)自動(dòng)避障功能,還可以擴(kuò)展循跡等功能,感知導(dǎo)引線和障礙物??梢詫?shí)現(xiàn)小車自動(dòng)識(shí)別路線,選擇正確的行進(jìn)路線,并檢測(cè)到障礙物自動(dòng)躲避?;谏鲜鲆?,傳感檢測(cè)部分考慮到小車一般不需要感知清晰的圖像,只要求粗略感知即可,所以可以舍棄昂貴的CCD傳感器而考慮使用價(jià)廉物美的紅外反射式傳感器來充當(dāng)。智能小車的執(zhí)行部分,是由直流電機(jī)來充當(dāng)?shù)模饕刂菩≤嚨男羞M(jìn)方向和速度。單片機(jī)驅(qū)動(dòng)直流電機(jī)一般有兩種方案:第一,勿需占用單片機(jī)資源,直接選擇有PWM功能的單片機(jī),這樣可以實(shí)現(xiàn)精確調(diào)速;第二,可以由軟件模擬PWM輸出調(diào)制,需要占用單片機(jī)資源,難以精確調(diào)速,但單片機(jī)型號(hào)的選擇余地較大。考慮到實(shí)際情況,本文選擇第二種方案。CPU使用STC89C52單片機(jī),配合軟件編程實(shí)現(xiàn)。第1章 設(shè)計(jì)指導(dǎo)1.1設(shè)計(jì)目的(1) 掌握小車的基本構(gòu)件;(2) 掌握電動(dòng)機(jī)齒輪箱的構(gòu)件;(3) 掌握各電子元器件的基本形狀及其功能;(4) 掌握各電子元器件的焊接步驟與工作原理;(5) 掌握單片機(jī)內(nèi)部結(jié)構(gòu)與程序編制方法; (6) 掌握 LED 燈驅(qū)動(dòng)方法,全面掌握流水燈/跑馬燈編程技術(shù);(7) 掌握數(shù)碼管內(nèi)部結(jié)構(gòu),掌握數(shù)碼顯示技術(shù);(8) 掌握鍵盤結(jié)構(gòu)原理,掌握中斷查詢技術(shù)原理;(9) 掌握話筒電路結(jié)構(gòu),掌握話筒輸入技術(shù)原理;(10)掌握蜂鳴器驅(qū)動(dòng)技術(shù),實(shí)現(xiàn)蜂鳴報(bào)警功能;(11)掌握光敏電阻原理,實(shí)現(xiàn)光照對(duì)小車的控制;(12)掌握紅外發(fā)射與接收技術(shù),實(shí)現(xiàn)小車自動(dòng)尋跡;(13)掌握R232通信協(xié)議,掌握串口通信技術(shù);(14)通過本次設(shè)計(jì)實(shí)驗(yàn),對(duì)自己的專業(yè)知識(shí)掌握和運(yùn)用有一個(gè)系統(tǒng)的考核;1.2設(shè)計(jì)要求當(dāng)前的電動(dòng)小汽車基本上采取的是基于純硬件電路的一種開環(huán)控制方法,或者是直線行使,或者是在遙控下作出前進(jìn)、后退、轉(zhuǎn)彎、停車等基本功能。但是它們不能實(shí)現(xiàn)在某些特殊的場(chǎng)合下,我們需要能夠自動(dòng)控制的小型設(shè)備先采集到一些有用的信息的功能。本文正是在這種需要之下開發(fā)設(shè)計(jì)的一種智能的電動(dòng)小車的自動(dòng)控制系統(tǒng)。它以單片機(jī)AT89C52為控制核心,附以外圍電路,在畫有黑線的白紙“路面”上行使,由于黑線和白線對(duì)光線的反射系數(shù)不同,可根據(jù)接收到的反射光的強(qiáng)弱來判斷“道路”黑線。判斷信號(hào)可通過單片機(jī)控制驅(qū)動(dòng)模塊修正前進(jìn)方向,以使其保持沿著黑線行進(jìn)。軌跡探測(cè)用兩對(duì)紅外探頭,當(dāng)小車脫離軌道時(shí),即當(dāng)置于兩邊的任何一只紅外發(fā)射探頭脫離軌道時(shí),相對(duì)應(yīng)的接收探頭便會(huì)接收到反射的紅外線,系統(tǒng)便做出相應(yīng)的轉(zhuǎn)向調(diào)整,直到中間的光電管接收不到反射的紅外線(即回到軌道),再恢復(fù)正向行駛等智能控制系統(tǒng)。第2章 智能小車的總體方案設(shè)計(jì)2.1總體方案的思路智能尋跡小車尋跡主要是由前方的兩對(duì)紅外發(fā)射與接收探頭來完成的。根據(jù)光有反射的特性。所以說當(dāng)紅外發(fā)射出來的光線遇到物體時(shí),就會(huì)形成反射的光線,而這個(gè)經(jīng)反射的紅外光線剛好被紅外接收探頭接收到。當(dāng)紅外接收探頭接收到信號(hào)后,再將信號(hào)送到單片機(jī)由單片機(jī)內(nèi)部程序來控制電機(jī),由兩個(gè)電機(jī)正轉(zhuǎn)反轉(zhuǎn)來完成小車的前進(jìn),轉(zhuǎn)向。2.2總體設(shè)計(jì)方案和框圖整個(gè)路系統(tǒng)分為檢測(cè)、控制、驅(qū)動(dòng)三個(gè)模塊。首先利用紅外探頭對(duì)路面信號(hào)進(jìn)行檢測(cè),經(jīng)過比較器處理之后,送給軟件控制模塊進(jìn)行實(shí)時(shí)控制,輸出相應(yīng)的信號(hào)給驅(qū)動(dòng)芯片驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),從而控制整個(gè)小車的運(yùn)動(dòng)。系統(tǒng)方案方框圖如圖所示:控制小車驅(qū)動(dòng)電機(jī)軟件控制檢測(cè)(黑線)圖2-1智能小車尋跡系統(tǒng)框2.2.1驅(qū)動(dòng)模塊由于直流電機(jī)的控制方法比較簡單,只需給電機(jī)的兩根控制線加上適當(dāng)?shù)碾妷杭纯墒闺姍C(jī)轉(zhuǎn)動(dòng)起來,電壓越高則電機(jī)轉(zhuǎn)速越高。對(duì)于直流電機(jī)的速度調(diào)節(jié),可以采用改變電壓的方法,也可采用PWM調(diào)速方法。PWM調(diào)使加在直流電機(jī)兩端的速就是電壓為方波形式,通過改變方波的占空比實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的調(diào)節(jié)。2.2.2傳感器單元由于使用CCD傳感器需要有大量圖像處理的工作,需要進(jìn)行大量數(shù)據(jù)的存儲(chǔ)和計(jì)算。而本次是以實(shí)現(xiàn)小車視覺為目的,實(shí)現(xiàn)起來工作量較大,電路相對(duì)比較復(fù)雜,所以我們使用光電傳感器來采集路面信息。使用紅外傳感器最大的優(yōu)點(diǎn)就是結(jié)構(gòu)簡明,實(shí)現(xiàn)方便,成本低廉,免去了復(fù)雜的圖像處理工作,反應(yīng)靈敏,響應(yīng)時(shí)間低,便于近距離路面情況的檢測(cè)。但紅外傳感器的缺點(diǎn)是,它所獲取的信息是不完全的,只能對(duì)路面情況作簡單的黑白判別,檢測(cè)距離有限,而且容易受到諸多擾動(dòng)的影響,抗干擾能力較差,背景光源,器件之間的差異,傳感器高度位置的差異等都將對(duì)其造成干擾。但在本次設(shè)計(jì)中,賽道為黑色與白色兩種顏色,小車只要能區(qū)分黑色就可以采集到準(zhǔn)確的路面信息,所以本設(shè)計(jì)中我們采用了紅外光電傳感器作為信息采集元件。圖2-2紅外傳感器分布圖其中X1與Y1為第一級(jí)方向控制傳感器,一般中間的一個(gè)傳感器XY在黑線上并且黑線同一邊的兩個(gè)傳感器之間的寬度不得大于黑線的寬度。小車前進(jìn)時(shí),X1、X2在黑線上,當(dāng)小車偏離黑線時(shí),第一級(jí)傳感器X1或Y1就能檢測(cè)不到黑線時(shí),把檢測(cè)的信號(hào)送給小車的處理、控制系統(tǒng),控制系統(tǒng)發(fā)出信號(hào)對(duì)小車軌跡予以糾正。這次設(shè)計(jì)智能小車,可以按指定路線運(yùn)行,自動(dòng)區(qū)分直線軌道和彎路軌道,在指定彎路處拐彎,實(shí)現(xiàn)靈活前進(jìn)、轉(zhuǎn)彎、倒退等功能,在軌道上劃出設(shè)定的地圖,并且車速自動(dòng)可調(diào)。主要是以AT89C52 為核心,紅外傳感器進(jìn)行目標(biāo)識(shí)別與避障,使自動(dòng)尋跡小車準(zhǔn)確跟蹤軌跡路線;采用直流電機(jī)對(duì)車的轉(zhuǎn)向進(jìn)行控制,由軟件實(shí)現(xiàn)了小車自動(dòng)行駛、自動(dòng)避障,并發(fā)出指示信息等功能。圖2-1-1智能小車原理圖第3章 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)3.1單片機(jī)單元AT89C52 提供以下標(biāo)準(zhǔn)功能:8k 字節(jié) Flash 閃速存儲(chǔ)器,256 字節(jié)內(nèi)部 RAM,32 個(gè) IO 口線,3 個(gè) 16 位定時(shí)計(jì)數(shù)器,一個(gè) 6 向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),AT89C52 可降至 0Hz 的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止 CPU 的工作,但允許 RAM,定時(shí)計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM 中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位,AT89C52 除了與 AT89C51 所有的定時(shí)計(jì)數(shù)器 0 和定時(shí)計(jì)數(shù)器 l 外,還增加了一個(gè)定時(shí)計(jì)數(shù)器 2。定時(shí)計(jì)數(shù)器2 的控制和狀態(tài)位位于 T2CON 。T2MOD ,寄存器對(duì)(RCA02H、RCAP2L)是定時(shí)器 2 在 16 位捕獲方式或 16 位自動(dòng)重裝載方式下的捕獲自動(dòng)重裝載寄存器。 圖3-2 AT89C52各引腳P0口是一組8 位漏極開路型雙向I/O口也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口,P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏 RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令EA/VPP外部訪問允許。欲使CPU 僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH),EA 端必須保持低電平XTAL1振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 XTAL2振蕩器反相放大器的輸出端。3.2 電機(jī)控制單元 從單片機(jī)輸出的信號(hào)功率很弱,即是在沒有其他外在負(fù)載時(shí)也無法帶動(dòng)電機(jī),所以在實(shí)現(xiàn)電路中我們加入了電機(jī)驅(qū)動(dòng)芯片提高輸入電機(jī)信號(hào)的功率,從而能夠根據(jù)需要控制電機(jī)轉(zhuǎn)動(dòng) L9110 是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專用集成電路器件,將分立電路集成在單片 IC 之中,使外圍器件成本降低,整機(jī)可靠性提高。該芯片有兩個(gè) TTL/CMOS兼容電平的輸入,具有良好的抗干擾性;兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反向運(yùn)動(dòng),它具有較大的電流驅(qū)動(dòng)能力,每通道能通過 750800mA 的持續(xù)電流,峰值電流能力可達(dá) 1.52.0A; 同時(shí)它具有較低的輸出飽和壓降; 內(nèi)置的鉗位二極管能釋放感性負(fù)載的反向沖擊電流,使它在驅(qū)動(dòng)繼電器、直流電機(jī)、步進(jìn)電機(jī)或開關(guān)功率管的使用上安全可靠。L9110 被廣泛應(yīng)用于玩具汽車電機(jī)驅(qū)動(dòng)、步進(jìn)電機(jī)驅(qū)動(dòng)和開關(guān)功率管等電路上。LG9110特點(diǎn)低靜態(tài)工作電流寬電源電壓范圍:2.5V-12V每通道具有800mA連續(xù)電流輸出能力較低的飽和壓降輸出內(nèi)置鉗位二極管適用于感性負(fù)載控制和驅(qū)動(dòng)集成于單片 IC之中具備管腳高壓保護(hù)功能工作溫度:0-80TTL/CMOS輸出電平兼容,可直接連 CPU 3.3 串口通訊單元MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。 引腳圖片 引腳介紹 主要分為幾部分電荷泵電路:由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 數(shù)據(jù)轉(zhuǎn)換通道:由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。 其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 供電:15腳GND、16腳VCC(+5v)。 由于RS232電平較高,在接通時(shí)產(chǎn)生的瞬時(shí)電涌非常高,很有可能擊毀max232,所以在使用中應(yīng)盡量避免熱插拔。3.4 按鍵中斷單元S1接通后,P3.4端接入低電平,小車中斷所進(jìn)行的動(dòng)作。S2接通后使P3.4接入低電平,這時(shí)會(huì)有一個(gè)外部輸入進(jìn)入到單片機(jī)中,從而使小車停止所進(jìn)行的動(dòng)作進(jìn)行下一個(gè)動(dòng)作。3.5蜂鳴器單元 在單片機(jī)應(yīng)用的設(shè)計(jì)上,很多方案都會(huì)用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報(bào)警,比如按鍵按下、開始工作、工作結(jié)束或是故障等等。這里對(duì)單片機(jī)在蜂鳴器驅(qū)動(dòng)上的應(yīng)用作一下描述。圖3-7為蜂鳴器發(fā)聲電路原理圖。圖3-7 蜂鳴器發(fā)聲電路原理圖 由于自激蜂鳴器是直流電壓驅(qū)動(dòng)的,不需要利用交流信號(hào)進(jìn)行驅(qū)動(dòng),只需對(duì)驅(qū)動(dòng)口輸出驅(qū)動(dòng)電平并通過三極管放大驅(qū)動(dòng)電流就能使蜂鳴器發(fā)出聲音,由于蜂鳴器的工作電流一般比較大,以致于單片機(jī)的I/O 口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),一般使用三極管來放大電流就可以了。第4章 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)4.1程序流程圖開始系統(tǒng)初始化執(zhí)行主程序小車前進(jìn)電機(jī)模式選擇電機(jī)左轉(zhuǎn)電機(jī)反轉(zhuǎn)電機(jī)右轉(zhuǎn)N偏離跑道否控制算法控制算法控制算法返回跑道否返回跑道否返回跑道否NNYNYYY圖4-1系統(tǒng)總流程圖該系統(tǒng)配套的軟件程序采用模塊結(jié)構(gòu),由C語言編寫完成。主要由初始化程序、偏道調(diào)整程序、偏離光源調(diào)整程序、聲光指示子程序、讀傳感器狀態(tài)、顯示程序、定時(shí)器0的中斷服務(wù)程序、定時(shí)器1的中斷服務(wù)程序、外部中斷0的服務(wù)程序、停車處理等模塊組成。系統(tǒng)的主體流程如圖3-4所示。4.2程序#include <reg52.h> /包含51單片機(jī)相關(guān)的頭文件#define uint unsigned int /重定義無符號(hào)整數(shù)類型#define uchar unsigned char /重定義無符號(hào)字符類型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;static unsigned int LedFlash; /定義閃動(dòng)頻率計(jì)數(shù)變量unsigned char RunFlag=0; /定義運(yùn)行標(biāo)志位bit EnableLight=0; /定義指示燈使能位/*完成基本數(shù)據(jù)變量定義*/sbit S1State=P10; /定義S1狀態(tài)標(biāo)志位sbit S2State=P11; /定義S2狀態(tài)標(biāo)志位sbit B1State=P12; /定義B1狀態(tài)標(biāo)志位sbit IRState=P13; /定義IR狀態(tài)標(biāo)志位sbit RunStopState=P14; /定義運(yùn)行停止標(biāo)志位sbit FontIRState=P15; /定義FontIR狀態(tài)標(biāo)志位sbit LeftIRState=P16; /定義LeftIR狀態(tài)標(biāo)志位sbit RightIRState=P17; /定義RightIRState狀態(tài)標(biāo)志位/*完成狀態(tài)指示燈定義*/sbit S1=P32; /定義S1按鍵端口sbit S2=P34; /定義S2按鍵端口/*完成按鍵端口的定義*/sbit LeftLed=P20; /定義前方左側(cè)指示燈端口sbit RightLed=P07; /定義前方右側(cè)指示燈端口/*完成前方指示燈端口定義*/sbit LeftIR=P35; /定義前方左側(cè)紅外探頭sbit RightIR=P36; /定義前主右側(cè)紅外探頭sbit FontIR=P37; /定義正前方紅外探頭/*完成紅外探頭端口定義*/sbit M1A=P00; /定義電機(jī)1正向端口sbit M1B=P01; /定義電機(jī)1反向端口sbit M2A=P02; /定義電機(jī)2正向端口sbit M2B=P03; /定義電機(jī)2反向端口/*完成電機(jī)端口定義*/sbit B1=P04; /定義話筒傳感器端口sbit RL1=P05; /定義光敏電阻端口sbit SB1=P06; /定義蜂鳴端口/*完成話筒,光敏電阻,蜂鳴器.端口定義*/sbit IRIN=P33; /定義紅外接收端口/*完成紅外接收端口的定義*/#define ShowPort P2 /定義數(shù)碼管顯示端口extern void ControlCar(uchar CarType); /聲明小車控制子程序void delay(unsigned char x) /0.14mS延時(shí)程序 unsigned char i; /定義臨時(shí)變量 while(x-) /延時(shí)時(shí)間循環(huán) for (i = 0; i<13; i+) /14mS延時(shí) void Delay() /定義延時(shí)子程序 uint DelayTime=5000; /定義延時(shí)時(shí)間變量 while(DelayTime-); /開始進(jìn)行延時(shí)循環(huán) return; /子程序返回void ControlCar(uchar CarType) /定義小車控制子程序 M1A=0; /將電機(jī)1正向電平置低 M1B=0; /將電機(jī)1反向電平置低 M2A=0; /將電機(jī)2正向電平置低 M2B=0; /將電機(jī)2反向電平置低 LeftLed=1; /關(guān)閉前方左側(cè)指示燈 RightLed=1; /關(guān)閉前方右側(cè)指示燈 Delay(); /將此狀態(tài)延時(shí)一段時(shí)間 switch(CarType) /判斷小車控制指令類型 case 1: /前進(jìn) /判斷是否是前進(jìn) M1A=1; /將電機(jī)1正向端口置高 M2A=1; /將電機(jī)2正向端口置高 ShowPort=LedShowData1; /數(shù)碼管顯示前進(jìn)狀態(tài) break; /退出判斷 case 2: /后退 /判斷是否是后退 M1B=1; /將電機(jī)1反向端口置高 M2B=1; /將電機(jī)2反向端口置高 ShowPort=LedShowData2; /數(shù)碼管顯示后退狀態(tài) RightLed=0; /將前方右側(cè)指示燈置低(亮) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 3: /左轉(zhuǎn) /判斷是否是左轉(zhuǎn) M1B=1; /將電機(jī)1反向端口置高 M2A=1; /將電機(jī)2正向端口置高 ShowPort=LedShowData3; /數(shù)碼管顯示左轉(zhuǎn)狀態(tài) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 case 4: /右轉(zhuǎn) /判斷是否是右轉(zhuǎn) M1A=1; /將電機(jī)1正向端口置高 M2B=1; /將電機(jī)2反向端口置高 ShowPort=LedShowData4; /數(shù)碼管顯示右轉(zhuǎn)狀態(tài) RightLed=0; /將前方右側(cè)指示燈置低(亮) break; /退出判斷 case 5: M1A=1; /將電機(jī)1反向端口置高 M2A=1; /將電機(jī)2正向端口置高 ShowPort=LedShowData5; /數(shù)碼管顯示前進(jìn)狀態(tài) break; /退出判斷 case 8: M1A=0; /將電機(jī)1正向端口置低 M2A=0; /將電機(jī)2反向端口置低 ShowPort=LedShowData8; /數(shù)碼管顯示右轉(zhuǎn)狀態(tài) RightLed=0; /將前方右側(cè)指示燈置低(亮) LeftLed=0; /將前方左側(cè)指示燈置低(亮) break; /退出判斷 default: /默認(rèn)情況下的判斷 break; /直接退出判斷 void ComBreak() interrupt 4 /定義串口通信子程序unsigned char RecvData; /定義串口數(shù)據(jù)接收變量 if(RI=1) /判斷是否接收數(shù)據(jù) RecvData=SBUF; /將接收到的數(shù)據(jù)放入暫時(shí)變量 if(RecvData<10) /判斷接收到的數(shù)據(jù)是否小于10 ShowPort=LedShowDataRecvData; /將接收到的數(shù)據(jù)通過數(shù)碼管顯示出來 ControlCar(RecvData); /將串口數(shù)據(jù)置于小于狀態(tài) SBUF=RecvData; /向電腦返回當(dāng)前接收到的數(shù)據(jù) RI=0; /清除接收中斷標(biāo)志位 if(TI=1) /判斷是否是發(fā)送中斷 TI=0; /清除發(fā)送中斷標(biāo)志位 void IR_IN() interrupt 2 using 0 /定義INT2外部中斷函數(shù) unsigned char j,k,N=0; /定義臨時(shí)接收變量 EX1 = 0; /關(guān)閉外部中斷,防止再有信號(hào)到達(dá) delay(15); /延時(shí)時(shí)間,進(jìn)行紅外消抖 if (IRIN=1) /判斷紅外信號(hào)是否消失 EX1 =1; /外部中斷開 return; /返回 while (!IRIN) /等IR變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號(hào)。 delay(1); /延時(shí)等待 for (j=0;j<4;j+) /采集紅外遙控器數(shù)據(jù) for (k=0;k<8;k+) /分次采集8位數(shù)據(jù) while (IRIN) /等 IR 變?yōu)榈碗娖?,跳過4.5ms的前導(dǎo)高電平信號(hào)。 delay(1); /延時(shí)等待 while (!IRIN) /等 IR 變?yōu)楦唠娖?delay(1); /延時(shí)等待 while (IRIN) /計(jì)算IR高電平時(shí)長 delay(1); /延時(shí)等待 N+; /計(jì)數(shù)器加加 if (N>=30) /判斷計(jì)數(shù)器累加值 EX1=1; /打開外部中斷功能 return; /返回 IRCOMj=IRCOMj >> 1; /進(jìn)行數(shù)據(jù)位移操作并自動(dòng)補(bǔ)零 if (N>=8) /判斷數(shù)據(jù)長度 IRCOMj = IRCOMj | 0x80; /數(shù)據(jù)最高位補(bǔ)1 N=0; /清零位數(shù)計(jì)錄器 if (IRCOM2!=IRCOM3) /判斷地址碼是否相同 EX1=1; /打開外部中斷 return; /返回 for(j=0;j<10;j+) /循環(huán)進(jìn)行鍵碼解析 if(IRCOM2=RecvDataj) /進(jìn)行鍵位對(duì)應(yīng) P2=LedShowDataj; /數(shù)碼管顯示相應(yīng)數(shù)碼 switch(IRCOM2) case 0x0A: /前進(jìn) ControlCar(1); /小車前進(jìn) break; case 0x1B: /后退 ControlCar(2); /小車后退 break; case 0x1F: /左轉(zhuǎn) ControlCar(3); /小車左轉(zhuǎn) break; case 0x0C: /右轉(zhuǎn) ControlCar(4); /小車右轉(zhuǎn) break; case 0x1A: /前進(jìn) ControlCar(1); /小車前進(jìn) break; case 0x05: /后退 ControlCar(2); /小車后退 break; case 0x01: /左轉(zhuǎn) ControlCar(3); /小車左轉(zhuǎn) break; case 0x03: /右轉(zhuǎn) ControlCar(4); /小車右轉(zhuǎn) break; case 0x0D: /電源 ControlCar(5); /前進(jìn) break; case 0x0F: /右轉(zhuǎn) ControlCar(8); /小車停止 break; EX1 = 1; /外部中斷開void main(void) /主程序入口 bit ExeFlag=0; /定義可執(zhí)行位變量 LedFlash=3000; /對(duì)閃燈數(shù)據(jù)進(jìn)行初始化 TMOD=0x01; /選擇定時(shí)器0為兩個(gè)16位定時(shí)器 TH0=0xFF; /對(duì)定時(shí)器進(jìn)行計(jì)數(shù)值進(jìn)行初始化 TL0=0x49; /同上,時(shí)間大約為25uS TR0=1; /同意開始定時(shí)器0 EX1=1; /同意開啟外部中斷1 IT1=1; /設(shè)定外部中斷1為低邊緣觸發(fā)類型 ET0=0; SCON=80; /設(shè)置串口模式為8位數(shù)據(jù) TMOD=33; /設(shè)置定時(shí)/計(jì)數(shù)器模式 TH1=0xFD; /給定時(shí)器1高八位初始化初值 TL1=0xFD; /給定時(shí)器1低八位初始化初值 TR1=1; /開啟定時(shí)器1 ES=1; /開啟串口通信功能 REN=1; /開啟接收中斷標(biāo)志 EA=1; /總中斷開啟 ControlCar(1); /將小車置于前進(jìn)狀態(tài) ShowPort=LedShowData0; /數(shù)碼管顯示數(shù)字0while(1) /程序主循環(huán) while(LedFlash-) /閃燈總延時(shí) if(RL1=0) /判斷光敏電阻的狀態(tài) RightLed=1; /將前方右側(cè)指示燈點(diǎn)亮 LeftLed=1; /將前方左側(cè)指示燈點(diǎn)亮 else /在光敏電阻為不通的狀態(tài)下 RightLed=0; /將前方右側(cè)指示燈熄滅 LeftLed=0; /將前方左側(cè)指示燈熄滅 if(IRIN=0) /判斷延時(shí)期間是否有紅外信號(hào)輸入 ExeFlag=1; /將可執(zhí)行標(biāo)志位置1

注意事項(xiàng)

本文(智能循跡小車設(shè)計(jì))為本站會(huì)員(1666****666)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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