




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
自動避障小車
技術(shù)報告
前百
設(shè)計背景:在科學(xué)摸索和緊急搶險中經(jīng)常會遇到對與某些危
險或人類不能直接到達(dá)地區(qū)探測,這些就需要用機(jī)器人來完
畢。而在機(jī)器人在復(fù)雜地形中行進(jìn)時自動避障是一項必不可
少也是最基本功能。因而,自動避障系統(tǒng)研發(fā)就應(yīng)運而生。
咱們自動避障小車就是基于這一系統(tǒng)開發(fā)而成。隨著科技發(fā)
展,對于未知空間和人類所不能直接到達(dá)地區(qū)摸索逐漸成為
熱門,這就使機(jī)器人自動避障有了重大意義。咱們自動避障
小車就是自動避障機(jī)器人中一類。自動避障小車可以作為地
區(qū)摸索機(jī)器人和緊急搶險機(jī)器人運動系統(tǒng),讓機(jī)器人在行進(jìn)
中自動避過障礙物。
目錄
一、設(shè)計目的:.................................3
二、方案設(shè)計:....................................................4
2.1直流調(diào)速系統(tǒng).................................錯誤!未定義書簽。
2.2檢測系統(tǒng).....................................錯誤!未定義書簽。
三硬件設(shè)計..............................................錯誤!未定義書簽。
3.1.SPCE061A單片機(jī)最小系統(tǒng).............................................5
3.1.1.SPCE061A時鐘電路.................................................8
3.1.2.PLL鎖相環(huán).........................................................9
3.1.3.看門狗Watchdog.........................................................................................................9
3.1.4.低電壓復(fù)位(LVR)................................................................................................10
3.1.5.I/O端口...........................................................10
3.1.6.時基與定期器......................................................11
3.1.7.SPCE061A定期器/計數(shù)器...........................................II
3.1.8.ADC.DAC......................................................................................................................12
3.2.超聲波傳感器........................................................12
四軟件設(shè)計.............................................錯誤!未定義書簽。
4.1軟件設(shè)計各模塊...............................錯誤!未定義書簽。
4.2速度控制.....................................錯誤!未定義書簽。
4.3障礙物檢測...................................錯誤!未定義書簽。
4.4看門狗.......................................錯誤!未定義書簽。
4.5基頻中斷.....................................錯誤!未定義書簽。
4.6程序設(shè)計流程圖...............................錯誤!未定義書簽。
五:測試數(shù)據(jù)、測試成果分析及結(jié)論........................................19
程序附錄.................................................錯誤!未定義書簽。
1.主程序:.....................................................21
2.中斷程序.....................................................24
3.測距程序28
1.一、設(shè)計目的:
2.小車從無障礙地區(qū)啟動邁進(jìn),感應(yīng)邁進(jìn)路線上障礙物后,
能自動避開障礙物。
3.依照障礙物位置選取下一步行進(jìn)方向,選取左拐還是右拐,
若障礙物在左邊則自動右拐,若障礙物在右邊則左拐,若
障礙物在正前方可任意選取左拐或者是右拐,以達(dá)到避開
障礙物目。
通過運用單片機(jī)內(nèi)時鐘源控制設(shè)定左拐和右拐時間,從而能
持續(xù)邁進(jìn)。
為達(dá)到速度可控性,需設(shè)立兩個獨立按鍵對小車進(jìn)行控速。
二、方案設(shè)計:
依照設(shè)計規(guī)定,擬定如下方案:在既有玩具電動車基本上,
加裝超聲波傳感器,實現(xiàn)對電動車運營狀況實時測量,并將
測量數(shù)據(jù)傳送至單片機(jī)進(jìn)行解決,然后由單片機(jī)依照所檢測
各種數(shù)據(jù)實現(xiàn)對電動車智能控制。
這種方案能實現(xiàn)對電動車運動狀態(tài)進(jìn)行實時控制,控制靈
活、可靠,精度高,可滿足對系統(tǒng)各項規(guī)定。
2.1直流調(diào)速系統(tǒng)
采用脈寬調(diào)速系統(tǒng)
脈寬調(diào)速系統(tǒng)主電路采用脈寬調(diào)制式變換器,簡稱
PWM變換器。
脈寬調(diào)速也可通過單片機(jī)控制繼電器閉合來實現(xiàn),但是驅(qū)動
能力有限。為順利實現(xiàn)電動小汽車前行與倒車,本設(shè)計采用
了可逆PWM變換器??赡鍼WM變換器主電路構(gòu)造式有H
型、T型等類型。咱們在設(shè)計中采用了慣用雙極式H型變換
器,它是由4個三極電力晶體管和4個續(xù)流二極管構(gòu)成橋式
電路。如附錄一:
2.2檢測系統(tǒng)
檢測系統(tǒng)重要實現(xiàn)紅外傳感器,超聲波傳感,光電傳感器
對車運營進(jìn)行實時測量,即運用這種傳感器對電動車避障、
位置、行車狀態(tài)進(jìn)行測量。
行車開始、結(jié)束及超聲波檢測:
在車開始和結(jié)束階段,都是用紅外式光電傳感器,當(dāng)按下
此光電開頭,小車就開始行駛,在完畢任務(wù)后,再按下此
開關(guān),小車就停止邁進(jìn)。在邁進(jìn)過程中不斷發(fā)送超聲波,并
對接到進(jìn)行解決計算。如果解決得到成果是發(fā)現(xiàn)前面障礙時,
再行進(jìn)一次距離解決,當(dāng)距離小是40CM時,讓小車倒退一
段時間,再進(jìn)行避障解決,如果距離不不大于40CM,就直
接進(jìn)避障解決。
三硬件設(shè)計
3.1.SPCE061A單片機(jī)最小系統(tǒng)
咱們用是凌陽SPCE061A單片機(jī)最小系統(tǒng)其概述如下:
SPCE061A是繼『nSP?系列產(chǎn)品SPCE500A等之后凌陽科技
推出又一款16位構(gòu)造微控制器。與SPCE500A不同是,在存儲
器資源方面考慮到顧客較少資源需求以及便于程序調(diào)試等
功能,SPCE061A里只內(nèi)嵌32K字閃存(FLASH)。較高解決速
度使nSi,可以非常容易地、迅速地解決復(fù)雜數(shù)字信號。
因而,與SPCE500A相比,以u'nSPTM為核心SPCE061A微控制
器是合用于數(shù)字語音辨認(rèn)應(yīng)用領(lǐng)域產(chǎn)品一種最經(jīng)濟(jì)選取。
性能
□16位u'nSi微解決器;
□工作電壓(CPU)VDD為2.4~3.6V(I/O)VDDH為2.4~5.5V;
□CPU時鐘:0.32MHz~49.152MHz;
內(nèi)置2K字SRAM;
□內(nèi)置32KFLASH;
□可編程音頻解決;
□晶體振蕩器;
□系統(tǒng)處在備用狀態(tài)下(時鐘處在停止?fàn)顟B(tài)),耗電僅為2
u;
□2個16位可編程定期器/計數(shù)器(可自動預(yù)置初始計數(shù)值);
□2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;
□32位通用可編程輸入/輸出端口;
□14個中斷源可來自定期器A/B,時基,2個外部時鐘源
輸入,鍵喚醒;
□具備觸鍵喚醒功能;
□使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納
210秒語音數(shù)據(jù);
□鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號;
□32768Hz實時時鐘;
□7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)
換器;
□聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增
益控制(AGC)功能;
□具備串行設(shè)備接口;
□具備低電壓復(fù)位(LVR)功能和低電壓監(jiān)測(LVD)功能;
內(nèi)置在線仿真電路ICE(In-CircuitEmulator)接口;
具備保密能力;
具備WatchDog功能;
16位u'nSFM微解決器硬件構(gòu)造圖
3.1.1.SPCE06IA時鐘電路
SPCE061A時鐘電路采用晶體振蕩器。下圖為SPCE061A時
鐘電路接線圖。外接晶振采用32768Hz。
3.1.2.PLL鎖相環(huán)
PLL電路作用是將系統(tǒng)提供實時時鐘基頻(32768Hz)進(jìn)行倍
頻,輸出系統(tǒng)時鐘Fosc
鎖相環(huán)(PLL)Fosc
32768Hz晶振系統(tǒng)時鐘發(fā)生器(默認(rèn)值24.576MHz)
頻率:20.48M,24.576M,
32.768M,40.96M,49.152M
1""X"Z1
b7b6b5
系統(tǒng)M鐘選頻P_SystemClock單元的第7,6,5位
3.1.3.看門狗Walchdog
SPCE061A清狗周期為0.75S;清看門狗操作寄存器:
P_Watchdog_Clear(0x7012H)
清狗操作:在每個0.75S清狗周期里P_Watchdog_Clear寫入
0x0001o
3.14低電壓復(fù)位(LVR)
通過某種方式,使單片機(jī)內(nèi)存各寄存器值變?yōu)槌跏疾僮鞣Q為
復(fù)位。SPCE061A復(fù)位方式為低電壓復(fù)位。
3.1.5.I/O端口
OA口:
IOAO-IOA6:7路普通AD輸入端口,IOAO-IOA7:觸鍵
喚醒功能
IOB口:
外部中斷輸入,串行接口、PWM輸出等復(fù)用端口
3.1.6.時基與定期器
時基信號可提供慣用、現(xiàn)成頻率信號,完畢某些定期器功能
3.1.7.SPCE061A定期器/計數(shù)器
遞增計數(shù)方式,自動重載定期器/計數(shù)器初始值,輸出4位可
調(diào)脈寬比PWM信號,溢出頻率/2方波輸出,各種時鐘源輸
入。
3.1.8.ADC.DAC
SPCE061A特色是其強大靈活語音功能;而單片機(jī)對語音解
決支持,除了其解決能力外,尚有片內(nèi)集成ADC、DAC;特
別是集成有AGC電路MIC通道。
ADC轉(zhuǎn)換過程:
―啟動自動方式RDY=OI
SAR=1000000000B
▼
DAC0輸山VdacO
與Vin逐次比較
▼
比較結(jié)束,RI)Y=1
結(jié)果存入結(jié)果寄存器
▼
等待讀取結(jié)果寄存器
3.2.超聲波傳感器
1.基本特性與參數(shù)指標(biāo)
超聲波傳感器諧振頻率:40KHz;
模組傳感器工作電壓:4.5V~9V
模組接口電壓:4.5V~5.5V
2.重要功能
三種測距模式選取跳線J1(短距、中距、可調(diào)距):
短距:20cnT100cm左右(依照被測物表面材料決定),精度
1cm;
中距:70cnT400cm左右(依照被測物表面材料決定);
可調(diào):范疇由可調(diào)節(jié)參數(shù)擬定,當(dāng)調(diào)節(jié)在適當(dāng)值時,最遠(yuǎn)
測距700cm左右;
3.構(gòu)造示意圖
超聲波諧振載波調(diào)節(jié)電路
發(fā)射探頭
數(shù)蛆
接口
超聲波回波接受處理電路接收探頭
普通應(yīng)用時,只需要用兩條10PIN排線把J5與SPCE061AI0B
口低八位連接,J4與IOB口高八位連接,同步設(shè)立好JLJ2跳
線就完畢硬件連接了。不同測距模式選取只需變化測距模式
跳線J1連接辦法即可。模組工作性能與被測物表面材料有很
大關(guān)系,如毛料、布料對超聲波反射率很小,會嚴(yán)重影響測
量成果
實物圖:
J1為選取工作模式,J2選取電源接口
4.電路原理圖簡介:
超聲波諧振頻率調(diào)理電路
由單片機(jī)產(chǎn)生40KHz方波,并通過模組接口(J4)送到模組
CD4049,而背面CD4049則對40KHz頻率信號進(jìn)行調(diào)理,以
使超聲波傳感器產(chǎn)生諧振。
超聲波回波接受解決電路
VCC.5
超聲波接受解決某些電路前級采用NE5532構(gòu)成10000倍放
大器,對接受信號進(jìn)行放大;后級采用LM311比較器對接受
信號進(jìn)行調(diào)節(jié),匕較電壓為LM3113管腳輸入,可由J1跳線
選取不同比較電壓以選取不同測距模式。
測距程序流程圖
超聲波測距功能函數(shù)流程圖如圖。顧客只需進(jìn)行六次測距操
作,這六次測量成果需要通過解決后才可得到最后測距返回
值,然后將返回值化成距離。
軟件設(shè)計
4.1軟件設(shè)計各模塊
voidRunTime2Hz(void);
設(shè)立2HZ基頻中斷向量函數(shù)。
voidOffTime2Hz(void);
清2Hz基頻中斷向量函數(shù)。
voidClear_WatchDog(void);
清看門狗函數(shù)
unsignedintSP_GetCh(void);
取鍵值函數(shù)
voiddelay2s(inttimer)
可調(diào)延遲函數(shù)
4.2速度控制
速度控制用TIMERAPWM輸出控制,當(dāng)它邁進(jìn)時設(shè)PWM為
12/16,當(dāng)它轉(zhuǎn)彎時設(shè)為8/16o其代碼為:
*P_TimerA_Ctrl=0x0333;
*P_TimerA_Data=0xff9f;
4.3障礙物檢測
用TIMERBTONT輸出給超聲波提供出射頻率,并給它延遲
一段時間,發(fā)射完時,清TIMERB,讓它工作在計時方式,當(dāng)
計到10000時!沒有收到回波,則闡明前在無障礙。如果有
收到同波則闡明有障礙。
4.4看門狗
看門狗只要一定期間給其喂狗,就可以保證程序不會跑飛,
跑飛就會自動復(fù)位。其代碼就只有一句:
*PWatchdogClear=0x0001;
4.5基頻中斷
采用2Hz基頻中斷,實現(xiàn)實時控制;一次中斷,中斷時間為
0o5S,其代碼如卜:
[P_INT_Ctrl]=rl;
INTIRQ;〃開中斷
4.6程序設(shè)計流程圖
五:測試數(shù)據(jù)、測試成果分析及結(jié)論
測試辦法與儀器:
1.測試儀器
測試儀器涉及數(shù)字萬用表、信號發(fā)生器、示波器、直流
穩(wěn)壓電源等。
2.測試辦法
數(shù)字萬用表重要用來測試各個10口狀態(tài);
信號發(fā)生器與示波器用于測試超聲波傳感器信號接受
與傳播;
實驗測試能不能完畢固定避障。
結(jié)論:
通過了咱們努力,咱們基本上能完上避障功能!固然咱們之
后尚有很長路要走,
在之后咱們會自己做一種最小系統(tǒng),本次咱們更側(cè)重于軟件
方面設(shè)計。同步咱們還要設(shè)計更多外圍電路,實現(xiàn)更多功能。
其中涉及:紅外光電檢測用來檢測旁邊物體:尚有紅外遙控
器,用來控制小車運營與停止;再加一種顯示屏,用來顯示
路程和時間等等。
附錄一:
程序附錄:
程序設(shè)計中涉及:主程序,測距程序,中斷程序構(gòu)成;
1.主程序:
include"SPCE06IA.hH
#include"ceju.h"
unsignedcharINTflag:〃定期標(biāo)記
unsignedintsum://2hz計數(shù)器1次為0。5秒
voidRunTime2Hz(void);
voidOffTime2Hz(void);
voidClear_WatchDog(void);
voiddelay2s(inttimer)〃設(shè)立基頻為2HZ中斷就是一次定期
0o5S
(
sum=timer;
RunTime2Hz();〃運營中斷
while(!INTflag)
Clear_WatchDog();〃清看門狗
INTflag=0;
OffTime2Hz();〃結(jié)束中斷
voiddelay2s(inttimer);
intmain(void)
(
unsignedintBack_data;〃裝距離
*PJOB_Dir=0xlf0();//初始化
IOBJOB8-12同向輸出
*PJOB_Attrib=OxlfOO;
*PIOBData=0x0000;
INTflag=0;
Clear_WatchDog();〃清看門狗
while(l)
*P_TimerA_Ctrl=0x0373;
*P_TimerA_Data=0xff9f;//設(shè)邁進(jìn)PWM這
14/16
Back_data=measure_Times(O);〃測距
if(Back_data==O)〃判斷與否為o,
為。則為邁進(jìn)
(
^P_TimerA_Ctrl=OxO373;
*P_TimerA_Data=0xff9f;
)
elseif(Back_data<=40)//判斷與否不大
于40CM,不大于則進(jìn)行倒車
(
^P_TimerA_Ctrl=0x006:
*PJOB_Data=0xl()00;〃倒車
delay2s(0);
*PJOB_Data=0x0100;〃邁進(jìn)
delay2s(3);
)
elseif(Back_data<=100)〃判斷與否不大于
IM,不大于則進(jìn)行避障
(
*P_TimerA_Ctri=0x0333;
*P_IOB_Data=0x0400;〃左轉(zhuǎn)
delay2s(l);
*P_IOB_Data=0x0800;〃右轉(zhuǎn)
delay2s(l);
*PJOB_Data=0x0400:〃左轉(zhuǎn)
delay2s(l);
*P_TimerA_Ctrl=0x006;〃停止PWM運
營
*PJOB_Data=OxOOOO;//停車
while(l)
{;}
)
else
Clear_WatchDog();
2.中斷程序:
includeHSPCE061A.h"
#include"ceju.h"
voidIRQ3(void)—attribute—((ISR));//IRQ中斷服務(wù)程序
voidIRQ3(void)
*P_INT_Clear=0x0100;//
EXTl_IRQ_ult();〃調(diào)用超聲波測距外部中斷
服務(wù)程序
.TEXT
.includeSPCE061A.inc;
.external_sum;
.external_INTflag;
.public_IRQ5;
」RQ5:〃定期3秒中斷程序
pushrl,r4to[sp];
rl=0x0008;
testrl,[P_INT_Ctrl];
jnzL_4Hz;//TimerAFIQentrence
rl=0x0004;
LPJNT_Clear]=rl;〃清中斷
rl二[_sum]//取時基信號量
rl+=1;
cmprl,4;
jeloopO;
[_sum]=rl〃保存時基信號量
poprl,r4from[spj;
reti;
loopO:
rl=0x0001;
[JNTflag]=rl;//設(shè)立中斷標(biāo)記
rl=0
[_sum]二rl
poprl,r4from[sp];
reti;
L_4Hz:
rl=0x0008;
LPJNT_Clear]=rl;〃清中斷
poprl,r4from[sp];
reti;
.external_sum;
.includeSPCE061A.inc;
.CODE
.public_Clear_WatchDog;
_Clear_WatchDog:.PROC
RI=0x0001;
[P_Watchdog_Clear]=R1;〃清看門狗
retf;
.ENDP
.public_RunTime2Hz;〃初始化中斷為2HZ定期中斷源
_RunTime2Hz:.proc
rl=0x0004;
[P_INT_Ctrl]=rl;
INTIRQ;〃開中斷
retf
.endp;
.public_OffTime2Hz;
_OflTime2Hz:.proc
rl=LP_INT_CtrlJ
rl&=Oxfffb;
[PJNT_Ctrl]=rl;
rl=0x0000
[_sum]=rl;
retf;
.endp;
3.測距程序
include"SPCE061A.h"
#defineLONG_SEND_TIMER1000//中距測距時
40KHz信號發(fā)射時長
#defineLONG_SEND_TIMER23000//中距測距補充測
距時40KHz信號發(fā)射時長
#defineLONG_WAIT_DELAY600//中距測距
防余波干擾延時時長
#defineL0NG_WAIT_DELAY21500〃中距測距補充測
距時防余波干擾延時時長
#defineLONG_RES_ADDOxOOBO〃中距測距成果補
償值
#defineLONG_RES_ADD20x0220〃中距測距補充
測距時成果補償值
#defineLOW_SEND_TIMER250〃短距測距時
40KHz信號發(fā)射時長
#defineLOW_SEND_TIMER21000〃短距測距補充
測距時40KHz信號發(fā)射時長
#defineLOW_WAIT_DELAY180〃短距測距防余
波干擾延時時長
#defineLOW_WAIT_DELAY2400//短星巨測是巨
補充測距時防余波干擾延時時長
#defineLOW_RES_ADD0x0034//短距測距成果
補償值
#defineLOW_RES_ADD2OxOOBO〃短總巨測星巨補充測
距時成果補償值
unsignedintCounter_buf;〃超聲波測距當(dāng)中,用于
保存TimerB計數(shù)變量,相稱于時長
unsignedintEXTl_IRQ_flag=O;〃外部中斷標(biāo)志變量,
用于EXT1IRQ中斷程序和測距程序同步
voidDelay_ult(unsignedinttimers)
(
unsignedinti;
for(i=0;i<timers;i++)
(
—asm(nnopH);
)
)
unsignedintResoult_ult(unsignedintCounter)〃計算距離
(
unsignedintuiTemp;
unsignedlongulTemp;
ulTemp=(unsignedlong)Counter*33500;//*以聲音速度,
以厘米為單位
ulTemp=ulTemp/196608;
ulTemp=ulTemp?1;〃除二
uiTemp=(unsignedint)ulTemp;
returnuiTemp;
unsignedintmeasure2_ult(unsignedinttype);
unsignedintmeasure_ult(unsignedinttype)//超
聲波測距模組測距程序,完畢一次測距
(
unsignedintExit_flag=1;
unsignedintuiTemp;
unsignedintuiResoult;
unsignedintuiSend_Timer,uiWait_Timer,uiRes_Add;
unsignedintuiSystem_Clock;
uiSystem_Clock=*P_SystemClock;//將當(dāng)前系統(tǒng)時鐘設(shè)
立暫時保存起來
*P_SystemClock=0x0088;〃將系統(tǒng)時鐘設(shè)立為
49MHz,分頻比為1,強振模式
if(type)〃依照type即測距類型,選取
不同測距參數(shù)
(
uiSend_Timer=LONG_SEND_TIMER;
uiWait_Timer=LONG_WAIT_DELAY;
uiRes_Add=LONG_RES_ADD;
)
else
uiSend_Timer二LOW_SEND_TIMER;
uiWaitTimer=LOWWAITDELAY;
uiRes_Add=LOW_RES_ADD;
*P_TimerB_Data=0xfed2;
*P_TimerB_Ctrl=0x03c0;〃發(fā)40KHz信號觸發(fā)超聲
波傳感器
Delay_ult(uiSend_Timer);〃等待發(fā)送
*P_TimerB_Ctrl=0x0006;〃關(guān)定期器B
*PTimerBData=0x0000;
*P_TimerB_CtrI=0x0001;//TrB工作在192KHz頻
率
while(*P_TimerB_Data<uiWait_Timer)〃等待一定期間后
再打開TimerA計數(shù)(來源于EXT1)
(〃以避開余波干擾
*P_Watchdog_Clear=0x0001;
)
*P_INT_Clear=0x0100;〃開中斷前先清中
*P_INT_Ctrl=*P_INT_Ctrl_New|OxO100;
*P_INT_Clear=Oxffff;〃清除中斷發(fā)生標(biāo)志
_asm(HIRQON");〃打開總中斷使能
EXTlJRQ_flag=0;//TimerA溢出中斷標(biāo)
志變量置0
while(Exit_flag)
(
if(EXTl_IRQ_flag==1)〃當(dāng)該變量在timerAFIQ
中斷中被置1時表達(dá)接受到了回波
(
Exit_flag=0;〃退出標(biāo)示
Counter_buf=Counter_buf+uiRes_Add;〃計?數(shù)值力口上
一定調(diào)節(jié)數(shù)據(jù)
uiResoult二Resoult_ult(Counter_buf);〃對計數(shù)值進(jìn)行
解決,得出距離值
)
if(*P_TimerB_Data>1()000)〃如計數(shù)值不不大于
10000,表達(dá)超時
(
Exit_flag=0;
uiResoult=measure2_ult(type);〃再進(jìn)行一次補充測
距,將會加長40KHz信號發(fā)射量
*P_TimerB_Ctrl=0x()()06;〃停止定期器B
uiTemp=*P_TimerB_Data;
*P_Watchdog_Clear=0x0001;
*P_INT_Ctrl=*P」NT_CW_New&(?0x0100);〃關(guān)掉夕卜部
中斷
_asm("IRQOFF");〃關(guān)掉總中斷
*P_SystemClock=uiSystem_Clock;//恢復(fù)系統(tǒng)時鐘設(shè)立
returnuiResoult;
)
voidEXTlJRQ_ult(void)〃超聲波測距模
組測距程序EXT1中斷服務(wù)程序
(
Counter_buf=*P_TimerB_Data;
*P_TimerB_Ctrl=0x0006;
*P_INT_Ctrl=*P_INT_Ctrl_New&(-0x0100);〃關(guān)掉外部
中斷
*P_INT_Clear=Oxffff;〃清除中斷發(fā)生標(biāo)志
EXTl_IRQ_flag=1;〃告知測距程序,外部
中斷已發(fā)生
)
unsignedintmeasure2_ult(unsignedinttype)〃補
充進(jìn)行一次遠(yuǎn)距測量,以保證可以獲取測量成果
unsignedintExit_flag=1;
unsignedintuiResoult;
unsignedintuiSend_Timer,uiWait_Timer,uiRes_Add;
*P_TimerB_CtrI=0x0006;
*P_INT_Ctrl=*PJNT_Ctrl_New&(-0x0100);//關(guān)掉夕卜部
中斷
_asm(”IRQOFF");〃關(guān)掉總中斷
*PJNT_Clear=Oxffff;〃清除掉中斷發(fā)生標(biāo)志
if(type)//依照type即測距類型,選取
不同測距參數(shù)
(
uiSend_Timer=LONG_SEND_TIMER2;
uiWait.Timer=LONG_WAIT_DELAY2;
uiRes_Add=LONG_RES_ADD2;
)
else
(
uiSend_Timer=LOW_SEND_TIMER2;
uiWait_Timer=LOW_WAIT_DELAY2;
uiRes_Add二LOW_RES_ADD2;
*P_TimerB_Data=0xfed2;
*P_TimerB_Ctrl=OxO3cO;
Delay_ult(uiSend_Timer);
*P_TimerB_Ctrl=0x0006;
*P_TimerB_Data=0x0000;
*P_TimerB_Ctrl=0x0001;
while(*P_TimerB_Data<uiWait_Timer)〃等待一定期間,
以避開余波干擾
(
*P_Watchdog_Clear=0x0001;
)
*P_INT_Ctrl=*P」NT_Ctrl_New|0x0100;//打開外部中斷
*PJNT_Clear=Oxffff;〃清除中斷發(fā)生標(biāo)志
_asm(HIRQON");〃打開總中斷使能
EXTl_IRQ_flag=0;//TimerA溢出中斷標(biāo)
志變量置()
while(Exit_flag)
if(EXT!JRQ_flag==l)〃當(dāng)該變量在timerAFIQ
中斷中被置1時表達(dá)接受到了回波
Exit_flag=0;//exit
Counter_buf=Counter_buf+uiRes_Add;〃計數(shù)值力口上
一定調(diào)節(jié)數(shù)據(jù)
uiResoult=Resoult_ult(Counter_buf);〃對計數(shù)值進(jìn)行
解決,得出距離值
)
if(*P_TimerB_Data>10000)〃如計數(shù)值不不大于
10000,表達(dá)超時
(
Exit_flag=0;
uiResoult
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳統(tǒng)手工藝技能培訓(xùn)承諾書8篇
- 質(zhì)量管理工具箱生產(chǎn)過程控制與優(yōu)化方案
- 2025年生產(chǎn)運作管理題庫及答案
- 甘肅金昌會考試題及答案
- 家屬簽署賠償協(xié)議書7篇
- 2025年興仁事業(yè)招考真題及答案
- 產(chǎn)品生產(chǎn)標(biāo)準(zhǔn)化質(zhì)檢與報告生成模板
- Xx職業(yè)教育產(chǎn)教融合、校企合作情況調(diào)研報告
- 標(biāo)準(zhǔn)化報告生成器
- 2025湖北襄陽市第一人民醫(yī)院招聘急需專業(yè)技術(shù)人才60人模擬試卷附答案詳解(完整版)
- 化工儀表檢修與維護(hù)課件
- 2025年華為軟件開發(fā)工程師招聘面試題庫及答案解析
- 程序化廣告課件
- 電工基礎(chǔ)課件
- 真菌生物膜毒力因子-洞察及研究
- 副校長在任職宣布會上的表態(tài)發(fā)言材料
- 同學(xué)互助基金管理辦法
- 2025年建設(shè)工程質(zhì)量檢測行業(yè)現(xiàn)狀分析及未來五年運行態(tài)勢
- 2024年了解腦退化癥及各項可用服務(wù)和支持的指南-澳大利亞腦退化癥支持協(xié)會
- 三級綜合醫(yī)院健康管理學(xué)科建設(shè)模式:理論、實踐與創(chuàng)新
- 2017年考研英語一真題
評論
0/150
提交評論