單片機(jī)數(shù)字鐘課程設(shè)計_第1頁
單片機(jī)數(shù)字鐘課程設(shè)計_第2頁
單片機(jī)數(shù)字鐘課程設(shè)計_第3頁
單片機(jī)數(shù)字鐘課程設(shè)計_第4頁
單片機(jī)數(shù)字鐘課程設(shè)計_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 單片機(jī)技術(shù)及系統(tǒng)設(shè)計本科生課程設(shè)計課程名稱單片機(jī)技術(shù)及系統(tǒng)設(shè)計設(shè)計名稱24小時制數(shù)字鐘學(xué)號學(xué)生姓名所在專業(yè)電氣工程及其自動化所在班級指導(dǎo)教師成績教師簽字年 月 日課程設(shè)計時間 目 錄目 錄- 1 -摘 要- 2 -1、設(shè)計目的12、設(shè)計功能、要求13、硬件設(shè)計1、原理圖設(shè)計1、器件清單2、各元器件作用說明2、工作過程說明24、軟件設(shè)計2、設(shè)計思路2、工作原理圖3、流程圖3、程序清單55、仿真結(jié)果9、仿真環(huán)境說明9、程序編譯結(jié)果9、軟件仿真結(jié)果96、設(shè)計總結(jié)127、參考文獻(xiàn)128、附件:電路圖13摘 要本設(shè)計主要是利用AT89C51單片機(jī)設(shè)計24小時制數(shù)字鐘,數(shù)字鐘同時帶有時間調(diào)整、鬧鈴、整點

2、報時等功能。利用匯編語言編寫程序,通過proteus軟件進(jìn)行仿真驗證設(shè)計。設(shè)計中還用到了外部晶振、四位、兩位LED數(shù)碼管作為時鐘數(shù)字顯示,外接兩個按鍵作為調(diào)整。按下B2進(jìn)入相應(yīng)功能的調(diào)整,按下第一次為調(diào)整時鐘的時,按下第二次為調(diào)整時鐘的分,按下第三次為調(diào)整時鐘的秒,按下第四次為設(shè)定鬧鐘的時,按下第五次為設(shè)定鬧鐘的分,這時會停止計時,顯示屏只會顯示相應(yīng)調(diào)整的項,其它項熄滅,調(diào)整完后再按B2跳回正常計時。經(jīng)過一系列的測試驗證,設(shè)計能滿足各項要求,經(jīng)過長時間的運行測試程序都能正常地運行,沒出現(xiàn)錯誤。可應(yīng)在實際中應(yīng)用,能滿足日常時間顯示的需要。關(guān)鍵字 24小時;數(shù)字鐘;單片機(jī);設(shè)計 ;24小時制數(shù)字鐘

3、1、設(shè)計目的利用單片機(jī)設(shè)計一個數(shù)字時鐘,加深對單片機(jī)的熟悉程度,把學(xué)習(xí)到的理論知識應(yīng)用到實際中,把單片機(jī)的知識系統(tǒng)地聯(lián)系起來,增強(qiáng)動手能力,為以后的設(shè)計、工作做準(zhǔn)備。也是對這學(xué)期單片機(jī)的學(xué)習(xí)的一次檢驗。2、設(shè)計功能、要求數(shù)字鐘要求能24小時制時間顯示,可隨時進(jìn)行時間校對調(diào)整,整點報時以及鬧鐘功能。原理圖設(shè)計要求符合項目的工作原理,接線要正確.圖中所使用的元器件要合理選擇,電阻,電容等器件要求標(biāo)出相關(guān)參數(shù),并通過繪圖軟件打印出原理圖。原理圖設(shè)計中簡要說明設(shè)計目的,原理圖中所使用的元器件功能在圖中的作用,各器件的工作過程及順序。程序設(shè)計中對程序總體功能及結(jié)構(gòu)進(jìn)行說明,對各子模塊的功能以及各子模塊之

4、間的關(guān)系作較詳細(xì)的說明畫出工作原理圖,流程圖并給出程序清單。3、硬件設(shè)計、原理圖設(shè)計原理圖的設(shè)計比較簡單,只需要有一個接好晶振的AT89C51單片機(jī)、LED顯示屏、按鍵、蜂鳴器以及一些電阻就可以了。P2.7口作為動態(tài)顯示片選信號,P0.0作為聲音信號輸出,P3.2、P3.3接外中斷信號,用于調(diào)整。蜂鳴器需要用三極管放大,接一5V電源發(fā)聲。原理圖如下圖:、器件清單器件名稱數(shù)值、型號數(shù)量原理圖中標(biāo)號電阻10k3R2-R4電容10uF1C1電容30pF2C2, C3單片機(jī)AT89C511U1三極管BSX201Q1蜂鳴器1LS18路電阻3001RN1晶振1CRYSTAL按鍵2B1,B2LED顯示屏4位

5、1D1LED顯示屏2位1D2、各元器件作用說明電容C2, C3以及晶振CRYSTAL用來為單片機(jī)提供外部晶振。電阻R3、R4以及三極管Q1用于放大P0口的輸出,提供給蜂鳴器足夠大的信號電流。蜂鳴器用于整點報時、鬧鐘的聲音信號輸出。顯示屏D1用于顯示時和分;D2用于顯示秒。按鍵B2用來設(shè)定調(diào)整功能,按下第一次為調(diào)整時鐘的時,按下第二次為調(diào)整時鐘的分,按下第三次為調(diào)整時鐘的秒,按下第四次為設(shè)定鬧鐘的時,按下第五次為設(shè)定鬧鐘的分。按鍵B1用來調(diào)整,每按下一次為加一操作。、工作過程說明正常顯示:單片機(jī)中裝入程序后,接通電源即顯示屏顯示0000 00,開始計時,D2顯示屏每1秒加1,加到60分加1,D2

6、顯示回零,繼續(xù)從0開始計時,分加到60時加1,時加到24回零,繼續(xù)按規(guī)則計時。整點報時響鈴一次,鬧鐘響鈴兩次。調(diào)整:按下B2進(jìn)入相應(yīng)功能的調(diào)整,按下第一次為調(diào)整時鐘的時,按下第二次為調(diào)整時鐘的分,按下第三次為調(diào)整時鐘的秒,按下第四次為設(shè)定鬧鐘的時,按下第五次為設(shè)定鬧鐘的分,這時會停止計時,顯示屏只會顯示相應(yīng)調(diào)整的項,其它項熄滅,調(diào)整完后再按B2跳回正常計時。4、軟件設(shè)計、設(shè)計思路主程序執(zhí)行時鐘的顯示,利用動態(tài)顯示,先顯示時,然后分、秒,每一位中間隔著相應(yīng)的延時,時分秒的數(shù)值分別用三個寄存器存儲,主程序只需直接顯示寄存器里內(nèi)容即可。計時子程序由內(nèi)部定時器中斷程序完成,定時器定時50ms,每50m

7、s中斷一次,中斷20次后即夠一秒,存儲秒的寄存器加1,加夠60秒分加1,分加夠60時加1,一直計算下去,實現(xiàn)24小時的計時。調(diào)整程序由兩個外中斷子程序配合完成,外中斷1子程序用于設(shè)定調(diào)整的內(nèi)容,以區(qū)分調(diào)整時鐘的時、分、秒,以及設(shè)定鬧鐘的時、分。外中斷0子程序用于對相應(yīng)的調(diào)整項進(jìn)行加1操作。整點報時功能只要在每次時鐘的時加1的時候輸出一聲鈴聲就可以了,鬧鐘功能即要在每次計時的時候判斷時鐘的時、分時候與鬧鐘設(shè)定的時、分相同,若相同即響鈴兩聲,不同即繼續(xù)執(zhí)行。程序的各部分以及一些功能在程序清單上也有標(biāo)注。、工作原理圖定時器中斷計時外中斷程序調(diào)整主程序顯示時鐘 、流程圖開始 是 R4=4? 否 顯示鬧

8、鐘時 顯示時鐘時 顯示鬧鐘分 顯示時鐘分 顯示鬧鐘時顯示時鐘秒 顯示時鐘時圖3.主程序流程圖 中斷響應(yīng) 中斷響應(yīng) 否 否 是 R4=0? R4=6? R4加1 R4回0 否 是 是 R3減到0? 是 中斷返回 秒加1 否 是 秒加到60? 中斷響應(yīng) 是 分加1 否 秒回0 R4=1? 否 是 R0(時)加1 分加到60? 否 是 時加1 R4=2? 是 R1(分)加1 分回0 否 否 否 否 時加到24? R4=3? 是 是 R2(秒)加1 時回0 否 中斷返回 R4=4? 是 R5(鬧鐘時)加1 流程圖 否 R4=4? 是 R6(鬧鐘分)加1 中斷返回 圖4.外中斷0子程序流程圖4.4、程序

9、清單 ORG 0000H AJMP MAIN ORG 0003H AJMP S0 ORG 000BH AJMP TIMER ORG 0013H AJMP S1 ORG 0030HMAIN: MOV R0,#00 ;存儲時 MOV R1,#00 ;存儲分 MOV R2,#00 ;存儲秒 MOV R3,#20 ;中斷定時50MS,2050定時一秒 MOV R4,#00 ;用于存儲外中斷1控制信號 MOV R5,#00 ;存儲鬧鐘時 MOV R6,#00 ;存儲鬧鐘分 MOV R7,#00 MOV DPTR,#TAB SETB IT1 ;設(shè)定外中斷為邊沿中斷 SETB IT0 MOV IP,#05H

10、 ;外中斷0、1優(yōu)先級高,定時器低 MOV IE,#87H MOV TMOD,#01H ;模式1 MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H SETB TR0;= 主程序=DIS: CJNE R4,#04,NEXT ;大于等于4即轉(zhuǎn)去顯示鬧鐘調(diào)節(jié)NEXT: JNC DIS3 MOV A,R4 ;用于調(diào)鬧鐘時單獨顯示時 JZ D1 CJNE R4,#01,DIS1D1: MOV A,R0 ;顯示時 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DP

11、TR MOV P2,#40H MOV P1,A ACALL DELAYDIS1: MOV A,R4 ;用于調(diào)鬧鐘時單獨顯示分 JZ D2 CJNE R4,#02,DIS2D2: MOV A,R1 ;顯示分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#10H MOV P1,A ACALL DELAY DIS2: MOV A,R4 ;用于調(diào)鬧鐘時單獨顯示秒 JZ D3 CJNE R4,#03,DISD3: MOV A,R2 ;顯示秒 MOV B,#10 D

12、IV AB MOVC A,A+DPTR MOV P2,#08H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#04H MOV P1,A ACALL DELAY CJNE R7,#00,A1 ;判斷鬧鐘信號是否滿足 AJMP DIS3A1: MOV A,#0FFH ;鬧鐘響兩聲 MOV 60H,#02A2: MOV 61H,#50HA3: CPL A MOV P0,A ACALL DELAY DJNZ 61H,A3 DJNZ 60H,A2 DEC R7 ;鬧鐘響兩次 AJMP DISDIS3: CJNE R4,#04,DIS4 MOV A,

13、R5 ;顯示鬧鐘時 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#80H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MOV P2,#40H MOV P1,A ACALL DELAY AJMP DISDIS4: CJNE R4,#05,DIS5 ;如果用DIS編譯時出現(xiàn)out of range錯誤,轉(zhuǎn)到DIS5跳轉(zhuǎn) MOV A,R6 ;顯示鬧鐘分 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P2,#20H MOV P1,A ACALL DELAY MOV A,B MOVC A,A+DPTR MO

14、V P2,#10H MOV P1,A ACALL DELAYDIS5: AJMP DIS;=定時器0中斷服務(wù)程序,時間計數(shù),24小時=TIMER: PUSH ACC CJNE R4,#04,N1 ;調(diào)整時鐘停止計時(R4=1、2、3時不計)N1: JNC N2 CJNE R4,#00,REN2: DJNZ R3,RE ;20次定時計完即一秒,重新賦值 MOV R3,#20 INC R2 ;秒加一 CJNE R2,#60,RE ;判斷秒到60否 MOV R2,#00 INC R1 ;分加一 MOV A,R5 ;鬧鐘定時判斷,響應(yīng) ADD A,R6 JZ NEXT1 ;為0時忽略(即無設(shè)定) MO

15、V 16H,R5 ;判斷時 MOV A,R0 CJNE A,16H,NEXT1 MOV 15H,R6 ;判斷分 MOV A,R1 CJNE A,15H,NEXT1 MOV R7,#02 ;用R7控制主程序鬧鐘響應(yīng)NEXT1: CJNE R1,#60,RE ;判斷分到60否 INC R0 ;時加一 MOV R1,#00 MOV A,#0FFH ;整點報時,響一聲 MOV R7,#50HA4: CPL A MOV P0,A ACALL DELAY DJNZ R7,A4 CJNE R0,#24,RE ;判斷時到24否 MOV R0,#00 AJMP RE;=中斷1處理,識別調(diào)整時間時、分、秒以及鬧鐘

16、時、分=S1: INC R4 CJNE R4,#06,RE1 MOV R4,#00 AJMP RE1S0: CJNE R4,#01,F1 ;調(diào)整時 INC R0 CJNE R0,#24,RE1 MOV R0,#00 AJMP RE1F1: CJNE R4,#02,F2 ;調(diào)整分 INC R1 CJNE R1,#60,RE1 MOV R1,#00 AJMP RE1F2: CJNE R4,#03,F3 ;調(diào)整秒 INC R2 CJNE R2,#60,RE1 MOV R2,#00 AJMP RE1F3: CJNE R4,#04,F4 ;調(diào)整鬧鐘時 INC R5 CJNE R5,#24,RE1 MOV

17、 R5,#00 AJMP RE1F4: CJNE R4,#05,RE1 ;調(diào)整鬧鐘分 INC R6 CJNE R6,#60,RE1 MOV R6,#00 AJMP RE1RE: MOV TH0,#3CH ;15536 50MS MOV TL0,#0B0H POP ACCRE1: RETI DELAY: MOV 21H,#5 ;延時DL1: MOV 20H,#123DL2: DJNZ 20H,DL2 DJNZ 21H,DL1 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H ;共陽顯示器 DB 082H,0F8H,080H,090H,088H,083H DB 0C

18、6H,0A1H,086H,08EH,0BFH,0FFH END5、仿真結(jié)果、仿真環(huán)境說明仿真環(huán)境為:Microsoft windows XP操作系統(tǒng)下利用PROTEUS軟件中的智能原理圖輸入系統(tǒng)進(jìn)行仿真。、程序編譯結(jié)果程序編譯直接利用PROTEUS軟件自帶的編譯器,編譯結(jié)果如下圖:5.3、軟件仿真結(jié)果在單片機(jī)中裝入編譯好的程序后開始仿真,經(jīng)過了長時間的實驗,沒發(fā)現(xiàn)有什么錯誤,程序在很多情況下都能正常運行。下面為仿真過程截圖:正常顯示時間:調(diào)整時鐘時:調(diào)整時鐘分:調(diào)整時鐘秒:設(shè)定鬧鐘時:設(shè)定鬧鐘分:6、設(shè)計總結(jié)本設(shè)計是一項比較大的“工程”,之前都沒有做過這么復(fù)雜的設(shè)計,可能是對單片機(jī)的興趣比較大,做起來只是感覺繁瑣,難度就感覺不是很大。本設(shè)計是完全由本人完成,每一條連線、每一條程序、每一個字、每一張圖都是本人獨立完成,也投入了比較多的時間,但感覺很值得。從這次設(shè)計中也學(xué)到了很多東西,對單片機(jī)的了解更深入了,對proteu軟件的使用也更熟練了。本來想用

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論