單片機秒表課程設計報告_第1頁
單片機秒表課程設計報告_第2頁
單片機秒表課程設計報告_第3頁
單片機秒表課程設計報告_第4頁
單片機秒表課程設計報告_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——單片機秒表課程設計報告

一:課程設計題目

秒表/時鐘計時器

二:課程設計任務與要求:

利用89C51單片機設計秒表/時鐘計時器,通過LED顯示器顯示秒十位和個位,在設計過程中用一個存儲單元作為秒計數(shù)單元,當一秒鐘到來時,就讓秒計數(shù)單元加1,當秒計數(shù)達到60時,就自動返回到0,重新開始秒計數(shù)。

三:設計過程:

1.設計原理:此次課程設計題目是秒表/時鐘計時器,由課程設計的要求和任務,我采用的C語言編程,設計秒表要求一秒定時,采用了定時器和FOR循環(huán)來定時,其中一個軟件一個硬件,會在方案論證中分析在1秒時采用的是硬件定時,即用單片機內部的定時器T0。先將時鐘初始化,賦入初值50ms定時,循環(huán)20次來進行1秒定時。然后由定義的變量second來進行加一運算,然后將其值通過P1,P2口在數(shù)碼管上進行顯示。其中數(shù)碼管的顯示時,我在程序中首先定義了一個關于數(shù)碼管顯示的字形碼定義,以便在顯示時調用即可。(1)方案論證:

方案1:在方案1中,我們所選用的是軟件定時,即用for循環(huán)來定時1秒進行顯示的變化。

方案2:在方案2中,采用的是硬件定時,即用單片機內部的定時器T0。先將時鐘初始化,賦入初值50ms定時,循環(huán)20次來進行1秒定時。

方案比較:我們從兩方面進行兩種方案的比較,第一,由于此次課程設計要求是秒表,則在定時時要求比較確切,所以采用硬件的定時器定時時比較確鑿的。其次,由于秒表的定時程序是很小的,在利用軟件定時占用的CPU并不是好多,不能顯現(xiàn)出來,但真正大程序時會很占用資源的,所以在用定時中斷過程中是十分節(jié)省資源的。綜合上述兩種比較,我們選用了其次種方案。(2)創(chuàng)新點:

a.在課程要求的基礎上,我們做成的電路板上,用復位鍵來控制秒表計時的重新開始,即清零。

b.在以上設計的基礎上,我們又重新設計了一個程序,基本原理沒有變,只是將

秒表在到達59清零的瞬間向分的位數(shù)上進1,程序將會在附錄3中給出。2.硬件系統(tǒng)框圖與說明:

首先,連接的是單片機51的最小系統(tǒng),其中包括時鐘電路,復位電路,在此中包括的元器件在附錄3中。我們所選用的數(shù)碼管是共陰極的,置1時導通,所以將單片機的P1.0~P1.7連接數(shù)碼管的a~dp,P2口同理。然后在數(shù)碼管秒表個十位的顯示則由軟件程序來控制。3.軟件主要模塊流程圖與說明:

初始化判斷是否中斷YN等待Count++NCount=20?YSecond++Second=59?YNSecond=0數(shù)碼管顯示當前值

在真正應用時,我們的一秒定時是用定時中斷的,但單片機的T0最長也不能1秒定時,所以我們采用50ms定時循環(huán)20次,用count來控制。當秒的時間達到59時,用軟件來清零時循環(huán)從00重新開始。

四:課程設計總結:

1:本次的課程設計,使關于51系列單片機的,正是我們剛剛學到的51單片機,在平日課程的學習中,我們僅限于理論知識的講解,即使知識是很扎實的,實際應用并不是這樣的。開始時我也覺得自己的理論知識已經夠了,但當我拿到課題時,在腦海里想的是十分好的,但真正編成和控制時,理論和實際結合不到一起,甚至于51芯片的使用我都感覺很迷茫,還是經過搜集大量資料才將理論與實際結合到一起了。本次課程設計我主要負責編程,這次不僅鍛煉了我C語言的知識,更加我們正在學習的51的定時與中斷結合在一起,進行了實際的操作,讓我的知識把握得更加穩(wěn)固。本次的實際經驗之后,讓我對單片機定時賦初值有了更新的認識,對程序的循環(huán)順序、結構類型都有了十分深刻的認識,對真正硬件的連接也有了認識,不再將自己的知識局限于自己狹隘的空間中。

2:通過這次課程設計——秒表/時鐘計時器,使我又重新開始學習C語言,由于C語言是大一學的,至從學完就再也沒用過,所以開始很陌生,我又找了有關資料來了解,才有了一點眉目。剛開始以為可以用匯編很簡單就寫出來,由于我們正在學習匯編語言,以為學的很明白了,但是用匯編時才發(fā)現(xiàn)原來都不怎么熟練,編了一會程序發(fā)現(xiàn)只有一種感覺——舉步維艱??!還是放棄匯編選擇C語言吧!對于單片機,我們課本學習的是80C51,但是這次做課程設計用的是89C51,這樣不僅使我們把握了80C51,而且對89C51也有了一定的了解了,在課堂上學習的都理論的,跟實際永遠有一定的差距,不實踐就不會發(fā)現(xiàn)問題。通過這次課程設計使我把課堂上學習的東西都用到了實踐中,例如:定時/計數(shù)器的應用與中斷。學習的時候不怎么理解,但是在實踐中應用了以后就自然了解了。這次課程設計使我受益匪淺,而且都是實際的東西。

3:這次課程設計,我們做的是秒表/時鐘計時器,最終我們選擇的是用C語言編程,但原來學的也只是能看懂別人寫好的程序而已,通過這次課程設計,更加熟練了C語言的程序設計思路。這次課程設計我主要負責焊接電路板,焊接過程

中最困難的地方就是數(shù)碼管的焊接,由于數(shù)碼管的管腳和89C51的管腳是不對應的,而且要避免接線的交織,所以最終確定了布線最合理的方案,如硬件電路圖所示。我們這次設計的出現(xiàn)的最大問題是電路當中的復位電路,開始電路在Proteus上仿真時都是可以正常復位的,但實際的電路中復位按鍵后的電阻的參數(shù)不合理,導致了RST上有電壓,復位電路無效,所以最終我們去掉了那個電阻,此時復位電路才有效,所以理論和實際永遠有差距,不實踐永遠發(fā)現(xiàn)不了問題。在焊接前我們沒有想到給數(shù)碼管用插槽固定,而是直接焊在了電路板上,這造成了后面的好多麻煩,我們方案中用的是共陰極的數(shù)碼管,焊接第一個數(shù)碼管時沒有注意型號,等焊接到一半時才發(fā)現(xiàn)焊上的是共陽極的,所以不得不解焊重新焊接,這也是一個教訓,以后焊接器件時能用上插槽的盡量用插槽,這在器件出了問題時很便利更換。最終焊接完成后在試驗的過程中,剛一接通電源后的上電電壓燒壞了LED顯示器顯示秒十位的c腳,這也是這次課程設計的惋惜,以后在硬件的試驗時還要多防備,避免造成不必要的損失。

4:通過本次秒表/時鐘計時器的設計試驗,使我對這學期學所學51系列的單片機從理論知識到實踐硬件的應用以及C語言知識的回想,更加熟悉了89C51單片機的每一個拐角的輸出和各項功能,而且對硬件電路的布線以及焊接能力有了很大的進步。在這次試驗中,我主要負責的是硬件電路的布線和焊接以及硬件測試。由于本次試驗電路比較簡單,所以我們依照電路圖布線后就馬上開始焊接。焊好一個數(shù)碼管檢測后才發(fā)現(xiàn)我們把共陰極的數(shù)碼管焊接成共陽級的了,很不簡單才解焊下來,有了這次教訓后,我們在焊接其他元器件的時候都提前檢測好才開始焊接。第一次焊接完成后我們上電后發(fā)現(xiàn)實現(xiàn)了基本功能,可是不能復位,經過我們的探討和反復試驗,我們發(fā)現(xiàn)軟件仿真和硬件實現(xiàn)并不是完全一致的,我們依照課本上焊接后終究完全實現(xiàn)了秒表/時鐘計時器的功

溫馨提示

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

評論

0/150

提交評論