基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計

上傳人:仙*** 文檔編號:31479964 上傳時間:2021-10-12 格式:DOC 頁數(shù):31 大?。?17KB
收藏 版權(quán)申訴 舉報 下載
基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計_第1頁
第1頁 / 共31頁
基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計_第2頁
第2頁 / 共31頁
基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計_第3頁
第3頁 / 共31頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于單片機的簡易時鐘設(shè)計畢業(yè)設(shè)計(31頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 廣西理工職業(yè)技術(shù)學(xué)院 畢業(yè)設(shè)計(論文)說明書 題 目: 簡易電子時鐘設(shè)計 系 別: 電氣工程系 專業(yè)班級: 11機電2 姓 名: 黃武錦 學(xué) 號: 20112323 指導(dǎo)教師: 黎有好 二〇一三

2、年七月二十四日 目錄 1.概論 1 2.整體設(shè)計思路 2 2.1硬件各部分所能完成的功能 3 2.2系統(tǒng)工作原理 4 2.3時鐘各功能分析及圖解 4 2.4.1電路各功能圖解分析 4 2.4.2電路功能使用說明 7 3. 軟件設(shè)計思路 8 3.1 主程序模塊 8 3.2 數(shù)碼管動態(tài)掃描模塊 9 3.3 當(dāng)前時間計時模塊 9 3.4 鬧鐘輸入輸出模塊 10 3.5 當(dāng)前時間調(diào)整模塊 12 3.6復(fù)位模塊 13 4.系統(tǒng)的調(diào)試和性能分析 14 4.1系統(tǒng)的調(diào)試方法 14 4.1.1輸入按鍵的調(diào)試 14 4.1.2復(fù)位電路的調(diào)試 14 4.1.3顯示電路的調(diào)

3、試 14 4.1.4整個系統(tǒng)的聯(lián)調(diào) 14 4.2心得體會 15 參考文獻 15 附錄 16 附錄A 系統(tǒng)原理圖 16 附錄B 程序源代碼 17 電氣信息學(xué)院課程設(shè)計評分表 28 1.概論 單片機系統(tǒng)作為一種典型的嵌入式系統(tǒng),其系統(tǒng)設(shè)計包括硬件電路設(shè)計和軟件編程設(shè)計兩個方面, 其調(diào)試過程一般分為軟件調(diào)試、硬件測試、系統(tǒng)調(diào)試3個過程。如果采用單片機系統(tǒng)的虛擬仿真軟件——Proteus,則不用制作具體的電路板也能夠完成以上工作。數(shù)字鐘是采用數(shù)字電路實現(xiàn)對時,分,秒,數(shù)字顯示的計時裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠遠

4、超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表的報時功能。數(shù)字鐘已成為人們?nèi)粘I钪械谋匦杵?,廣泛應(yīng)用于家庭、車站、碼頭、劇院、辦公室等場所,給人們的生活、學(xué)習(xí)、工作帶來極大的方便[4]。不僅如此,在現(xiàn)代化的進程中,也離不開電子鐘的相關(guān)功能和原理,比如機械手的控制、家務(wù)的自動化、定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。而且是控制的核心部分。因此,研究數(shù)字鐘及擴大其應(yīng)用,有著非常現(xiàn)實的意義。 電子鐘在工業(yè)控制和日常生活中是很重要的,它不僅可

5、以用于計時、提醒又可用于對機器的控制,在自動化的過程中必然有電子鐘的參與,因此電子鐘的應(yīng)用會越來越廣泛。而且向著精確、低功耗、多功能發(fā)展?;趩纹瑱C設(shè)計的數(shù)字鐘精確度較高, 因為在程序的執(zhí)行過程中, 任何指令都不影響定時器的正常計數(shù),即便程序很長也不會影響中斷的時間。從而,使數(shù)字鐘的精度僅僅取決于單片機的產(chǎn)生機器周期電路和定時器硬件電路的精確度。另外,程序較為簡潔,具有可靠性和較好的可讀性。如果我們想將它應(yīng)用于實時控制之中,只要對上述程序和硬件電路稍加修改,便可以得到實時控制的實用系統(tǒng),從而應(yīng)用到實際工作與生產(chǎn)中去。 數(shù)字電子鐘的設(shè)計方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘, 也可以

6、利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有特點, 其中,利用單片機實現(xiàn)的電子鐘具有編程靈活, 便于功能擴充, 精確度高等特點。 2.整體設(shè)計思路 這部分主要介紹工作安排和整體設(shè)計的思想。工作過程規(guī)劃如下: 熟悉硬件了解各引腳功能 分塊設(shè)計各部分電路 完成整體電路圖 將分塊的電路組合 認(rèn)真學(xué)習(xí)單片機C語言 確定編程結(jié)構(gòu)和思路 綜合各程序完成整體程序 編輯各個程序模塊 用Proteus畫出電路圖 調(diào)試程序

7、,進行修改 對仿真中出現(xiàn)的問題 進行改正 畫出仿真圖進行仿真 準(zhǔn)備器件、搭接電路 仿真成功 軟硬件結(jié)合,完成任務(wù)書要求 驗證硬件電路 成功 對設(shè)計進行總結(jié)和分析 圖2.1 整體設(shè)計思路 針對要實現(xiàn)的功能,擬采用AT89C51單片機進行設(shè)計,AT89C51 單片機是一款低功耗,高性能CMOS8位單片機,片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS- 51指令系統(tǒng)及8

8、0C51引腳結(jié)構(gòu)[7]。這樣,既能做到經(jīng)濟合理又能實現(xiàn)預(yù)期的功能。 在程序方面,采用分塊設(shè)計的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項功能。程序可分為顯示程序、調(diào)時顯示運用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會出現(xiàn)意想不到的錯誤。 本電子鐘設(shè)計主要是依照圖2.1中的流程做出來的,時間分配比較均勻。首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲單元的用法,否則,編程無從下手,電路也無法設(shè)計。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計設(shè)計,比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動電路和液晶電路等。第三部分是軟件部分:

9、先學(xué)習(xí)理解C語言的編程方法再根據(jù)設(shè)計的硬件電路進行分塊的編程調(diào)試,最終完成程序設(shè)計。第四部分是軟件畫圖部分:設(shè)計好電路后進行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計好后將軟件載入芯片中進行仿真,仿真無法完成時檢查軟件程序和硬件電路并進行修改直到仿真成功。第六部分是硬件實現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計的完全一樣一般能實現(xiàn)想要的功能。 2.1硬件各部分所能完成的功能 (1)單片機發(fā)送的信號通過程序控制最終在數(shù)碼管上顯示出來。 (2)單片機通過輸出各種電脈沖信號來驅(qū)動控制各部分正常工作。 (3)為使時鐘走時與標(biāo)準(zhǔn)時間一致,校時電路是必不可少的,鍵盤

10、用來校正數(shù)碼管上顯示的時間。 (4)單片機通過控制鬧鈴電路來完成定時鬧鐘的功能。 (5)單片機通過程序?qū)︳[鈴信號燈進行控制,可方便我們對鬧鈴的開關(guān)以及是否在鬧鈴進行觀察。 (6)由于要設(shè)置定時功能,所以配置了對鬧鐘設(shè)置的鍵盤。 2.2系統(tǒng)工作原理 設(shè)計的電路主要由四模塊構(gòu)成:時間顯示電路、信號顯示電路、鍵盤控制電路、外設(shè)鬧鈴電路以及核心控制電路 詳細電路功能圖如圖2-2: 圖2-2 詳細電路功能圖 本設(shè)計采用匯編語言程序設(shè)計,使單片機控制數(shù)碼管顯示時、分、秒,當(dāng)秒計數(shù)計滿60時就向分進位,分計數(shù)器計滿60后向時計數(shù)器進位,小時計數(shù)器按“23翻0”規(guī)律計數(shù)。

11、時、分、秒的計數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。設(shè)計采用的是時、分、秒顯示,單片機對數(shù)據(jù)進行處理同時在數(shù)碼管上顯示。 2.3時鐘各功能分析及圖解 2.4.1電路各功能圖解分析 (1) 時鐘運行圖 仿真開始運行時,或按下K7鍵時,時鐘從00:00:00開始運行,其中按下K1鍵可進入當(dāng)前時間調(diào)節(jié),K2和K3分別負(fù)責(zé)加一和減一,K5鍵為確認(rèn)鍵。 時鐘運行圖如圖 2-3 所示: 圖2-3 時鐘運行圖 (2) 鬧鐘開關(guān)指示圖 當(dāng)按下K4鍵后,可進入鬧鐘設(shè)時控制,設(shè)置完后按確認(rèn),按下K6,即開鬧鐘,信號顯示區(qū)得開/關(guān)鬧鐘信號燈點亮,表示當(dāng)時間到達鬧鐘的時間時,鬧鈴響

12、;再次按下鬧鈴,為關(guān)鬧鈴,此時的信號顯示區(qū)得開/關(guān)鬧鐘信號燈熄滅。如下圖2-4: 圖2-4鬧鐘開關(guān)指示圖 (3)鬧鈴運行圖 當(dāng)時間到達鬧鐘設(shè)置的時間時,蜂鳴器會按每秒兩次的頻率響,鬧鐘指示燈也會閃爍。如下圖2-5: 圖2-5鬧鈴運行圖 該數(shù)字鐘是用一片AT89C51單片機通過編程去驅(qū)動8個數(shù)碼管實現(xiàn)的。通過7個開關(guān)控制,從上到下7個開關(guān)K1-K7的功能分別為: K1:設(shè)置當(dāng)前時間時/分/秒 K2:加一按鍵 K3:減一按鍵 K4:設(shè)置鬧鐘時間時/分/秒 K5: 確認(rèn)/關(guān)閉鬧鈴 K6:開/關(guān)鬧鐘 K7: 復(fù)

13、位 控制鍵分別與P1.0~P1.6口連接,通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1——8端,是控制動態(tài)掃描輸出. 從P3.6輸出一個信號使二極管發(fā)光,二極管在設(shè)置的鬧鐘時間到了時候發(fā)光,P3.7接一個蜂鳴器,若有樂曲可以去驅(qū)動揚聲器實現(xiàn)。 2.4.2電路功能使用說明 (1) 各個控制鍵的功能:可對時間進行校準(zhǔn)調(diào)節(jié)(只能加1);按下設(shè)置鍵數(shù)字時鐘進入鬧鐘設(shè)置狀態(tài),設(shè)置鬧鐘的時間;時加1、分加1鍵是在校準(zhǔn)時間時或設(shè) 置鬧鐘時間對小時數(shù)或分鐘數(shù)調(diào)節(jié)而設(shè)置的;按下秒切換鍵就可以進入秒表模式,同時秒表也開始計時,按下秒表暫停、

14、復(fù)位鍵就暫停、歸零,如果要重新對秒計時則可以按秒表開始、復(fù)位;清零鍵可以對鬧鐘清零。 (2)AT89C51單片機,通過編寫程序?qū)?shù)碼顯示進行控制。 (3) 八個7段數(shù)碼管顯示時鐘信號。 3. 軟件設(shè)計思路 根據(jù)設(shè)計的要求與內(nèi)容,我們將該軟件設(shè)計成七個模塊,他們包括:主程序、數(shù)碼管動態(tài)掃描模塊、當(dāng)前時間計時模塊、鬧鐘輸入輸出模塊、當(dāng)前時間調(diào)整模塊、數(shù)制轉(zhuǎn)換模塊以及復(fù)位模塊。 3.1 主程序模塊 主程序模塊是單片機最先編譯運行的模塊,所以在這個模塊里,我們要設(shè)置主程序和各個中斷

15、服務(wù)程序的入口地址、各種初始化以及開關(guān)掃描等。 MCS-51系列單片機復(fù)位后,(PC)=0000H,而0003H~002BH分別為各中斷的入口地址。所以,編程時應(yīng)在0000H處寫一條跳轉(zhuǎn)指令。當(dāng)CPU接受到中斷請求信號并予以相應(yīng)后,CPU把當(dāng)前的PC內(nèi)容壓入棧中進行保護,然后轉(zhuǎn)入相應(yīng)的只能中斷服務(wù)程序入口處執(zhí)行。一般應(yīng)在相應(yīng)的中斷服務(wù)程序入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標(biāo)地址作為中斷服務(wù)程序的起始地址進行編程。 初始化,是對將要用到的MCS-51系列單片機內(nèi)部部件或擴展芯片進行初始工作狀態(tài)設(shè)定。 下圖3-1是我們設(shè)計該主程序模塊的程序框圖。 圖3-1主程序設(shè)計框圖 3.

16、2 數(shù)碼管動態(tài)掃描模塊 在數(shù)碼管動態(tài)掃描模塊里,包含了兩個子程序,一個是顯示子程序,另一個是顯示延時1MS子程序。其中顯示延時1MS子程序是用軟件延時的方法進行的,過程較簡單,這里就不畫出它的程序框圖,下圖3-2為顯示子程序的程序框圖。 圖3-2顯示子程序 3.3 當(dāng)前時間計時模塊 本軟件中的當(dāng)前時間計時模塊實際上是T0定時器的中斷服務(wù)程序,我們將T0定時器工作在方式一中,并讓它每50MS產(chǎn)生一次中斷。 每產(chǎn)生一次中斷,進入中斷服務(wù)程序后,T0定時器重新轉(zhuǎn)載初始值。MS50(它是對50MS中斷次數(shù)統(tǒng)計的存儲單元地址標(biāo)號)就會自加一,接著對MS50進行判斷,如果MS50沒有到達

17、20次(即一秒的時間),就返回到主程序。如果到達20次,MS50將清零,并將MIAO(MIAO是對秒進行計數(shù)的存儲單元地址標(biāo)號)將自加一。接著判斷MIAO是否到達60次,沒到就返回,到了60秒,MIAO將被清零,F(xiàn)EN(FEN是對分進行計數(shù)的存儲單元地址標(biāo)號)自加一。再判斷FEN,過程與判斷MIAO相識,也是到達60分就進1時并對分清零,時的寄存器地址標(biāo)號是SHI,因為一天只有24小時,所以,如果SHI計數(shù)到了24時,它將對SHI、FEN、MIAO同時清零。 下圖3-3為該中斷服務(wù)的程序框圖 圖3-3T0中斷服務(wù)程序 3.4 鬧鐘輸入輸出模塊 由于鬧鐘輸入輸出模塊要實現(xiàn)的功

18、能較多,所以它是我們該軟件中設(shè)計耗時最長的一個模塊,也是最復(fù)雜的一個模塊。而我們對其采取再分子模塊策略,我們對該模塊劃分了6個子模塊:設(shè)置鬧鐘時間子模塊、鬧鐘開關(guān)子模塊、檢查鬧鐘子模塊、鬧鐘指示燈亮子模塊、鬧鐘轉(zhuǎn)換子模塊、蜂鳴器子模塊。下面將逐個說明各個子模塊的功能。 設(shè)置鬧鐘時間子模塊:該模塊實現(xiàn)的功能是,當(dāng)設(shè)置鬧鐘時間的鍵盤被按下時,則進入該子模塊,通過對各個指定按鍵的操作來實現(xiàn)鬧鐘時間的設(shè)置。 鬧鐘開關(guān)子模塊:該模塊實現(xiàn)的功能是,對鬧鐘的工作狀態(tài)進行開關(guān),當(dāng)為開時,鬧鐘時間到后,鬧鐘指示燈會亮以及蜂鳴器會響;當(dāng)為關(guān)時,即便鬧鐘時間到了,鬧鐘指示燈不會亮以及蜂鳴器不會響。 檢查鬧鐘子

19、模塊:該模塊實現(xiàn)的功能是,它是在主程序中被循環(huán)調(diào)用的,每調(diào)用一次,它會把當(dāng)前時間與鬧鐘時間進行比較,如果當(dāng)前時間與鬧鐘時間相同且鬧鐘開關(guān)為開,則調(diào)用鬧鐘指示燈亮子模塊和蜂鳴器子模塊;否則繼續(xù)運行主程序。 鬧鐘指示燈亮子模塊:該模塊的功能是,當(dāng)時間到時,它將使鬧鐘指示燈以每秒兩次的頻率閃爍,閃爍三十秒后熄滅。 蜂鳴器子模塊:該模塊的功能是,當(dāng)時間到時,它將使鬧鐘指示燈以每秒兩次的頻率響,響三十秒后停止響聲。 鬧鐘轉(zhuǎn)換子模塊:由于在寄存器中存儲的是十六進制的數(shù),不能存儲十進制的數(shù),且我們用的LED燈是共陽極的,所以在要輸出顯示鬧鐘的時間前,要進行鬧鐘數(shù)制轉(zhuǎn)換。故該模塊的功能是實現(xiàn)對鬧鐘時間寄

20、存器中的內(nèi)容進行數(shù)制轉(zhuǎn)換。 對鬧鐘設(shè)計成六個子模塊,使我們更容易得設(shè)計出鬧鐘所要實現(xiàn)的功能,這也就是模塊化的好處,將一個大型的問題劃分為若干個小問題,對這若干小問題進行設(shè)計,最好通過參數(shù)把這些小模塊連成一個大的模塊,從而解決問題。下圖3-4是對這六個模塊之間的聯(lián)系的描述。 圖3-4 鬧鐘輸入輸出模塊 3.5 當(dāng)前時間調(diào)整模塊 當(dāng)前時間調(diào)整模塊是用來按用戶的需要對當(dāng)前所顯示的時間進行設(shè)置,本軟件的設(shè)計思路是通過對相關(guān)的時間設(shè)置按鍵的掃描進行時間設(shè)置。具體思路如下圖3-5: 圖3-5 時間調(diào)整模塊 3.6復(fù)位模塊 復(fù)位模塊是對當(dāng)前時

21、間和鬧鐘時間進行復(fù)位,復(fù)位后的結(jié)果是當(dāng)前時間變?yōu)?0-00-00,鬧鐘時間變?yōu)?0-00-00。由于該模塊較為簡單,就不展示其設(shè)計思路了。就將其結(jié)果仿真圖展示如下圖3-6。 圖3-6復(fù)位結(jié)果圖 4.系統(tǒng)的調(diào)試和性能分析 4.1系統(tǒng)的調(diào)試方法 整個系統(tǒng)調(diào)試的主要思想是:先每個模塊進行調(diào)試,然后整個系統(tǒng)一起調(diào)試。先軟硬件分開調(diào)試,然后一起調(diào)試。遵循先部分后整體的原則。 系統(tǒng)的在調(diào)試過程中要注意以下幾點: (1)硬件電路焊完之后,在上電之前一定要先用萬用表檢測電源和地之間是否短路。 (2)上電之后要用示波器觀察信號的在電路中變化的情況,與

22、設(shè)計當(dāng)初的情況相比較,找出差別,并進行分析。 (3)軟件調(diào)試過程中可以使用斷點、單步執(zhí)行等常用的方法。 (4)軟硬件聯(lián)調(diào)時,要注意軟件部分要一個功能一個功能的調(diào)試。 4.1.1輸入按鍵的調(diào)試 輸入按鍵的調(diào)試,只要按鍵按下去時,按鍵有相應(yīng)的反應(yīng)就行,通過程序來判斷,單片機I/O是否能夠識別出。 4.1.2復(fù)位電路的調(diào)試 當(dāng)電源剛接通時,接通電源就完成了系統(tǒng)的初始化。 4.1.3顯示電路的調(diào)試 在本設(shè)計中,顯示電路只需完成,當(dāng)輸入數(shù)字時能正確顯示數(shù)字。 4.1.4整個系統(tǒng)的聯(lián)調(diào) 在系統(tǒng)各個部分都調(diào)試完畢之后,即可以進行整個系統(tǒng)的調(diào)試。由于前面各個部分的調(diào)試做的都比較

23、充分,所以在實際調(diào)試過程中,能夠較順利的實現(xiàn)整個系統(tǒng)預(yù)期的功能。 4.2心得體會 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機的開發(fā)技術(shù)是十分重要的。 回顧起此次單片機課程設(shè)計,我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在這兩個星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)

24、到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好……通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。 這次課程設(shè)計終于順利完成了,在設(shè)計中遇到了很多編程問題,最后在老師的辛勤指導(dǎo)下,終于游逆

25、而解。同時,在老師那里我學(xué)得到很多實用的知識,在次我表示感謝! 參考文獻 1、《單片機原理及應(yīng)用》李建忠 編 西安電子科技大學(xué)出版社 2、《單片微型計算機原理與接口技術(shù)》 高峰 編 電子工業(yè)出版社 3、《單片機應(yīng)用新技術(shù)教程》鄒逢興 編 高等教育出版社 4、《16位微型計算機原理接口及其應(yīng)用》 朱宇光 編 電子工業(yè)出版社 5、《微型計算機原理與接口技術(shù)》 吳秀清 編 中國科學(xué)技術(shù)出版社 6、《微型計算機接口技術(shù)》 鄧亞平 編 清華大學(xué)出版社 7、《單片機原理及及應(yīng)用》 王迎旭 編 機械工業(yè)出版社 附錄 附錄A 系統(tǒng)原理圖 附錄B

26、程序源代碼 MS50 EQU 30H SHI EQU 31H FEN EQU 32H MIAO EQU 33H BUF EQU 34H HH EQU 40H FF EQU 41H MM EQU 42H DENG BIT P3.5 BIAOZ BIT P3.6 SPK BIT P3.7 ALB EQU 20H.0 K1 BIT P1.0 K2 BIT P1.1 K3 BIT P1.2 K4 BIT P1.3 K5 BIT P1.

27、4 K6 BIT P1.5 K7 BIT P1.6 MOV SP,#60H ;-------------------------------------------- ORG 00H AJMP MAIN ORG 0BH AJMP TIME0 MAIN: SETB DENG CLR ALB ACALL CHUSHI ACALL INTO LOOP: ACALL NAOPRO ACALL CONV

28、 ACALL DISPLAY JB K6,LOOP1 ACALL BIAO SJMP LOOP LOOP1: JB K1,LOOP2 ACALL SETTIME SJMP LOOP LOOP2: JB K4,LOOP3 ACALL SETNAO SJMP LOOP LOOP3: JB K7,LOOP ACALL RST SJMP LOOP ;--------------------

29、------------------------------------ CONV: ;轉(zhuǎn)換子程序 MOV A,SHI ;轉(zhuǎn)換小時 存到34 35H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF,A MOV A,B MOVC A,@A+DPTR MOV BUF+1,A MOV A,FEN ;轉(zhuǎn)換分

30、 存到37 38H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+3,A MOV A,B MOVC A,@A+DPTR MOV BUF+4,A MOV A,MIAO ;轉(zhuǎn)換秒 存到40 41H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPT

31、R MOV BUF+6,A MOV A,B MOVC A,@A+DPTR MOV BUF+7,A MOV BUF+2,#0BFH ;第三個位置顯示一杠 MOV BUF+5,#0BFH ;第五個位置顯示一杠 RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;陽碼表 ;---------------------------------------------------

32、---------------- DISPLAY: ;顯示子程序 MOV R1,#BUF MOV A,#01H MOV R2,#8 Dp1:MOV P2,A PUSH ACC MOV A,@R1 MOV P0,A ACALL DELAY POP ACC RL A INC R1 CJNE R1,#BUF+8,DY MOV R1,#BUF DY:

33、 DJNZ R2,Dp1 RET ;------------------------------------------------------------------ BIAO: CPL ALB ;鬧鐘開關(guān) CPL BIAOZ BIAO1: ACALL CONV ACALL DISPLAY JNB K6,BIAO1 RET ;--------------------------------------------------------------------- SETTIME:

34、 ;設(shè)置時間 CLR TR0 TT: ACALL DISPLAY ;設(shè)置小時 TS: JNB K1,TT TSS: ACALL DISPLAYS JNB K1,TF JNB K2,JIAS JNB K3,JIANS JNB K5,QUE SJMP TSS JIAS: INC SHI ;加時子程序 MOV A,SHI CJNE A,#24,K2S MOV SH

35、I,#0 K2S: ACALL CONV ACALL DISPLAY JNB K2,K2S SJMP TSS JIANS: DEC SHI ;減時子程序 MOV A,SHI CJNE A,#255,K3S MOV SHI,#23 K3S: ACALL CONV ACALL DISPLAY JNB K3,K3S SJMP TSS QUE: ACALL BZ

36、 SETB TR0 QQ: ACALL CONV ACALL DISPLAY JNB K5,QQ LJMP LOOP ;------------------------------------------------ TM: ACALL DISPLAY ;設(shè)置秒 JNB K1,TM TMM: ACALL DISPLAYM JNB K1,TS JNB K2,JIAM JNB K3,JIANM JNB K5,QUE JMP TMM J

37、IAM: INC MIAO ;加秒 MOV A,MIAO CJNE A,#60,K2M MOV MIAO,#0 K2M: ACALL CONV ACALL DISPLAY JNB K2,K2M JMP TMM JIANM: DEC MIAO ;減秒 MOV A,MIAO CJNE A,#255,K3M MOV MIAO,#59 K3M: ACALL CONV ACALL DISPLAY JNB K3,K3M

38、 JMP TMM ;------------------------------------------------------------- TF: ACALL DISPLAY ;設(shè)置分鐘 JNB K1,TF TFF: ACALL DISPLAYF JNB K1,TM JNB K2,JIAF JNB K3,JIANF JNB K5,QUE JMP TFF JIAF: INC FEN ;加分鐘 MOV A,FEN CJN

39、E A,#60,K2F MOV FEN,#0 K2F: ACALL CONV ACALL DISPLAY JNB K2,K2F JMP TFF JIANF: DEC FEN ;減分鐘 MOV A,FEN CJNE A,#255,K3F MOV FEN,#59 K3F: ACALL CONV ACALL DISPLAY JNB K3,K3F JMP TFF ;-----

40、------------------------------------------------------- DISPLAYS: ;時閃子程序 MOV R3,#20 DISS: MOV R1,#BUF+2 MOV A,#04H MOV R2,#6 ACALL DP1 DJNZ R3,DISS MOV R3,#20 DIS2: MOV R1,#BUF MOV A,#01H

41、 MOV R2,#8 ACALL DP1 DJNZ R3,DIS2 RET DISPLAYF: ;分閃子程序 MOV R3,#20 DISF: MOV R1,#BUF+5 MOV A,#20H MOV R2,#6 ACALL DP1 DJNZ R3,DISF MOV R3,#20 ACALL DIS2

42、 RET DISPLAYM: ;秒閃子程序 MOV R3,#20 DISM: MOV R1,#BUF MOV A,#01H MOV R2,#6 ACALL DP1 DJNZ R3,DISM MOV R3,#20 ACALL DIS2 RET ;------------------------------------------------- SET

43、NAO: ;設(shè)置鬧鐘時間 TTN: ACALL CONVNAO ACALL DISPLAY ;鬧設(shè)置小時 TSN: JNB K4,TTN TSSN: ACALL DISPLAYS JNB K4,TFN JNB K2,JIASN JNB K3,JIANSN JNB K5,QUEN SJMP TSSN JIASN: INC HH ;鬧加時子程序 MOV

44、A,HH CJNE A,#24,K2SN MOV HH,#0 K2SN: ACALL CONVNAO ACALL DISPLAY JNB K2,K2SN SJMP TSSN JIANSN: DEC HH ;鬧減時子程序 MOV A,HH CJNE A,#255,K3SN MOV HH,#23 K3SN: ACALL CONVNAO ACALL DI

45、SPLAY JNB K3,K3SN SJMP TSSN QUEN: ACALL BZ SETB TR0 LJMP LOOP ;------------------------------------------------ TMN: ACALL CONVNAO ACALL DISPLAY ;鬧設(shè)置秒 JNB K4,TMN TMMN: ACALL DISPLAYM JNB K4,T

46、SN JNB K2,JIAMN JNB K3,JIANMN JNB K5,QUEN JMP TMMN JIAMN: INC MM ;鬧加秒 MOV A,MM CJNE A,#60,K2MN MOV MM,#0 K2MN: ACALL CONVNAO ACALL DISPLAY JNB K2,K2MN JMP TMMN JIANMN

47、: DEC MM ;鬧減秒 MOV A,MM CJNE A,#255,K3MN MOV MM,#59 K3MN: ACALL CONVNAO ACALL DISPLAY JNB K3,K3MN JMP TMMN ;------------------------------------------------------------- TFN: ACALL CONVNAO ACALL DISP

48、LAY ;鬧設(shè)置分鐘 JNB K4,TFN TFFN: ACALL DISPLAYF JNB K4,TMN JNB K2,JIAFN JNB K3,JIANFN JNB K5,QUEN JMP TFFN JIAFN: INC FF ;鬧加分鐘 MOV A,FF CJNE A,#60,K2FN MOV FF,#0 K2FN

49、: ACALL CONVNAO ACALL DISPLAY JNB K2,K2FN JMP TFFN JIANFN: DEC FF ;減分鐘 MOV A,FF CJNE A,#255,K3FN MOV FF,#59 K3FN: ACALL CONVNAO ACALL DISPLAY JNB K3,K3FN JMP TFFN ;-----------

50、---------------------------------- RST: ;復(fù)位 MOV SHI,#0 MOV FEN,#0 MOV MIAO,#0 MOV MS50,#0 RET ;--------------------------------------------- NAOPRO: ;檢查鬧鐘 JB ALB,TI3 RET TI3: MOV

51、A,SHI MOV B,HH CJNE A,B,BK MOV A,FEN MOV B,FF CJNE A,B,BK MOV A,MIAO MOV B,MM CJNE A,B,BK ACALL TIMEOUT BK: RET ;-------------------------------- CONVNAO: ;轉(zhuǎn)換子程序

52、 MOV A,HH ;轉(zhuǎn)換小時 存到34 35H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF,A MOV A,B MOVC A,@A+DPTR MOV BUF+1,A MOV A,FF ;轉(zhuǎn)換分

53、 存到37 38H MOV B,#10 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+3,A MOV A,B MOVC A,@A+DPTR MOV BUF+4,A MOV A,MM ;轉(zhuǎn)換秒 存到40 41H MOV B,#10

54、 DIV AB MOV DPTR,#TAB MOVC A,@A+DPTR MOV BUF+6,A MOV A,B MOVC A,@A+DPTR MOV BUF+7,A MOV BUF+2,#10111111B ;第三個位置顯示一杠 MOV BUF+5,#10111111B ;第五個位置顯示一杠 RET ;---------------------------------- TIMEOUT: ;鬧鐘指

55、示燈亮 MOV R0,#30 X4: MOV R3,#2 X3: MOV R4,#10 X1: CPL DENG ACALL CONV JB K5,X9 SJMP X6 X9: ACALL DISPLAY DJNZ R4,X1 JB K5,X8 SJMP X6 X8: ACALL BZ DJNZ R3,X3 JB

56、K5,X7 SJMP X6 X7: MOV R4,#95 X2: CPL DENG ACALL CONV JB K5,X10 SJMP X6 X10: ACALL DISPLAY DJNZ R4,X2 DJNZ R0,X5 SETB DENG LJMP LOOP X5: JB K5,X4 X6: SETB DENG RET ;------------------------------

57、--------------- BZ: ;蜂鳴器 MOV R5,#100 BZ2: CPL SPK ACALL DELAYB DJNZ R5,BZ2 RET DELAYB: ;蜂鳴延時1MS MOV R6,#2 DLB: MOV R7,#98 DJNZ R7,$ DJNZ R6,DLB RET ;----------------------

58、----------------------------------- DELAY: ;顯示延時1MS MOV R6,#5 DL1: MOV R7,#98 DJNZ R7,$ DJNZ R6,DL1 RET ;------------------------------------------------------------ CHUSHI: ;設(shè)置初始時間 MOV SHI,#0

59、 MOV FEN,#0 MOV MIAO,#0 MOV MS50,#0 MOV HH,#0 ;鬧鐘初始值 MOV FF,#0 MOV MM,#0 RET ;------------------------------------------------------------ INTO: ;定時器T0初始化 MOV TMOD,#01H MOV TL0,#0B0H MOV T

60、H0,#3CH MOV IE,#82H SETB TR0 RET ;-------------------------------------------------------------------- TIME0: ;中斷服務(wù) PUSH ACC MOV TL0,#(65536-49980)MOD 256;考慮到軟件因素減少賦定時器為49980 MOV TH0,#(65536-49980)/256 INC MS50 MOV A,MS5

61、0 CJNE A,#20,TT1 MOV MS50,#0 INC MIAO MOV A,MIAO CJNE A,#60,TT1 MOV MIAO,#0 INC FEN MOV A,FEN CJNE A,#60,TT1 MOV FEN,#0 INC SHI MOV A,SHI CJNE A,#24,TT1 MOV SHI,#0 MOV FEN,#0 MOV MIAO,#0

62、TT1: POP ACC RETI END   電氣信息學(xué)院課程設(shè)計評分表 項 目 評 價 優(yōu) 良 中 及格 差 設(shè)計方案的合理性與創(chuàng)造性 軟件設(shè)計完成情況 硬件調(diào)試完成情況 設(shè)計說明書與設(shè)計圖紙質(zhì)量 答辯情況 獨立工作能力 完成任務(wù)情況 出勤情況 綜 合 評 分                    指導(dǎo)教師簽名:_______________ 日 期:_______________ 30

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!