




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計課程名稱 : 單片機課程設計題目名稱:單片機電子時鐘學院電信學院專業(yè)電子工程姓名曾代科學號3201指導教師楊加玉2010年11月7日一、課程設計名稱: 51 單片機電子時鐘二、設計方案:1、通過單片機內部的計數 / 定時器,采用軟件編程來實 現時鐘計數,一般稱為軟時鐘,這種方法的硬件線路簡單, 系統(tǒng)的功能一般與軟件設計相關,通常用在對時間精度要求 不高的場合。2、采用時鐘芯片,它的功能強大,功能部件集成在芯 片內部,具有自動產生時鐘等相關功能,硬件成本相對較高;軟件編程簡單,通常用在對時鐘精度要求較高的場合。三、設計內容:這里采用應用廣泛的 AT89C52 作為時鐘控制芯片,利用單片機
2、內部的定時 / 計數器 T0 實現軟時鐘的目的。首先將T0 設定工作于定時方式,對機器周期計數形成基準時間(50ms),然后用另一個定時/計數器 T1 對基準時間計數形 成秒,妙計 60 次形成分,分計 60 形成小時,小時計到 12。 最后通過數碼管把它們的內容在相應的位置顯示出來,達到 時、分、秒計時的功能。此外還要實現對時間的調整功能,89C52 的、外接三個獨立按鍵,當按下按鍵時,系統(tǒng)進入調時間的狀態(tài)或啟動時 間顯示的功能;當按下按鍵時,對顯示的數碼管進行加一的功能;當按下按鍵時,對顯 示的數碼管進行減一的功能,達到調整時間的目的。四、系統(tǒng)軟件程序設計1. 主程序先對顯示單元和定時器
3、/ 計數器初始化,然后重復調 用數碼管顯示模塊和按鍵處理模塊,當有按鍵按下時,則轉 入相應的功能程序。2、數碼管顯示模塊本實驗有 8 個數碼管,從右到左為妙、橫線、分、 橫線、時。在本系統(tǒng)中數碼管顯示采用軟件譯碼動態(tài)顯示。 在存儲器中首先建立一張顯示信息的字段碼表,顯示時,先 從顯示緩沖區(qū)中取出顯示的信息,然后通過查表程序在 字段表中查出所顯示的信息的斷碼,從P0 端口輸出, 同時在 P2 端口進行數碼管顯示。3 、定時器 / 計數器 T0 中斷服務程序T0 用于計時,選中方式一,重復定時,定時時間設為 50ms,定時時間到則中斷,在中斷服務程序中用一個計數器 對 50ms 計數,計 20 次
4、則對秒單元加一。秒單元加到60 則對分單元加一, 同時秒單元清 0;分單元加到 60 則對時單元 加一,同時分單元清 0;時單元加到 24 則對時單元清 0,標志一天時間計滿。在對各單元計數的同時,把他們的值放到存儲器單元的指定位置。流程圖如下:開始4、按鍵處理模塊按鍵設置為:如果沒有按鍵嗎,貝 U 時鐘正常走時現場保護,重置初值,啟動下一個50ms50ms 計數器加一當按下 K0 鍵時,進入調分狀態(tài),時鐘停止走動;按K1 和 K2按鍵可以進行加一和減一操作;繼續(xù)按 K0 鍵可以分別進行5、匯編語言程序時間秒的十位送給 A,時間秒的個位送 B ; 時間秒要顯示的十位 ; 時間秒要顯示的個位MO
5、V B,#OAH分和小時的調整;最后按KO 鍵啟動計時。START:INIT:ORG OOOOH LJMPSTART ORGOOOBH LJMPINITO MOVRO,#7OH MOVR7,#OCH MOVRO,#OOH INC RODJN Z R7,INITMOV MOV MOVMOV MOV; 主程序開始; 對連字符進行裝值72H,#1O75H,#1OTMOD,#01H;選擇定時器/計數器 TO 的方式 1TLO,#OBOHTHO,#O3CH; 對低位賦初值; 高位賦初值START1:SETB EASETB ETOSETB TROLCALL SCANLCALL KEYSCANDL1MS:D
6、L1:DL2:DL20MS:SJMP START1MOV R6,#14HMOV R7,#19HDJNZ R7,DL2DJNZ R6,DL1RET ACALLACALL ACALLRET; 延時 1 子程序SCAN ;延時 20ms 子程序SCANSCAN; 數碼管顯示程序開始SCAN:MOV A,78HMOV B,#OAHDIV AB ;MOV 71H,AMOV 7OH,BMOV A,79HINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET;09 和- 的字段表TAB:DB 0C0H,0F9H,0A4H,0B0H
7、,99H,92H,82H,0F8H,80H,90H,0BFH定時 / 計數器 T0 中斷程序INIT0:PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTTO ;50ms 是否到 20 次,沒有到就繼續(xù)執(zhí)行 50ms 的延時MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ; 一秒的延時是否計到 60 次,沒有就繼續(xù)執(zhí)行MOV 78H,#00DIV ABMOV 74H,AMOV 73H,BMOV A,7AHMOV B
8、,#0AH DIV ABMOV 77H,AMOV 76H,BMOV R1,#70HMOV R5,#0FEHMOV R3,#08HSCAN1: MOV A,R5MOV P2,AMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P0,AMOV A,R5LCALL DL1MS;時間分的十位送給 A,時間分的個位送 B ; 時間分要顯示的十位送地址; 時間分要顯示的個位送地址;時間時的十位送給 A,時間時的個位送 B ; 時間時顯示的十位送地址; 時間時要顯示的個位送地址; 數碼管的顯示程序; 對字段表取值顯示INC 79HMOV A,79HCJNE A,#3CH,OUTT0
9、MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0 ;60 分鐘的延時是否計到 24 次,沒有就繼續(xù)執(zhí)行程序MOV 7AH,#00OUTT0:SETB ET0; 啟動定時器 T0POP PSWPOP ACCRETI; 按鍵處理程序KEYSCAN:CLR EAJNB ,KEYSCAN0 ; 有按鍵按下則跳轉到子程序JNB ,KEYSCAN1 ; 有按鍵按下則跳轉到子程序JNB ,KEYSCAN2 ; 有按鍵按下則跳轉到子程序KEYOUT: SETB EARETKEYSCAN0:LCALL DL20MS ;20ms 的延時消抖JB ,KEYOUTWAIT0:
10、JNB ,WAIT0; 判斷按鍵是否松手, 松手就往下執(zhí)行程序INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT; 按下第一次和第二次對時、分選定MOV 7CH,#00 ; 按下第三次時就啟動計時SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ; 按鍵加一的程序JB ,KEYOUTWAIT1: JNB ,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11 ; 如果功能鍵按下則對時加一調整INC 79HCJNE A,#3CH,KEYOUT ; 如果加到 60 則清零MOV 79H,#0
11、0SJMP KEYOUTKSCAN11:INC 7AH ; 如果功能鍵是按下第 二次則對分進行加一調整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MS;延時消抖程序JB ,KEYOUTWAIT2:JNB ,WAIT2 ;判斷是否放開按鍵MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能鍵是按下第一次對時進行減一DEC 79HMOV A,79HCJNE A,#OFFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH;如果功能鍵是按下第二次則對分進
12、行減一CJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND6、軟件編譯環(huán)境:Keil uVisio n2五、系統(tǒng)硬件電路的設計系統(tǒng)的硬件主要包括單片機芯片,數碼管顯示,按鍵開關電路,它的硬件電路如下圖所示,單片-J.=5.申IVEOVCW軸Ivovg訊如IV.MDM MXMDKMMKD-B fukHJkB 71H A7 OHBA.e misAB74H h73H BA. 7k BMAH時閭分的十悅空榕靳叭匐分的十儉熔日31I inking.亠PnjgriH囂1時d crfr&ting hex file ,.l,l*d亠0 Error(s ,. 0 W
13、arning (s).0 xdAta0 c&d?*323署2種功L丨C 15確保生成.Hex文件 al it l fatvn.ilb F中plh*目飾 黔dm彩*5 Gzt響承TM4 iZJ機采用廣泛使用的 AT89C52 系統(tǒng)時鐘采用 12MHz 的 晶振,八個數碼管顯示,小時與分鐘與秒鐘間用短橫 線,采用共陽極七段式數碼管,P0 口為段選碼輸出端, P2 口為位選碼輸出端。硬件電路如圖所示:六、課程設計總結經過一周的時間以及對整本教材的知識總結,把課程設計分成了硬件和軟件兩大模塊??偟膩碚f,硬件部分很好入手,電路也教簡單,主 要涉及的是簡單的按鍵、電容、電阻、晶振和數碼管。 在軟件部分,細分為了按鍵模塊、顯示模塊、定時/ 計數模塊,最后把幾個模塊整合在主程序模塊中,使得程序簡單明了0-03整個設計過程中遇到的最大問題是軟件的 編寫,由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 淺談核電質量管理體系的建立與實施
- 2025年芝麻花行業(yè)深度研究分析報告
- 2025-2031年中國箱紙板行業(yè)市場需求預測及投資規(guī)劃建議報告
- 中國填充橡膠項目投資可行性研究報告
- 高考生物五大模塊知識點
- 恒溫試驗設備評估項目可行性研究報告
- 2025年中國gps導航系統(tǒng)行業(yè)市場發(fā)展監(jiān)測及投資方向研究報告
- 2025年流行性出血熱檢測卡項目投資可行性研究分析報告
- 年產2000噸工業(yè)赤磷、超細赤磷項目安全預評價報告
- 酚醛膠木絕緣子行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 0-3歲嬰幼兒基礎護理知到智慧樹章節(jié)測試課后答案2024年秋杭州師范大學
- 掛靠免責協議書范本
- 2024-2030年中國新媒體市場前景規(guī)模及發(fā)展趨勢分析報告
- Python金融數據分析與挖掘(微課版) 教案全套 黃恒秋
- 中建10t龍門吊安拆安全專項施工方案
- 國內外測井技術現狀與展望文檔
- 《銷售人員的培訓》課件
- 國防動員課件教學課件
- 特殊作業(yè)安全管理監(jiān)護人專項培訓課件
- 衛(wèi)生技術人員準入制度
- 自行車被盜案匯報課件
評論
0/150
提交評論