光電式電動車速度里程表-答辯PPT_第1頁
光電式電動車速度里程表-答辯PPT_第2頁
光電式電動車速度里程表-答辯PPT_第3頁
光電式電動車速度里程表-答辯PPT_第4頁
光電式電動車速度里程表-答辯PPT_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

光電式電動車速度里程表設(shè)計(jì)指導(dǎo)老師:***學(xué)生:***學(xué)號:***1.課題任務(wù)

本次設(shè)計(jì)的內(nèi)容是,采用光電式傳感器作為傳感元件設(shè)計(jì)一個(gè)光電式電動車速度里程表。其中,本次設(shè)計(jì)的光電式電動車速度里程表具有一下功能是:

(1)基本功能是能夠顯示速度,單次里程,累計(jì)里程;(2)增加一個(gè)顯示時(shí)間的功能,還增加一個(gè)超速行駛時(shí)的報(bào)警功能。2.基本設(shè)計(jì)原理測量速度的方法很多,數(shù)字脈沖測量法是其中最為常用的。數(shù)字脈沖測量法的原理是:將需要測速的轉(zhuǎn)動物體的某個(gè)軸進(jìn)行測量,然后根據(jù)該軸的機(jī)械比,以及轉(zhuǎn)動物體的直徑將其換算成轉(zhuǎn)動物體的線速度,從而計(jì)算出里程。

在脈沖測速的方法中,最典型的方法有測頻率法(M測法)和測周期法(T法)。(1)測頻率法是通過測量單位時(shí)間的脈沖數(shù)換算成頻率.該方法適合測量較高速運(yùn)轉(zhuǎn)的物體,當(dāng)速度比較低時(shí),測量時(shí)間內(nèi)脈沖數(shù)比較少,誤差所占比例較大。(2)測周期法則是測量兩個(gè)脈沖之間的時(shí)間,并將其換算成周期,從而得到頻率。在速度較高時(shí),測量的周期會比較小,誤差所占比例會比較大,因此測周期法比較適合在低速時(shí)使用。 本設(shè)計(jì)采用頻率測速法,設(shè)脈沖的總數(shù)為m,車輪的周長為C,車輪轉(zhuǎn)動一周產(chǎn)生的脈沖數(shù)位n,車輪行駛時(shí)間為T0(設(shè)為1秒),因此,里程(S)和速度(v)可分別根據(jù)下列公式求得:

v=(C*m/n)/T0(1)

S=C*m/n(2)

基于以上脈沖測速法,當(dāng)前需要解決的就是如何將電動車的轉(zhuǎn)動轉(zhuǎn)化為脈沖。我們在電動車后輪軸出保持與輪子旋轉(zhuǎn)切面平行的方向延伸出一個(gè)鋁盤,并在這個(gè)鋁盤的邊沿挖出若干個(gè)圓形孔洞(本設(shè)計(jì)采用8個(gè)孔洞)。而且,還利用一個(gè)ST1101紅外光電傳感器的檢測部分放在圓孔的空心處,如下圖2.1所示。

當(dāng)有物體在紅外光電發(fā)光二極管和高靈敏度光電晶體管之間進(jìn)行遮擋時(shí),傳感器就會輸出一個(gè)低電平,而當(dāng)紅外光電發(fā)光二極管和高靈敏度光電晶體管之間無物體遮擋時(shí),將會輸出一個(gè)高電平,這樣就形成了一個(gè)脈沖。所以每當(dāng)鋁盤跟隨后輪旋轉(zhuǎn)時(shí),傳感器就向外面輸出脈沖。即,實(shí)現(xiàn)電動車的轉(zhuǎn)動轉(zhuǎn)換為脈沖。3.系統(tǒng)硬件設(shè)計(jì)基于上面的基本設(shè)計(jì)原理易知,該系統(tǒng)中需要:(1)一個(gè)采集信號模塊---選用ST1101紅外光電傳感器(2)一個(gè)處理數(shù)據(jù)的模塊---選用單片機(jī)AT89C51來處理數(shù)據(jù)(3)且光電式速度里程的功能是要顯示速度,單次里程及累計(jì)里程的顯示模塊---LCD1602液晶顯示器(4)一個(gè)控制該系統(tǒng)的模塊---幾個(gè)按鍵控制設(shè)置功能(5)報(bào)警模塊---蜂鳴器進(jìn)行報(bào)警

(6)因?yàn)椴煌俣犬a(chǎn)生的脈沖頻率是不同的,所以由光電傳感器檢測出來的脈沖信號也不盡相同。而且一般的模擬信號都比較微弱,因此要把信號放大,此時(shí)就需要一個(gè)放大器。另外,單片機(jī)只能夠識別

處理TTL信號,則采集的信號需要經(jīng)過整形變換后才可與單片機(jī)相連接---需要一個(gè)信號預(yù)處理電路。 如下圖所示系統(tǒng)硬件框圖:系統(tǒng)原理圖如下所示:由上原理圖可知:(1)LCD1602的命令/數(shù)據(jù)接口與單片機(jī)的端口P0相連接;(2)單片機(jī)引腳P3.5(T1)接收傳感器輸入信號;(3)與單片機(jī)引腳P3.2(INT0)相連接的按鍵S5的功能是:控制進(jìn)入時(shí)間設(shè)置;(4)與單片機(jī)引腳P2.0相連接的按鍵S1的功能是:進(jìn)入車輪周長和最大速度設(shè)置界面;在時(shí)間設(shè)置的時(shí)候,分別對時(shí)分秒移位設(shè)置;(5)與單片機(jī)引腳P2.1相連接的按鍵S2的功能是:在設(shè)置時(shí)間,車輪周長和最大速度時(shí),使數(shù)字加1;(6)與單片機(jī)引腳P2.2相連接的按鍵S3的功能是:在設(shè)置時(shí)間,車輪周長和最大速度時(shí),使數(shù)字減1;顯示單次里程時(shí)清零;(7)與單片機(jī)引腳P2.3相連接的按鍵的功能是:更設(shè)置完成確認(rèn)退出;進(jìn)入單次里程顯示界面;(8)單片機(jī)引腳P2.4與報(bào)警相連接。4.系統(tǒng)軟件設(shè)計(jì)

由以上硬件設(shè)計(jì)的完成,隨后與之相對應(yīng)的設(shè)計(jì)軟件部分。將所需要的功能設(shè)置需求以軟件的形式表現(xiàn)出來。在軟件設(shè)計(jì)這部分,采用的是模塊結(jié)構(gòu)設(shè)計(jì)的形式,將各個(gè)功能分成許多的小功能模塊,然后根據(jù)各個(gè)模塊來具體編寫軟件程序。模塊結(jié)構(gòu)設(shè)計(jì)的方法,簡單具體的顯示了各個(gè)部分的功能。所以,當(dāng)某個(gè)功能出現(xiàn)問題時(shí),就可以很快的有方向的尋找問題的根源,對于解決問題來說方便快捷。根據(jù)所要設(shè)計(jì)的速度里程表的功能,有以下軟件設(shè)計(jì)流程圖,如以下圖5.1所示。由以上流程圖可知,編程的基本思路為: 由T0定時(shí)1秒,期間T1計(jì)算脈沖數(shù),之后讀取TH1和TL1的數(shù)值,算出圈數(shù)。因?yàn)檐囕喼荛L可知,又是1秒的時(shí)間,所以可以由圈數(shù)計(jì)算出速度,里程則由累加計(jì)算所得。然后就是將速度,里程,時(shí)間顯示出來??蓪⑦@些編寫成子程序的形式,在主程序中調(diào)用即可。 其中,還有按鍵的控制,時(shí)間,車輪周長和最大速度設(shè)置,及報(bào)警等子程序編寫。一、軟件主程序的編寫中主要是: (1)max=80;//初始超速值 bikeside=100;//初始車輪的周 (2)開中斷,設(shè)置T0為計(jì)數(shù)模式,T1為計(jì)時(shí)模式; T1用于計(jì)算脈沖數(shù),初值設(shè)置為0; T0設(shè)置50ms產(chǎn)生一次中斷,初值設(shè)置為 TH0=(65536-50000)/256;//定時(shí)器T0高8位賦初值 TL0=(65536-50000)%256;//定時(shí)器T0低8位賦初值 在中斷中設(shè)置累計(jì)滿20次,即滿1秒后關(guān)閉T0和T1,讀取圈數(shù):

freq=(TH1*256+TL1)/8.0; //讀取圈數(shù)值 并將T0的初值賦值回去返回; (3)計(jì)算速度:v=freq*(bikeside*36/1000);//計(jì)算速度,一圈的 長度為“bikeside”單位為cm,并將其單位化為km/h; 計(jì)算里程s=s+v*1/36; //計(jì)算總路程,36本來是3600,為演示 效果,改為36,放大了100倍(4)其中還有顯示子程序,按鍵控制的時(shí)間設(shè)置,最大速度設(shè)置,車輪周長設(shè)置等子程序的調(diào)用;二、特殊功能位的聲明: sbitt=P2^0;//調(diào)時(shí)按鍵移位 sbitjia=P2^1;//加一按鍵 sbitjian=P2^2;//減一按鍵 sbitm=P2^3;//退出調(diào)時(shí)按鍵 sbitBEEP=P2^4;//蜂鳴器 sbitE=P1^2; //1602使能引腳 sbitRW=P1^1; //1602讀寫引腳 sbitRS=P1^0; //1602數(shù)據(jù)/命令選擇引腳

三、LCD液晶顯示命令函數(shù),數(shù)據(jù)函數(shù)及初始化函數(shù):(1)命令函數(shù):voidwrite_instruction(ucharx){ RS=0; RW=0; P0=x; E=1; delay(3); E=0;}(2)數(shù)據(jù)函數(shù):voidwrite_data(ucharx){ RS=1; RW=0; P0=x; E=1; delay(3); E=0;}(3)初始化函數(shù):voidLCD1602_init(void){ write_instruction(0x01);//數(shù)據(jù)指針清零 write_instruction(0x38);//16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)接口 write_instruction(0x06);//寫一個(gè)字符后,指針加1 write_instruction(0x0c);//開顯示,不顯示光標(biāo),光標(biāo)不閃爍 E=0;}四、顯示函數(shù):(1)速度顯示函數(shù):voiddisplay_v(uchary,uintx){uintb,s,g; b=x/100;//取百位s=(x%100)/10;//取十位g=x%10;//取個(gè)位//寫顯示地址,將在第1行第1列開始顯示 write_t(y,b); //將百位數(shù)字的字符常量寫入LCD write_t(y+1,s); //將十位數(shù)字的字符常量寫入LCD write_t(y+2,g); //將個(gè)位數(shù)字的字符常量寫入LCD}(2)里程顯示函數(shù): voiddisplay_s(uintx){

uintw,q,b,s,g; w=x/10000;

//取萬位 q=(x%10000)/1000; //取千位 b=((x%10000)%1000)/100;//取百位s=(((x%10000)%1000)%100)/10;//取十位g=(((x%10000)%1000)%100)%10;//取個(gè)位//寫顯示地址,將在第1行第1列開始顯示 write_t(0xc0,w); //將萬位數(shù)字的字符常量寫入LCD writ

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論