2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論