51單片機(jī)課程設(shè)計(jì)電子時(shí)鐘_第1頁(yè)
51單片機(jī)課程設(shè)計(jì)電子時(shí)鐘_第2頁(yè)
51單片機(jī)課程設(shè)計(jì)電子時(shí)鐘_第3頁(yè)
51單片機(jī)課程設(shè)計(jì)電子時(shí)鐘_第4頁(yè)
51單片機(jī)課程設(shè)計(jì)電子時(shí)鐘_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)課程名稱(chēng):?jiǎn)纹瑱C(jī)課程設(shè)計(jì) 題目名稱(chēng):?jiǎn)纹瑱C(jī)電子時(shí)鐘學(xué)院:電信學(xué)院專(zhuān)業(yè):電子工程姓名:曾代科學(xué) 號(hào):200820313201指導(dǎo)教師:楊力口 匡2010年11月7日一、課程設(shè)計(jì)名稱(chēng): 51 單片機(jī)電子時(shí)鐘二、設(shè)計(jì)方案:1、通過(guò)單片機(jī)內(nèi)部的計(jì)數(shù)/ 定時(shí)器,采用軟件編程來(lái)實(shí)現(xiàn)時(shí)鐘計(jì)數(shù),一般稱(chēng)為軟時(shí)鐘,這種方法的硬件線路簡(jiǎn)單,系統(tǒng)的功能一般與軟件設(shè)計(jì)相關(guān),通常用在對(duì)時(shí)間精度要求不高的場(chǎng)合。2、采用時(shí)鐘芯片,它的功能強(qiáng)大,功能部件集成在芯片內(nèi)部, 具有自動(dòng)產(chǎn)生時(shí)鐘等相關(guān)功能, 硬件成本相對(duì)較高;軟件編程簡(jiǎn)單,通常用在對(duì)時(shí)鐘精度要求較高的場(chǎng)合。三、設(shè)計(jì)內(nèi)容:這里采用應(yīng)用廣泛的AT89C52作為時(shí)鐘

2、控制芯片,利用單片機(jī)內(nèi)部的定時(shí)/ 計(jì)數(shù)器 T0 實(shí)現(xiàn)軟時(shí)鐘的目的。 首先將 T0設(shè)定工作于定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間( 50ms) ,然后用另一個(gè)定時(shí)/ 計(jì)數(shù)器 T1 對(duì)基準(zhǔn)時(shí)間計(jì)數(shù)形成秒,妙計(jì)60 次形成分,分計(jì)60 形成小時(shí),小時(shí)計(jì)到 12 。最后通過(guò)數(shù)碼管把它們的內(nèi)容在相應(yīng)的位置顯示出來(lái),達(dá)到時(shí)、分、秒計(jì)時(shí)的功能。此外還要實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整功能, 89C52 的 P1.0、 P1.1、P1.2外接三個(gè)獨(dú)立按鍵,當(dāng)按下P1.0按鍵時(shí),系統(tǒng)進(jìn)入調(diào)時(shí)間的狀態(tài)或啟動(dòng)時(shí)間顯示的功能; 當(dāng)按下 P1.1 按鍵時(shí), 對(duì)顯示的數(shù)碼管進(jìn)行加一的功能;當(dāng)按下 P1.2 按鍵時(shí),對(duì)顯示的數(shù)碼管進(jìn)行減一

3、的功能,達(dá)到調(diào)整時(shí)間的目的。四、系統(tǒng)軟件程序設(shè)計(jì)1.主程序先對(duì)顯示單元和定時(shí)器/ 計(jì)數(shù)器初始化, 然后重復(fù)調(diào)用數(shù)碼管顯示模塊和按鍵處理模塊,當(dāng)有按鍵按下時(shí),則轉(zhuǎn)入相應(yīng)的功能程序。2、數(shù)碼管顯示模塊本實(shí)驗(yàn)有 8 個(gè)數(shù)碼管,從右到左為妙、橫線、分、橫線、時(shí)。在本系統(tǒng)中數(shù)碼管顯示采用軟件譯碼動(dòng)態(tài)顯示。在存儲(chǔ)器中首先建立一張顯示信息的字段碼表,顯示時(shí),先從顯示緩沖區(qū) 中取出顯示的信息, 然后通過(guò)查表程序在字段表中查出所顯示的信息的斷碼,從P0 端口輸出,同時(shí)在 P2 端口進(jìn)行數(shù)碼管顯示。3、定時(shí)器/ 計(jì)數(shù)器 T0 中斷服務(wù)程序T0 用于計(jì)時(shí), 選中方式一, 重復(fù)定時(shí), 定時(shí)時(shí)間設(shè)為50ms,定時(shí)時(shí)間到

4、則中斷,在中斷服務(wù)程序中用一個(gè)計(jì)數(shù)器對(duì) 50ms 計(jì)數(shù),計(jì) 20 次則對(duì)秒單元加一。秒單元加到 60 則對(duì)分單元加一, 同時(shí)秒單元清0; 分單元加到 60 則對(duì)時(shí)單元加一,同時(shí)分單元清0;時(shí)單元加到 24 則對(duì)時(shí)單元清0,標(biāo)志一天時(shí)間計(jì)滿。在對(duì)各單元計(jì)數(shù)的同時(shí),把他們的值放到存儲(chǔ)器單元的指定位置。流程圖如下:主程序流程圖4、按鍵處理模塊按鍵設(shè)置為:如果沒(méi)有按鍵嗎,則時(shí)鐘正常走時(shí)當(dāng)按下 K0 鍵時(shí), 進(jìn)入調(diào)分狀態(tài), 時(shí)鐘停止走動(dòng); 按 K1 和 K2按鍵可以進(jìn)行加一和減一操作;繼續(xù)按 K0 鍵可以分別進(jìn)行分和小時(shí)的調(diào)整;最后按K0 鍵啟動(dòng)計(jì)時(shí)。5、匯編語(yǔ)言程序ORG0000HLJMPSTARTO

5、RG000BHLJMPINIT0START:MOVR0,#70H; 主程序開(kāi)始MOVR7,#0CHINIT:MOVR0,#00HINC R0DJN ZR7,INITMOV72H,#10; 對(duì)連字符進(jìn)行裝值MOV75H,#10MOVTMOD,#01H ;選擇定時(shí)器/計(jì)數(shù)器 T0 的方式1MOVTL0,#0B0H; 對(duì)低位賦初值MOVTH0,#03CH; 高位賦初值SETBEASETBET0SETBTR0START1:LCALLSCANLCALLKEYSCANSJMPSTART1DL1MS:MOVR6,#14H; 延時(shí) 1 子程序DL1:MOVR7,#19HDL2:DJNZR7,DL2DJNZR6

6、,DL1RETDL20MS:ACALLSCAN;延時(shí) 20ms 子程序ACALLSCANACALLSCANRET; 數(shù)碼管顯示程序開(kāi)始SCAN:MOVA,78HMOVB,#0AHDIV AB;時(shí)間秒的十位送給A,時(shí)間秒白個(gè)位送BMOV71H,A;時(shí)間秒要顯示的十位MOV70H,B;時(shí)間秒要顯示的個(gè)位MOVA,79HMOVB,#0AHDIV AB;時(shí)間分的十位送給 A,時(shí)間分的個(gè)位送BMOV74H,A;時(shí)間分要顯示的十位送地址MOV73H,B;時(shí)間分要顯示的個(gè)位送地址MOVA,7AHMOVB,#0AHDIV AB;時(shí)間時(shí)的十位送給A,時(shí)間時(shí)的個(gè)位送BMOV77H,A;時(shí)間時(shí)顯示的十位送地址MOV

7、76H,B;時(shí)間時(shí)要顯示的個(gè)位送地址MOVR1,#70HMOVR5,#0FEHMOVR3,#08HSCAN1:MOVA,R5;數(shù)碼管的顯示程序MOVP2,AMOVA,R1MOVDPTR,#TABMOVCA,A+DPTR;對(duì)字段表取值顯示MOVP0,AMOVA,R5LCALLDL1MSINC R1MOVA,R5RL AMOVR5,ADJNZR3,SCAN1MOVP2,#0FFHMOVP0,#0FFHRET;"09"和 "-" 的字段表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH; 定時(shí)

8、/ 計(jì)數(shù)器 T0 中斷程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0 ;50ms 是否到 20次,沒(méi)有到就繼續(xù)執(zhí)行50ms 的延時(shí)MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ;一秒的延時(shí)是否計(jì)到60 次,沒(méi)有就繼續(xù)執(zhí)行MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OU

9、TT0 ;60 分鐘的延時(shí)是否計(jì)到 24次,沒(méi)有就繼續(xù)執(zhí)行程序MOV 7AH,#00OUTT0:SETB ET0;啟動(dòng)定時(shí)器T0POP PSWPOP ACCRETI; 按鍵處理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0;P1.0有按鍵按下則跳轉(zhuǎn)到子程序JNB P1.1,KEYSCAN1;P1.1 有按鍵按下則跳轉(zhuǎn)到子程序JNB P1.2,KEYSCAN2;P1.2 有按鍵按下則跳轉(zhuǎn)到子程序KEYOUT: SETB EARETKEYSCAN0:LCALLDL20MS;20ms 的延時(shí)消抖JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0;判斷按鍵是否松

10、手,松手就往下執(zhí)行程序INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOU世下第一次和第二次對(duì)時(shí)、分選定MOV 7CH,#00;按下第三次時(shí)就啟動(dòng)計(jì)時(shí)SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALLDL20MS ;按鍵加一的程序JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11 ;如果功能鍵按下則對(duì)時(shí)加一調(diào)整INC 79HCJNE A,#3CH,KEYOUT ;如果加到 60 則清零MOV 79H,#00SJMP KEYOUTKSCAN11:I

11、NC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行加一調(diào)整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALLDL20MS;延時(shí)消抖程序JB P1.2,KEYOUT WAIT2: JNB P1.2,WAIT2;判斷是否放開(kāi)按鍵MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能鍵是按下第一次對(duì)時(shí)進(jìn)行減一DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH;如果功能鍵是按下第二次則對(duì)分進(jìn)行減一CJNE A,#0FFH,

12、KEYOUTMOV 7AH,#17HSJMP KEYOUT END6、軟件編譯環(huán)境:Keil uVision2確保生成".Hex"文件 al« it l fatv口.& F蠅白gVK 1mde *1-由0009 d 4,。晴3M g A ® 0國(guó) ft白日 E 4 iZjM.JH'n Id 看Tut 'Tarrgt可IVgovEMlvggwgIV一MD 及 MMK MMM K RB fukH KB 71H A 7 OH BB Hl Xs AB 74H k 73H日 A. 7k B *GJkH AB»同陟的十拉增雄*, 時(shí)

13、順陟吩小板送I時(shí)間型二口標(biāo)的十也 打間后安思M i應(yīng)肝間分的+ fittS嶺卻酎國(guó)分的力位送日N同分復(fù)星早整遇癌班時(shí)間王£已疔:常:卜由舌迪皿I inking.一PnjgriH &i藝g二 d cr*&tmg hex file,.l,l*d" - 0 Error(s ,. 0 Warning (s).0 xdAta0 c&d?i323海鑄以五、系統(tǒng)硬件電路的設(shè)計(jì)系統(tǒng)的硬件主要包括單片機(jī)芯片,數(shù)碼管顯示,按鍵開(kāi)關(guān)電路,它的硬件電路如下圖所示,單片 機(jī)采用廣泛使用的AT89C52系統(tǒng)時(shí)鐘采用12MHz的 晶振,八個(gè)數(shù)碼管顯示,小時(shí)與分鐘與秒鐘間用短橫 線,采用共陽(yáng)極七段式數(shù)碼管,P0 口為段選碼輸出端, P2 口為位選碼輸出端。硬件電路如圖所示:六、課程設(shè)計(jì)總結(jié)經(jīng)過(guò)一周的時(shí)間以及對(duì)整本教材的知識(shí)總結(jié), 把課程設(shè)計(jì)分成了硬件和軟件兩大模塊??偟膩?lái)說(shuō),硬件部分很好入手,電路也教簡(jiǎn)單,主 要涉及的是簡(jiǎn)單的按鍵、電容、電阻、晶振和數(shù)碼管。 在軟件部分,細(xì)分為了按鍵模塊、顯示模塊、定時(shí) / 計(jì)數(shù)模塊,最后把幾個(gè)模塊整合在主程序模塊中,使得程序簡(jiǎn)單明了。整個(gè)設(shè)計(jì)過(guò)程中遇

溫馨提示

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

評(píng)論

0/150

提交評(píng)論