智能尋跡小車實(shí)驗(yàn)報(bào)告_第1頁
智能尋跡小車實(shí)驗(yàn)報(bào)告_第2頁
智能尋跡小車實(shí)驗(yàn)報(bào)告_第3頁
智能尋跡小車實(shí)驗(yàn)報(bào)告_第4頁
智能尋跡小車實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、DIY達(dá)人賽 基于 STC89C52單片機(jī)智能尋跡小車實(shí)驗(yàn)報(bào)告 參賽隊(duì)伍: 隊(duì)員: 2014年4月一、引言 我們所處的這個(gè)時(shí)代是信息革命的時(shí)代,各種新技術(shù)、新思想層出不窮,縱 觀世界范圍內(nèi)智能汽車技術(shù)的發(fā)展,每一次新的進(jìn)步無不是受新技術(shù)新思想的推 動(dòng)。 隨著汽車工業(yè)的迅速發(fā)展,傳統(tǒng)的汽車的發(fā)展逐漸趨于飽和。伴隨著電子技 術(shù)和嵌入式技術(shù)的迅猛發(fā)展,這使得汽車日漸走向智能化。智能汽車由原先的駕 駛更加簡(jiǎn)單更加安全更加舒適,逐漸的向智能駕駛系統(tǒng)方向發(fā)展。智能駕駛系統(tǒng) 相當(dāng)于智能機(jī)器人,能代替人駕駛汽車。它主要是通過安裝在前后保險(xiǎn)杠及兩側(cè) 的紅外線攝像機(jī),對(duì)汽車前后左右一定區(qū) 域進(jìn)行不停地掃描和監(jiān)視。

2、計(jì)算機(jī)、 電子地圖和光化學(xué)傳感器等對(duì)紅外線攝像 機(jī)傳來的信號(hào)進(jìn)行分析計(jì)算,并根據(jù) 道路交通信息管理系統(tǒng)傳來的交通信息,代替人的大腦發(fā)出指令,指揮執(zhí)行系統(tǒng) 操作汽車。1、來源汽車的智能化是 21 世紀(jì)汽車產(chǎn)業(yè)的核心競(jìng)爭(zhēng)力之一。 汽車的智能化是以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識(shí)別、傳 感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科交叉的科技。2、智能汽車國(guó)外發(fā)展情況從 20 世紀(jì) 70 年代開始,美國(guó)、英國(guó)、德國(guó)等發(fā)達(dá)國(guó)家開始進(jìn)行無人駕駛汽 車的研究,目前在可行性和實(shí)用化方面都取得了突破性的進(jìn)展。目前日本、歐美已有企業(yè)取得實(shí)用化成果。與國(guó)外相比,國(guó)內(nèi)在智能車輛方 面的研究起步較晚,規(guī)模較小

3、,開展這方面研究工作的單位主要是一些大學(xué)和研究所,如國(guó)防科技大學(xué)、清華大學(xué)、吉林大學(xué)、北京理工大學(xué)、長(zhǎng)安大學(xué)、沈陽 自動(dòng)化所等。 我國(guó)從 20 世紀(jì) 80 年代開始進(jìn)行無人駕駛汽車的研究,國(guó)防科技大學(xué)在 1992 年成功研制出我國(guó)第一輛真正意義上的無人駕駛汽車。先后研制出四代無人駕駛汽車。第四代全自主無人駕駛汽車于 2000 年 6 月在長(zhǎng)沙市繞城高速公路上進(jìn)行 了全自主無人駕駛試驗(yàn),試驗(yàn)最高時(shí)速達(dá)到 75.6Km/h。 3、我們的小車 我們做的是基于 STCC52單片機(jī)開發(fā),主要是研究 3 輪小車的路徑識(shí)別及其 遙控運(yùn)動(dòng)。二、智能尋際小車基本原理1、紅外尋跡原理 探測(cè)路面黑線的基本原理:光線

4、照射到路面并反射,由于黑線和白紙對(duì)光的 反射系數(shù)不同,可以根據(jù)接收到的反射光強(qiáng)弱來判斷是否是黑線。利用這個(gè)原理, 可以控制小車行走的路跡。 這里的循跡是指小車在白色地板上循黑線行走,通常采取的方法是紅外探測(cè)法。 紅外探測(cè)法,即利用紅外線在不同顏色的物體表面具有不同的反射性質(zhì)的特點(diǎn),在小車行駛過程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收, 小車上的接收管接收不到紅外光。處理器就根據(jù)是否收到反射回來的紅外光為依 據(jù)來確定黑線的位置和小車的行走路線。紅外探測(cè)器探測(cè)距離有限,一般最大不應(yīng)超過 3cm。2、驅(qū)動(dòng)原理:利用L

5、298N構(gòu)成電機(jī)驅(qū)動(dòng)電路。21 L298N 的恒壓恒流橋式 2A 驅(qū)動(dòng)芯片 引腳介紹:和和引腳直接接地;管腳VS接.到的電壓,它是用來驅(qū)動(dòng)電機(jī)的。引腳是用來接.到V的電壓的,它是用來驅(qū)動(dòng)芯片的,L298需要從外部接兩個(gè)電壓,一個(gè)給電機(jī),一個(gè)給芯片。和引腳是使能端,一個(gè)使能端控制一個(gè)電機(jī),至于控制哪個(gè)取決自己??梢岳斫鉃榭傞_關(guān),只有都是高電平的時(shí)候兩個(gè)電機(jī)才能工作。,是的信號(hào)輸入端,和單片機(jī)的IO口連接。,是輸出端。輸入和控制輸出和,輸入的,控制輸出的,. ;L298N是SGS公司產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路,是一種二相和四相電機(jī)的專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收

6、標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V,2A以下的電機(jī)。 ;OUT1,OUT2,和OUT3,OUT4直接分別接2個(gè)電動(dòng)機(jī)。TN1,TN2,TN3,TN4引腳從單片機(jī)接輸入控制電平,控制電機(jī)的正反轉(zhuǎn),ENA,ENB接控制使能端,控制電機(jī)的停轉(zhuǎn)。 ;對(duì)于電機(jī)的調(diào)速,我們采用PWM調(diào)速的方法。其原理就是開關(guān)管在一個(gè)周期內(nèi)的導(dǎo)通時(shí)間為,周期為。VCC是電源電壓。電機(jī)的轉(zhuǎn)速與電機(jī)兩端的電壓成正比,而電機(jī)兩端的電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成比例。在硬件電路的連接上,我們將單片機(jī)的.口分別連接到的ININ上,通過改變P2.0上的高低電平變化以控制小車的前進(jìn)方向,通過改變口上的高低電壓的

7、占空比以控制電機(jī)的轉(zhuǎn)速。 ;PWM配合橋式驅(qū)動(dòng)電路,實(shí)現(xiàn)直流電機(jī)調(diào)速,非常簡(jiǎn)單,且調(diào)速范圍大。另外我們特別在直流電機(jī)的電驅(qū)兩端并聯(lián)一個(gè)磁片電容,以穩(wěn)定電機(jī)的電壓不致對(duì)單片機(jī)造成干擾,實(shí)際效果不錯(cuò),省掉了通過光耦隔離TPL實(shí)現(xiàn)單片機(jī)輸出信號(hào)與電機(jī)驅(qū)動(dòng)信號(hào)隔離22驅(qū)動(dòng)板電路原理: 該驅(qū)動(dòng)板需要.電源供電,但的邏輯參考電平為典型的TTL電平。用了一個(gè)穩(wěn)壓芯片是為了提供穩(wěn)定的V輸出電壓和邏輯參考電壓。,和是發(fā)光二極管,指示運(yùn)動(dòng)方向,與它們連接的電阻是限流電阻。,是下拉電阻,讓ENB和ENB要么是高電平,要么是低電平,避免電平混亂,提高對(duì)輸入信號(hào)的抗干擾能力。輸出端都接有.電容,加上二極管平衡電路。都是

8、為了保護(hù)L298N,電機(jī)是感性負(fù)載,當(dāng)給電機(jī)突然通電和斷電,因?yàn)殡娏鞯乃沧?,電機(jī)兩端會(huì)產(chǎn)生瞬時(shí)高電壓和大電流。如果沒有保護(hù)措施,會(huì)被損害。3 智能小車舵機(jī)控制原理 利用舵機(jī)靈活控制超聲波探頭 1800°旋轉(zhuǎn),可以實(shí)現(xiàn)小車的全方位避障。 什么是舵機(jī) 在機(jī)器人機(jī)電控制系統(tǒng)中,舵機(jī)控制效果是性能的重要影響因素。舵機(jī)可以在微機(jī)電系統(tǒng)和航模中作為基本的輸出執(zhí)行機(jī)構(gòu),其簡(jiǎn)單的控制和輸出使得單片機(jī)系統(tǒng)非常容易與之接口。舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。舵機(jī)工作原理 控制信號(hào)由接收機(jī)的通道進(jìn)入信號(hào)調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有 一個(gè)基準(zhǔn)電路,產(chǎn)

9、生周期為 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)動(dòng)。舵機(jī)的控制 舵機(jī)的控制一般需要一個(gè) 20ms 左右的時(shí)基脈沖,該脈沖的高電平部分一 般為 0.5ms2.5ms 范圍內(nèi)的角度控制脈沖部分。以 180 度角度伺服為例,那么對(duì) 應(yīng)的控制關(guān)系是這樣的: 0.5ms-0 度; 1.0ms-45 度; 1.5ms-90 度; 2.0ms-135 度; 2.5ms-180 度;4. 智能小車避障基本原理 小車

10、避障是利用超聲波測(cè)距,并根據(jù)測(cè)出離障礙物不同距離而做出不同反應(yīng)。 超聲波測(cè)距模塊簡(jiǎn)介 檢測(cè)距離:5CM-5M 分辨率:5MM 數(shù)字電平信號(hào),可直接接單片機(jī),無需任何輔助電路,也無需單片機(jī)產(chǎn)生任何信號(hào)輔助,距離和模塊輸出信號(hào)脈沖長(zhǎng)度成正比。 尺寸:43.5*20.5 毫米 高度:13.8 毫米 2.5.2 超聲波測(cè)距原理 你只需要提供一個(gè)短期的 10uS 脈沖觸發(fā)信號(hào)。該模塊內(nèi)部將發(fā)出 8 個(gè) 40kHz 周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)是一個(gè)脈沖的寬度 成正比的距離對(duì)象??赏ㄟ^發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距式:uS/58= 厘米或者 uS/148

11、=英寸。建議測(cè)量周期為 60ms 以上,以防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響5. 智能小車液晶顯示原理 加入液晶顯示一方面是為了彌補(bǔ)數(shù)碼管顯示的局限性,其次是為了顯示小車的運(yùn)動(dòng)狀 態(tài),離前方障礙物距離,循跡狀態(tài),是否遇到黑線,后退,前進(jìn)還是轉(zhuǎn) 向,作為一個(gè)控制平臺(tái),實(shí)現(xiàn)小車的靈活控制。液晶顯示原理 液晶顯示其實(shí)就是對(duì)屏幕的每個(gè)點(diǎn)的掃描,帶字庫的液晶內(nèi)部自帶控制芯片,直接對(duì)它操作就可以顯示出漢子字符,需要讀寫命令和數(shù)據(jù),才能達(dá)到對(duì)液晶控制器的操作。6. 避障模塊電路設(shè)計(jì) 小車避障模塊由超聲波和舵機(jī)兩部分組成,超聲波測(cè)量距離障礙物的距離, 舵機(jī)來控制超聲波探頭的 °旋轉(zhuǎn),從而達(dá)到全方位的避障控

12、制。7電源我們用的是六節(jié)干電池,用LM2940s降壓。原理圖如下8.紅外通信原理 通用紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,應(yīng)用編/解碼專用電路芯片來進(jìn)行控制操作。遙控器在按鍵按下后,周期性地發(fā)出同一種 32 位二進(jìn)制碼,周期約為 108ms。當(dāng)一個(gè)鍵按下超過 36ms,振蕩器使芯片激活,將發(fā)射一組 108ms 的編碼脈沖,這 108ms 發(fā)射代碼由一 個(gè)起始碼(9ms),一個(gè)結(jié)果碼(4.5ms),低 8 位地址碼(9ms18ms),高 8 位地址碼(9ms18ms),8 位數(shù) 據(jù)碼(9ms18ms)和這 8 位數(shù)據(jù)的反碼(9ms18ms)組成。接收器及解碼 一體化紅外線接收器是一種集紅外線接

13、收和放大于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。 VS1838B三、材料準(zhǔn)備1小車底盤,電機(jī)。我們從淘寶網(wǎng)上買的車模,他們直接組裝好的。2四路紅外探測(cè)系統(tǒng)。3超聲波探測(cè)模塊。4舵機(jī)、液晶5STC89C52,L298N,LM2940S,VS1838B,IN5819。瓷片電容104四、實(shí)驗(yàn)過程i. 我們先做了單片機(jī)STC89C52最小系統(tǒng)。以及穩(wěn)壓電路。ii. 我們用L298N以及IN5819,104電容照前邊原理圖搭建了驅(qū)動(dòng)電路。iii. 第三階段做紅外探測(cè),用的是LM339,

14、紅外發(fā)射、接收二極管,好多次都失敗了,最后我們就買了四路紅外探測(cè)系統(tǒng)。調(diào)試時(shí)發(fā)現(xiàn)還不太好用,就換掉了滑動(dòng)變阻器。iv. 第四階段我們對(duì)小車進(jìn)行組裝,加上了液晶顯示器,超聲波模塊,舵機(jī)(帶動(dòng)超聲波探頭),紅外一體化接收頭。v. 最后階段對(duì)小車進(jìn)行總體調(diào)試。五、程序1 一些定義#include<reg52.h> /頭文件一般無需改動(dòng)#include<intrins.h> /頭文件一般無需改動(dòng)#include "hongwai.h"#define uchar unsigned char /宏定義#define uint unsigned intsbit o

15、ut1 = P22;/電機(jī)驅(qū)動(dòng)輸出控制管腳配置sbit out2 = P23;sbit out3 = P20;sbit out4 = P21;sbit ena=P37;sbit enb=P36;sbit SPK=P35;sbit in1 = P01;/循跡模塊的信號(hào)輸入管腳配置sbit in2 = P02;sbit in3 = P03;sbit in4 = P04;sbit RS = P24; /定義端口 sbit RW = P25;sbit EN = P26;sbit pwm=P00;sbit ECHO=P33;sbit TRIG= P34;extern unsigned char Y0;/

16、外部鏈接變量#define RS_CLR RS=0 #define RS_SET RS=1#define RW_CLR RW=0 #define RW_SET RW=1 #define EN_CLR EN=0#define EN_SET EN=1#define DataPort P1 long S=0; 2 驅(qū)動(dòng)程序void qianjin()/使小車向前行駛ena=enb=1; out2=out4=1;voidzuozhuan()/控制小車做輕微左轉(zhuǎn)動(dòng)作ena=enb=1; out1=0; out2=out3=out4=1;voidyouzhuan()/控制小車做輕微右轉(zhuǎn)?ena=enb=1

17、; out1=out2=out4=1;out3=0;voidzuozhuan1()/控制小車做左轉(zhuǎn)動(dòng)作 ena=enb=1; out1=out4=0; out2=out3=1;voidyouzhuan1()/控制小車做右轉(zhuǎn)動(dòng)作 ena=enb=1; out1=out4=1; out2=out3=0;voidhoutui()/控制小車可以使小車倒退行駛ena=enb=1; out1=out3=1; out2=out4=0;void tingzhi () /使小車停止當(dāng)前所有動(dòng)?ena=enb=1;out1=out2=out3=out4=1;void TIM2Inital(void) /用定時(shí)器2

18、 RCAP2H = (65536-100)/256;/晶振12M 60ms 16bit 自動(dòng)重載 RCAP2L = (65536-100)%256; ET2=1; /打開定時(shí)器中斷 EA=1; /打開總中斷void TIM2(void) interrupt 5 using 1/定時(shí)器2中斷 輸出不同PWM信號(hào)TF2=0; count+; /對(duì)小車調(diào)速 if(count<shu)out1=out3=1;elseout1=out3=0;count=count%50; 3 液晶顯示函數(shù)bit LCD_Check_Busy(void) /判忙 DataPort= 0xFF; RS_CLR; RW

19、_SET; EN_CLR; _nop_(); EN_SET; return (bit)(DataPort & 0x80); void LCD_Write_Com(uchar com) /命令 while(LCD_Check_Busy(); /忙則等待 RS_CLR; RW_CLR; EN_SET; DataPort= com; _nop_(); EN_CLR; void LCD_Write_Data(uchar Data) /寫數(shù)據(jù) while(LCD_Check_Busy(); /忙則等待 RS_SET; RW_CLR; EN_SET; DataPort= Data; _nop_()

20、; EN_CLR; void LCD_Clear(void) /清屏 LCD_Write_Com(0x01); delay(5); void LCD_Write_String(uchar x,uchar y,uchar *s)/*寫字符串*/ if (y = 0) LCD_Write_Com(0x80 + x); /表示第一行 else LCD_Write_Com(0xC0 + x); /表示第二行 while (*s) LCD_Write_Data( *s); s +; void LCD_Write_Char(uchar x,uchar y,uchar Data) /*寫單個(gè)字符*/ if

21、(y = 0) LCD_Write_Com(0x80 + x); else LCD_Write_Com(0xC0 + x); LCD_Write_Data( Data); void LCD_Init(void) /初始化 LCD_Write_Com(0x38); /*顯示模式設(shè)置*/ delay(7); LCD_Write_Com(0x08); /*顯示關(guān)閉*/ LCD_Write_Com(0x01); /*顯示清屏*/ LCD_Write_Com(0x06); /*顯示光標(biāo)移動(dòng)設(shè)置*/ delay(7); LCD_Write_Com(0x0C); /*顯示開及光標(biāo)設(shè)置*/ 4.超聲波檢測(cè)un

22、signed int time=0; bit flag =0; void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=time*1.7/100; /算出來是CM 12M晶振 void StartModule() TRIG=1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();

23、_nop_(); _nop_(); _nop_(); TRIG=0; StartModule(); while(!ECHO);/當(dāng)ECHO為零時(shí)等待TR0=1; /開啟計(jì)數(shù)while(ECHO);/當(dāng)ECHO為1計(jì)數(shù)并等待TR0=0;Conut(); void disp(void) /液晶顯示障礙距離 LCD_Write_Char(8,1,'0'+S%1000/100);LCD_Write_Char(9,1,'0'+S%1000%100/10);LCD_Write_Char(10,1,'0'+S%1000%10 %10);5避障程序void bi

24、zhang()uchar a;StartModule(); delay(5);if(S<13)delay(10);if(S<13)TR2=0;delay(2);tingzhi();delay(3);LCD_Clear();/清屏delay(20);LCD_Write_String(5,0,"Barrier");delay(5);for(a=0;a<200;a+) /蜂鳴器報(bào)警 DelayUs2x(200); SPK=!SPK; SPK=0;/防止一直給喇叭通電造成損壞for(a=0;a<200;a+) delay(1); delay(2);youzh

25、uan();delay(600);TR1=1;/開PWM/*舵機(jī)轉(zhuǎn)動(dòng)*shu1=2; /45度角delay(500);Conut();zuo=S;shu1=4;/135度角delay(500);Conut();you=S;shu1=3; /90度角,if(zuo>you) /判斷左右轉(zhuǎn)zuozhuan();delay(400);elseyouzhuan();delay(400);TR1=0; /關(guān)PWMvoid init_pwm() /定時(shí)器1控制舵機(jī)帶動(dòng)超聲波模塊搖頭TMOD|=0X10;TH1=0XFE;TL1=0X33;ET1=0;EA=1;void duoji() interru

26、pt 3 定時(shí)器1中斷TH1=0XFE;TL1=0X33;if(count1<shu1)pwm=1;elsepwm=0;count1+;count1=count1%40;6.循跡程序voidxunji() if(in1=1&&in2=0&&in3=0&&in4=0)delay(1);TR2=0;zuozhuan();else if(in1=0&&in2=1&&in3=0&&in4=0)delay(1);TR2=0;youzhuan(); else if(in1=0&&in2=0

27、&&in3=0&&in4=1)delay(1);TR2=0;youzhuan1(); else if(in3=1&&in1=0&&in2=0&&in4=0)delay(1);TR2=0;zuozhuan1();else if (in1=0&&in2=0&&in3=0&&in4=0)delay(1);TR2=1; qianjin();else if (in1=1&&in2=1&&in3=1&&in4=1)delay(1);

28、 TR2=0; tingzhi();7紅外通信sbit IRIN = P32;/紅外接收器數(shù)據(jù)線unsigned char Y0=2;/unsigned char IRCOM7;/暫存數(shù)組void IRdelay(unsigned char x) /x*0.14MS unsigned char i; while(x-) for (i = 0; i<13; i+) void IRInit() IE |= 0x81; /允許總中斷中斷,使能 INT0 外部中斷 TCON |= 0x01; /觸發(fā)方式為脈沖負(fù)邊沿觸發(fā) IRIN=1; /I/O口初始 IRdelay(1); void IR_IN

29、(void) interrupt 0 unsigned char j,k,N=0;EX0 = 0; IRdelay(15);if (IRIN=1) EX0 =1;return; /確認(rèn)IR信號(hào)出現(xiàn)while (!IRIN) /等IR變?yōu)楦唠娖?,跳過9ms的前導(dǎo)低電平信號(hào)。 IRdelay(1);for (j=0;j<4;j+) /收集四組數(shù)據(jù) for (k=0;k<8;k+) /每組數(shù)據(jù)有8位 while (IRIN) /等 IR 變?yōu)榈碗娖?IRdelay(1); while (!IRIN) /等 IR 變?yōu)楦唠娖?IRdelay(1); while (IRIN) /計(jì)算IR高電

30、平時(shí)長(zhǎng) IRdelay(1); N+; if (N>=30) EX0=1; return; /0.14ms計(jì)數(shù)過長(zhǎng)自動(dòng)離開。 /高電平計(jì)數(shù)完畢 IRCOMj=IRCOMj >> 1; /判斷是0 if (N>=8) IRCOMj = IRCOMj | 0x80; /判斷是1 N=0; if (IRCOM2!=IRCOM3)/判斷是否正確 與最后一個(gè)補(bǔ)碼字節(jié)比較 EX0=1;return; switch(IRCOM2) case 0x0C: Y0=1; break; case 0x18: Y0=2; break; case 0x5E: Y0=3; break; case

31、0x08: Y0=4; break; case 0x1C: Y0=5; break; case 0x5A: Y0=6; break; case 0x42: Y0=7; break; case 0x52: Y0=8; break;case 0x4A: Y0=9; break; case 0x16: Y0=0; break; EX0 = 1; 8.主函數(shù)void main()uchar v;TMOD |= 0x01; /設(shè)T0為方式1,GATE=1TH0=0;TL0=0; TR0=1; shu=26;Y0=5;v=3;init_pwm();TIM2Inital();delay(200);IRIni

32、t();delay(10); LCD_Init(); LCD_Clear();/清屏delay(20);LCD_Write_String(5,0,"shandian"); LCD_Write_String(2,1,"Xunji Xiaoche");delay(100);delay(2000);while(1) delay(10); switch (Y0) case 2:TR2=0;delay(5);LCD_Clear();/清屏delay(20);while(Y0=2)delay(5);LCD_Write_String(1,0,"Xunji B

33、izhang");LCD_Write_String(2,1,"dengji ");LCD_Write_Char(9,1,'0'+v); xunji();delay(3);bizhang(); break;case 1: shu+=5;Y0=2;if(shu>36)shu=36;v=1;v-;if(v<1)v=1;LCD_Write_String(3,0,"tiaosu"); delay(3);LCD_Write_String(2,1,"dengji ");LCD_Write_Char(9,1,&#

34、39;0'+v);delay(100);break;case 3:shu-=5;Y0=2;if(shu<1)shu=1;v=8;v+;if(v>9)v=9;LCD_Write_String(3,0,"tiaosu"); LCD_Write_String(2,1,"dengji ");LCD_Write_Char(9,1,'0'+v);delay(100);break;case 8:TR2=0;delay(5);houtui();LCD_Clear();/清屏delay(20);while(Y0=8) LCD_Write

35、_String(3,0,"back");delay(80);break;case 5:TR2=0;delay(5);LCD_Clear();/清屏delay(20);while(Y0=5) tingzhi();LCD_Write_String(3,0,"stop");delay(80);break;case 6:TR2=0;youzhuan();LCD_Clear();/清屏delay(20);LCD_Write_String(3,0,">>right>>");delay(300);Y0=2;break;cas

36、e 4:TR2=0;zuozhuan();LCD_Clear();/清屏delay(20);LCD_Write_String(3,0,"<<left<<");delay(300);Y0=2;break;case 7:TR2=0;delay(5);LCD_Clear();/清屏delay(20);while(Y0=7) delay(2);xunji();delay(20);LCD_Write_String(3,0,"xunji"); case 0:TR2=0;delay(3);tingzhi();LCD_Clear();/清屏delay(20);while(Y0=0)StartModule(); while(!ECHO);/當(dāng)ECHO為零時(shí)等待 TR0=1; /開啟計(jì)數(shù) while(ECHO);/當(dāng)E

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論