單片機(jī)大作業(yè)簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)_第1頁(yè)
單片機(jī)大作業(yè)簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)_第2頁(yè)
單片機(jī)大作業(yè)簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)_第3頁(yè)
單片機(jī)大作業(yè)簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)_第4頁(yè)
單片機(jī)大作業(yè)簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、安陽(yáng)工學(xué)院?單片機(jī)根底?課程大作業(yè)?簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)?院系:計(jì)算機(jī)科學(xué)與信息工程學(xué)院專(zhuān)業(yè)班級(jí):姓名:學(xué)號(hào):成績(jī)教師填寫(xiě)20 年 月 日一、課題名稱(chēng):?簡(jiǎn)易紅外遙控小車(chē)設(shè)計(jì)?二、方法步驟:1.總體設(shè)計(jì)主要設(shè)計(jì)思想: 本設(shè)計(jì)利用通用紅外遙控器限制小車(chē)后輪兩個(gè)電機(jī)的動(dòng)作來(lái)實(shí)現(xiàn)小車(chē)走、停、轉(zhuǎn)彎等功能.并通過(guò)軟件限制小車(chē)方向和PW調(diào)速小車(chē)的轉(zhuǎn)速.具體思想如下:通過(guò)外部中斷 1接收紅外信息,并通過(guò) 軟件解碼,根據(jù)接收信息的不同通過(guò) PW和限制函數(shù)做出響應(yīng),并且 在二極管上面反映出來(lái),所以說(shuō)二極管充當(dāng)車(chē)燈和檔位指示燈的作 用,且每次接收信號(hào),蜂鳴器鳴叫用來(lái)顯示有信號(hào)的傳入.主要設(shè)計(jì)任務(wù): 紅外遙控小車(chē)的

2、設(shè)計(jì)主要分兩大步,第一是硬件實(shí)現(xiàn)的設(shè)計(jì), 第二是單片機(jī)軟件實(shí)現(xiàn)的設(shè)計(jì).1其中硬件又分幾塊: 51單片機(jī)最小系統(tǒng)板,小型直流電機(jī)39V驅(qū)動(dòng)電路模塊,紅外接收模塊已集成在最小系統(tǒng)板,蜂 鳴器和二極管顯示模塊,車(chē)體. 2軟件比擬簡(jiǎn)單,但也分了幾塊:外部中斷紅外接收解碼模 塊,PW電機(jī)調(diào)速模塊,主程序.2.設(shè)計(jì)任務(wù)與要求1主要完成的性能指標(biāo)本小車(chē)設(shè)計(jì)完成后能夠?qū)崿F(xiàn)如下功能: 前進(jìn)、后退、左前傳以做輪胎為軸轉(zhuǎn)彎、右前轉(zhuǎn)、左圓轉(zhuǎn)以車(chē)體為軸進(jìn)行轉(zhuǎn)彎、右圓轉(zhuǎn)、左倒轉(zhuǎn)、右倒轉(zhuǎn)、緊急暫停、123級(jí)加減速.2器件選擇本設(shè)計(jì)主要用到以下材料:51單片機(jī)一個(gè)、通用遙控器一 個(gè)、紅外接收頭一個(gè)、5號(hào)電池7節(jié)、車(chē)體雙電機(jī)+

3、萬(wàn)向輪一套、 蜂鳴器一個(gè)、杜邦線(xiàn)假設(shè)干、二極管9個(gè)、L9110Sfe機(jī)驅(qū)動(dòng)芯片2個(gè)、其 他電阻電容假設(shè)干3單片機(jī)選擇本設(shè)計(jì)用到宏晶公司的STC125A32A單片機(jī)說(shuō)明總體框圖可選5畫(huà)出總線(xiàn)路圖硬件U1905151單片機(jī)最小系統(tǒng)如右:P11 2P123P134P145?156P161 Pl? SKST9P30 10P10 IP31 11P31 12 fP53 13P34 14 1呼13F藥厲fP聽(tīng)仃4PIO PllP12P13P14P15P16P17RKFT 畑F 乂INTDP32 IXT1P33 TOPW TTP35TOP36 REP 37百XIGNDPOOP01P02P03FC4PO?P06

4、 J*O7A1£PF冋P27262524U 衛(wèi)耳 F p p p p P39 P03S P037 P03d P035 PQ34 P033 P032 P0"3T3029a is P27 P26 P方P24 P23 P22 P21 P TCll22?F紅外電路圖如下:謠:外(HS0038)J10R7 838I 17|_2P32 U14LED10110UF11 +P33CON2L9110S電機(jī)驅(qū)動(dòng)電路如下:vcc匸轉(zhuǎn)信兮反轉(zhuǎn)信號(hào)L9110S電氣特性如下:符號(hào)> 數(shù)范圍單位最小典型最大VCC電源電壓2.5612VIdd靜態(tài)電流02uAIin操作電流200350500AIC持續(xù)

5、輸出電流750800850mAIMax電流峰值15002000mAIAIBOAOBHLH ;LLHILHLLLLHHLL完成后的驅(qū)動(dòng):實(shí)現(xiàn)后的實(shí)物圖如下:(6)流程圖及程序清單*簡(jiǎn)易紅外小車(chē)完全調(diào)試程序版本V0.2* *2021年 5月 13日 10:49:26*修改優(yōu)化時(shí)間2021年5月14日0:02:21 再次修改時(shí)間2021年5月18日20:49:28Made by*#in clude<reg52.h> #i nclude"i ntrin s.h" #defi ne uint un sig ned int#defi ne uchar un sig ned

6、char sbit M11=P1A0; / 電機(jī) 1 接口sbit M12=PM1; sbit M21=P1A2;sbit M22=P1A3;sbit LED0=P0A0;sbit LED仁 P0A1;sbit LED2=P0A2;sbit LED3=P0A3;sbit LED4=P0A4;sbit LED5=P0A5;sbit LED6=P0A6;/電機(jī)2接口/左前燈/檔1燈/檔2燈/檔3燈緊急燈/右前燈/左后燈sbit LED7=P0A7;右后燈sbit F=P1A4; 蜂鳴器接口uchar TEMP1=0;全局變量,用于存放紅外返回值-用于PWM占空比的限制uchar TEMP2=10;

7、 / 用于方向的限制sbit Int0 = P3A3; / 紅外接收采用外部中斷 1uchar databus7;/用于紅外接收存放數(shù)據(jù)/延時(shí)函數(shù) void delay1(uint xms)/delay 0.1msuint i,j;for(i=xms;i>0;i-) for(j=13;j>0;j-); 接受解碼函數(shù)uchar Rec()uchar temp=0;/函數(shù)內(nèi)部臨時(shí)變量,用于返回函數(shù)值uint j=0; uint m=0; uint n=0; uint k=0;EX1=0;uint i=0;/ 用于存放數(shù)據(jù)的臨時(shí)變量/ 局部計(jì)數(shù)臨時(shí)變量/局部計(jì)數(shù)臨時(shí)變量/局部計(jì)數(shù)臨時(shí)變量

8、/關(guān)外部中斷 1 ,以防再次外部1中斷的介入while(!lnt0) 用于計(jì)時(shí)前9Ms低電平的引導(dǎo)碼delay1(1);1m+;/計(jì)數(shù)引導(dǎo)碼的長(zhǎng)度if(m<=60)/50,可變,大概數(shù),m應(yīng)該在90左右,如果引導(dǎo)碼時(shí)間太小(如<50),就表示/此次接收有誤,返回 0return 0; /while(lnt0)用于計(jì)時(shí)4.5ms高電平的引導(dǎo)碼delay1(1);n+;/計(jì)時(shí)高電平if(n<=30)/ 20大概值,應(yīng)該在45左右,如果太小或太大,都有問(wèn)題return 0;/當(dāng)上面的兩步都完成時(shí),表示 9mS氐電平,4.5ms高電平的引導(dǎo)碼驗(yàn)證 完畢/可進(jìn)行下步接收數(shù)據(jù)工作. 后面

9、有32位高氐電平組成的編碼分為: 系統(tǒng) 碼1,系統(tǒng)碼 2,數(shù)據(jù)碼和數(shù)據(jù)反碼/其中前 16位,為用戶(hù)識(shí)別碼(系統(tǒng)碼 1和2)用于區(qū)別不同的電器,由于 使用的通用遙控器和接收器所以/不用關(guān)心前 16位.M11=M12=M21=M22=0;/進(jìn)入中斷,停止電機(jī),預(yù)防電機(jī)顫抖for(i=0;i<4;i+)/ 4組接收f(shuō)or(j=0;j<8;j+)/ 每組 8個(gè)高氐信號(hào)數(shù)據(jù)0由0.56mS氐+0.56ms高組成 即1: 1數(shù)據(jù)1由0.56msf氐+1.655ms高組成1:3while(!l nt0)過(guò)濾數(shù)據(jù)的低位 0.56ms(氐電平 delay1(1); while(lnt0) / 進(jìn)入高

10、電平計(jì)時(shí) delay1(1);k+;/ k計(jì)時(shí)每次的高電平databusi=databusi>>1; / 數(shù)據(jù)接收數(shù)組首先默認(rèn)接收 為0信號(hào),即databus【i】第7位移入0if(k>=10)/ 而后,判斷剛剛接收到的數(shù)據(jù)是否為1,由于1的高點(diǎn)平持續(xù) 1.655ms低電平持續(xù)0.56ms,所以只要k大于10, 就能確定為 1 databusi=databusi|0x80; / 假設(shè)為1,把第 8位 置1k=0;把k的值重新置零;if(databus2!=databus3) / 2和3組數(shù)據(jù)為反碼關(guān)系. 所以判斷 它們是否相反,來(lái)確定接收數(shù)據(jù)/是否正確return 0; te

11、mp=databus2;/ 返回賦值/return temp;/*/* 紅外接受中斷效勞函數(shù), +接受編碼 TEMP1,TEMP2void int0() interrupt 2uchar temp; / 臨時(shí)存放紅外接收函數(shù)返回值uint i=0; / 計(jì)數(shù)臨時(shí)變量LED4=1;/(因緊急燈是閃爍的每次中斷時(shí)結(jié)果不一樣, 為保證效果)先滅緊急指示燈temp=Rec(); / 紅外函數(shù)返回賦值switch (temp) / 對(duì)返回的數(shù)據(jù)進(jìn)行編碼,方便后面的操作case 0x0d:TEMP1=0;/TEMP1 ,編碼用作, PWM 參數(shù),全局變量,LED1=LED2=LED3=1; /對(duì)應(yīng)的指示燈

12、狀態(tài)break;case 0x0c:TEMP1=1;LED1=0;LED2=LED3=1;break;case 0x18:TEMP1=2;LED1=LED3=1; /2檔LED2=0;break;case 0x5e:TEMP1=3;/TEMP1用于限制PWM占空比LED3=0;LED1=LED2=1;break;case 0x40:TEMP2=0;緊急狀態(tài)(暫停).TEMP2用于限制電機(jī),暫停,前進(jìn), 左右轉(zhuǎn),break; case 0x46:TEMP2=1; 前進(jìn)LED0=LED5=0;/指示燈設(shè)置LED6=LED7=1;break; case 0x44:TEMP2=2;左前轉(zhuǎn)LED0=0;

13、LED5=1;LED6=LED7=1;break; case 0x43 :TEMP2=3;右前轉(zhuǎn)LED5=0;LED0=1; LED6=LED7=1;break; case 0x15:TEMP2=4; /倒車(chē)狀態(tài)LED6=LED7=0;/67 為倒車(chē)指示燈LED0=LED5=1;break;case 0x07:TEMP2=5;左后轉(zhuǎn)LED6=0;LED7=LED0=LED5=1;break;case 0x09:TEMP2=6;右后轉(zhuǎn)LED7=0;LED6=LED0=LED5=1; break;case 0x45:TEMP2=7;/左園轉(zhuǎn)LED0=LED7=0;LED5=LED6=1;break

14、;case 0x47:TEMP2=8;右園轉(zhuǎn)LED5=LED6=0;LED0=LED7=1;break; /每次接受紅外,蜂鳴器蜂鳴一次F=1;delay1(300);F=0;EA=1; / 開(kāi)總中斷EX1=1;/開(kāi)外1中斷IT1=1;/下降沿觸發(fā)/*/* 電機(jī)驅(qū)動(dòng)函數(shù)void PWM_RUN()uint m=0;/臨時(shí)計(jì)數(shù)變量uchar n=0;/uint i=0; /m=TEMP1*100;m有0,1,2,3犬態(tài),PWM每小時(shí)間片為 3*100,所以 m*100n=TEMP2; /TEMPI用于限制轉(zhuǎn)速,TEMP2用于限制前后左右對(duì)n (TEMP2)進(jìn)行解碼,設(shè)置不同的電機(jī)工作方式/注:暫

15、定 M*1=1 , M*2=0 正傳, M*1=0, M*2=1 倒轉(zhuǎn), M*1=M*2=0 ,停止 if(n=0) /緊急犬態(tài),M11=M12=M21=M22=0;LED4=LED4;/設(shè)置緊急燈動(dòng)作delay1(1000);if(n=1) /ml和m2都前轉(zhuǎn),前進(jìn)M11=1;M12=0;M21=1;M22=0;if(n=2)/ml停止,m2前轉(zhuǎn),實(shí)現(xiàn)左前轉(zhuǎn)彎M(mǎn)11=0;M12=0;M21=1;M22=0;if(n=3) /ml前轉(zhuǎn),m2停止,實(shí)現(xiàn)右前轉(zhuǎn)M11=1;M12=0;M21=0;M22=0;if(n=4)/m1m2 倒轉(zhuǎn),實(shí)現(xiàn)倒車(chē)M11=0;M12=1;M21=0;M22=1;if

16、(n=5)/ml停止,m2倒轉(zhuǎn),實(shí)現(xiàn)左后轉(zhuǎn)M11=0;M12=0;M21=0;M22=1;if(n=6)/ml倒轉(zhuǎn),m2停止,實(shí)現(xiàn)右后轉(zhuǎn)M11=0;M12=1;M21=0;M22=0;if(n=7)/m1倒傳,m2前轉(zhuǎn),實(shí)現(xiàn)左方向,原地打轉(zhuǎn) M11=0;M12=1;M21=1;M22=0;if(n=8)/m1前轉(zhuǎn),m2倒轉(zhuǎn),實(shí)現(xiàn)右方向,原地打轉(zhuǎn) M11=1;M12=0;M21=0;M22=1;/* /PWM實(shí)現(xiàn)局部while(m-)_nop_();/ 電機(jī)動(dòng)作while(i<300-m) / 電機(jī)歇菜 M11=M12=0; M21=M22=0; _nop_(); i+;while(1);

17、*/*THE main()/*void main() EA=1; / 開(kāi)總中斷 EX1=1; / 開(kāi)外 1 中斷 IT1=1; / 下降沿觸發(fā)P仁0; /P1 口為電機(jī)限制口,初始化為0,即,開(kāi)機(jī)時(shí)電機(jī)是停止的while(1)PWM_RUN();三、分析討論本設(shè)計(jì)的設(shè)計(jì)過(guò)程遇到很多問(wèn)題,例如電機(jī)驅(qū)動(dòng)模塊的設(shè)計(jì), 紅外接收硬件模塊,紅外接收軟件解碼模塊,電機(jī)調(diào)速模塊,不過(guò)最 終這些問(wèn)題都經(jīng)過(guò)查閱資料, 詢(xún)問(wèn)老師一一解決. 小車(chē)雖已實(shí)現(xiàn)根本 功能,但仍有很多地方存在缺陷,有待改良.例如,紅外接收易受影 響,可以考慮改良成無(wú)線(xiàn)收發(fā)模塊,電機(jī)驅(qū)動(dòng)提供動(dòng)力較小,可以改 進(jìn)成L298N大功率驅(qū)動(dòng)模塊,車(chē)體改成四驅(qū)這樣更穩(wěn)定,增加循跡, 避障,超聲波測(cè)距模塊,還可以與上位機(jī)結(jié)實(shí)現(xiàn)上

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論