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

下載本文檔

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

文檔簡介

1、<p>  專業(yè)方向模塊綜合設計</p><p>  課題:電動車速度測量顯示儀 </p><p>  班 級 測控1082 </p><p>  學生姓名 學號 </p><p>  指導教師

2、 </p><p><b>  設計內(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>  設計要求</b></p><p><b>  電路圖</b></p><p><b>  程序清單</b></p><p><b>  運行結(jié)果</b></p><p><b>  方案設計與討論</b></p&

5、gt;<p><b>  速度測量原理</b></p><p>  測量一定時間間隔T內(nèi)自行車轉(zhuǎn)過的圈數(shù)Q。假設車輪的周長為L,則速度V=Q*L/T</p><p><b>  開關(guān)型霍爾傳感器</b></p><p>  霍爾傳感器是利用霍爾效應把磁輸入信號轉(zhuǎn)換成電信號的器件。把開關(guān)型霍爾傳感器安裝在自行車

6、貼近車輪的支架上,磁鋼安裝在輻條上,當磁鋼靠近霍爾傳感器的時候,傳感器輸出一個無抖動的低電平,單片機根據(jù)此信號可計算里程、速度等。霍爾傳感器的優(yōu)點是穩(wěn)定和安裝簡易,缺點是成本較高。</p><p>  本設計采用開關(guān)型霍爾傳感器,但由于實驗室設計所限,實際測速時并未采用,而是直接從信號發(fā)生器中產(chǎn)生低頻脈沖代替霍爾傳感器向單片機輸入脈沖信號,從而顯示相應的速度。</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)由信號預處理電路、單片機8051F410、系統(tǒng)化LED

8、顯示模塊、串口數(shù)據(jù)存儲電路和系統(tǒng)軟件組成。其中信號處理電路包含信號放大、波形變換和波形整形、對待測信號進行放大的目的是降低對待側(cè)信號的幅度要求;波形變換和波形整形電路則用來將放大的信號轉(zhuǎn)換成可與單片機相連的TTL信號;通過單片機的設置可使內(nèi)部定時器T0對脈沖輸入引腳進行控制,這樣能精確地算出加到引腳的單位時間內(nèi)檢測到的脈沖數(shù);設計中速度顯示采用LED模塊,通過速度換算得來的里程數(shù)采用I2C總線并通過E2PROM來存儲,既節(jié)省了所需單片機

9、的口線和外圍器件,同時也簡化了顯示部分的軟件編程。</p><p><b>  流程圖</b></p><p>  系統(tǒng)軟件包括單片機和LED顯示模塊的初始化模塊、速度里程技術(shù)模塊、速度顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊、演示模塊、數(shù)據(jù)顯示模塊以及及時終端服務模塊等。</p><p>  該設計能實時地將所測的速度顯示出來,該速度里程表能將傳感器輸入到單片

10、機的脈沖信號的頻率實時地測量出來,并由串口晶體管顯示模塊實時顯示。單片機利用系統(tǒng)時鐘的計時中斷功能,并利用定時器T0的計數(shù)脈沖,然后通過計算在晶體管上即時顯示。為了方便計算要顯示數(shù)據(jù)段碼,可再將其轉(zhuǎn)換成壓縮BCD碼,然后通過查表將要顯示的數(shù)據(jù)值中每一位的壓縮BCD碼轉(zhuǎn)換成8段碼送到顯示緩沖區(qū),最后經(jīng)串口送至晶體管顯示模塊顯示所測的速度或里程。</p><p>  設計時,應綜合考慮測速精度和系統(tǒng)反應時間。本設計用

11、測量脈沖頻率來計算速度,因而具有較高的測速精度。為了保證系統(tǒng)的實時性,系統(tǒng)的速度轉(zhuǎn)換模塊和顯示數(shù)據(jù)轉(zhuǎn)BCD碼模塊都采用快速算法。另外,還應盡量保證其他子模塊在編程時的通用性和高效性。本設計的速度和里程分別采用3位和5位數(shù)碼顯示。</p><p><b>  系統(tǒng)硬件設計</b></p><p><b> ?。矗保皢纹瑱C實驗板</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的降壓電路。本設計采用LM2576S-ADJ集成塊降壓電路:</p><p>  LM2576降壓集成塊</p><p><b>  系統(tǒng)的軟件設計</b></p><p><b>  系統(tǒng)軟件框圖</b></p><

14、;p>  如圖所示,本系統(tǒng)軟件采用模塊化設計方法。整個系統(tǒng)由初始化模塊、頻率測量模塊、速度,里程計算模塊、數(shù)據(jù)轉(zhuǎn)BCD碼模塊、速度顯示模塊、里程顯示模塊、數(shù)據(jù)存儲,讀取模塊、定時器中斷服務模塊以及其他功能模塊組成。</p><p><b>  系統(tǒng)軟件框圖</b></p><p><b>  心得體會</b></p><

15、p>  本設計以8051F410單片機為核心,通過霍爾傳感器來檢測電動車的運轉(zhuǎn)情況進而實現(xiàn)電動自行車的速度,里程的計算及里程的累計,存儲,最后用8位的LED能直觀的將速度與里程顯示給用戶,并且在速度高于一定的值時LED可自動關(guān)掉,從而達到智能速度里程表。</p><p>  在此課程設計之前,我們都懷著一種好奇而又焦急的心情,急切的想知道做單片機課程設計是多么有意義且有用的。所以我們每個人都積極主動地投入的

16、設計之中,在兩個周的時間內(nèi)我們要完成的工作看起來很少,但是老師說不容樂觀。在組長的帶領下我們認真的走好每一步。</p><p>  其間的歡欣與苦楚這里我就不在此敘述了,我們真的都學到了很多東西,知道了知識的重要性,為什么高科技才具有價值,因為付出的很多很多。我在此首先要感謝張亞華老師,是他在我們一籌莫展的時候給了我們提醒,致使我們順利地完成了本課程設計。同時感謝設計過程中組員們的相互配合及鼓勵,使我們堅決的走下

17、去......</p><p><b>  參考文獻</b></p><p>  [1]《單片機原理及應用》 夏路易 主編 電子工業(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;//設置CH452系統(tǒng)參數(shù)<

25、;/p><p>  toch452(CMD);</p><p>  CMD = 0x9500; //設置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;//對應的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)服務</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)控器作為復位源</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)控器作為復位源</p><p>  *pwrite=0;//頁擦除</p><p>  PSCTL&

53、amp;=~0x03;//禁止擦除</p><p>  EA=EA_SAVE;//恢復中斷</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)控器作為復位源</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作為復位源</p><p>  *pwrite=byte;//寫一個字節(jié)</p><p>  PSCTL &=~0x01;//禁止寫PSWE=0</p><p>  EA=EA_SAVE;//恢復中斷</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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論