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

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)訓(xùn)報(bào)告課程名稱:?jiǎn)纹瑱C(jī)實(shí)訓(xùn)完成日期:2021年7 月10 0任務(wù)書實(shí)訓(xùn)習(xí)題目 :智能小車的功能設(shè)計(jì)與實(shí)現(xiàn)實(shí)訓(xùn)習(xí)目的:1、穩(wěn)固、 加深和擴(kuò)大單片機(jī)應(yīng)用的知識(shí)面, 提高綜合及靈活運(yùn)用所學(xué)知識(shí)解 決工業(yè)控制的能力; 2培養(yǎng)針對(duì)課程需要。 鍛煉學(xué)生查閱有關(guān)手冊(cè)、 圖標(biāo)及文獻(xiàn)資料的自學(xué)能力, 提高組成系統(tǒng)、編程、調(diào)試的動(dòng)手能力;3對(duì)課程的方案分析、選擇、比擬、熟悉單片機(jī)系統(tǒng)開發(fā)、研制的過(guò)程,軟 硬件設(shè)計(jì)的方法、容及步驟。實(shí)訓(xùn)習(xí)容:安裝智能小車及相關(guān)功能設(shè)計(jì)、調(diào)試實(shí)訓(xùn)習(xí)要求 :1. 本實(shí)訓(xùn)要求由一個(gè)團(tuán)隊(duì)完成,團(tuán)隊(duì)人員不超過(guò) 8 個(gè)人。2. 通過(guò)所學(xué)知識(shí)并利用智能小車、計(jì)算機(jī)、 keil 軟件、燒寫軟件等

2、完成實(shí)訓(xùn) 工程,并擬定實(shí)訓(xùn)報(bào)告。3. 能正確組裝和調(diào)試智能小車。4. 實(shí)訓(xùn)完成后,根據(jù)實(shí)訓(xùn)容撰寫實(shí)訓(xùn)報(bào)告書一份。實(shí)訓(xùn)報(bào)告應(yīng)包括的主要容參考1 系統(tǒng)硬件組成與工作原理1.1 控制器與最小系統(tǒng)1.2 顯示模塊與按鍵模塊1.3 報(bào)警模塊1.4 電機(jī)與驅(qū)動(dòng)模塊的工作原理與接口1.5 循跡模塊的工作原理與接口1.6 避障模塊的工作原理與接口2 功能方案及軟件設(shè)計(jì)2.1 功能設(shè)計(jì)2.2 軟件設(shè)計(jì) 結(jié)合某一賽道、障礙設(shè)置說(shuō)明程序設(shè)計(jì)思路,給出流程圖、程序代碼 3功能調(diào)試與總結(jié)3.1 功能調(diào)試排版要求: 正文小 4宋體;段首縮進(jìn) 2 字,行間距固定值 18磅。容展開可以按3級(jí)標(biāo)題形式,如:按1、1.1、形式如

3、果需要。每個(gè)1級(jí)標(biāo) 題另起一頁(yè), 1 級(jí)標(biāo)題三號(hào)黑體居中,題序和標(biāo)題之間空兩個(gè)空格,不加標(biāo)點(diǎn), 段前、段后均為 1 行,固定值 22 磅。 2 級(jí)標(biāo)題:四號(hào)黑體左起,四號(hào)黑體,段 前、段后均為 1 2磅。三級(jí)標(biāo)題:小四號(hào)黑體左起,段前、段后均為 6磅。 圖名、表名五號(hào)黑體,英文、數(shù)字字體為 Times New Roman 頁(yè)邊距:上、下、左 3 厘米,右 2 厘米, A4 紙打印。1 系統(tǒng)硬件組成與工作原理1 . 1 . 1控制器與最小系統(tǒng) 最小系統(tǒng):要使一塊單片機(jī)芯片工作起來(lái)最簡(jiǎn)陋的接線方式就是單片機(jī)的最小系統(tǒng)。下面STC89C52單片機(jī)的最小系統(tǒng)注意:不同圭寸裝的單片機(jī)引腳位 置不同,下列

4、圖是DIP40封裝。C11011FR110K30PF |ZZIHI30FF 12MHZ12341112131415161718西20P1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RSTP0.7RXD/P3.0EAVPPTXD/P3.1PLE/PINT0/PA2PSENINT1/P3.3P27T0/T3.4P2.6T1/P3.5P2.5WR/P3.6P24RD/P3.7P2.3XTAL2P2.2XTAL1P2.1VSSP2.0U1STC89C51393837363534333231302928272625242322

5、2140TC3將一塊單片機(jī)芯片接成這樣就能工作了。下面分析一下電路中各個(gè)局部的作用:1. 供電電路:40腳接電源+5V, 20腳接地,這樣便完成了單片機(jī)的供電。2. 選擇使用部ROM我們下載程序的時(shí)候是將程序下載的單片機(jī)部的ROM里面存放的,將EA/VPP端接到高電平+5",就告訴單片機(jī)系統(tǒng)我們選擇的是部的ROM這樣單片機(jī)工作的時(shí)候就會(huì)執(zhí)行部 ROM!面的代碼了。如果將EA/VPP 接地,單片機(jī)就會(huì)執(zhí)行擴(kuò)展的外部 ROM我們沒(méi)有擴(kuò)展ROM呀,以后在沒(méi)有 擴(kuò)展ROM勺時(shí)候我們都將它接高電平就OK3. 復(fù)位電路:復(fù)位電路由電阻 R1和電容C1組成。復(fù)位電路是用以完成單片機(jī) 的復(fù)位初始化操

6、作的復(fù)位單片機(jī)RAh和各個(gè)存放器的值的。也就是說(shuō),在 單片機(jī)還沒(méi)工作之前,我們先把存放器的值全部復(fù)位成初始的默認(rèn)值然后再開始工作,防止執(zhí)行程序的時(shí)候發(fā)生錯(cuò)亂。那復(fù)位電路的工作原理是怎樣的 呢?在單片機(jī)沒(méi)上電的時(shí)候,電容C1兩個(gè)極板沒(méi)有電荷,在單片機(jī)上電的瞬 間,電容C1兩端獲得電壓開始充電,既然 C1要充電那么就必定有電流通過(guò) R1,所以在R1兩端產(chǎn)生了瞬時(shí)電壓,這個(gè)電壓被加到了單片機(jī)的 RST端,單 片機(jī)的RST端得到了一個(gè)高電平便復(fù)位了。隨著時(shí)間的推移,C1充滿電了,再也沒(méi)電流通過(guò)R1 了,R1兩端便沒(méi)有了電壓,單片機(jī)的 RST引腳又由高電 平變成了低電平,這時(shí),單片機(jī)便開始工作了。值得注

7、意的是,要引起單片機(jī)的復(fù)位,加在RST端的高電平必須保持在一定的時(shí)間以上連續(xù) 2個(gè)機(jī)器 周期以上高電平。4. 時(shí)鐘電路:時(shí)鐘電路由C2 C3和晶振丫1組成。時(shí)鐘電路的作用是給單片機(jī) 提供時(shí)鐘脈沖,只有給單片機(jī)提供時(shí)鐘脈沖單片機(jī)才會(huì)執(zhí)行程序。氏.1-22?2 Z':PZ LPH?ii P1J舅HE肘:Pl IPMTJjDE-N? Fl 4P:4P-LSLJjMIDIM»5ULS>UP訂p:T3>il妙P14P討P3 5P"W7即TX"5QL1 P: 1VU 3»:F' 2ph334 P: 33?S Pt 4S皿叫出J>31

8、7PLJ;HJ1 PL.7W.S 3JPLio exdTa11LI FAU口 E13 1HIPL'13PRr15 TlPJiL5P2A25L7ltFHKiL?PLl22PU uVCZ單片機(jī)品扳VCZPOC珂0比iBL氏:o:2D2p:旳DiPDit>404KJ.時(shí)n:jDSD-v:cPM込P2-P2BP.2 5P25P2 3鄧PZ2Fl 二刃單片機(jī)最小糸統(tǒng)1.2顯示模塊與按鍵模塊顯示模塊學(xué)習(xí)目標(biāo) 認(rèn)識(shí)數(shù)碼管是什么東西?用 集成電路的應(yīng)用。單個(gè)數(shù)碼管原理圖HJ-1G點(diǎn)亮第一個(gè)數(shù)碼管,認(rèn)識(shí)一個(gè)新的芯片 HJ573AD DP數(shù)碼管分共陰和共| 連接電路圖如下:陽(yáng),共陰卩耳JD DP3,

9、 a2 3i-<*Jd> 16SM *20561字符,那么“ E“ F“ DP段都不顯示,其如果需要顯示“ 3他段點(diǎn)亮可以根據(jù)上圖算出需要的8位段碼值:共陰16進(jìn)制:0x4F共陽(yáng)16進(jìn)制:OxBODP本開發(fā)板使用共陰數(shù)碼管DP共陰共陽(yáng)f 二1cf£一Q9Q9125開發(fā)板數(shù)碼管模塊原理圖 1.3源碼編寫開始寫程序之前認(rèn)識(shí)一下鎖存器74HC573 :顧名思義,就是把輸入端的 數(shù)據(jù)鎖存或送到輸出端,請(qǐng)看下列圖中的U3元件,第11角鎖存端為高電 平的時(shí)候,右邊D0-D7的輸入與左邊Q0-Q7的輸出是直通的,就是說(shuō),輸入端是 什么電平,輸出端就是什么電平,可以把它當(dāng)作不存在。當(dāng)?shù)?

10、1角為低電平的時(shí)候,左右兩端就被斷開了,無(wú)論輸入端怎么變化,輸出端都不會(huì)變化,當(dāng)?shù)?1角由低電平變?yōu)楦唠娖降囊凰查g,輸入端的數(shù)據(jù)立刻被傳送到輸出端,并且在11 角保持為高電平期間,輸出端數(shù)據(jù)始終與輸入端數(shù)據(jù)相同,如果此時(shí)我們?cè)俅伟?第11角設(shè)置為低電平,那么以后當(dāng)輸入端無(wú)論再怎么變化,輸出端都不會(huì)變化 而是保持剛剛第11角在下降沿由高電平到低電平跳變之間時(shí)輸入端的值, 這樣就到達(dá)了鎖存數(shù)據(jù)的目的,這也就是所謂的總線設(shè)計(jì)思路,一個(gè)8位的數(shù)據(jù) 線加一個(gè)鎖存器后就可以擴(kuò)接多個(gè)元件,中選通哪個(gè)元件的片選信號(hào),就送數(shù)據(jù)給那個(gè)元件。先說(shuō)這個(gè)元件,以后用到別的元件我們?cè)俳忉尅?4HC573 11腳接高電平,

11、鎖存不起作用,相當(dāng)于直通。相應(yīng)的段賦值“1有效。74HC138 A、B、C賦值07,那么輸出端分別是Y0Y7置“ 0,如P2=0, 那么Y0=0 ; P2=6;那么Y6=0 ;即選通第七個(gè)數(shù)碼管。程序如下/*容:數(shù)碼管使用動(dòng)態(tài)掃描顯示,所以可以同時(shí)看到數(shù)碼管同時(shí)顯示數(shù)字或者 字符,掃描原理可以參#in clude<reg51.h>#defi ne uint un sig ned int#defi ne uchar un sig ned charsbit dula=P2A6;sbit wela=P2A7;void delay(uint z)uint x,y;for(x=z;x>

12、0;x-)for(y=110;y>0;y-);void main (void) /每一個(gè)C語(yǔ)言程序有且只有一個(gè)主函數(shù),while(1) /循環(huán)條件永遠(yuǎn)為真,以下程序一直執(zhí)行下去。dula=1;P0=0x5b; /顯示一個(gè) 2dula=0;wela=1;P0=0xfe; /顯示一位數(shù)碼管?可以自己修改顯示位數(shù)wela=0;delay(1); 多個(gè)數(shù)碼管同時(shí)顯示上一節(jié)單個(gè)數(shù)碼管顯示, 實(shí)際使用中單個(gè)數(shù)碼管往往不能滿足要求, 這就需 要多個(gè)數(shù)碼管組合使用,單個(gè)數(shù)碼管一般用靜態(tài)顯示,占用 IO 口線較多,如果 使用普通的靜態(tài)顯示,單片機(jī)的 IO 口是不夠用的。所以就需要使用動(dòng)態(tài)掃描。通過(guò)程序讓任

13、意一位數(shù)碼管顯示任意一種字符,這樣我們可以以時(shí)間為軸, 循環(huán)顯示每個(gè)數(shù)碼管需要的數(shù)值, 當(dāng)循環(huán)顯示的時(shí)間比擬小時(shí), 眼睛就不能分辨 出閃爍,而是看到一個(gè)靜態(tài)的數(shù)值顯示, 可以通過(guò)下載“數(shù)碼管動(dòng)態(tài)掃描 和“數(shù) 碼管動(dòng)態(tài)掃描演示 ,就可以深入了解這個(gè)原理, 以后使用的數(shù)碼管顯示的局部 都是基于這個(gè)原理的。1.4 總結(jié) 數(shù)碼管是最常用的顯示輸出模塊,可以顯示溫度,時(shí)間,步進(jìn)電機(jī)轉(zhuǎn)速等, 數(shù)碼管里面簡(jiǎn)單一點(diǎn)說(shuō)是集成了 8 個(gè)發(fā)光管, 由點(diǎn)變成線, 由7 條線 1 個(gè)點(diǎn)組成 1 個(gè)數(shù)碼管, 發(fā)光管我們會(huì)寫程序控制它了, 這個(gè)數(shù)碼管一定難不到我們, 原理 方法是一樣的,這次不是單片機(jī) IO 口直接驅(qū)動(dòng)的,

14、是加了 573 還有138 共同來(lái) 控制數(shù)碼管的點(diǎn)亮,主要是為了節(jié)省單片機(jī)10 口,一口多用,一個(gè)8位10 口實(shí) 現(xiàn)多功能控制。1.5.1 學(xué)習(xí)目標(biāo) 獨(dú)立按鍵是區(qū)別于矩陣鍵盤的一種按鍵方式, 主要是按鍵直接連接到 I0 口,另外一端連接VCC或者GND 一般情況連接到GND地),也就是按鍵按下的時(shí)候, I0 口的電平被強(qiáng)制拉低,即0,而通過(guò)I0輸入檢測(cè)該端口電平就可以判斷按鍵 是否按下。1.5.2 硬件電路1.6原理圖觸點(diǎn)存在抖動(dòng)現(xiàn)象說(shuō)明由于按鍵本身都存在不同的機(jī)械抖動(dòng), 單片機(jī)屬于高速檢測(cè)器件,可以很容易檢 測(cè)出抖動(dòng),但抖動(dòng)并不是我們需要的,容易造成誤操作,所以正常使用過(guò)程中需 要添加去抖動(dòng)

15、程序,主要用于跳過(guò)抖動(dòng),防止造成干擾。開發(fā)板獨(dú)立按鍵模塊原理圖wr-O OS5K1 r-c"S7ssRSS11廠旌撫產(chǎn)廠gESE牛廠狂匹門廠旌匹于iS13邑S14S15S16P3 1RD.INTILCDEN1.7源碼編寫?yīng)毩存I軟件操作簡(jiǎn)單,主要檢測(cè)按鍵連接的10 口是否為“ 0,為“ 0表 示按鍵按下。用以下語(yǔ)句:Sbit KEY1 = P3A0;If! KEY1/添加按鍵按下時(shí)需要執(zhí)行的操作實(shí)際使用中按鍵有固定的機(jī)械抖動(dòng),根據(jù)不同按鍵抖動(dòng)時(shí)間不同,一般 4-15mS, 根據(jù)這個(gè)特點(diǎn),需要延時(shí)躲避抖動(dòng),由于按下和釋放都會(huì)存著抖動(dòng),實(shí)際使用程 序需要進(jìn)行2次去抖。具體程序如下:#in

16、 elude <reg52.h>sbit BY仁卩3八4; /定義按鍵的輸入端S2鍵unsigned char count; /按鍵計(jì)數(shù),每按一下,count加 1un sig ned char temp;unsigned char a,b;void delay10ms(void) /延時(shí)程序 unsigned char i,j;for(i=20;i>0;i-)for(j=248;j>0;j-);key() /按鍵判斷程序if(BY1=0) / 判斷是否按下鍵盤delay10ms(); /延時(shí) ,軟件去干擾 if(BY1=0) / 確認(rèn)按鍵按下count+; /按鍵計(jì)數(shù)

17、加 1 if(count=8) / 計(jì)8次重新計(jì)數(shù)cou nt=O; 將 cou nt清零while(BY1=0);按鍵鎖定,每按一次count只加1.move() /廣告燈向左移動(dòng)移動(dòng)函數(shù)a=temp<<count;b=temp>>(8-count);P1=a|b;main()count=0; /初始華參數(shù)設(shè)置temp=0xfe;P1=0xff;P1=temp;while(1) /永遠(yuǎn)循環(huán) ,掃描判斷按鍵是否按下key(); /調(diào)用按鍵識(shí)別函數(shù)move(); /調(diào)用廣告燈移動(dòng)函數(shù)/ 如果有干擾請(qǐng)加去抖程序/ 紅外接收頭局部用黑色物質(zhì)遮光, 防止干擾按鍵, 因?yàn)榧t外接收

18、和按鍵使用同 一個(gè)端口1.3報(bào)警模塊一、蜂鳴器介紹蜂鳴器有兩種:一種是有源蜂鳴器,只要給它加上恒定的電壓,就能發(fā)聲,另一 種是無(wú)源蜂鳴器,必須給它加上一定頻率的方波或正弦波才能發(fā)聲,一般實(shí)驗(yàn)板配的是無(wú)源蜂鳴器,HJ-1G開發(fā)板也不例外,由于驅(qū)動(dòng)蜂鳴器電流要求比擬大, 所以我們使用8550三極管來(lái)放大驅(qū)動(dòng),電路如下:FM 10 口為P2.3圖2蜂鳴器外形圖注意:喇叭和蜂鳴器不同,如果蜂鳴器直接加5V電源那么發(fā)出固定頻率的聲音。掉電后會(huì)消失。喇叭不同,加5V電壓后是不發(fā)聲的,但是器件處于最大功耗狀態(tài),會(huì)有非常大的熱功耗。長(zhǎng)時(shí)間會(huì)燒毀喇叭。所以使 用的時(shí)候要注意,如果不是專門針對(duì)它操作,請(qǐng)斷開它的輸

19、入信號(hào)端 子,防止誤操作導(dǎo)致意外損壞。二、蜂鳴器編程實(shí)例具體編程時(shí)我們間隔一段時(shí)間將BZ線置反,就能輸出一個(gè)固定頻率的方波,讓 蜂鳴器響起來(lái)。大家可能會(huì)問(wèn),給蜂鳴器多少頻率的方波呢?首先這個(gè)頻率必須在音頻圍,也就是20Hz到20KHZ之間,但是20Hz到20KHZ的頻率送給蜂鳴器后,只有 某一點(diǎn)的頻率是最響的,這個(gè)頻率稱為蜂鳴器的諧振頻率, 離它越遠(yuǎn),蜂鳴器發(fā)出的 聲音越輕。1G/3G開發(fā)板配的蜂鳴器的諧振頻率是2KHZ,其半周期是250us這樣我們就確 定了 BZ 口線每延時(shí)250us就要變反。下面是一個(gè)蜂鳴器發(fā)聲的實(shí)例程序:/*以下程序?yàn)镕M程序,晶振頻率為11.0592MHz*/#in

20、clude<reg52.h>sbit SPK=P2A3;/定義蜂鳴器端口void delay(unsigned intt)延時(shí)while(-c nt);mai n()un sig ned int i;while(1)for(i=0;iv200;i+)喇叭發(fā)聲的時(shí)間循環(huán),改變大小可以改變發(fā)聲時(shí)間長(zhǎng)短delay(80);參數(shù)決定發(fā)聲的頻率,估算值SPK=!SPK;SPK=1; 喇叭停止工作,間歇的時(shí)間,可更改delay(20000);1.4電機(jī)與驅(qū)動(dòng)模塊的工作原理與接口電機(jī)驅(qū)動(dòng)原理圖.u I.J4 J S電機(jī)驅(qū)動(dòng)接口圖1.4.1 電機(jī)驅(qū)動(dòng)模塊采用功率三極管作為功率放大器的輸出控制直流電

21、機(jī)。 線性型驅(qū)動(dòng)的電路結(jié) 構(gòu)和原理簡(jiǎn)單,加速能力強(qiáng),采用由達(dá)林頓管組成的 H 型橋式電路。用單片機(jī) 控制達(dá)林頓管使之工作在占空比可調(diào)的開關(guān)狀態(tài)下, 精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。 這種 電路由于工作在管子的飽和截止模式下, 效率非常高, H 型橋式電路保證了簡(jiǎn)單 的實(shí)現(xiàn)轉(zhuǎn)速和方向的控制, 電子管的開關(guān)速度很快, 穩(wěn)定性也極強(qiáng), 是一種廣泛 采用的 PWM 調(diào)速技術(shù)。這種調(diào)速方式有調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速圍廣、過(guò)載能力大,能承受 頻繁的負(fù)載沖擊, 還可以實(shí)現(xiàn)頻繁的無(wú)級(jí)快速啟動(dòng)、 制動(dòng)和反轉(zhuǎn)等優(yōu)點(diǎn)。 因此決 定采用使用功率三極管作為功率放大器的輸出控制直流電機(jī)。1.5 循跡模塊的工作原理與接口1.6 避

22、障模塊的工作原理與接口2 功能方案及軟件設(shè)計(jì)2.1 功能設(shè)計(jì)本次功能設(shè)計(jì)為智能小車循跡加避障, 循跡指尋黑線走, 避障指遇到障礙物小車 會(huì)自動(dòng)避開, 尋找無(wú)障礙路線走下去; 以及小車快速前進(jìn)走直線后慢速后退走直 線功能。2.2 軟件設(shè)計(jì)程序設(shè)計(jì)要求賽道一:小車循跡黑線, 在桌子上用黑線畫出一個(gè)橢圓賽道, 小車將沿著黑線做 循跡運(yùn)動(dòng);中間會(huì)設(shè)置障礙物,看小車能否自動(dòng)避障。2.2.4 程序代碼#include<AT89X52.H>義#include<HJ-4WD_PWM.H> 數(shù)#ifndef _LED_H_#define _LED_H_/包含 51 單片機(jī)頭文件,部有各種

23、存放器定/包含 HL-1 藍(lán)牙智能小車驅(qū)動(dòng) IO 口定義等函/定義小車驅(qū)動(dòng)模塊輸入 IO 口sbit IN仁 P1A2;sbit IN2=PM3;sbit IN3=P1A6;sbit IN4=P1A7;sbit EN1=P1A4;sbit EN2=P1A5;/* 蜂鳴器接線定義 */sbit BUZZ=P2A3;#define Left_1_led#define Right_1_ledP3_3 /左傳感器循跡P3_2 /右傳感器循跡#define Left_2_ledP3_5 /左傳感器避障#define Right_2_ledP3_4 /右傳感器避障#define Right_moto_pw

24、mP1_4 /PWM 信號(hào)端#define Left_moto_go#define Left_moto_back#define Left_moto_Stop#define Right_moto_go#define Right_moto_back #define Right_moto_StopP1_4=0;/右邊電機(jī)停轉(zhuǎn)P1_2=0,P1_3=1;P1_2=1,P1_3=0; P1_5=0; P1_6=1,P1_7=0;P1_6=0,P1_7=1;/左電機(jī)向前走/左邊電機(jī)向后轉(zhuǎn)/左邊電機(jī)停轉(zhuǎn)/右邊電機(jī)向前走 /右邊電機(jī)向后走unsigned char pwm_val_left =0;/變量定義u

25、nsigned char push_val_left =0;/ 左電機(jī)占空比 N/20 unsigned char pwm_val_right =0;unsigned char push_val_right=0;/ 右電機(jī)占空比 N/20 bit Right_moto_stop=1;bit Left_moto_stop =1;unsigned int time=0;/*/延時(shí)函數(shù)void delay(unsigned int k) unsigned int x,y; for(x=0;x<k;x+) for(y=0;y<2000;y+);/*/前速前進(jìn) void run(void)

26、push_val_left=6; /速度調(diào)節(jié)變量 0-20。 0 最小, 20 最大 push_val_right=6;Left_moto_go ; /左電機(jī)往前走Right_moto_go ; / 右電機(jī)往前走51 智能小車視頻教程/后退函數(shù) 如果看不明白,請(qǐng)看慧凈電子 void backrun(void)push_val_left=6;/速度調(diào)節(jié)變量 0-20。0最小, 20 最大push_val_right=6;Left_moto_back; /左電機(jī)往后走Right_moto_back; /右電機(jī)往后走 /左轉(zhuǎn)void leftrun(void)push_val_left=5; pus

27、h_val_right=5; Right_moto_go ; / 右電機(jī)往前走 Left_moto_back; / 左電機(jī)往后走/右轉(zhuǎn)void rightrun(void) push_val_left=5; push_val_right=5; Left_moto_go ; /左電機(jī)往前走 Right_moto_back ; /右電機(jī)往后走*/*/PWM 調(diào) 制 電 機(jī) 轉(zhuǎn) 速*/左電機(jī)調(diào)速*/*/*調(diào)節(jié) push_val_left 的值改變電機(jī)轉(zhuǎn)速 ,占空比 void pwm_out_left_moto(void)if(Left_moto_stop) if(pwm_val_left<=p

28、ush_val_left) Left_moto_pwm=1;/ Left_moto_pwm1=1;else Left_moto_pwm=0;/ Left_moto_pwm1=0;if(pwm_val_left>=20)pwm_val_left=0;elseLeft_moto_pwm=0;/ Left_moto_pwm1=0;/*/* 右電機(jī)調(diào)速void pwm_out_right_moto(void)if(Right_moto_stop)if(pwm_val_right<=push_val_right)Right_moto_pwm=1;/ Right_moto_pwm1=1;els

29、eRight_moto_pwm=0;/ Right_moto_pwm1=0;if(pwm_val_right>=20)pwm_val_right=0;elseRight_moto_pwm=0;/ Right_moto_pwm1=0;/*/*TIMER0 中斷效勞子函數(shù)產(chǎn)生 PWM 信號(hào) */ void timer0()interrupt 1 using 2TH0=0XFc;TL0=0X18; time+;/1Ms 定時(shí)pwm_val_left+; pwm_val_right+; pwm_out_left_moto(); pwm_out_right_moto();/* */#endif /

30、主函數(shù)void main(void)unsigned char i;P1=0X00; /關(guān)電車電機(jī) /本實(shí)驗(yàn)學(xué)習(xí)的按鍵啟動(dòng)知識(shí) B: for(i=0;i<50;i+) / 判斷 K4 是否按下 delay(1); /1ms判斷50次,如果其中有一次被判斷到 K4沒(méi)按下,便 重新檢測(cè)if(P3_7!=0)當(dāng)K4按下時(shí),啟動(dòng)小車前進(jìn),如有不明,請(qǐng)看慧凈51單片機(jī)視頻教程goto B; /跳轉(zhuǎn)到標(biāo)號(hào)B,重新檢測(cè) /本實(shí)驗(yàn)學(xué)習(xí)的知識(shí)蜂鳴器,注意要在 HJ-4WD 頭文件里定義 IO 口BUZZ=0; /50 次檢測(cè) K4 確認(rèn)是按下之后,蜂鳴器發(fā)出 “滴 聲響,然 后啟動(dòng)小車。delay(50);BUZZ=1;響50ms后關(guān)閉蜂鳴器TMOD=0X01;/1ms

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論