版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 專業(yè)方向模塊綜合設(shè)計</p><p> 課題:電動車速度測量顯示儀 </p><p> 班 級 測控1082 </p><p> 學(xué)生姓名 學(xué)號 </p><p> 指導(dǎo)教師
2、 </p><p><b> 設(shè)計內(nèi)容及要求</b></p><p> 檢測并顯示電動自行車實時速度</p><p> 檢測、顯示并累計電動自行車行駛里程</p><p><b> 技術(shù)參數(shù)</b></p><p> a電動車最高速度:
3、 50km/h</p><p> b電動車輪胎直徑: 14英寸</p><p> c電動車電池電壓: 24V</p><p> d檢測精度: ±1%</p><p> e顯示: 8位LED </p><p&g
4、t;<b> 設(shè)計要求</b></p><p><b> 電路圖</b></p><p><b> 程序清單</b></p><p><b> 運行結(jié)果</b></p><p><b> 方案設(shè)計與討論</b></p&
5、gt;<p><b> 速度測量原理</b></p><p> 測量一定時間間隔T內(nèi)自行車轉(zhuǎn)過的圈數(shù)Q。假設(shè)車輪的周長為L,則速度V=Q*L/T</p><p><b> 開關(guān)型霍爾傳感器</b></p><p> 霍爾傳感器是利用霍爾效應(yīng)把磁輸入信號轉(zhuǎn)換成電信號的器件。把開關(guān)型霍爾傳感器安裝在自行車
6、貼近車輪的支架上,磁鋼安裝在輻條上,當(dāng)磁鋼靠近霍爾傳感器的時候,傳感器輸出一個無抖動的低電平,單片機根據(jù)此信號可計算里程、速度等。霍爾傳感器的優(yōu)點是穩(wěn)定和安裝簡易,缺點是成本較高。</p><p> 本設(shè)計采用開關(guān)型霍爾傳感器,但由于實驗室設(shè)計所限,實際測速時并未采用,而是直接從信號發(fā)生器中產(chǎn)生低頻脈沖代替霍爾傳感器向單片機輸入脈沖信號,從而顯示相應(yīng)的速度。</p><p> LED八
7、段數(shù)碼管顯示</p><p> 8位LED顯示。其中低3位顯示速度,要求保留1位小數(shù)。高5位顯示里程,同樣要求保留1位小數(shù)。速度即時顯示,最大顯示位35.0,里程每走100米計數(shù)一次,最高顯示9999.9。</p><p><b> 系統(tǒng)概述及工作原理</b></p><p> 本系統(tǒng)由信號預(yù)處理電路、單片機8051F410、系統(tǒng)化LED
8、顯示模塊、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號處理電路包含信號放大、波形變換和波形整形、對待測信號進行放大的目的是降低對待側(cè)信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機相連的TTL信號;通過單片機的設(shè)置可使內(nèi)部定時器T0對脈沖輸入引腳進行控制,這樣能精確地算出加到引腳的單位時間內(nèi)檢測到的脈沖數(shù);設(shè)計中速度顯示采用LED模塊,通過速度換算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機
9、的口線和外圍器件,同時也簡化了顯示部分的軟件編程。</p><p><b> 流程圖</b></p><p> 系統(tǒng)軟件包括單片機和LED顯示模塊的初始化模塊、速度里程技術(shù)模塊、速度顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊、演示模塊、數(shù)據(jù)顯示模塊以及及時終端服務(wù)模塊等。</p><p> 該設(shè)計能實時地將所測的速度顯示出來,該速度里程表能將傳感器輸入到單片
10、機的脈沖信號的頻率實時地測量出來,并由串口晶體管顯示模塊實時顯示。單片機利用系統(tǒng)時鐘的計時中斷功能,并利用定時器T0的計數(shù)脈沖,然后通過計算在晶體管上即時顯示。為了方便計算要顯示數(shù)據(jù)段碼,可再將其轉(zhuǎn)換成壓縮BCD碼,然后通過查表將要顯示的數(shù)據(jù)值中每一位的壓縮BCD碼轉(zhuǎn)換成8段碼送到顯示緩沖區(qū),最后經(jīng)串口送至晶體管顯示模塊顯示所測的速度或里程。</p><p> 設(shè)計時,應(yīng)綜合考慮測速精度和系統(tǒng)反應(yīng)時間。本設(shè)計用
11、測量脈沖頻率來計算速度,因而具有較高的測速精度。為了保證系統(tǒng)的實時性,系統(tǒng)的速度轉(zhuǎn)換模塊和顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊都采用快速算法。另外,還應(yīng)盡量保證其他子模塊在編程時的通用性和高效性。本設(shè)計的速度和里程分別采用3位和5位數(shù)碼顯示。</p><p><b> 系統(tǒng)硬件設(shè)計</b></p><p><b> 410單片機實驗板</b></p&
12、gt;<p> C8051F410原理框圖</p><p> C8051F410單片機實驗板 原理圖</p><p> 霍爾傳感器速度檢測電路</p><p><b> 霍爾檢測電路</b></p><p><b> 5v降壓電路</b></p><p&g
13、t; 由于自行車提供的電壓是24V直流電壓,單片機供電電壓為5v。故需要給電路提供5v的降壓電路。本設(shè)計采用LM2576S-ADJ集成塊降壓電路:</p><p> LM2576降壓集成塊</p><p><b> 系統(tǒng)的軟件設(shè)計</b></p><p><b> 系統(tǒng)軟件框圖</b></p><
14、;p> 如圖所示,本系統(tǒng)軟件采用模塊化設(shè)計方法。整個系統(tǒng)由初始化模塊、頻率測量模塊、速度,里程計算模塊、數(shù)據(jù)轉(zhuǎn)BCD碼模塊、速度顯示模塊、里程顯示模塊、數(shù)據(jù)存儲,讀取模塊、定時器中斷服務(wù)模塊以及其他功能模塊組成。</p><p><b> 系統(tǒng)軟件框圖</b></p><p><b> 心得體會</b></p><
15、p> 本設(shè)計以8051F410單片機為核心,通過霍爾傳感器來檢測電動車的運轉(zhuǎn)情況進而實現(xiàn)電動自行車的速度,里程的計算及里程的累計,存儲,最后用8位的LED能直觀的將速度與里程顯示給用戶,并且在速度高于一定的值時LED可自動關(guān)掉,從而達到智能速度里程表。</p><p> 在此課程設(shè)計之前,我們都懷著一種好奇而又焦急的心情,急切的想知道做單片機課程設(shè)計是多么有意義且有用的。所以我們每個人都積極主動地投入的
16、設(shè)計之中,在兩個周的時間內(nèi)我們要完成的工作看起來很少,但是老師說不容樂觀。在組長的帶領(lǐng)下我們認真的走好每一步。</p><p> 其間的歡欣與苦楚這里我就不在此敘述了,我們真的都學(xué)到了很多東西,知道了知識的重要性,為什么高科技才具有價值,因為付出的很多很多。我在此首先要感謝張亞華老師,是他在我們一籌莫展的時候給了我們提醒,致使我們順利地完成了本課程設(shè)計。同時感謝設(shè)計過程中組員們的相互配合及鼓勵,使我們堅決的走下
17、去......</p><p><b> 參考文獻</b></p><p> [1]《單片機原理及應(yīng)用》 夏路易 主編 電子工業(yè)出版社</p><p> [2 ]C8051F410/1/2/3 混合信號ISP FLASH微控制器</p><p> 網(wǎng)站:http://www.avrw.com/article
18、/art_101_3869.htm</p><p><b> 附錄</b></p><p> 速度里程表顯示C程序</p><p> #include "C8051F410.h"</p><p> void Init_Device(void); </p><p&g
19、t; void delayms(unsigned char i);</p><p> void delayus(void);</p><p> void toch452(unsigned int cmda);</p><p> void display(void);//顯示函數(shù) </p><p> void Flash_PageEr
20、ase (unsigned int addr);//Flash字節(jié)擦除函數(shù)</p><p> void Flash_ByteWrite (unsigned int addr,char byte);//Flash 字節(jié)寫函數(shù)</p><p> unsigned char Flash_ByteRead (unsigned int addr);//Flash 字節(jié)讀函數(shù)</p>
21、<p> unsigned char i,dispbuff[8]={0,0,0,0,0,0,0,0}; //顯示緩沖 全零</p><p> sbit CH452_SCL = P1^3;</p><p> sbit CH452_SDA = P1^4; </p><p> sbit CH452_KEY = P1^5;</p>
22、<p> unsigned int CMD,DAT,DAT1;</p><p> bit flag,mark;</p><p> unsigned int n,ss;//定時器0溢出中斷次數(shù)</p><p> unsigned long v,mile,count;</p><p> unsigned char code h
23、ex[21]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6, //0123456789</p><p> 0xFD,0x61,0xDB,0xF3,0x67,0xB7,0xBF,0xE1,0xFF,0xF7,0x00}; //0.1.2.3.4.5.6.7.8.9. </p><p><b> main
24、()</b></p><p> { float SP;</p><p> Init_Device(); //初始化</p><p> delayms(100);</p><p> P1=P1&0x7f;</p><p> CMD = 0x9103;//設(shè)置CH452系統(tǒng)參數(shù)<
25、;/p><p> toch452(CMD);</p><p> CMD = 0x9500; //設(shè)置CH452顯示參數(shù) </p><p> toch452(CMD);</p><p> display();</p><p> for (i=0;i<8;i++)</p><p>
26、 {dispbuff[i]=20;</p><p><b> }</b></p><p> display();</p><p><b> while(1)</b></p><p><b> {</b></p><p> if (flag==1
27、)</p><p><b> {</b></p><p><b> flag=0;</b></p><p><b> if(n>38)</b></p><p><b> {</b></p><p> SP=340.2
28、8/n;</p><p> v=SP*4032;</p><p> dispbuff[2]=v/10000;</p><p> dispbuff[1]=v%10000/1000+10;</p><p> dispbuff[0]=v%1000/100;</p><p> display();</p>
29、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> for (i=0;i<3;i++)</p><p><b> { </b></p>
30、<p> dispbuff[i]=20; }</p><p> display(); </p><p><b> }</b></p><p><b> }</b></p><p> if(mark==1)</p><p><b>
31、 { mark=0;</b></p><p> Flash_PageErase (0x1b00);//Flash字節(jié)擦除函數(shù)</p><p> Flash_ByteWrite (0x1b00,count);//Flash 字節(jié)寫函數(shù)</p><p> mile=Flash_ByteRead (0x1b00);//Flash 字節(jié)讀函數(shù)</p
32、><p> dispbuff[7]=mile/10000;</p><p> dispbuff[6]=mile%10000/1000;</p><p> dispbuff[5]=mile%1000/100;</p><p> dispbuff[4]=mile%100/10+10;</p><p> dispbuf
33、f[3]=mile%10;</p><p> display();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /* 命令、數(shù)據(jù)送CH452 */</
34、p><p> void toch452(unsigned int cmda) </p><p><b> {</b></p><p> unsigned char j;</p><p> CH452_SDA = 0;</p><p> delayus();</p><p
35、> CH452_SCL = 0;</p><p> delayus();</p><p> CH452_SCL = 1;</p><p> delayus();</p><p> CH452_SCL = 0;</p><p> for (j=0;j<16;j++)</p><
36、p><b> {</b></p><p> if(cmda>=0x8000 ) </p><p> CH452_SDA = 1;</p><p><b> else</b></p><p> CH452_SDA = 0;</p><p> CH45
37、2_SCL = 1;</p><p> delayus();</p><p> CH452_SCL = 0;</p><p> cmda = cmda << 1 ;</p><p><b> };</b></p><p> CH452_SDA = 1;</p>
38、<p> delayus();</p><p> CH452_SCL = 1;</p><p><b> }</b></p><p> /* mS延時 */</p><p> void delayms(unsigned char i)</p><p> {unsigned
39、intj;</p><p> do{for(j=0;j!=1000;j++)</p><p><b> {;}</b></p><p> }while(--i);</p><p><b> }</b></p><p> /* uS延時 */</p>
40、<p> void delayus(void)</p><p> { unsigned k;</p><p> for (k=0;k<10;k++)</p><p><b> {;}</b></p><p><b> } </b></p>&l
41、t;p> // Initialization function for device,</p><p> // Call Init_Device() from your main program</p><p> void Init_Device(void)</p><p><b> {</b></p><p&
42、gt; PCA0MD &= ~0x40;//禁止看門狗</p><p> PCA0MD = 0x00;</p><p> OSCICN = 0x84;//系統(tǒng)時鐘內(nèi)部振蕩器8分頻(24.5M)</p><p> TMOD = 0x02;//工作方式2</p><p> TL0 = 0x
43、06;//定時器初始化</p><p> TH0 = 0x06;</p><p> TR0 = 1;//置1允許定時器工作</p><p> IT0 = 1;//外部中斷0邊沿觸發(fā)</p><p> CKCON =0x00;//定時器時鐘選擇系統(tǒng)時鐘12分頻</p><p
44、> P0SKIP = 0x02;</p><p> P1MDIN = 0xFE;</p><p> P1SKIP = 0x01;//對應(yīng)的P1.n被交叉開關(guān)跳過</p><p> XBR1 = 0x40;//使能交叉開關(guān) </p><p> IE = 0x83;//允許定時器INT0中
45、斷</p><p><b> }</b></p><p> void int0() interrupt 0 //外部中斷0處理函數(shù)</p><p><b> {</b></p><p> static unsigned m;</p><p><b> m+
46、+;</b></p><p> if(m==270)</p><p><b> { m=0;</b></p><p><b> count++;</b></p><p><b> mark=1;</b></p><p> if(
47、count>99999) count=0;</p><p><b> }</b></p><p> n=ss;//ss送給全局變量n</p><p><b> flag=1;</b></p><p><b> ss=0;</b></p><p&
48、gt;<b> }</b></p><p> void timer0() interrupt 1 //定時中斷(T0)服務(wù)</p><p><b> {</b></p><p> if(ss<65535)</p><p><b> ss++; </b><
49、;/p><p><b> }</b></p><p> void display(void)//顯示程序</p><p><b> {</b></p><p> unsigned char i;</p><p> DAT1 = 0xA100;</p>
50、;<p> for (i=0;i<8;i++)</p><p><b> { </b></p><p> bit EA_SAVE=EA;//保存EA</p><p> char xdata*data pwrite;//Flash寫指針</p><p> EA=0;//禁止中斷</
51、p><p> VDM0CN=0x80;//使能VDD控制</p><p> RSTSRC=0x02;//VDD監(jiān)控器作為復(fù)位源</p><p> pwrite=(char xdata*)addr;//指向地址</p><p> FLKEY=0xA5;//輸入關(guān)鍵字</p><p> FLKEY=0xF1;//輸入
52、關(guān)鍵字</p><p> PSCTL|=0x03;//使能擦除與寫入PSWE=1;PSEE=1</p><p> VDM0CN=0x80;//使能VDD監(jiān)控器</p><p> RSTSRC=0x02;//VDD監(jiān)控器作為復(fù)位源</p><p> *pwrite=0;//頁擦除</p><p> PSCTL&
53、amp;=~0x03;//禁止擦除</p><p> EA=EA_SAVE;//恢復(fù)中斷</p><p><b> }</b></p><p> void Flash_ByteWrite (unsigned int addr,char byte)//Flash 字節(jié)寫函數(shù)</p><p><b> {&
54、lt;/b></p><p> bit EA_SAVE=EA;//保存EA</p><p> char xdata*data pwrite;//Flash寫指針</p><p> EA=0;//禁止中斷</p><p> VDM0CN=0x80;//使能VDD監(jiān)控器</p><p> RSTSRC=0x
55、02;//使能VDD監(jiān)控器作為復(fù)位源</p><p> pwrite=(char xdata*)addr;</p><p> FLKEY=0xA5;//寫關(guān)鍵字</p><p> FLKEY=0xF1;//寫關(guān)鍵字</p><p> PSCTL|=0x01;//使能寫PSWE=1</p><p> VDM0C
56、N=0x80;//使能VDD監(jiān)控器</p><p> RSTSRC=0x02;//使能VDD作為復(fù)位源</p><p> *pwrite=byte;//寫一個字節(jié)</p><p> PSCTL &=~0x01;//禁止寫PSWE=0</p><p> EA=EA_SAVE;//恢復(fù)中斷</p><p>
57、<b> }</b></p><p> unsigned char Flash_ByteRead (unsigned int addr)//Flash 字節(jié)讀函數(shù)</p><p><b> {</b></p><p> bit EA_SAVE=EA;//保存EA</p><p> char
58、 code*data pread;//指向Flash讀指針</p><p> unsigned char byte;</p><p> EA=0;//禁止中斷</p><p> pread=(char code*)addr;</p><p> byte=*pread;//讀一個字節(jié)</p><p> EA=E
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電動車里程速度測量系統(tǒng)的設(shè)計
- 電動車速度里程計設(shè)計.譚菊嫻終稿
- 微機原理課程設(shè)計汽車速度控制
- 軌道礦車速度測量記錄分析儀的設(shè)計.pdf
- 課程設(shè)計報告--溫度顯示儀
- 電動車仿真設(shè)計-課程設(shè)計報告
- 電動童車速度測量系統(tǒng)的研究與實現(xiàn).pdf
- 溫度測量顯示電路課程設(shè)計--溫度測量顯示電路設(shè)計
- 課程設(shè)計---霍爾傳感器測量車速系統(tǒng)設(shè)計
- 電動車車速監(jiān)測系統(tǒng)設(shè)計與制作.docx
- 糧庫溫度測量顯示系統(tǒng)課程設(shè)計
- 課程設(shè)計---溫度測量顯示電路設(shè)計
- 課程設(shè)計-- 車速檢測系統(tǒng)
- 課程設(shè)計---電動機測速及顯示
- 溫度測量及時鐘顯示的課程設(shè)計
- 新型火車速度測量系統(tǒng)設(shè)計與開發(fā).pdf
- 電動車課程設(shè)計---電動自行車廠規(guī)劃與設(shè)計
- 自行車速度里程實時顯示系統(tǒng)設(shè)計修改.doc
- 汽車速度測量方法研究.pdf
- 自動控制原理課程設(shè)計--電動車控制系統(tǒng)校正
評論
0/150
提交評論