版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z課程設(shè)計(jì)報(bào)告嵌入式技術(shù)實(shí)踐(二)學(xué) 院:電氣工程與自動(dòng)化學(xué)院題 目:基于P89V51RB2單片機(jī)尋跡小車(chē)專業(yè)班級(jí):學(xué) 號(hào):學(xué)生:指導(dǎo)教師:2021年06月07日目 錄TOC o 1-3 h z uHYPERLINK l _Toc289793891 第1章 緒論 圖 2.2示。本次紅外探測(cè)采用的是反射式探測(cè)。2.3智能小車(chē)超聲波測(cè)距原理利用超聲波連續(xù)發(fā)出10us以上的高電平,就可以在接口有高電頻輸出,等待承受到返回的高電頻信號(hào)時(shí),通過(guò)定時(shí)器電波對(duì)被控對(duì)象進(jìn)展時(shí)間檢測(cè)。就可以計(jì)算相應(yīng)的時(shí)間了。圖 STYLEREF 1 s2.SEQ 圖 * ARABIC s 12 系統(tǒng)構(gòu)造圖紅外傳感測(cè)速顯示
2、超聲波測(cè)距電機(jī)驅(qū)動(dòng)電源板LCD1602顯示P89V51RB2單片機(jī) 80C51處理器通過(guò)引腳讀出超聲波信號(hào)管腳80C51處理器向紅外線傳感器供5V電壓,通過(guò)采集其上下電平可以控制小車(chē)的轉(zhuǎn)彎。80C51處理器通過(guò)DATA引腳向鍵盤(pán)顯示板發(fā)送要顯示的數(shù)據(jù),還可以通過(guò)KEY引腳讀取鍵盤(pán)的按鍵,實(shí)現(xiàn)相應(yīng)的功能。系統(tǒng)硬件設(shè)計(jì)控制器的選擇本次設(shè)計(jì)采用的是80C51單片機(jī)。概述P89V51RB2是一款由美國(guó)N*P半導(dǎo)體公司提供的增強(qiáng)型80C51微控制器,包括16KB Flash程序存儲(chǔ)器和1KB數(shù)據(jù)RAM,且功能上完全覆蓋標(biāo)準(zhǔn)80C51單片機(jī)系列P89V51RB2 開(kāi)發(fā)工具特性1.80C51核,5V工作電壓
3、,操作頻率040MHZ;2.16KB片F(xiàn)lash存儲(chǔ)器,1KB片SRAM;3.SPI串行通信接口和增強(qiáng)型UART;4.PCA可編程計(jì)數(shù)器列陣,具有PWM和捕獲、比擬功能;5.4個(gè)8位I/O口,含有三個(gè)高電流P1口每個(gè)I/O口的電流為16mA;6.8個(gè)中斷源,4個(gè)中斷優(yōu)先級(jí),3個(gè)16位定時(shí)器/計(jì)數(shù)器和可編程看門(mén)狗定時(shí)器WDT;7.2個(gè)DPTR存放器;硬件電路設(shè)計(jì)本次工程采用的電路板從畫(huà)電路原理圖開(kāi)場(chǎng),到PCB板的布線以及電路板的焊接與檢測(cè)一系列工作都是自己在大一下學(xué)期課程實(shí)踐期間制作的。系統(tǒng)電源電路交流電經(jīng)過(guò)全波電路在經(jīng)過(guò)電容濾波,在經(jīng)過(guò)穩(wěn)壓電源芯片做成穩(wěn)壓電路,輸出電壓5V、7.2V的直流電源
4、。其電源電路原理圖如圖3.2所示。圖 STYLEREF 1 s3.2 系統(tǒng)電源電路原理圖小車(chē)的驅(qū)動(dòng)電機(jī)的供電電壓為7.2V,經(jīng)過(guò)電容濾波后接7805進(jìn)展穩(wěn)壓,穩(wěn)壓輸出5V的電壓。提供單片機(jī)所需5V電壓。電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)實(shí)現(xiàn)與原理本工程驅(qū)動(dòng)兩路直流電機(jī),實(shí)現(xiàn)電機(jī)的正反轉(zhuǎn)與測(cè)速和遙控。輸入輸出邏輯表真值表3.2。表 STYLEREF 1 s3.SEQ 表 * ARABIC s 12 L298N輸入輸出邏輯真值表通道1通道2輸入輸出控制電機(jī)1輸入輸出控制電機(jī)2EnAIn1In2OUT1OUT2轉(zhuǎn)向EnBIn3In4OUT3OUT4轉(zhuǎn)向10000停頓10000停頓0101反傳0101反傳1010正轉(zhuǎn)1
5、010正轉(zhuǎn)1100停頓1111停頓0*00停頓0*00停頓其中0為低電平;1 為高電平;* 為任何狀態(tài)。驅(qū)動(dòng)原理圖光電編碼器/測(cè)速光電編碼器原理光電編碼器,是一種通過(guò)光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。這是目前應(yīng)用最多的傳感器,光電編碼器是由光柵盤(pán)和光電檢測(cè)裝置組成。光柵盤(pán)是在一定直徑的圓板上等分地開(kāi)通假設(shè)干個(gè)長(zhǎng)方形孔。由于光電碼盤(pán)與電動(dòng)機(jī)同軸,電動(dòng)機(jī)旋轉(zhuǎn)時(shí),光柵盤(pán)與電動(dòng)機(jī)同速旋轉(zhuǎn),經(jīng)發(fā)光二極管等電子元件組成的檢測(cè)裝置檢測(cè)輸出假設(shè)干脈沖信號(hào),通過(guò)計(jì)算每秒光電編碼器輸出脈沖的個(gè)數(shù)就能反映當(dāng)前電動(dòng)機(jī)的轉(zhuǎn)速。光電編碼器的實(shí)現(xiàn)光電編碼器的發(fā)光裝置一般由發(fā)光二極管來(lái)實(shí)現(xiàn)。光敏元
6、件則由光敏三極管接上了上拉電阻來(lái)完成。光電式旋轉(zhuǎn)編碼器是轉(zhuǎn)速或轉(zhuǎn)角的檢測(cè)元件,旋轉(zhuǎn)的編碼器與電動(dòng)機(jī)相連,當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),帶動(dòng)碼盤(pán)旋轉(zhuǎn),便發(fā)出轉(zhuǎn)速或轉(zhuǎn)角信號(hào)。其示意圖如 REF _Ref167246761 h * MERGEFORMAT 圖 3.5所示。圖 STYLEREF 1 s3.5 光電編碼器的實(shí)現(xiàn)示意圖當(dāng)電機(jī)旋轉(zhuǎn)時(shí),碼盤(pán)隨之一起轉(zhuǎn)動(dòng)。通過(guò)光柵的作用,使得光敏三極管隨著光柵透出的光而導(dǎo)通。接收的頻率和轉(zhuǎn)速成正比。在接收端可以輸出一系列的方波,80C51核可以通過(guò)采集方波的頻率從而可以計(jì)算出電機(jī)的速度。紅外線檢測(cè)電路紅外線檢測(cè)電路原理其實(shí)很簡(jiǎn)單,就是利用紅外線在不同顏色的物體外表具有不同的反射
7、性質(zhì)的特點(diǎn),在小車(chē)行駛過(guò)程中不斷地向地面發(fā)射紅外光,當(dāng)紅外光遇到白色紙質(zhì)地板時(shí)發(fā)生漫反射,反射光被裝在小車(chē)上的接收管接收,Corte*-M0核采集到的電壓就是高電平;如果遇到黑線則紅外光被吸收,小車(chē)上的接收管接收不到紅外光,然后80C51核采集到的電壓就是低電平。其根本原理圖如圖3.6所示。圖3.6 紅外線檢測(cè)電路原理圖鑒于本工程設(shè)計(jì)需實(shí)現(xiàn)的功能比擬簡(jiǎn)單,故只要兩路紅外線檢測(cè)電路即可,分別位于小車(chē)中心軸的兩測(cè)即可。超聲波蔽障/測(cè)距3.2.5.1超聲波測(cè)距模塊簡(jiǎn)介超聲波檢測(cè)設(shè)計(jì)小車(chē)避障是利用超聲波測(cè)距,并根據(jù)測(cè)出離障礙物不同距離而做出不同反響。檢測(cè)距離:5CM-4M 分辨率:5MM 數(shù)字電平信號(hào)
8、,可直接接單片機(jī),無(wú)需任何輔助電路,也無(wú)需單片機(jī)產(chǎn)生任何信 號(hào)輔助,距離和模塊輸出信號(hào)脈沖長(zhǎng)度成正比。 尺寸:43.5*20.5毫米 高度:13.8毫米3.2.5.2超聲波測(cè)距模塊的引腳功能 圖3.2.5.3超聲波實(shí)物超聲波測(cè)距原理 你只需要提供一個(gè)短期的10uS脈沖觸發(fā)信號(hào)。該模塊部將發(fā)出8個(gè)40kHz周期電平并檢測(cè)回波。一旦檢測(cè)到有回波信號(hào)則輸出回響信號(hào)?;仨懶盘?hào)是一個(gè)脈沖的寬度成正比的距離對(duì)象??赏ㄟ^(guò)發(fā)射信號(hào)到收到的回響信號(hào)時(shí)間間隔可以計(jì)算得到距式:uS/58=厘米或者uS/148=英寸。建議測(cè)量周期為60ms以上,以防止發(fā)射信號(hào)對(duì)回響信號(hào)的影響 超聲波測(cè)距時(shí)序圖圖3.2.5超聲波測(cè)距時(shí)
9、序圖LCD顯示設(shè)計(jì)加液晶顯示是為了彌補(bǔ)在超聲波蔽障及測(cè)距是,對(duì)于具體我們不知道的距離顯示出來(lái),有助于我們更好的預(yù)知路程蔽障的圍及距離障礙物的距離。通過(guò)1602的顯示,讓我們更加清楚小車(chē)隔障礙物的距離。液晶顯示實(shí)物圖3.液晶工作原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對(duì)LCD控制器進(jìn)展不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對(duì)于顯示英文操作,由于英文字母種類很少,只需要8位一字節(jié)即可。而對(duì)于中文,常用卻有6000以上,于是我們的DOS前輩想了一個(gè)方法,就是將ASCII表的高128個(gè)很少用到的數(shù)值以兩個(gè)為一組來(lái)表示漢字,即漢字的碼。而剩下的低128位則留給英文字符使用,即英文的碼。則,得到了漢
10、字的碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢.這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來(lái)記載英文或漢字的形狀,從而通過(guò)掃描,顯示在液晶屏幕上液晶顯示原理液晶顯示其實(shí)就是對(duì)屏幕的每個(gè)點(diǎn)的掃描,帶字庫(kù)的液晶部自帶控制芯片,直接對(duì)它操作就可以顯示出漢子字符,需要讀寫(xiě)命令和數(shù)據(jù),才能到達(dá)對(duì)液晶控制器的操作,具體的如何顯示,有興趣者可以自己查閱資料,進(jìn)一步理解并學(xué)會(huì)使用。系統(tǒng)軟件設(shè)計(jì)編譯環(huán)境TKStudio集成開(kāi)發(fā)環(huán)境又稱TKStudio IDE是致遠(yuǎn)電子開(kāi)發(fā)的一個(gè)微處理器軟件開(kāi)發(fā)平臺(tái),是一款具有強(qiáng)大置編輯器的多核編譯調(diào)試環(huán)境,支持8
11、051、ARM、AVR等多種微控制器,可以完成從工程建立和管理,編譯,目標(biāo)代碼的生成,到軟件仿真,硬件仿真(掛接TKS系列仿真器等硬件)等完整的開(kāi)發(fā)流程。TKStudio集成開(kāi)發(fā)環(huán)境包括工程管理器、代碼編輯器、編譯工具鏈、源碼級(jí)調(diào)試器和外部工具等。模塊的驅(qū)動(dòng)紅外線傳感器模塊紅外線模塊只要M0處理器向其供5V電壓就能工作,然后通過(guò)引腳采集其電平上下就可以根據(jù)不同情況做出相應(yīng)的處理。其具體程序控制見(jiàn)程序清單4.1.程序清單 STYLEREF 1 s4. SEQ 程序清單 * ARABIC s 1 1讀取紅外傳感器的上下電平void Track(void) if(IN1=0&IN2=0)|(IN1=
12、1&IN2=1) Forward(); /調(diào)用前進(jìn)函數(shù) if(IN1=1&IN2=0) Lift(); /調(diào)用左轉(zhuǎn)函數(shù) if(IN1=0&IN2=1) Right(); /調(diào)用右轉(zhuǎn)函數(shù) 電機(jī)模塊的驅(qū)動(dòng)首先,通過(guò)設(shè)置L298N芯片的輸入方向RIGHT_FANZHUAN,RIGHT_ZHENGZHUAN,RIGHT_STOP,LEFT_ZHENGZHUAN,LEFT_FANZHUAN,LEFT_STOP,從而控制電機(jī)的正反轉(zhuǎn)。詳見(jiàn)程序清單4.3.程序清單 STYLEREF 1 s 4.3直流電機(jī)驅(qū)動(dòng)與路徑識(shí)別void Forward() /電機(jī)前進(jìn) PWM1=1; PWM2=1;void Lift
13、() /電機(jī)左轉(zhuǎn) PWM1=0; PWM2=1;void Right() /電機(jī)右轉(zhuǎn) PWM1=1; PWM2=0 ;void Track(void) if(IN1=0&IN2=0)|(IN1=1&IN2=1) Forward(); /調(diào)用前進(jìn)函數(shù) if(IN1=1&IN2=0) Lift(); /調(diào)用左轉(zhuǎn)函數(shù) if(IN1=0&IN2=1) Right(); /調(diào)用右轉(zhuǎn)函數(shù) 前輪為方向輪,只有在需要轉(zhuǎn)彎的時(shí)候才需要后邊電機(jī)驅(qū)動(dòng)其左右轉(zhuǎn)動(dòng),在常態(tài)下則由后輪的推力使前輪向前轉(zhuǎn)動(dòng)。具體實(shí)現(xiàn)是通過(guò)控制前面產(chǎn)生的兩路PWM波的占空比和L298N芯片的In1、In2的方向來(lái)實(shí)現(xiàn)小車(chē)的前進(jìn)尋跡與后退尋跡,
14、其程序流程圖詳見(jiàn)圖4.1所示。開(kāi)場(chǎng)讀取傳感器是否兩邊都遇到黑線停頓是否左遇到且右沒(méi)遇到是否右遇到且左沒(méi)遇到左轉(zhuǎn)彎右轉(zhuǎn)彎直行YNYYNN圖 STYLEREF 1 s4.1直流電機(jī)控制流程圖根據(jù)圖4.1可以看到程序一開(kāi)場(chǎng)就進(jìn)展讀取紅外線傳感器,如果左右兩邊都遇到黑線則停頓前進(jìn);如果左邊遇到黑線而且右邊沒(méi)有遇到黑線,小車(chē)則左轉(zhuǎn);如果右邊遇到黑線而且左邊沒(méi)有遇到黑線,小車(chē)則右轉(zhuǎn);如果兩邊都沒(méi)有遇到黑線小車(chē)則直行。具體程序控制詳見(jiàn)程序清單4.4。轉(zhuǎn)速捕獲本工程采用16位定時(shí)器1和32位定時(shí)器1的捕獲功能來(lái)實(shí)現(xiàn)兩直流電機(jī)的轉(zhuǎn)速捕獲。由于主輪與后面光碼盤(pán)扇葉轉(zhuǎn)速的比例是1:80,而且有兩片扇葉。所以測(cè)主輪的
15、轉(zhuǎn)速公式為:轉(zhuǎn)速= (FAHBCLK/(CAP1_2-CAP1_1)/(N2-1)*3/8/ TMR16B1PR,程序控制詳見(jiàn)程序清單4.5.程序清單 STYLEREF 1 s 4.5 直流電機(jī)轉(zhuǎn)速的測(cè)量void TimeNew1()/光柵捕獲并記錄 R1=R2; /捕獲左電機(jī)光柵并記錄 if(R_Mcp2=0)R2=1;if(R_Mcp2=1)R2=0;if(R1=1)if(R2=0)rm2+;if(rm2=1)rm2=0;Count2+;if(Count2=10000)Count2=0;if(R_Mcp1=0)r2=1; /捕獲右電機(jī)光柵并記錄if(R_Mcp1=1)r2=0;if(r1=
16、1)if(r2=0)rm1+;if(rm1=1)rm1=0;Count1+;if(Count1=10000)Count1=0; r1=r2;m1=lucheng1/1000, /轉(zhuǎn)換成路程并分解成BCD碼dm1=(lucheng1-1000*m1)/100, cm1=(lucheng1-1000*m1-100*dm1)/10, mm1=lucheng1-1000*m1-100*dm1-10*cm1,m2=lucheng2/1000, dm2=(lucheng2-1000*m2)/100,cm2=(lucheng2-1000*m2-100*dm2)/10,mm2=lucheng2-1000*m2
17、-100*dm2-10*cm2if(Count3=4000) /定時(shí)一秒/lucheng1=Count2*2200/1580;lucheng2=Count1*2200/1580;Count3=0;Count1=0,Count2=0;/路程計(jì)算LCD1602液示顯示模塊1602等待超聲波產(chǎn)生數(shù)據(jù)等待承受,給自己數(shù)據(jù)發(fā)送時(shí)間是否到達(dá)等待發(fā)送時(shí)間將存儲(chǔ)好的數(shù)據(jù)發(fā)送到1602顯示板上顯示執(zhí)行程序NYY1602通過(guò)超聲波產(chǎn)生的中斷進(jìn)展計(jì)數(shù),在液晶屏上顯示出來(lái)。*define LCM_RW P3_4 /定義LCD引腳*define LCM_RS P3_3*define LCM_E P3_5*define
18、LCM_Data P1*define Busy 0*80 /用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)void LCMInit(void);void DisplayOneChar(unsigned char *, unsigned char Y, unsigned char DData);void DisplayListChar(unsigned char *, unsigned char Y, unsigned char code *DData);void Delay5Ms(void);void Delay400Ms(void);void Decode(unsigned char ScanCode
19、);void WriteDataLCM(unsigned char WDLCM);void WritemandLCM(unsigned char WCLCM,BuysC);unsigned char ReadDataLCM(void);unsigned char ReadStatusLCM(void);unsigned char code mcustudio =ZDH-122ban-33hao;unsigned char code email = distance-display;unsigned char code Cls = ;unsigned char code ASCII15 = 0,
20、1,2,3,4,5,6,7,8,9,.,-,M;static unsigned char DisNum = 0; /顯示用指針 unsigned int time=0; unsigned long S=0; bit flag =0; unsigned char disbuff4 = 0,0,0,0,;/寫(xiě)數(shù)據(jù)void WriteDataLCM(unsigned char WDLCM) ReadStatusLCM(); /檢測(cè)忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; /假設(shè)晶振速度太高可以在這后加小的延時(shí)LCM_E = 0; /延時(shí)LC
21、M_E = 1;/寫(xiě)指令void WritemandLCM(unsigned char WCLCM,BuysC) /BuysC為0時(shí)忽略忙檢測(cè)if (BuysC) ReadStatusLCM(); /根據(jù)需要檢測(cè)忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;/讀數(shù)據(jù)unsigned char ReadDataLCM(void)LCM_RS = 1; LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);/讀狀態(tài)unsigned char R
22、eadStatusLCM(void)LCM_Data = 0*FF; LCM_RS = 0;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;while (LCM_Data & Busy); /檢測(cè)忙信號(hào)return(LCM_Data);void LCMInit(void) /LCM初始化LCM_Data = 0;WritemandLCM(0*38,0); /三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)Delay5Ms(); WritemandLCM(0*38,0);Delay5Ms(); WritemandLCM(0*38,0);Delay5Ms(); WritemandL
23、CM(0*38,1); /顯示模式設(shè)置,開(kāi)場(chǎng)要求每次檢測(cè)忙信號(hào)WritemandLCM(0*08,1); /關(guān)閉顯示W(wǎng)ritemandLCM(0*01,1); /顯示清屏WritemandLCM(0*06,1); / 顯示光標(biāo)移動(dòng)設(shè)置WritemandLCM(0*0F,1); / 顯示開(kāi)及光標(biāo)設(shè)置/按指定位置顯示一個(gè)字符void DisplayOneChar(unsigned char *, unsigned char Y, unsigned char DData)Y &= 0*1;* &= 0*F; /限制*不能大于15,Y不能大于1if (Y) * |= 0*40; /當(dāng)要顯示第二行時(shí)地址
24、碼+0*40;* |= 0*80; /算出指令碼WritemandLCM(*, 1); /發(fā)命令字WriteDataLCM(DData); /發(fā)數(shù)據(jù)/按指定位置顯示一串字符void DisplayListChar(unsigned char *, unsigned char Y, unsigned char code *DData)unsigned char ListLength; ListLength = 0;Y &= 0*1;* &= 0*F; /限制*不能大于15,Y不能大于1while (DDataListLength0*19) /假設(shè)到達(dá)字串尾則退出if (* =700)|flag=
25、1) /超出測(cè)量圍顯示- flag=0; DisplayOneChar(0, 1, D); DisplayOneChar(1, 1, i); DisplayOneChar(2, 1, s); DisplayOneChar(3, 1, t); DisplayOneChar(4, 1, a); DisplayOneChar(5, 1, n); DisplayOneChar(6, 1, c); DisplayOneChar(7, 1, e); DisplayOneChar(8, 1, ); DisplayOneChar(9, 1, :); DisplayOneChar(10, 1, ASCII11)
26、; DisplayOneChar(11, 1, ASCII10);/顯示點(diǎn) DisplayOneChar(12, 1, ASCII11); DisplayOneChar(13, 1, ASCII11); DisplayOneChar(14, 1, ASCII12);/顯示M else disbuff0=S%1000/100; disbuff1=S%1000%100/10; disbuff2=S%1000%10 %10; DisplayOneChar(0, 1, D); DisplayOneChar(1, 1, i); DisplayOneChar(2, 1, s); DisplayOneCha
27、r(3, 1, t); DisplayOneChar(4, 1, a); DisplayOneChar(5, 1, n); DisplayOneChar(6, 1, c); DisplayOneChar(7, 1, e); DisplayOneChar(8, 1, ); DisplayOneChar(9, 1, :); DisplayOneChar(10, 1, ASCIIdisbuff0); DisplayOneChar(11, 1, ASCII10);/顯示點(diǎn) DisplayOneChar(12, 1, ASCIIdisbuff1); DisplayOneChar(13, 1, ASCII
28、disbuff2); DisplayOneChar(14, 1, ASCII12);/顯示M /*/ void zd0() interrupt 1 /T0中斷用來(lái)計(jì)數(shù)器溢出,超過(guò)測(cè)距圍 flag=1; /中斷溢出標(biāo)志 /*/*/ void delayms(unsigned int ms)unsigned char i=100,j;for(;ms;ms-)while(-i)j=10;while(-j);/*/void main(void)unsigned char TempCyc;Delay400Ms(); /啟動(dòng)等待,等LCM講入工作狀態(tài)LCMInit(); /LCM初始化Delay5Ms()
29、; /延時(shí)片刻(可不要)DisplayListChar(0, 0, mcustudio);DisplayListChar(0, 1, email);ReadDataLCM();/測(cè)試用句無(wú)意義for (TempCyc=0; TempCyc10; TempCyc+)Delay400Ms(); /延時(shí)DisplayListChar(0, 1, Cls);while(1) TMOD=0*01; /設(shè)T0為方式1,GATE=1; TH0=0; TL0=0; ET0=1; /允許T0中斷 EA=1; /開(kāi)啟總中斷while(1) StartModule();/ DisplayOneChar(0, 1,
30、ASCII0); while(!R*);/當(dāng)R*為零時(shí)等待 TR0=1; /開(kāi)啟計(jì)數(shù) while(R*);/當(dāng)R*為1計(jì)數(shù)并等待 TR0=0;/關(guān)閉計(jì)數(shù) Conut();/計(jì)算 delayms(80);/80MS 按鍵模塊按鍵模塊處理流程圖如圖4.2所示。將預(yù)備發(fā)送顯示的整數(shù)的每一位依次存放于一個(gè)數(shù)組單元發(fā)送時(shí)間是否到達(dá)等待發(fā)送時(shí)間將存儲(chǔ)好的數(shù)據(jù)發(fā)送到鍵盤(pán)顯示板上顯示查詢等待按鍵按下是否有鍵按下修改相關(guān)程序或數(shù)據(jù)信息執(zhí)行程序NYYYN圖 STYLEREF 1 s4.2 按鍵處理程序流程圖把89V81RB2的P3.5引腳設(shè)置為檢測(cè)引腳,設(shè)置為輸入,進(jìn)展掃描鍵盤(pán)。使用變量i作為位碼設(shè)置變量,由0至
31、7依次循環(huán),例如當(dāng)按下5號(hào)鍵的時(shí)候,當(dāng)i變成5的時(shí)候,會(huì)在5號(hào)線上出現(xiàn)低電平,p3.5上出現(xiàn)低電平,當(dāng)89V81RB2上邊檢測(cè)到低電平的時(shí)候,將變量i的值賦值給按鍵號(hào)標(biāo)志變量whichkeydown,當(dāng)按鍵松開(kāi)后,對(duì)whichkeydown的值進(jìn)展處理,也就是相當(dāng)于對(duì)按鍵的事件進(jìn)展了處理,處理完成后,將whichkeydown的值賦值為8,說(shuō)明沒(méi)有按鍵按下。按鍵要定時(shí)檢測(cè)按鍵是否按鍵,實(shí)時(shí)處理即可。這里使用的是前面設(shè)置的16位定時(shí)器0的定時(shí)2.5ms進(jìn)展檢測(cè)。其具體詳見(jiàn)程序清單4.7.程序清單 STYLEREF 1 s 4.2.5按鍵檢測(cè)void Key_Proc(void)uint32 ke
32、y;if(有按鍵) /有按鍵DelayNS(30); /延時(shí)去抖if(按鍵有效0) /按鍵有效讀取按鍵值 while() /等待釋鍵;switch(key)case按鍵1:; /按鍵1處理break;case按鍵2:; /按鍵2處理break;case按鍵3:; /按鍵3處理break;4.2.6 超聲波模塊所謂遙控即通過(guò)電磁波的遠(yuǎn)距離傳送特點(diǎn)進(jìn)展工作,由處理器通過(guò)對(duì)接收裝置的管腳的電平的讀取從而作出相應(yīng)工作。程序清單4.8 超聲波發(fā)送接收 void StartModule() /啟動(dòng)模塊 T*=1; /啟動(dòng)一次模塊 _nop_(); _nop_(); _nop_(); _nop_(); _n
33、op_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); T*=0; 系統(tǒng)調(diào)試分析系統(tǒng)設(shè)計(jì)中的考前須知外部因素外部因素主要有環(huán)境光線、賽道材質(zhì)等因素。以采用光電尋跡方案的智能車(chē)為例,如果接收的信號(hào)中有很多噪聲成分,或者黑白區(qū)分不清晰,就很難識(shí)別路線,從而對(duì)后續(xù)的控制過(guò)程造成很大影響。因此,合理的傳感器離地間隙和反射角度、較好的濾波電路設(shè)計(jì)都是需要考慮的。
34、部因素重量因素 整車(chē)質(zhì)量的增加,對(duì)系統(tǒng)動(dòng)力性有較大影響。因此,除了智能車(chē)工作必須的電路之外,應(yīng)盡可能減少車(chē)重。即使是必備部件,可應(yīng)該采用輕量化的設(shè)計(jì)。比方為了測(cè)量模型車(chē)的速度,需要在驅(qū)動(dòng)輪上加裝轉(zhuǎn)速傳感器,一般購(gòu)置的電機(jī)編碼器重量都較大,有的隊(duì)伍就利用鼠標(biāo)上的光電電路設(shè)計(jì)制作了一個(gè)輕量化的轉(zhuǎn)速傳感器,從而大大減小了重量。 過(guò)度轉(zhuǎn)向的防止 由于是后輪驅(qū)動(dòng),在彎曲的路線上加速可能會(huì)出現(xiàn)過(guò)度轉(zhuǎn)向現(xiàn)象,因此在車(chē)輛彎道行駛時(shí)需要小心控制車(chē)輛的轉(zhuǎn)向速度。傳感器的影響剛開(kāi)場(chǎng)的時(shí)候,我的傳感器裝的比擬高,這樣就不能很好的感應(yīng)到路線,以至于出現(xiàn)亂跑的現(xiàn)象。如果在以后的設(shè)計(jì)中需要的話,可以采用激光傳感器進(jìn)展探測(cè),這樣就會(huì)更精準(zhǔn)的尋跡。硬軟件總體調(diào)試硬件、軟件獨(dú)立調(diào)試都有效果之后,下一步就是硬軟件總體調(diào)試了,在硬軟件總體調(diào)試之前,應(yīng)現(xiàn)把各個(gè)跳線接后,然后在用貼有黑膠帶的白紙來(lái)回在紅外線發(fā)射接收管左右移動(dòng),看小車(chē)的電機(jī)轉(zhuǎn)速是否會(huì)發(fā)生變化,如果用貼有黑膠帶的白紙來(lái)回在各個(gè)紅外線發(fā)射接收管左右移動(dòng)時(shí),電機(jī)的轉(zhuǎn)速都會(huì)發(fā)生改變,則說(shuō)明總體調(diào)試初步有效,最后讓小車(chē)在賽道上進(jìn)展行走,在初次調(diào)試的時(shí)候,小車(chē)的速度不能太大。完畢語(yǔ)歷經(jīng)四五天的課余時(shí)間,終于把本次嵌入式課程設(shè)計(jì)完成了,從資料的搜索到最終的調(diào)試,在整個(gè)課程過(guò)程中,感覺(jué)自己學(xué)到了許多東西,突然
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版人工智能技術(shù)研發(fā)與應(yīng)用合同15篇
- 常州2025版二手房過(guò)戶稅費(fèi)處理與過(guò)戶手續(xù)辦理合同2篇
- 二零二五版智慧城市建設(shè)合作合同范本2篇
- 二零二五版在線教育管理系統(tǒng)定制開(kāi)發(fā)合同3篇
- 二零二五版ISO9001質(zhì)量管理體系認(rèn)證與質(zhì)量管理體系審核與監(jiān)督合同3篇
- 水電工程2025年度施工安全評(píng)估合同2篇
- 二零二五版LED顯示屏戶外廣告位租賃合同協(xié)議3篇
- 二零二五年海鮮餐飲業(yè)特色菜品開(kāi)發(fā)與銷售合同3篇
- 二零二五年度虛擬現(xiàn)實(shí)游戲開(kāi)發(fā)電子合同承諾3篇
- 二零二五版智能零售企業(yè)兼職銷售員勞動(dòng)合同3篇
- 2025新北師大版英語(yǔ)七年級(jí)下單詞表
- 2024公路瀝青路面結(jié)構(gòu)內(nèi)部狀況三維探地雷達(dá)快速檢測(cè)規(guī)程
- 《智慧城市概述》課件
- 2024年北京市家庭教育需求及發(fā)展趨勢(shì)白皮書(shū)
- GB/T 45089-20240~3歲嬰幼兒居家照護(hù)服務(wù)規(guī)范
- 中建道路排水工程施工方案
- 拆機(jī)移機(jī)合同范例
- 智能停車(chē)充電一體化解決方案
- 化學(xué)驗(yàn)室安全培訓(xùn)
- 天書(shū)奇譚美術(shù)課件
- GB/T 18916.15-2024工業(yè)用水定額第15部分:白酒
評(píng)論
0/150
提交評(píng)論