單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示_第1頁
單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示_第2頁
單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示_第3頁
單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示_第4頁
單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)專 業(yè):電氣工程及其自動化 班 級: 電氣091 姓 名: 學(xué) 號: 指導(dǎo)教師: 評語:平時(shí)(40)修改(30)報(bào)告(30)總成績2012 年 7月1日單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)報(bào)告 - 0 -1 引言基于單片機(jī)課程的學(xué)習(xí),在本次課程設(shè)計(jì)中利用單片機(jī)實(shí)現(xiàn)時(shí)鐘的顯示,利用鍵盤和門電路控制時(shí)間的調(diào)整,在設(shè)計(jì)上采用硬件計(jì)數(shù)與軟件計(jì)數(shù)相結(jié)合的方式,并且定時(shí)器T0采用了中斷方式。2 系統(tǒng)方案及原理本次課程設(shè)計(jì)是用80C51單片機(jī)CPU及接口電路設(shè)計(jì)一個(gè)數(shù)字時(shí)鐘,其核心部件是80C51,時(shí)鐘的顯示采用6個(gè)共陰極LED顯示燈,四個(gè)開關(guān)方便的對秒、分、時(shí)分別調(diào)

2、整,保證功能完善,工作可靠。硬件方面:獨(dú)立式鍵盤可以消除時(shí)間誤差的和方便時(shí)間的調(diào)整;顯示電路采用LED動態(tài)顯示方式,共陰極端由P2口線控制,分為段選線和位選線,利用人的視覺停留達(dá)到顯示的效果,段選線控制字符選擇,位選線控制顯示位的亮或暗,從而簡化串行口線的連接。軟件方面:四個(gè)鍵盤輸入與門74LS21,其輸出用作中斷信號,當(dāng)四個(gè)鍵盤有一個(gè)鍵按下后就會向CPU申請中斷,這樣就可以提高CPU工作效率,達(dá)到調(diào)整時(shí)間的快速性與準(zhǔn)確性;定時(shí)采用片內(nèi)定時(shí)器定時(shí),提高了電子時(shí)鐘的準(zhǔn)確度。顯示電路可以采用點(diǎn)陣液晶顯示模塊(LED)。一上電,數(shù)碼管顯示的起始時(shí)間為0時(shí)0分0秒,也就是數(shù)碼管顯示000000,然后每

3、過一秒,秒位加一,到9后10秒位加一,秒位回0.10秒位顯示5,秒位顯示9后一秒,分鐘加一,秒位回0。以此類推,時(shí)鐘顯示的最大值位23小時(shí)59分鐘59秒。3 硬件設(shè)計(jì)3.1 硬件原理圖根據(jù)要求,設(shè)計(jì)一個(gè)時(shí)鐘。能夠顯示時(shí)間格式為 時(shí).分.秒,并且設(shè)置鍵盤,根據(jù)按鍵任意調(diào)整時(shí)間。利用8051內(nèi)部定時(shí)器0與軟件結(jié)合來實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將時(shí)字節(jié)清零。顯示部分用共陰極的LED顯示等顯示。硬件原理圖如圖一所示。四個(gè)開關(guān)方便的對秒、分、時(shí)分別調(diào)整,保證

4、功能完善,工作可靠,定時(shí)采用片內(nèi)定時(shí)器定時(shí),提高了電子時(shí)鐘的準(zhǔn)確度。根據(jù)題目要求設(shè)計(jì)的總體框圖,如圖1所示。圖1 硬件原理圖3.2Proteus仿真圖 根據(jù)硬件原理電路,用在Keil生成hex的可執(zhí)行文件,仿真結(jié)果如圖2所示。圖2 Proteus仿真結(jié)果4 軟件設(shè)計(jì)4.1序包括以下幾個(gè)部分:(1)主程序:主程序主要完成系統(tǒng)的初始化,以及對數(shù)碼顯示管和鍵盤子程序的調(diào)用。主程序流程圖如圖3所示。圖3 主程序流程圖(2)鍵盤掃描子程序:返回鍵值鍵盤掃描子程序流程圖如圖4所示。圖4 鍵盤掃描子程序流程圖(3)處理子程序:確定按鍵的位置,并進(jìn)行處理。(4)顯示子程序:將顯示緩沖區(qū)的數(shù)據(jù)送到LED顯示器顯

5、示。時(shí)間顯示是先秒個(gè)位計(jì)算顯示,然后是秒十位計(jì)算顯示,再是分個(gè)位計(jì)算顯示,再然后是分十位顯示,再就是時(shí)個(gè)位計(jì)算顯示,最后是時(shí)十位顯示。顯示子程序流程圖如圖5所示。圖5 顯示子程序流程圖5 總結(jié)歷時(shí)一周的單片機(jī)課程設(shè)計(jì)結(jié)束了,此次課程設(shè)計(jì)中,我所做的是要用8051單片機(jī)及其他部件完成一個(gè)電子時(shí)鐘??梢詫?shí)現(xiàn)電子鐘的走時(shí)和校對;電子鐘上電時(shí)開始走,通過6個(gè)LED顯示時(shí)、分、秒;通過按鍵可以進(jìn)行時(shí)間的調(diào)整。在完成設(shè)計(jì)的過程中,我遇到了一些問題,在用Keil uVision3調(diào)試程序時(shí),軟件提示說“代碼”超過2k。這個(gè)問題困擾了我半天的時(shí)間。后來我直接編譯、編譯連接、全部重建、停止編譯和對工程進(jìn)行設(shè)置,

6、生成了名為 cs.hex文件。之后在Proteus中畫圖仿真。通過這次單片機(jī)課程設(shè)計(jì),我不僅將上學(xué)期所學(xué)的單片機(jī)知識應(yīng)用到設(shè)計(jì)中,同時(shí)更進(jìn)一步學(xué)習(xí)了80C51。了解了74HC373驅(qū)動芯片、4LS21等芯片。更加熟悉了Keil和Proteus的使用。至于用Visio畫流程圖,這很簡單,以前的課程設(shè)計(jì)過程中一直是不可缺少的,所以比較熟悉。每次課程設(shè)計(jì)都會遇到一些問題,隨著問題的解決自己又學(xué)到了更多的知識。6 參考文獻(xiàn)1 李華.單片機(jī)原理及應(yīng)用M.北京:蘭州大學(xué)出版,2001.2 于殿泓,單片機(jī)原理實(shí)驗(yàn)教程M.西安:西安電子科技大學(xué)出版社,2007.3 蔡明文,馮先成.單片機(jī)課程設(shè)計(jì)M.武漢:華中

7、科技大學(xué)出版社,2007.附 錄源程序代碼: ORG 0000H AJMP START ORG 0003H LJMP ST1 ORG 000BH AJMP TT0 ORG 0030HSTART: MOV 30H,#00H ;秒顯示個(gè)位內(nèi)存單元 MOV 31H,#00H ;秒顯示十位內(nèi)存單元 MOV 32H,#00H ;分顯示個(gè)位內(nèi)存單元 MOV 33H,#00H ;分顯示十位內(nèi)存單元 MOV 34H,#00H ;時(shí)顯示個(gè)位內(nèi)存單元 MOV 35H,#00H ;時(shí)顯示十位內(nèi)存單元 MOV TMOD,#01H ;定時(shí)器T0,工作方式1, MOV TH0,#3CH ;定時(shí)50MS MOV TL0,#

8、0B0H MOV R0,#30H ;指針指向顯示單元 MOV R5,#0FEH ;選中秒個(gè)位 MOV R1,#20 MOV 36H,#00H ;時(shí)位鍵盤判斷時(shí)用 MOV R3,#6 ;秒十位判斷時(shí)用 MOV R2, #6 ;分十位判斷時(shí)用 MOV R4,#10 MOV 40H,#10 MOV IE, #81H SETB EA ;開中斷 SETB ET0 ;開T0中斷 SETB TR0 ;記時(shí)開始MAIN: LCALL DIS LJMP MAIN; 顯示子程序DIS: MOV A,R5 ;先位碼 MOV DPTR,#7FFFH ;位碼選擇p2.7 MOVX DPTR,A MOV A,R0 ;再段

9、碼 MOV DPTR,#TAB ;表地址 MOVC A,A+DPTR ;查表 MOV DPTR,#0BFFFH ;段碼選擇p2.6; 顯示小數(shù)點(diǎn) CJNE R0,#32H,GO111 ;小數(shù)點(diǎn)選擇(R0)=/=32H轉(zhuǎn)移 ORL A,#80H GO111: CJNE R0,#34H,MIN ORL A,#80HMIN: MOVX DPTR,A ;送出去顯示 LCALL DELAY ;1MS延時(shí) LCALL DELAY LCALL DELAY INC R0 ;修改指針指向下一顯示單元 MOV A,R5 ;也可寫為XCH A,R5 JNB ACC.5,LH ;判斷顯示完否? RL A ;也可寫為X

10、CH R5,A MOV R5,A AJMP ENR ;返回循環(huán)顯示LH: MOV R0,#30H ;重心定義顯示指針 MOV R5,#0FEH ;重設(shè)位碼,形成循環(huán)ACC.0-ACC.3ENR: RET; 定時(shí)中斷TT0: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R1,FANHUI ;判斷1秒到否?未到跳轉(zhuǎn) MOV R1,#20 INC 30H ;秒個(gè)位加一 DJNZ R4,FANHUI ;判斷10秒到否?未到跳轉(zhuǎn) MOV R4,#10 MOV 30H,#00H INC 31H DJNZ R3,FANHUI MOV R3,#6 MOV 31H,#00H INC 32H

11、DJNZ 40H,FANHUI MOV 40H,#10 MOV 32H,#00H INC 33H DJNZ R2,FANHUI MOV R2,#6 MOV 33H,#00H INC 36H ;時(shí)位判斷時(shí)用 MOV A,36H CJNE A,#24,JUMP MOV 36H,#00HJUMP: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AFANHUI: RETI ; 鍵盤處理程序ST1: CLR EX0 ;鍵盤1判斷時(shí)用 PUSH B PUSH ACC JB P1.0,ST2 LCALL DELAY111 JNB P1.0,$ LCALL DELA

12、Y111 DJNZ R3,GO MOV R3,#6GO: INC 31H MOV A,31H CJNE A,#6,$+3 JNB P1.0,$ JC ST2 MOV 31H,#00H MOV A,31HST2: JB P1.1,ST3 ;鍵盤2判斷時(shí)用 LCALL DELAY111 JNB P1.1,$ LCALL DELAY111 DJNZ 40H,GO1 MOV 40H,#10GO1: INC 32H MOV A,32H CJNE A,#10,$+3 JNB P1.1,$ JC ST3 MOV 32H,#00H MOV A,32HST3: JB P1.2,ST4 ;鍵盤3判斷時(shí)用 LCAL

13、L DELAY111 JNB P1.2,$ LCALL DELAY111 DJNZ R2,GO2 MOV R2,#6GO2: INC 33H MOV A,33H CJNE A,#6,$+3 JNB P1.2,$ JC ST4 MOV 33H,#00H MOV A,33HST4: JB P1.3,ST6 ;鍵盤4判斷時(shí)用 LCALL DELAY111 JNB P1.3,$ LCALL DELAY111 INC 36H MOV A,36H CJNE A,#24,JUMP1 MOV 36H,#00HJUMP1: MOV A,36H MOV B,#10 DIV AB MOV 34H,B MOV 35H,AST6: POP ACC ;鍵盤中斷返回 POP B SETB EX0 RETI; 延時(shí)1MS子程序DE

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論