




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
安陽工學(xué)院
《單片機(jī)基礎(chǔ)》課程大作業(yè)
《簡易紅外遙控小車設(shè)計(jì)》
院系:計(jì)算機(jī)科學(xué)與信息工程學(xué)院
專業(yè)班級:
姓名:
學(xué)號:
成績(教師填寫)
20年月日
一、課題名稱:
《簡易紅外遙控小車設(shè)計(jì)》
二、方法步驟:
1.總體設(shè)計(jì)
主要設(shè)計(jì)思想:
本設(shè)計(jì)利用通用紅外遙控器控制小車后輪兩個(gè)電機(jī)的動(dòng)作來
實(shí)現(xiàn)小車走、停、轉(zhuǎn)彎等功能。并通過軟件控制小車方向和PWM調(diào)速
小車的轉(zhuǎn)速。具體思想如下:通過外部中斷1接收紅外信息,并通過
軟件解碼,根據(jù)接收信息的不同通過PWM和控制函數(shù)做出響應(yīng),并且
在二極管上面反映出來,所以說二極管充當(dāng)車燈和檔位指示燈的作
用,且每次接收信號,蜂鳴器鳴叫用來顯示有信號的傳入。
主要設(shè)計(jì)任務(wù):
紅外遙控小車的設(shè)計(jì)主要分兩大步,第一是硬件實(shí)現(xiàn)的設(shè)計(jì),
第二是單片機(jī)軟件實(shí)現(xiàn)的設(shè)計(jì)。
(1)其中硬件又分幾塊:51單片機(jī)最小系統(tǒng)板,小型直流電機(jī)
(3?9V)驅(qū)動(dòng)電路模塊,紅外接收模塊(已集成在最小系統(tǒng)板),蜂
鳴器和二極管顯示模塊,車體。
(2)軟件比較簡單,但也分了幾塊:外部中斷紅外接收解碼模
塊,PWM電機(jī)調(diào)速模塊,主程序。
2.設(shè)計(jì)任務(wù)與要求
⑴主要完成的性能指標(biāo)
本小車設(shè)計(jì)完成后能夠?qū)崿F(xiàn)如下功能:前進(jìn)、后退、左前傳(以
做輪胎為軸轉(zhuǎn)彎)、右前轉(zhuǎn)、左圓轉(zhuǎn)(以車體為軸進(jìn)行轉(zhuǎn)彎)、右
圓轉(zhuǎn)、左倒轉(zhuǎn)、右倒轉(zhuǎn)、緊急暫停、123級加減速。
(2)器件選擇
本設(shè)計(jì)主要用到以下材料:51單片機(jī)一個(gè)、通用遙控器一
個(gè)、紅外接收頭一個(gè)、5號電池7節(jié)、車體(雙電機(jī)+萬向輪)一套、
蜂鳴器一個(gè)、杜邦線若干、二極管9個(gè)、L9110s電機(jī)驅(qū)動(dòng)芯片2個(gè)、其
他電阻電容若干
(3)單片機(jī)選擇
本設(shè)計(jì)用到宏晶公司的STC——125A32Ad單片機(jī)
(4)說明總體框圖(可選)
(5)畫出總線路圖(硬件)
UI8051+"0'
P101
PIOwc
39P0
PllPOO
38Pi
P12P01
37P0
P13P02
36P0
P14PO3
FIF~535P0
P15PN
P16^734P0
P16P05
33P0
P17P06
RST932P0
RESET_P07
31
RXDP30EA-^P
RT1T30
IXDP31ALEP
P3212n929
INIDP32°Q28P2
P3313SPE27
--INR.T33
PS414p2627P2
TOP34
P3515p2526Pl
T1/P35
P為16p2425Pl
-7座P36
P3717p2324P2
C成37
X:1Sp2223P2
X>
XI19p2122P2
XIp
工o21P2
f——(W
*cn
2PF22PF
51單片機(jī)最小系統(tǒng)如右:
紅外電路圖如下:
3紅外(HS0038)
CON2
L9110s電機(jī)驅(qū)動(dòng)電路如下:
vcc
正轉(zhuǎn)信號
直流電機(jī)
反轉(zhuǎn)信號
L9110s電氣特性如下:
單
符號參數(shù)范圍
位
最小典型最大IAIBOAOB
VCC電源電壓2.5612VHLHL
Idd靜態(tài)電流—02uALHLH
lin操作電流200350500uALLLL
IC持續(xù)輸出電流750800850mAHHLL
IMax電流峰值—15002000mA
實(shí)現(xiàn)后的實(shí)物圖如下:
(6)流程圖及程序清單
〃***************簡易紅外小車完全調(diào)試程序
〃***************版本V02
〃***************2。12年5月13日10,49:26
〃***************修改優(yōu)化時(shí)間2012年5月14日0:02:21
〃***************再次修改時(shí)間2012年5月18日20:49:28
〃***************Madeby
#include<reg52.h>
#include,'intrins.h,,
#defineuintunsignedint
#defineucharunsignedchar
sbitMH=PlA0;//電機(jī)1接口
sbitM12=PlAl;
sbitM21=P1A2;//電機(jī)2接口
sbitM22=P1A3;
sbitLED0=P0A0;//左前燈
sbitLEDl=P0Al;〃檔1燈
sbitLED2=P0A2;//檔2燈
sbitLED3=P0八3;//檔3燈
sbitLED4=P0A4;〃緊急燈
sbitLED5=P0A5;〃右前燈
sbitLED6=P0A6;〃左后燈
sbitLED7=P0A7;〃右后燈
sbitF=PU4;〃蜂鳴器接口
ucharTEMPl=O;〃全局變量,用于存放紅外返回值-用于PWM占空比的控制
ucharTEMP2=10;//用于方向的控制
sbitIntO=P3A3;//紅外接收采用外部中斷1
uchardatabus[7];〃用于紅外接收存放數(shù)據(jù)
〃延時(shí)函數(shù)
voiddelayl(uintxms)//delay0.1ms
uinti,j;
for(i=xms;i>0;i—)
for(j=13;j>0;j-);
)
〃********************接受解碼函數(shù)
ucharRec()
uchartemp=0;〃函數(shù)內(nèi)部臨時(shí)變量,用于返回函數(shù)值
uinti=0;//用于存放數(shù)據(jù)的臨時(shí)變量
uintj=0;
uintm=0;//局部計(jì)數(shù)臨時(shí)變量
uintn=0;//局部計(jì)數(shù)臨時(shí)變量
uintk=0;//局部計(jì)數(shù)臨時(shí)變量
EX1=O;//關(guān)外部中斷1,以防再次外部1中斷的介入
while(!IntO)//用于計(jì)時(shí)前9Ms低電平的引導(dǎo)碼
delayl(l);
m++;//計(jì)數(shù)引導(dǎo)碼的長度
)
if(m<=60)//50,可變,大概數(shù),m應(yīng)該在90左右,如果引導(dǎo)
碼時(shí)間太小(如<50),就表示
〃此次接收有誤,返回0
return0;//
while(IntO)〃用于計(jì)時(shí)4.5ms高電平的引導(dǎo)碼
(
delayl(l);
n++;〃計(jì)時(shí)高電平
if(n<=30)〃20大概值,應(yīng)該在45左右,如果太小或太大,
都有問題
return0;
〃當(dāng)上面的兩步都完成時(shí),表示9ms低電平,4.5ms高電平的引導(dǎo)碼驗(yàn)證
完畢
〃可進(jìn)行下步接收數(shù)據(jù)工作。后面有32位高低電平組成的編碼分為:系統(tǒng)
碼1,系統(tǒng)碼2,數(shù)據(jù)碼和數(shù)據(jù)反碼
〃其中前16位,為用戶識別碼(系統(tǒng)碼1和2)用于區(qū)別不同的電器,因?yàn)?/p>
使用的通用遙控器和接收器所以
〃不用關(guān)心前16位。
Mll=M12=M21=M22=0;〃進(jìn)入中斷,停止電機(jī),防止電機(jī)顫抖
for(i=0;i<4;i++)//4組接收
for(j=0;j<8;j++)//每組8個(gè)高低信號
(
〃數(shù)據(jù)0由0.56ms低+0.56ms高組成即1:1
〃數(shù)據(jù)1由0.56ms低+1.655ms高組成1:3
while(!IntO)〃過濾數(shù)據(jù)的低位0.56ms低電平
(
delay1(1);
}
while(IntO)//進(jìn)入高電平計(jì)時(shí)
(
delayl(l);
k++;//k計(jì)時(shí)每次的高電平
)
databus[i]=databus[i]?1;//數(shù)據(jù)接收數(shù)組首先默認(rèn)接收
為0信號,即databus[i]第7位移入0
if(k>=10)//而后,判斷剛才接收到的數(shù)據(jù)是否
為1,因?yàn)?的高點(diǎn)平持續(xù)1.655ms
〃低電平持續(xù)0.56ms,所以只要k大于10,
就能確定為1
(
databus[i]=databus[i]10x80;//若為1,把第8位
置1
}
k=0;〃把k的值重新置零
);
if(databus[2]!=~databus[3])//2和3組數(shù)據(jù)為反碼關(guān)系。所以判斷
它們是否相反,來確定接收數(shù)據(jù)
〃是否正確
return0;
temp=databus[2];//返回賦值
returntemp;//
)
〃**********紅外接受中斷服務(wù)函數(shù),+接受編碼TEMPI,TEMP2
voidintO()interrupt2
{
uchartemp;//臨時(shí)存放紅外接收函數(shù)返回值
uinti=0;//計(jì)數(shù)臨時(shí)變量
LED4=1;〃(因緊急燈是閃爍的每次中斷時(shí)結(jié)果不一樣,為保證效
果)先滅緊急指示燈
temp=Rec();//紅外函數(shù)返回賦值
switch(temp)//對返回的數(shù)據(jù)進(jìn)行編碼,方便后面的操作
{
caseOxOd:
(
TEMP1=O;//TEMPI,編碼用作,PWM參數(shù),全局變量,
LED1=LED2=LED3=1;〃對應(yīng)的指示燈狀態(tài)
break;
)
case0x0c:
(
TEMP1=1;
LED1=0;
LED2=LED3=1;
break;
)
case0x18:
(
TEMP1=2;
LED1=LED3=1;〃2檔
LED2=0;
break;
)
case0x5e:
(
TEMP1=3;〃TEMP1用于控制PWM占空比
LED3=0;
LED1=LED2=1;
break;
)
case0x40:
TEMP2=0;〃緊急狀態(tài)(暫停)。TEMP2用于控制電機(jī),暫停,前進(jìn),
左右轉(zhuǎn),
break;
)
case0x46:
(
TEMP2=1;〃前進(jìn)
LED0=LED5=0;〃指示燈設(shè)置
LED6=LED7=1;
break;
)
case0x44:
(
TEMP2=2;〃左前轉(zhuǎn)
LED0=0;
LED5=1;
LED6=LED7=1;
break;
)
case0x43:
(
TEMP2=3;〃右前轉(zhuǎn)
LED5=0;
LED0=l;
LED6=LED7=1;
break;
)
case0x15:
(
TEMP2=4;//倒車狀態(tài)
LED6=LED7=0;〃67為倒車指示燈
LED0=LED5=l;
break;
)
case0x07:
(
TEMP2=5;〃左后轉(zhuǎn)
LED6=0;
LED7=LED0=LED5=1;
break;
)
case0x09:
TEMP2=6;〃右后轉(zhuǎn)
LED7=0;
LED6=LED0=LED5=1;
break;
)
case0x45:
(
TEMP2=7;〃左園轉(zhuǎn)
LED0=LED7=0;
LED5=LED6=1;
break;
)
case0x47:
{
TEMP2=8;〃右園轉(zhuǎn)
LED5=LED6=0;
LED0=LED7=l;
break;
)
)
〃每次接受紅外,蜂鳴器蜂鳴一次
F=l;
delayl(300);
F=0;
EA=1;//開總中斷
EX1=1;//開外1中斷
rri=i;//下降沿觸發(fā)
)
〃**********電機(jī)驅(qū)動(dòng)函數(shù)
voidPWM_RUN()
(
uintm=0;//臨時(shí)計(jì)數(shù)變量
ucharn=0;//
uinti=0;//
m=TEMPl*100;〃111有0,1,2,3狀態(tài),PWM每小時(shí)間片為3*100,所以m*100
n=TEMP2;//TEMPI用于控制轉(zhuǎn)速,TEMP2用于控制前后左右
〃對n(TEMP2)進(jìn)行解碼,設(shè)置不同的電機(jī)工作方式
〃注:暫定M*1=LM*2=0正傳,M*l=0,M*2=l倒轉(zhuǎn),M*l=M*2=0,停止
if(n==0)//緊急狀態(tài),
Mll=M12=M21=M22=0;
LED4=~LED4;〃設(shè)置緊急燈動(dòng)作
delayl(lOOO);
)
if(n==l)//ml和m2都前轉(zhuǎn),前進(jìn)
Mll=l;
M12=0;
M21=l;
M22=0;
)
if(n==2)//ml停止,m2前轉(zhuǎn),實(shí)現(xiàn)左前轉(zhuǎn)彎
(
Mll=0;
M12=0;
M21=l;
M22=0;
)
if(n==3)//ml前轉(zhuǎn),m2停止,實(shí)現(xiàn)右前轉(zhuǎn)
(
Mll=l;
M12=0;
M21=0;
M22=0;
)
if(n==4)//mlm2倒轉(zhuǎn),實(shí)現(xiàn)倒車
(
Mll=0;
M12=l;
M21=0;
M22=l;
)
if(n==5)//ml停止,m2倒轉(zhuǎn),實(shí)現(xiàn)左后轉(zhuǎn)
(
Mll=0;
M12=0;
M21=0;
M22=l;
)
if(n==6)//ml倒轉(zhuǎn),m2停止,實(shí)現(xiàn)右后轉(zhuǎn)
(
Mll=0;
M12=l;
M21=0;
M22=0;
}
if(n==7)//ml倒傳,m2前轉(zhuǎn),實(shí)現(xiàn)左方向,原地打轉(zhuǎn)
(
Mll=0;
M12=l;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 白板筆批發(fā)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 臺(tái)歷批發(fā)企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 硝酸稀土企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 智能照明臺(tái)燈行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 音響設(shè)備家電專門零售企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 涼茶飲料企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 鋁電水壺企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報(bào)告
- 氣體自動(dòng)充裝系統(tǒng)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 硫酚企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 門窗合頁批發(fā)企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報(bào)告
- 2025年亳州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 2024年廣東省中考數(shù)學(xué)試卷(附答案)
- 2025年高考時(shí)政考題及參考答案(100題)
- DeepSeek人工智能語言模型探索AI世界科普課件
- 《青春期心理健康指導(dǎo)》課件
- 第18講 等腰三角形 課件中考數(shù)學(xué)復(fù)習(xí)
- 全過程工程咨詢文件管理標(biāo)準(zhǔn)
- 《預(yù)制高強(qiáng)混凝土風(fēng)電塔筒生產(chǎn)技術(shù)規(guī)程》文本附編制說明
- 四川省建筑行業(yè)調(diào)研報(bào)告
- 2025湖北省煙草專賣局(公司)招聘200人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年山東省青島市技師學(xué)院公開招聘工作人員35名歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
評論
0/150
提交評論