單片機(jī)秒表系統(tǒng)設(shè)計課程設(shè)計--基于8051的單片機(jī)秒表系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計</b></p><p>  題目名稱:基于8051的單片機(jī)秒表系統(tǒng)設(shè)計</p><p><b>  單片機(jī)秒表系統(tǒng)設(shè)計</b></p><p>  摘要:本實驗是基于8051 單片機(jī)所設(shè)計的,利用單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理可以實現(xiàn)秒表的計數(shù)以及計數(shù)的開啟/暫停/繼續(xù)

2、與復(fù)位。使用LED數(shù)碼七段數(shù)碼管予以顯示。</p><p>  關(guān)鍵詞:8051 七段數(shù)碼管 秒表系統(tǒng)</p><p><b>  1.1 目的:</b></p><p>  1、利用單片機(jī)定時器/計數(shù)器中斷設(shè)計秒表,從而實現(xiàn)秒、十分之一秒的計時。</p><p>  2、綜合運(yùn)用所學(xué)的《單片機(jī)原理與應(yīng)用》理論知識,通

3、過實踐加強(qiáng)對所學(xué)知識的理解,具備設(shè)計單片機(jī)應(yīng)用系統(tǒng)的能力。3、 通過本次系統(tǒng)設(shè)計加深對單片機(jī)掌握定時器、外部中斷的設(shè)置和編程原理的全面認(rèn)識復(fù)習(xí)和掌握,對單片機(jī)實際的應(yīng)用作進(jìn)一步的了解。4、 通過本次系統(tǒng)設(shè)計,增強(qiáng)自己的動手能力。認(rèn)識單片機(jī)在日常生活中的應(yīng)用的廣泛性,實用性。1.2用途與功能:</p><p>  本系統(tǒng)利用單片機(jī)的定時器/計數(shù)器定時和記數(shù)的原理,通過采用protel仿真軟件來模擬實現(xiàn)。模擬利

4、用8051單片機(jī)、LED數(shù)碼管以及控件來控制秒表的計數(shù)以及計數(shù)的開啟/暫停/繼續(xù)與復(fù)位!其中有兩個數(shù)碼管用來顯示數(shù)據(jù),一個數(shù)碼管顯示秒(兩位),另一個數(shù)碼管顯示十分之一秒,十分之一秒的數(shù)碼管計數(shù)從0~9,滿十進(jìn)一后顯示秒的數(shù)碼管的數(shù)字加一,并且十分之一秒顯示清零重新從零計數(shù)。計秒數(shù)碼管采用兩位的數(shù)碼管,當(dāng)計數(shù)超過范圍是所有數(shù)碼管全部清零重新計數(shù)。</p><p><b>  二、硬件設(shè)計</b&g

5、t;</p><p>  2.1 硬件設(shè)計思想</p><p>  8051單片機(jī)芯片一個、LED數(shù)碼顯示管三個,低壓電源、開關(guān)(按鈕)兩個、電阻、電容及導(dǎo)線若干。芯片介紹:8051是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器,8位微處理器,俗稱單片機(jī)。</p><p>  主要特性: ·4K字節(jié)可編程閃爍存儲器 ·壽命:1000寫/擦循環(huán)&

6、#183;數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0Hz-24Hz·三級程序存儲器鎖定·128*8位內(nèi)部RAM·4*8可編程I/O線·兩個16位定時器/計數(shù)器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路 </p><p>  由于條件限制本系統(tǒng)采用軟件模擬硬件系統(tǒng),采用proteu

7、s軟件進(jìn)行模擬設(shè)計及調(diào)試工作。</p><p>  圖1 七段數(shù)碼管引腳圖</p><p>  圖2  8051單片機(jī)外部引腳圖</p><p>  三、試驗設(shè)計原理圖 </p><p>  通過protel仿真畫的原理圖</p><p>  圖3 系統(tǒng)設(shè)計電路圖</p><

8、p><b>  四、軟件設(shè)計分析</b></p><p><b>  程序流程圖:</b></p><p><b>  實驗程序:</b></p><p>  #include <reg51.H></p><p>  {sbit sta_end=P3^4;&l

9、t;/p><p>  sbit reset=P3^7;</p><p>  unsigned char code table0[]={0x3f,0x06,0x5b,0x4f,0x66, </p><p>  0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  unsigned char code table1[]={0xc0

10、,0xf9,0xa4,0xb0,0x99,</p><p>  0x92,0x82,0xf8,0x80,0x90};</p><p>  /*聲明second10用于計數(shù)十分之一秒變化,second1用于記錄秒的個*/ /*位,second2用于記錄秒的十位*/</p><p>  unsigned int second10,second1,second

11、2;</p><p>  bit bdata flag;</p><p>  /*以下是設(shè)置延時功能的函數(shù)*/</p><p>  void delay() </p><p>  { unsigned char i,j;</p><p>  for(i=90;i>0;i--

12、)</p><p>  for(j=200;j>0;j--);</p><p><b>  }</b></p><p><b>  }</b></p><p>  /*以下是設(shè)置時間的函數(shù)*/</p><p>  void setTime() </p>

13、<p>  { </p><p>  second10++;</p><p>  if(second10==10) /*當(dāng)十分之一秒計數(shù)到十后從零重新計時*/</p><p><b>  {</b></p><p>  second10=0;

14、 /*同時秒計時個位加一*/</p><p>  second1++;</p><p>  if(second1==10) /*當(dāng)秒計數(shù)個位到十后從零重新計時*/</p><p><b>  {</b></p><p>  second1=0;</p>

15、<p>  second2++; /*同時秒計時十位加一*/</p><p>  if(second2==6)</p><p>  second2=0;</p><p><b>  }</b></p><p><b>  }</b></p><

16、p><b>  }</b></p><p>  /*以下是向LED管輸數(shù)據(jù)并使之顯示的函數(shù)*/</p><p>  void dispact() </p><p><b>  {</b></p><p>  P3=0x

17、fe; </p><p>  P0=table1[second1]; </p><p><b>  delay();</b></p><p><b>  P3=0xfd;</b></p><p>  P0=table1[second2];</

18、p><p><b>  delay();</b></p><p>  P2=table0[second10];</p><p><b>  }</b></p><p>  /*以下是設(shè)置時間函數(shù)和輸數(shù)據(jù)函數(shù)被此函數(shù)調(diào)用實現(xiàn),利用定時器中斷*/</p><p>  /*十分之一秒

19、刷新一次,實現(xiàn)十分之一秒進(jìn)一*/</p><p>  Timer0 () interrupt 1 using 1 </p><p><b>  {</b></p><p>  TH0 = (65535 - 50000)/256;</p><p>  TL0 = (65535 - 50000)%256;<

20、;/p><p><b>  if(flag)</b></p><p>  setTime();</p><p>  dispact();</p><p><b>  }</b></p><p>  void main(void) </p&

21、gt;<p><b>  {</b></p><p>  TMOD = 0x01;</p><p>  TH0 = (65535 - 50000)/256; /*定時器賦初值*/</p><p>  TL0 = (65535 - 50000)%256;</p><p><b>

22、  flag = 0;</b></p><p>  EA = 1; /*cpu開中斷*/</p><p>  TR0 = 1; /*利用定時器0*/</p><p>  ET0 = 1; /*外部中

23、斷允許*/</p><p><b>  do</b></p><p><b>  {</b></p><p>  if(!sta_end)</p><p><b>  {</b></p><p>  if(flag == 0)</p>&l

24、t;p><b>  flag = 1;</b></p><p>  else flag = 0; </p><p><b>  }</b></p><p>  if(!reset) /*復(fù)位設(shè)置,全部清零*/</p><p><b&g

25、t;  {</b></p><p><b>  flag = 0;</b></p><p>  second10 = 0;</p><p>  second1 = 0;</p><p>  second2 = 0;</p><p><b>  }</b></

26、p><p>  }while(1);</p><p><b>  }</b></p><p><b>  五、系統(tǒng)調(diào)試</b></p><p>  利用8051單片機(jī)設(shè)計一個1/10秒表,最大能顯示99.9秒,具有置位,復(fù)位,啟停等功能。用C語言編程,數(shù)碼管顯示!</p><p>

27、;  1、確立總體設(shè)計方案;</p><p>  2、系統(tǒng)整體框圖設(shè)計;</p><p>  3、各個單元電路設(shè)計與分析;</p><p>  4、應(yīng)用軟件設(shè)計與調(diào)試;</p><p>  5、系統(tǒng)仿真與調(diào)試;</p><p>  6、分析結(jié)果,得出結(jié)論以及展望。</p><p><b&g

28、t;  六、系統(tǒng)設(shè)計總結(jié)</b></p><p>  通過這次的秒表設(shè)計,我對一些專業(yè)知識和電子設(shè)計有了更深的了解,同時也嘗試著去應(yīng)用自己的所掌握的知識。本次設(shè)計主要是對已學(xué)習(xí)的模擬電子技術(shù)、數(shù)字電子技術(shù)和單片機(jī)的綜合應(yīng)用,同時加上電路等知識,設(shè)計完成了利用軟件模擬的秒表。經(jīng)過幾天的奮戰(zhàn),我感受很深。 </p>&

29、lt;p>  在設(shè)計過程中深感自己在培養(yǎng)動手能力這方面還需很大的努力。單片機(jī)課程設(shè)計不僅給我提供了一個很好的展現(xiàn)應(yīng)用自己所掌握的知識的平臺,又是檢驗自己所學(xué)知識的一次考核。在設(shè)計的過程中我也不可避免的遇到了很多的問題。但是我們通過努力解決并獲得經(jīng)驗獲得知識。</p><p>  這一簡單設(shè)計可以進(jìn)一步擴(kuò)展為1/100秒的秒表系統(tǒng)。也可以運(yùn)用8255芯片進(jìn)行擴(kuò)展。</p><p>&l

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論