數(shù)字式秒表課程設計_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)字式秒表</b></p><p>  設計題目 數(shù)字式秒表 </p><p>  學 院 礦業(yè)技術學院 </p><p>  專 業(yè) 電氣與自動化 </p><p><b>  摘 要</b></p

2、><p>  單片機是集CPU,RAM,ROM,定時,計數(shù)和多種接口于一體的微控制器。他體積小,成本低,功能強,廣泛應用于智能產(chǎn)品和工業(yè)自動化上。而51單片機是各單片機中最位典型和最有代表性的一種。本文通過對一個能實現(xiàn)定時,時鐘,日歷顯示功能的時間系統(tǒng)的學習,介紹了51單片機,液晶顯示屏LCD1602,時鐘芯片DS1302等。本以此設計一個智能電子鐘系統(tǒng),本系統(tǒng)能實現(xiàn)實現(xiàn)其基本的計時功能,并添加了年月日的計時顯示功能

3、,秒表功能,鬧鐘功能,并能夠自定義任意時刻開/關屏等多種功能。本文設計的是基于單片機的秒表模擬系統(tǒng),本系統(tǒng)設計以AT89C51單片機為核心,利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時實現(xiàn)起、停、歸零操作,配合軟件延時實現(xiàn)秒表計時,并用LED數(shù)碼管動態(tài)顯示計時結(jié)果,其結(jié)果范圍為0~99.9秒。</p><p>  關鍵字:單片機,秒表,系統(tǒng)設計,AT89C51單片機。</p><p><

4、b>  目 錄</b></p><p><b>  0.綜述:1 </b></p><p>  1.總體設計內(nèi)容1 </p><p>  2 系統(tǒng)硬件設計2 </p><p>  2.1單片機的選用:2 </p><p>  2.2單片機主機系統(tǒng)電路的設計4 &l

5、t;/p><p>  3軟件設計分析4 </p><p>  3.1程序流程圖:4 </p><p>  3.2子程序模塊設計:7 </p><p>  4系統(tǒng)調(diào)試及結(jié)果8 </p><p>  5系統(tǒng)設計總結(jié)9 </p><p>  課程設計體會10 </p><p

6、><b>  參考文獻11 </b></p><p>  附錄1 元件清單12 </p><p>  附錄2 系統(tǒng)電路圖13 </p><p>  附錄3 源程序14 </p><p><b>  0. 綜述:</b></p><p>  中國使用單片機的

7、歷史只有短短的30年,在初始的短短五年時間里發(fā)展極為迅速??v觀我們現(xiàn)在生活的各個領域,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù) 處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機。以前沒有單片機時,這些東西也能做,但是只能使用復雜的模擬電路,然而這樣做出來的產(chǎn)品不僅體積大,而且成本高,并且由于長期使用,元器件不斷老化,控制的精度自然也會達不到標準。

8、在單片機產(chǎn)生后,我們就將控制這些東西變?yōu)橹悄芑?,我們只需要在單片機外圍接一點簡單的接口電路,核心部分只是由人為的寫入程序來完成。這樣產(chǎn)品的體積變小了,成本也降低了,長期使用也不會擔心精度達不到了。所以,它的魔力不僅是在現(xiàn)在,在將來將會有更多的人來接受它、使用它。據(jù)統(tǒng)計,我國的單片機年容量已達3億片,且每年以大約20%的速度增長,但相對于世界市場我國的占有率還不到1%。特別是沿海地區(qū)的玩具廠等生產(chǎn)產(chǎn)品多數(shù)用到單片機,并不斷地輻射向內(nèi)地。

9、 所以,學習單片機在我國是有著廣闊前景的。 </p><p>  1.總體設計內(nèi)容

10、 </p><p>  1、利用單片機定時器/計數(shù)器中斷設計秒表,從而實現(xiàn)秒、十分之一秒的計時。</p><p>  2、綜合運用所學的《單片機原理與應用》理論知識,通過實踐加強對所學知識的理解,具備設計單片機應用系統(tǒng)的能力。 3、 通過本次系統(tǒng)設計加深對單片機掌握定時器、外部中斷的設置和編程原理的全面認識復習和掌握,對單片機實際的應用作進一步的了解。

11、 4、 通過本次系統(tǒng)設計,增強自己的動手能力。認識單片機在日常生活中的應用的廣泛性,實用性。 本系統(tǒng)利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,通過采用proteus仿真軟件來模擬實現(xiàn)。模擬利用AT89C51單片機、LED數(shù)碼管以及控件來控制秒表的計數(shù)以及計數(shù)的開啟/暫停/繼續(xù)與復位! 其中有兩個數(shù)碼管用來顯示數(shù)據(jù),一個數(shù)碼管顯示秒(兩位),另一個數(shù)碼管顯示十分之一秒,十分之一秒的數(shù)碼管計數(shù)從0~9,滿十進一后顯示秒的數(shù)

12、碼管的數(shù)字加一,并且十分之一秒顯示清零重新從零計數(shù)。計秒數(shù)碼管采用兩位的數(shù)碼管,當計數(shù)超過范圍是所有數(shù)碼管全部清零重新計數(shù)。</p><p><b>  2 系統(tǒng)硬件設計</b></p><p>  Atmel89C51單片機芯片一個、LED數(shù)碼顯示管三個,低壓電源、開關(按鈕)兩個、電阻、電容及導線若干。芯片介紹:AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存

13、儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,AT

14、MEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  2.1單片機的選用:</p><p>  Atmel89C51單片機的主要特點:·4K字節(jié)可編程閃爍存儲器 ·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時間:10年·全靜態(tài)工作:0H

15、z-24Hz·三級程序存儲器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個16位定時器/計數(shù)器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時鐘電路 </p><p>  由于條件限制本系統(tǒng)采用軟件模擬硬件系統(tǒng),采用proteus軟件進行模擬設計及調(diào)試工作。</p><

16、p>  圖1 共陽極七段數(shù)碼管引腳圖</p><p>  圖2  Atmel89C51單片機外部引腳圖</p><p>  2.2單片機主機系統(tǒng)電路的設計</p><p>  圖4 單片機主機系統(tǒng)電路</p><p><b>  3軟件設計分析</b></p><p><b

17、>  3.1程序流程圖:</b></p><p><b>  (1)定時器1程序</b></p><p>  用定時器0實現(xiàn)定時1秒,定時器1實現(xiàn)定時10毫秒,定時初值都是0D8F0H,</p><p>  這里只寫定時1秒的流程圖,如下所示:</p><p>  圖5 定時1秒流程圖</p&g

18、t;<p>  (2)主程序:采用分支結(jié)構,通過對按鍵的掃描,判斷要實現(xiàn)什么功能,然后通過調(diào)用子程序來實現(xiàn)所需要的功能。</p><p><b>  圖6 系統(tǒng)總流程圖</b></p><p>  3.2子程序模塊設計:</p><p><b>  延時功能的函數(shù)</b></p><p&g

19、t;  根據(jù)選用芯片的內(nèi)部晶振周期與程序的執(zhí)行周期推算出程序執(zhí)行的經(jīng)驗延時。</p><p>  void delay() </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p>  for(i=90;i>0;i--

20、)</p><p>  for(j=200;j>0;j--);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  時間進位函數(shù)</b></p><p>  從毫秒記起,每次自加滿10進入下一

21、循環(huán)即進一位。</p><p>  void setTime() </p><p>  { </p><p>  second10++;</p><p>  if(second10==10) /*當十分之一秒計數(shù)到十后從零重新計時*/</p><p><b

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

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

24、lt;/p><p><b>  }</b></p><p><b>  }</b></p><p>  LED管輸數(shù)據(jù)并使之顯示子程序</p><p>  通過給P3送入不同值,給十秒與秒顯示LED送入顯示值。P2為單獨LED顯示毫秒。</p><p>  void dispac

25、t() </p><p><b>  {</b></p><p>  P3=0xfe; </p><p>  P0=table1[second1]; </p><p><b>  del

26、ay();</b></p><p><b>  P3=0xfd;</b></p><p>  P0=table1[second2];</p><p><b>  delay();</b></p><p>  P2=table0[second10];</p><p&

27、gt;<b>  }</b></p><p><b>  4系統(tǒng)調(diào)試及結(jié)果</b></p><p>  利用51單片機設計一個1/100秒表,最大能顯示99.99秒,具有置位,復位,啟停等功能。用C語言編程,數(shù)碼管顯示!</p><p>  圖7 調(diào)試運行結(jié)果</p><p><b> 

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

29、>  在設計過程中深感自己在培養(yǎng)動手能力這方面還需很大的努力。單片機課程設計不僅給我提供了一個很好的展現(xiàn)應用自己所掌握的知識的平臺,又是檢驗自己所學知識的一次考核。在設計的過程中我也不可避免的遇到了很多的問題。尤其是在調(diào)試過程中,會因為某些原因出不來結(jié)果,但通過老師對我的幫助最后還是成功的完成了這次的設計。經(jīng)過過這次的系統(tǒng)設計,我也發(fā)現(xiàn)了不少自己不會的知識,通過查詢各方面資料,我也進步了很多,也學會了很多上課時沒掌握的東西, 最后

30、在調(diào)試結(jié)果出來后,我更是無比的興奮,無比的自豪??傊?通過這次電子課程設計,我對自己的知識有了更好的掌握和應用,這使我在以后的學習和生活中受用終身。</p><p><b>  課程設計體會</b></p><p>  經(jīng)過一個星期的課程設計,過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時激情高漲到最后汗水背后的復雜心情,點點滴滴無不令我回味無長

31、。在xx老師的指導下,我順利完成了課程設計。讓我學到了以下幾點:</p><p>  1、將學習的理論知識通過實驗融會貫通,讓我對它的理解更加深刻。對程序的編譯過程了解透徹。</p><p>  2、本次課程設計以自己設計為主,因此培養(yǎng)了學習的積極性,讓我能夠獨立去分析問題、發(fā)現(xiàn)問題、解決問題,更增強我與老師同學交流溝通和合作完成任務的能力。</p><p>  3

32、、由于這次課程設計不僅設計編程方面的知識,還涉及了其它學科的知識,例如PROTEUS和Keil等的基本知識。程序是用匯編語言來編寫的,這次課程設計讓我在編程能力方面得到了提高。</p><p>  4、由于水平有限,實驗程序運行有一定的限制,以后會加強改進。</p><p>  總之,通過這次課程設計,不僅加深了我對單片機理論方面的理解,將理論更好的運用的實踐方面,而且鍛煉了我們各方面的能

33、力,培養(yǎng)了堅強的毅力和做事的耐心和細心,認識合作的重要性,雖然程序可能有一定的浪費資源,且較羅嗦,但這需要在實踐中慢慢提高,還希望老師能夠多多指導,促進我不斷的進步。最后再一次感謝老師對我的悉心指導和無私幫助。</p><p><b>  參考文獻</b></p><p>  [1] 余發(fā)山主編.單片機原理及應用技術.徐州:中國礦業(yè)大學出版社,2003.</p

34、><p>  [2] 楊凌霄編著.微型計算機原理及應用.徐州:中國礦業(yè)大學出版社,2004.</p><p>  [3] 李群芳主編.單片機原理、接口及應用.北京:清華大學出版社,2005.</p><p>  [4] 陳忠平,曹巧媛等,單片機原理及接口.北京:清華大學出版社,2007.</p><p>  [5] 劉同法,陳忠平等,單片

35、機基礎與最小系統(tǒng)實踐.北京:北京航空航天大學出版社,2007.</p><p>  [6] 吳金戌,沈慶陽,郭庭吉.8051單片機實踐與應用.北京:清華大學出版社,2002.</p><p>  [7] 竇振中.單片機外圍器件實用手冊存儲器分冊.北京:北京航空航天大學出版社,1998.</p><p>  [8] 張靖武,周靈彬.單片機系統(tǒng)的Proteus設計

36、與仿真.北京:電子工業(yè)出版社,2007.</p><p>  [9] 林志琦,郎建軍,李會杰等.基于Proteus的單片機可視化軟硬件仿真.北京:北京航空航天大學出版社,2006.</p><p>  [10] 李剛民,曹巧媛等.單片機原理及實用技術.北京:高等教育出版社,2005.</p><p><b>  附錄1 元件清單</b>&l

37、t;/p><p>  附錄2 系統(tǒng)電路圖</p><p><b>  附錄3 源程序</b></p><p>  #include <reg51.H></p><p>  sbit sta_end=P3^4;</p><p>  sbit reset=P3^7;</p>

38、<p>  unsigned char code table0[]={0x3f,0x06,0x5b,0x4f,0x66, </p><p>  0x6d,0x7d,0x07,0x7f,0x6f};</p><p>  unsigned char code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,</p><p>  0x92,

39、0x82,0xf8,0x80,0x90}; /*共陽極段碼*/</p><p>  /*聲明second10用于計數(shù)十分之一秒變化,second1用于記錄秒的個*/ </p><p>  /*位,second2用于記錄秒的十位*/</p><p>  unsigned int second10,second1,second2;

40、</p><p>  bit bdata flag;</p><p>  /*以下是設置延時功能的函數(shù)*/</p><p>  void delay() </p><p><b>  {</b></p><p>  unsigned char i,j;<

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

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

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

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

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

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

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

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

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

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

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

52、;/p><p><b>  do</b></p><p><b>  {</b></p><p>  if(!sta_end)</p><p><b>  {</b></p><p>  if(flag == 0)</p><p>&

53、lt;b>  flag = 1;</b></p><p>  else flag = 0; </p><p><b>  }</b></p><p>  if(!reset) /*復位設置,全部清零*/</p><p><b>  {<

54、;/b></p><p><b>  flag = 0;</b></p><p>  second10 = 0;</p><p>  second1 = 0;</p><p>  second2 = 0;</p><p><b>  }</b></p>&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論