單片機課程設計倒計時秒表.doc_第1頁
單片機課程設計倒計時秒表.doc_第2頁
單片機課程設計倒計時秒表.doc_第3頁
單片機課程設計倒計時秒表.doc_第4頁
單片機課程設計倒計時秒表.doc_第5頁
免費預覽已結束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

一、設計目的此次設計是我們更進一步了解基本電路的設計流程,提高自己的設計理念,豐富自己的理論知識,鞏固所學知識,使自己的動手動腦能力有更進一步提高,為自己今后的學習和工作打好基礎,為自己的專業(yè)技能打好基礎。通過解決實際問題,鞏固和加深“單片機原理與應用”課程中所學的理論知識和實驗能力,基本掌握單片機應用電路的一般設計方法提高電子電路的設計和實驗能力,加深對單片機軟硬知識的理解,獲得初步的應用經(jīng)驗以后從事生產(chǎn)和科研工作打下一定的基礎。本次設計注重對單片機工作原理以及鍵盤控制及顯示原理的理解,以便今后自己在單片機領域的學習和開發(fā)打下基礎,提高自己的動手能力和設計能力,培養(yǎng)創(chuàng)新能力,豐富自己的理論知識,做到理論和實踐相結合。本次設計的重要意義還在于對單片機的內(nèi)部結構和工作狀態(tài)做更進一步的了解,同時還對單片機的接口技術,中斷技術,存儲方式和控制方式作更深層次的了解。掌握單片機應用系統(tǒng)的軟硬件設計過程、方法及實現(xiàn),強化單片機應用電路的設計與分析能力。提高學生在單片機應用方面的實踐技能和科學作風;培育學生綜合運用理論知識解決問題的能力,實現(xiàn)理論結合實際,學以至用的原則。用所學的知識和自身課外的拓展學習加深對專業(yè)課的理解和學習;鍛煉綜合運用電路設計及相關電子儀器、單片機軟硬件結合的理論,結合生產(chǎn)實際分析和解決工作工程實際問題的能力,加固、加深和擴展有關電子類,匯編語言,相關電子電路和仿真軟件方面的知識和能力。通過本次課程設計,應加強培養(yǎng)如下能力:(1)加強自身獨立的動手能力和思考解決問題的能力,提高創(chuàng)造能力;(2)學會使用軟件Proteus畫原理圖和仿真調試。(3)學會基本焊接電路板的技能通過本次課程設計加深對單片機課程的全面認識復習和掌握,對單片機課程的應用進一步的了解。二、設計要求1、可以以實現(xiàn)正常秒表的所有功能,包括啟動、暫停、復位等;2、可以自由設定倒計時時間(10s、20s、30s),并進行倒計時;3、顯示方式自選;4、任選一款51單片機;5、擴展功能:在秒表的基礎上增加時鐘功能,倒計時完成時加入報警單元,如聲音、燈光等。三、總體設計3.1總體框圖本硬件設計總共包括五部分電路:顯示電路、振蕩電路、復位電路、報警電路、按鍵電路。除了單片機工作必須的振蕩電路,復位電路外,該設計增加了報警電路用來提示倒計時完成,顯示電路用來顯示倒計時,按鍵電路用來設定倒計時間以及控制開始暫停。總體設計框圖如圖3.1所示。AT89S51單片機報警電路復位電路振蕩電路顯示電路按鍵電路圖1 總體框圖3.2工作原理以AT89S51單片機為核心元件,利用兩位7 段共陽極數(shù)碼管作為顯示器件。在此設計中共接入2個兩位一體7段共陽LED 數(shù)碼管,來顯示實時數(shù)字,其中1個用于顯示十位,1個用于顯示個位,通過查表指令分別動態(tài)顯示個位和十位。2個LED數(shù)碼管顯示范圍可達到O-99 。按下開始鍵開始計時,按下倒計時鍵開始設定倒計時時間,再按開始鍵開始倒計時。利用中斷實現(xiàn)記錄,利用單片機的外部中斷0和外部中斷1來實現(xiàn)記錄和顯示,把記錄處理和顯示處理做成分別做成外部中斷0和外部中斷1的中斷服務程序,通過中斷服務程序處理不同的動作。利用T0做一個1秒的中斷,從而實現(xiàn)倒計時。另外通過數(shù)據(jù)區(qū)來記錄記錄值。通過顯示子程序來顯示當前倒計時和記錄值。3.3主程序框圖Y有鍵按下嗎?取秒計數(shù)值轉為十進制送顯示緩沖區(qū)調用顯示程序取得鍵值NK12,K2鍵處理K3,K4鍵處理K5,K6鍵處理圖2 主程序流程圖開始本程序采用定時器T0產(chǎn)生1秒定時來實現(xiàn)秒表的倒計時,采用外部中斷0來記錄不同的記錄值,通過外部中斷1來顯示已經(jīng)記錄的記錄值。在主程序中初始化各個數(shù)值并且僅僅循環(huán)執(zhí)行顯示程序,有中斷來時才轉去做相應的中斷服務程序。(1) 主程序 ORG 00HAJMP MAINORG 0BHAJMP T0INT ORG 30HMAIN: MOV SP,#60HMOV DPTR,#TABMOV TMOD,#01H ;T0定時方式1SETB EASETB ET0MOV TH0,#3CH ;50ms定時常數(shù)MOV TL0,#0B0HMOV R0,#20 ;20x50mS=1S(2) 定時中斷程序T0INT: MOV TH0,#03CH; ;定時中斷子程序。重裝定時常數(shù)MOV TL0,#0B0H;DJNZ R0,T0INTR ;50msX20=1S,未滿20次,跳出中斷子程序MOV R0,#20JNB 7FH,T0INT00 ;時間未到轉T0INT00DJNZ R3,T0INTR ;未到3 S 跳出中斷子程序CLR 7FH ;3 S時間到,清計時時間到標志CLR TR0 ;關定時器AJMP T0INTR ;跳出中斷T0INT00: JNB 7EH,T0INT0 ;7EH為倒計時標志,1為倒計時DEC R4 ;1,R41CJNE R4,#0,T0INTR CLR 7EH SETB 7FH ;時間到標志AJMP T0INTRT0INT0: INC R4CJNE R4,#99,T0INTRSETB 7FH ;時間到標志T0INTR:RETI四、各部分電路設計4.1復位電路AT89S-51單片機的復位是靠外部電路實現(xiàn)的。MCS-52單片機工作之后,只要在他的RST引線上加載10ms以上的高點平,單片機就能有效地復位。MCS-52單片機通常采用上電自動復位和按鍵復位兩種方式。最簡單的按鍵復位電路如下圖:圖3 復位電路按鍵按下瞬間,RC電路充電,RST引線出現(xiàn)正脈沖,只要RST保持10ms以上的高電平,就能使單片機有效的復位。4.2 振蕩電路在AT89S-51單片機一般常用內(nèi)部時鐘方式,也就是在XTAL1和XTAL2之間連接晶體震蕩器與電容構成穩(wěn)定的自激震蕩器,本模塊用了一個12MHZ的晶振外加兩個30pf的電容,圖4 振蕩電路4.3按鍵電路由六個相同按鍵組成,分別作為開始,暫停,清零,倒計時,十位加一,個位加一,電路圖如下:圖5 按鍵電路4.4 兩位數(shù)碼顯示電路由兩位共陽極LED數(shù)碼管和1k歐排阻構成。數(shù)碼管的位由p2.1和p2.0口決定,段選由P0口決定。如下圖: 圖6 顯示電路4.5.報警電路報警電路由小揚聲器組成,計時完成后,利用顯示子程序延時約2ms求反,產(chǎn)生250H的方波,從而揚聲器發(fā)聲,電路如下 圖7 報警電路五、整體電路圖圖8 整體電路圖六、仿真及調試 圖9 Proteus仿真圖調試問題及解決方法開始在主程序的循環(huán)中沒有添加調用顯示子程序的語句導致在沒有按鍵按下的情況下LED數(shù)碼管沒有顯示。當在主程序循環(huán)檢測按鍵的過程中添加了調用顯示子程序的語句后就解決了這一問題。由于鍵盤需要消抖延時和等待按鍵釋放所以相似的情況又出現(xiàn)了按下按鍵后有一段時間LED數(shù)碼管斷續(xù)顯示或者按下按鍵后不釋放按鍵時LED數(shù)碼管沒有顯示。仔細分析后發(fā)現(xiàn)問題出現(xiàn)的原因還是一樣的,由于本設計的LED數(shù)碼管采用了動態(tài)顯示,故需要不斷調用顯示子程序,否則會導致LED數(shù)碼管沒有顯示。所以最終做了以下改進1.按鍵的消抖延時選擇調用兩次顯示子程序每次顯示子程序大約用時5ms,兩次即為10ms左右來取代原來的10ms軟件延時。在等待按鍵釋放時使用循環(huán)調用顯示子程序來替代原來的循環(huán)等待。經(jīng)過上述兩點的改進后LED數(shù)碼管無顯示或者斷續(xù)顯示的問題就得到了徹底的解決。 七、設計總結剛接到課程設計的時候完全沒有思路,不知該如何下手,好像自己學到的東西一點都用不上,后來經(jīng)過翻閱資料從最基本的著手,開始對倒計時秒表有了一點認識,從單元電路到整體電路按部就班。在整個課程設計完后,總的感覺是:很累,很有壓力,但是很有收獲。在這個過程中,我的確學得到很多在書本上學不到的東西,如:如何將學過的單片機知識加以運用,如何查找資料,如何利用計算機來畫圖以及如何利用proteus進行單片機仿真等等。通過查閱資料、接口設計、程序設計、安裝調試等環(huán)節(jié),完成AT89S-51單片機多種資源應用并具有綜合功能的小系統(tǒng)目標板的設計與編程應用。讓我不僅能夠將課堂上學到的理論知識與實際應用結合起來,而且能夠對電子電路、電子元器件、印制電路板等方面的知識進一步加深認識,同時在軟件編程、排錯調試、焊接技術、相關儀器設備的使用技能等方面得到較全面的鍛煉和提高,增進對單片機的感性認識,加深對單片機理論方面的理解,掌握單片機的內(nèi)部功能模塊的應用,如定時器/計數(shù)器、中斷、I/O口等。更重要的是,團結精神,合作精神在這次課程設計中得到了很好地體現(xiàn),僅憑我個人的力量是無法完成任務的。但現(xiàn)在回過頭來看,還是挺有成就感的,畢竟這是大學里第一次進行實物課程設計,第一次真正的將理論轉化為實際,第一次實際接觸電路板。這是一筆無法估量的財富。對單片機有了更深刻的認識和掌握,我感到很欣慰,付出的中就會有收獲!。但是由于理論和實際存在差距,我們成功進行了仿真,但是在制作電路板時始終有部分功能不能實現(xiàn),盡管我們不停地調試但是終究沒有效果,我們的倒計時秒表能實現(xiàn)自由設定時間,倒計時,報警。最令我高興的是我們設計的倒計時秒表不僅能倒計時也能正計時,這是在要求之外的。由于時間有限,只有一個星期,我相信,我們還可以實現(xiàn)更多的功能,雖然課程設計結束了,但是在課余時間,我還會繼續(xù)進行實踐,從實踐中學習知識掌握單片機!八、參考文獻1 張毅剛 單片機原理及應用 高等教育出版社 2003年2 張毅剛 單片微機原理及應用西安電子科技大學出版社 1994年3 李全利 遲榮強 單片機原理及接口技術北京高等教育出版社 2004年4 樓然笛 單片機課程設計實例指導北京航空航天大學出版社2004年5 何立民 單片機應用技術選編 北京航空航天大學出版社 1993年6 梁宗善 電子技術基礎課程設計華中科技大學出版社 2009年7 李廣弟 單片機基礎北京航空航天大學出版社 2001年 附錄源程序代碼:STRT EQU P2.2P_S EQU P2.3CLRR EQU P2.4CDWN EQU P2.5ADJH EQU P2.6ADJL EQU P2.7 ORG 00HAJMP MAINORG 0BHAJMP T0INT ORG 30HMAIN: MOV SP,#60HMOV DPTR,#TABMOV TMOD,#01H ;T0定時方式1SETB EASETB ET0MOV TH0,#3CH ;50ms定時常數(shù)MOV TL0,#0B0HMOV R0,#20 ;20x50mS=1S MAIN1:ACALL ALARM ;調用報警子程序k1: ;按鍵檢測子程序開始鍵LCALL DISP JB STRT,K2ACALL DISPJNB STRT,$-2AJMP STARTk2: ;暫停鍵JB P_S,K3LCALL DISPJNB P_S,$-3AJMP PAUSEK3: ;清零鍵 JB CLRR,K4LCALL DISPJNB CLRR,$-3 AJMP CLEARK4: ;倒計時鍵 JB CDWN,K5ACALL DISPJNB CDWN,$-2AJMP CDOWNK5: ;倒計時設定十位JB 7EH,K51AJMP MAIN1K51:JB ADJH,K6ACALL DISPJNB ADJH,$-2AJMP SHINCK6: ;倒計時設定個位JB 7EH,K61AJMP MAIN1K61:JB ADJL,MAIN1ACALL DISPJNB ADJL,$-2AJMP SLINCSTART: SETB TR0CLR 7DH ;開始后此標志清0 ,跳過顯示子程序的設定部分MOV R3,#3 ;蜂鳴3SAJMP K1 PAUSE: CLR TR0AJMP K2CLEAR: CLR TR0MOV R4,#0AJMP K3CDOWN:SETB 7EH ;倒計標志,作倒計減1計數(shù)用SETB 7DH ;倒計標志,作倒計設定顯示用AJMP K4SHINC:INC 23H ;23H為設定值十位緩存MOV A,23HCJNE A,#10,K5MOV 23H,#0AJMP K5SLINC:INC 22H ;22H為設定值個位緩存MOV A,22HCJNE A,#10,K6MOV 22H,#0AJMP K5ALARM:JB 7FH,ALARM0 ;7FH為時間到標志,RAM內(nèi)存2FH的D7位AJMP ALARMRT ;時間未到,跳出報警ALARM0:CPL P1.0ACALL DISP ;利用顯示子程序延時約2ms求反,產(chǎn)生250H的方波。AJMP ALARMALARMRT:RETT0INT: MOV TH0,#03CH; ;定時中斷子程序。重裝定時常數(shù)MOV TL0,#0B0H;DJNZ R0,T0INTR ;50msX20=1S,未滿20次,跳出中斷子程序MOV R0,#20JNB 7FH,T0INT00 ;時間未到轉T0INT00DJNZ R3,T0INTR ;未到3 S 跳出中斷子程序CLR 7FH ;3 S時間到,清計時時間到標志CLR TR0 ;關定時器AJMP T0INTR ;跳出中斷T0INT00:JNB 7EH,T0INT0 ;7EH為倒計時標志,1為倒計時DEC R4 ;1,R41CJNE R4,#0,T0INTR CLR 7EH SETB 7FH ;時間到標志AJMP T0INTRT0INT0:INC R4CJNE R4,#99,T0INTRSETB 7FH ;時間到標志T0INTR:RETI DISP: JNB 7DH,DISP1MOV 20H,22H ;22H存設定個位MOV 21H,23H ;23H存設定十位MOV A,23H MOV B,#10MUL ABADD A,22HMOV R4,ADISP1:MOV A,R4MOV B,#10DIV AB ;當前值除以10MOV 20H

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論