版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1.概論1</b></p><p> 2.整體設計思路2</p><p> 2.1硬件各部分所能完成的功能3</p><p> 2.2系統(tǒng)工作原理4</p><p> 2.3時鐘各功能分析
2、及圖解4</p><p> 2.4.1電路各功能圖解分析4</p><p> 2.4.2電路功能使用說明7</p><p> 3. 軟件設計思路8</p><p> 3.1 主程序模塊8</p><p> 3.2 數(shù)碼管動態(tài)掃描模塊9</p><p> 3.3 當前時間計
3、時模塊9</p><p> 3.4 鬧鐘輸入輸出模塊10</p><p> 3.5 當前時間調(diào)整模塊12</p><p> 3.6復位模塊13</p><p> 4.系統(tǒng)的調(diào)試和性能分析14</p><p> 4.1系統(tǒng)的調(diào)試方法14</p><p> 4.1.1輸入按鍵
4、的調(diào)試14</p><p> 4.1.2復位電路的調(diào)試14</p><p> 4.1.3顯示電路的調(diào)試14</p><p> 4.1.4整個系統(tǒng)的聯(lián)調(diào)14</p><p> 4.2心得體會15</p><p><b> 參考文獻15</b></p><p&
5、gt;<b> 附錄16</b></p><p> 附錄A 系統(tǒng)原理圖16</p><p> 附錄B 程序源代碼17</p><p> 電氣信息學院課程設計評分表28</p><p><b> 1.概論</b></p><p> 單片機系統(tǒng)作為一種典型的
6、嵌入式系統(tǒng),其系統(tǒng)設計包括硬件電路設計和軟件編程設計兩個方面, 其調(diào)試過程一般分為軟件調(diào)試、硬件測試、系統(tǒng)調(diào)試3個過程。如果采用單片機系統(tǒng)的虛擬仿真軟件——Proteus,則不用制作具體的電路板也能夠完成以上工作。數(shù)字鐘是采用數(shù)字電路實現(xiàn)對時,分,秒,數(shù)字顯示的計時裝置,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表的報時功能。數(shù)字鐘
7、已成為人們?nèi)粘I钪械谋匦杵?,廣泛應用于家庭、車站、碼頭、劇院、辦公室等場所,給人們的生活、學習、工作帶來極大的方便[4]。不僅如此,在現(xiàn)代化的進程中,也離不開電子鐘的相關功能和原理,比如機械手的控制、家務的自動化、定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。而且是控制的核心部分。因此,研究數(shù)字鐘及擴大其應用,有著非常
8、現(xiàn)實的意義。</p><p> 電子鐘在工業(yè)控制和日常生活中是很重要的,它不僅可以用于計時、提醒又可用于對機器的控制,在自動化的過程中必然有電子鐘的參與,因此電子鐘的應用會越來越廣泛。而且向著精確、低功耗、多功能發(fā)展?;趩纹瑱C設計的數(shù)字鐘精確度較高, 因為在程序的執(zhí)行過程中, 任何指令都不影響定時器的正常計數(shù),即便程序很長也不會影響中斷的時間。從而,使數(shù)字鐘的精度僅僅取決于單片機的產(chǎn)生機器周期電路和定時器硬件
9、電路的精確度。另外,程序較為簡潔,具有可靠性和較好的可讀性。如果我們想將它應用于實時控制之中,只要對上述程序和硬件電路稍加修改,便可以得到實時控制的實用系統(tǒng),從而應用到實際工作與生產(chǎn)中去。</p><p> 數(shù)字電子鐘的設計方法有多種,例如,可用中小規(guī)模集成電路組成電子鐘, 也可以利用專用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘還可以利用單片機來實現(xiàn)電子鐘等等。這些方法都各有特點, 其中,利用單片
10、機實現(xiàn)的電子鐘具有編程靈活, 便于功能擴充, 精確度高等特點。</p><p><b> 2.整體設計思路</b></p><p> 這部分主要介紹工作安排和整體設計的思想。工作過程規(guī)劃如下:</p><p> 圖2.1 整體設計思路</p><p> 針對要實現(xiàn)的功能,擬采用AT89C51單片機進行設計,AT8
11、9C51 單片機是一款低功耗,高性能CMOS8位單片機,片內(nèi)含4KB在線可編程(ISP)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用高密度、非易失性存儲技術制造,兼容標準MCS- 51指令系統(tǒng)及80C51引腳結構[7]。這樣,既能做到經(jīng)濟合理又能實現(xiàn)預期的功能。</p><p> 在程序方面,采用分塊設計的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項功能。程序可分為顯示程序、調(diào)時顯
12、示運用這種方法,關鍵在于各模塊的兼容和配合,若各模塊不匹配會出現(xiàn)意想不到的錯誤。</p><p> 本電子鐘設計主要是依照圖2.1中的流程做出來的,時間分配比較均勻。首先,在編程之前必須了解硬件結構尤其是各引腳的用法,以及內(nèi)部寄存器、存儲單元的用法,否則,編程無從下手,電路也無法設計。這是前期準備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設計設計,比如輸入需要開關電路,輸出需要顯示驅動電路和液晶電路等。第三部
13、分是軟件部分:先學習理解C語言的編程方法再根據(jù)設計的硬件電路進行分塊的編程調(diào)試,最終完成程序設計。第四部分是軟件畫圖部分:設計好電路后進行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設計好后將軟件載入芯片中進行仿真,仿真無法完成時檢查軟件程序和硬件電路并進行修改直到仿真成功。第六部分是硬件實現(xiàn)部分:連接電路并導入程序檢查電路,若與設計的完全一樣一般能實現(xiàn)想要的功能。</p><p> 2.1硬
14、件各部分所能完成的功能</p><p> ?。?)單片機發(fā)送的信號通過程序控制最終在數(shù)碼管上顯示出來。</p><p> ?。?)單片機通過輸出各種電脈沖信號來驅動控制各部分正常工作。</p><p> ?。?)為使時鐘走時與標準時間一致,校時電路是必不可少的,鍵盤用來校正數(shù)碼管上顯示的時間。</p><p> ?。?)單片機通過控制鬧鈴電路
15、來完成定時鬧鐘的功能。</p><p> (5)單片機通過程序對鬧鈴信號燈進行控制,可方便我們對鬧鈴的開關以及是否在鬧鈴進行觀察。</p><p> ?。?)由于要設置定時功能,所以配置了對鬧鐘設置的鍵盤。</p><p><b> 2.2系統(tǒng)工作原理</b></p><p> 設計的電路主要由四模塊構成:時間顯示
16、電路、信號顯示電路、鍵盤控制電路、外設鬧鈴電路以及核心控制電路</p><p> 詳細電路功能圖如圖2-2:</p><p> 圖2-2 詳細電路功能圖</p><p> 本設計采用匯編語言程序設計,使單片機控制數(shù)碼管顯示時、分、秒,當秒計數(shù)計滿60時就向分進位,分計數(shù)器計滿60后向時計數(shù)器進位,小時計數(shù)器按“23翻0”規(guī)律計數(shù)。時、分、秒的計數(shù)結果經(jīng)過數(shù)據(jù)
17、處理可直接送顯示器顯示。設計采用的是時、分、秒顯示,單片機對數(shù)據(jù)進行處理同時在數(shù)碼管上顯示。</p><p> 2.3時鐘各功能分析及圖解</p><p> 2.4.1電路各功能圖解分析</p><p><b> (1) 時鐘運行圖</b></p><p> 仿真開始運行時,或按下K7鍵時,時鐘從00:00:00
18、開始運行,其中按下K1鍵可進入當前時間調(diào)節(jié),K2和K3分別負責加一和減一,K5鍵為確認鍵。</p><p> 時鐘運行圖如圖 2-3 所示:</p><p> 圖2-3 時鐘運行圖</p><p> (2) 鬧鐘開關指示圖</p><p> 當按下K4鍵后,可進入鬧鐘設時控制,設置完后按確認,按下K6,即開鬧鐘,信號顯示區(qū)得開/關鬧鐘
19、信號燈點亮,表示當時間到達鬧鐘的時間時,鬧鈴響;再次按下鬧鈴,為關鬧鈴,此時的信號顯示區(qū)得開/關鬧鐘信號燈熄滅。如下圖2-4:</p><p> 圖2-4鬧鐘開關指示圖</p><p><b> ?。?)鬧鈴運行圖</b></p><p> 當時間到達鬧鐘設置的時間時,蜂鳴器會按每秒兩次的頻率響,鬧鐘指示燈也會閃爍。如下圖2-5:</
20、p><p><b> 圖2-5鬧鈴運行圖</b></p><p> 該數(shù)字鐘是用一片AT89C51單片機通過編程去驅動8個數(shù)碼管實現(xiàn)的。通過7個開關控制,從上到下7個開關K1-K7的功能分別為:</p><p> K1:設置當前時間時/分/秒</p><p><b> K2:加一按鍵</b>&l
21、t;/p><p><b> K3:減一按鍵</b></p><p> K4:設置鬧鐘時間時/分/秒</p><p> K5: 確認/關閉鬧鈴</p><p><b> K6:開/關鬧鐘</b></p><p><b> K7: 復位</b><
22、/p><p> 控制鍵分別與P1.0~P1.6口連接,通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1——8端,是控制動態(tài)掃描輸出.</p><p> 從P3.6輸出一個信號使二極管發(fā)光,二極管在設置的鬧鐘時間到了時候發(fā)光,P3.7接一個蜂鳴器,若有樂曲可以去驅動揚聲器實現(xiàn)。</p><p> 2.4.2電
23、路功能使用說明</p><p> ?。?) 各個控制鍵的功能:可對時間進行校準調(diào)節(jié)(只能加1);按下設置鍵數(shù)字時鐘進入鬧鐘設置狀態(tài),設置鬧鐘的時間;時加1、分加1鍵是在校準時間時或設 置鬧鐘時間對小時數(shù)或分鐘數(shù)調(diào)節(jié)而設置的;按下秒切換鍵就可以進入秒表模式,同時秒表也開始計時,按下秒表暫停、復位鍵就暫停、歸零,如果要重新對秒計時則可以按秒表開始、復位;清零鍵可以對鬧鐘清零。</p><p>
24、 (2)AT89C51單片機,通過編寫程序對數(shù)碼顯示進行控制。</p><p> ?。?) 八個7段數(shù)碼管顯示時鐘信號。</p><p><b> 3. 軟件設計思路</b></p><p> 根據(jù)設計的要求與內(nèi)容,我們將該軟件設計成七個模塊,他們包括:主程序、數(shù)碼管動態(tài)掃描模塊、當前時間計時模塊、鬧鐘輸入輸出模塊、當前時間調(diào)整模塊、數(shù)制
25、轉換模塊以及復位模塊。</p><p><b> 3.1 主程序模塊</b></p><p> 主程序模塊是單片機最先編譯運行的模塊,所以在這個模塊里,我們要設置主程序和各個中斷服務程序的入口地址、各種初始化以及開關掃描等。</p><p> MCS-51系列單片機復位后,(PC)=0000H,而0003H~002BH分別為各中斷的入口地
26、址。所以,編程時應在0000H處寫一條跳轉指令。當CPU接受到中斷請求信號并予以相應后,CPU把當前的PC內(nèi)容壓入棧中進行保護,然后轉入相應的只能中斷服務程序入口處執(zhí)行。一般應在相應的中斷服務程序入口處寫一條跳轉指令,并以跳轉指令的目標地址作為中斷服務程序的起始地址進行編程。</p><p> 初始化,是對將要用到的MCS-51系列單片機內(nèi)部部件或擴展芯片進行初始工作狀態(tài)設定。</p><p
27、> 下圖3-1是我們設計該主程序模塊的程序框圖。</p><p> 圖3-1主程序設計框圖</p><p> 3.2 數(shù)碼管動態(tài)掃描模塊</p><p> 在數(shù)碼管動態(tài)掃描模塊里,包含了兩個子程序,一個是顯示子程序,另一個是顯示延時1MS子程序。其中顯示延時1MS子程序是用軟件延時的方法進行的,過程較簡單,這里就不畫出它的程序框圖,下圖3-2為顯示子程
28、序的程序框圖。</p><p><b> 圖3-2顯示子程序</b></p><p> 3.3 當前時間計時模塊</p><p> 本軟件中的當前時間計時模塊實際上是T0定時器的中斷服務程序,我們將T0定時器工作在方式一中,并讓它每50MS產(chǎn)生一次中斷。</p><p> 每產(chǎn)生一次中斷,進入中斷服務程序后,T0
29、定時器重新轉載初始值。MS50(它是對50MS中斷次數(shù)統(tǒng)計的存儲單元地址標號)就會自加一,接著對MS50進行判斷,如果MS50沒有到達20次(即一秒的時間),就返回到主程序。如果到達20次,MS50將清零,并將MIAO(MIAO是對秒進行計數(shù)的存儲單元地址標號)將自加一。接著判斷MIAO是否到達60次,沒到就返回,到了60秒,MIAO將被清零,F(xiàn)EN(FEN是對分進行計數(shù)的存儲單元地址標號)自加一。再判斷FEN,過程與判斷MIAO相識,
30、也是到達60分就進1時并對分清零,時的寄存器地址標號是SHI,因為一天只有24小時,所以,如果SHI計數(shù)到了24時,它將對SHI、FEN、MIAO同時清零。</p><p> 下圖3-3為該中斷服務的程序框圖</p><p> 圖3-3T0中斷服務程序</p><p> 3.4 鬧鐘輸入輸出模塊</p><p> 由于鬧鐘輸入輸出模塊
31、要實現(xiàn)的功能較多,所以它是我們該軟件中設計耗時最長的一個模塊,也是最復雜的一個模塊。而我們對其采取再分子模塊策略,我們對該模塊劃分了6個子模塊:設置鬧鐘時間子模塊、鬧鐘開關子模塊、檢查鬧鐘子模塊、鬧鐘指示燈亮子模塊、鬧鐘轉換子模塊、蜂鳴器子模塊。下面將逐個說明各個子模塊的功能。</p><p> 設置鬧鐘時間子模塊:該模塊實現(xiàn)的功能是,當設置鬧鐘時間的鍵盤被按下時,則進入該子模塊,通過對各個指定按鍵的操作來實現(xiàn)
32、鬧鐘時間的設置。</p><p> 鬧鐘開關子模塊:該模塊實現(xiàn)的功能是,對鬧鐘的工作狀態(tài)進行開關,當為開時,鬧鐘時間到后,鬧鐘指示燈會亮以及蜂鳴器會響;當為關時,即便鬧鐘時間到了,鬧鐘指示燈不會亮以及蜂鳴器不會響。</p><p> 檢查鬧鐘子模塊:該模塊實現(xiàn)的功能是,它是在主程序中被循環(huán)調(diào)用的,每調(diào)用一次,它會把當前時間與鬧鐘時間進行比較,如果當前時間與鬧鐘時間相同且鬧鐘開關為開,則
33、調(diào)用鬧鐘指示燈亮子模塊和蜂鳴器子模塊;否則繼續(xù)運行主程序。</p><p> 鬧鐘指示燈亮子模塊:該模塊的功能是,當時間到時,它將使鬧鐘指示燈以每秒兩次的頻率閃爍,閃爍三十秒后熄滅。</p><p> 蜂鳴器子模塊:該模塊的功能是,當時間到時,它將使鬧鐘指示燈以每秒兩次的頻率響,響三十秒后停止響聲。</p><p> 鬧鐘轉換子模塊:由于在寄存器中存儲的是十六
34、進制的數(shù),不能存儲十進制的數(shù),且我們用的LED燈是共陽極的,所以在要輸出顯示鬧鐘的時間前,要進行鬧鐘數(shù)制轉換。故該模塊的功能是實現(xiàn)對鬧鐘時間寄存器中的內(nèi)容進行數(shù)制轉換。</p><p> 對鬧鐘設計成六個子模塊,使我們更容易得設計出鬧鐘所要實現(xiàn)的功能,這也就是模塊化的好處,將一個大型的問題劃分為若干個小問題,對這若干小問題進行設計,最好通過參數(shù)把這些小模塊連成一個大的模塊,從而解決問題。下圖3-4是對這六個模塊
35、之間的聯(lián)系的描述。</p><p> 圖3-4 鬧鐘輸入輸出模塊</p><p> 3.5 當前時間調(diào)整模塊</p><p> 當前時間調(diào)整模塊是用來按用戶的需要對當前所顯示的時間進行設置,本軟件的設計思路是通過對相關的時間設置按鍵的掃描進行時間設置。具體思路如下圖3-5:</p><p> 圖3-5 時間調(diào)整模塊</p>
36、<p><b> 3.6復位模塊</b></p><p> 復位模塊是對當前時間和鬧鐘時間進行復位,復位后的結果是當前時間變?yōu)?0-00-00,鬧鐘時間變?yōu)?0-00-00。由于該模塊較為簡單,就不展示其設計思路了。就將其結果仿真圖展示如下圖3-6。</p><p><b> 圖3-6復位結果圖</b></p>
37、<p> 4.系統(tǒng)的調(diào)試和性能分析</p><p> 4.1系統(tǒng)的調(diào)試方法</p><p> 整個系統(tǒng)調(diào)試的主要思想是:先每個模塊進行調(diào)試,然后整個系統(tǒng)一起調(diào)試。先軟硬件分開調(diào)試,然后一起調(diào)試。遵循先部分后整體的原則。</p><p> 系統(tǒng)的在調(diào)試過程中要注意以下幾點:</p><p> (1)硬件電路焊完之后,在上電之
38、前一定要先用萬用表檢測電源和地之間是否短路。</p><p> ?。?)上電之后要用示波器觀察信號的在電路中變化的情況,與設計當初的情況相比較,找出差別,并進行分析。</p><p> ?。?)軟件調(diào)試過程中可以使用斷點、單步執(zhí)行等常用的方法。</p><p> ?。?)軟硬件聯(lián)調(diào)時,要注意軟件部分要一個功能一個功能的調(diào)試。</p><p>
39、 4.1.1輸入按鍵的調(diào)試</p><p> 輸入按鍵的調(diào)試,只要按鍵按下去時,按鍵有相應的反應就行,通過程序來判斷,單片機I/O是否能夠識別出。</p><p> 4.1.2復位電路的調(diào)試</p><p> 當電源剛接通時,接通電源就完成了系統(tǒng)的初始化。</p><p> 4.1.3顯示電路的調(diào)試</p><p
40、> 在本設計中,顯示電路只需完成,當輸入數(shù)字時能正確顯示數(shù)字。</p><p> 4.1.4整個系統(tǒng)的聯(lián)調(diào)</p><p> 在系統(tǒng)各個部分都調(diào)試完畢之后,即可以進行整個系統(tǒng)的調(diào)試。由于前面各個部分的調(diào)試做的都比較充分,所以在實際調(diào)試過程中,能夠較順利的實現(xiàn)整個系統(tǒng)預期的功能。</p><p><b> 4.2心得體會</b>&l
41、t;/p><p> 課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。</p><p> 回顧起此次單片機課程設計,我仍感慨頗多,的確,從選題
42、到定稿,從理論到實踐,在這兩個星期的日子里,可以說得是苦多于甜,但是可以學到很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過
43、各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機匯編語言掌握得不好……通過這次課程設計之后,一定把以前所學過的知識重新溫故。</p><p> 這次課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在老師的辛勤指導下,終于游逆而解。同時,在老師那里我學得到很多實用的知識,在次我表示感謝!</p>
44、<p><b> 參考文獻</b></p><p> 1、《單片機原理及應用》李建忠 編 西安電子科技大學出版社</p><p> 2、《單片微型計算機原理與接口技術》 高峰 編 電子工業(yè)出版社</p><p> 3、《單片機應用新技術教程》鄒逢興 編 高等教育出版社</p><p> 4、《
45、16位微型計算機原理接口及其應用》 朱宇光 編 電子工業(yè)出版社</p><p> 5、《微型計算機原理與接口技術》 吳秀清 編 中國科學技術出版社</p><p> 6、《微型計算機接口技術》 鄧亞平 編 清華大學出版社</p><p> 7、《單片機原理及及應用》 王迎旭 編 機械工業(yè)出版社</p><p><b>
46、 附錄</b></p><p> 附錄A 系統(tǒng)原理圖</p><p><b> 附錄B 程序源代碼</b></p><p> MS50 EQU 30H </p><p> SHI EQU 31H </p><p> FEN EQU
47、32H </p><p> MIAO EQU 33H </p><p> BUF EQU 34H </p><p> HH EQU 40H </p><p> FF EQU 41H </p><p> MM EQU 42H</p>&
48、lt;p> DENG BIT P3.5 </p><p> BIAOZ BIT P3.6 </p><p> SPK BIT P3.7</p><p> ALB EQU 20H.0</p><p> K1 BIT P1.0</p><p> K2 BIT P1.1</p>
49、<p> K3 BIT P1.2</p><p> K4 BIT P1.3</p><p> K5 BIT P1.4</p><p> K6 BIT P1.5</p><p> K7 BIT P1.6</p><p> MOV SP,#60H</p><p> ;--
50、------------------------------------------ </p><p><b> ORG 00H</b></p><p> AJMP MAIN </p><p> ORG 0BH </p><p> AJMP TIME0 </p&g
51、t;<p> MAIN: SETB DENG </p><p> CLR ALB</p><p> ACALL CHUSHI</p><p> ACALL INTO</p><p> LOOP: ACALL NAOPRO </p><p> ACALL
52、 CONV</p><p> ACALL DISPLAY</p><p> JB K6,LOOP1</p><p> ACALL BIAO</p><p><b> SJMP LOOP</b></p><p> LOOP1: JB K1,LOOP2</p><p&g
53、t; ACALL SETTIME</p><p><b> SJMP LOOP</b></p><p> LOOP2: JB K4,LOOP3</p><p> ACALL SETNAO</p><p><b> SJMP LOOP</b></p><p> L
54、OOP3: JB K7,LOOP</p><p><b> ACALL RST</b></p><p><b> SJMP LOOP</b></p><p> ;--------------------------------------------------------</p><p
55、> CONV: ;轉換子程序</p><p> MOV A,SHI ;轉換小時 存到34 35H</p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV DPTR,#TAB
56、</p><p> MOVC A,@A+DPTR</p><p><b> MOV BUF,A</b></p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV BUF+1,A</p>
57、<p> MOV A,FEN ;轉換分 存到37 38H</p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p
58、><p> MOV BUF+3,A</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV BUF+4,A</p><p> MOV A,MIAO ;轉換秒 存到40 41H</p><
59、p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV BUF+6,A</p><p><b>
60、 MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV BUF+7,A</p><p> MOV BUF+2,#0BFH ;第三個位置顯示一杠</p><p> MOV BUF+5,#0BFH ;第五個位置顯示一杠</p><
61、p><b> RET</b></p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;陽碼表</p><p> ;-------------------------------------------------------------------</p><p&
62、gt; DISPLAY: ;顯示子程序</p><p> MOV R1,#BUF</p><p> MOV A,#01H</p><p><b> MOV R2,#8</b></p><p> Dp1:MOV P2,A</p><p><b>
63、PUSH ACC</b></p><p><b> MOV A,@R1</b></p><p><b> MOV P0,A</b></p><p> ACALL DELAY</p><p><b> POP ACC</b></p><p&
64、gt;<b> RL A</b></p><p><b> INC R1</b></p><p> CJNE R1,#BUF+8,DY</p><p> MOV R1,#BUF</p><p> DY: DJNZ R2,Dp1</p><p><b>
65、 RET</b></p><p> ;------------------------------------------------------------------</p><p> BIAO: CPL ALB ;鬧鐘開關</p><p><b> CPL BIAOZ</b></p><p&
66、gt; BIAO1: ACALL CONV</p><p> ACALL DISPLAY</p><p> JNB K6,BIAO1</p><p><b> RET</b></p><p> ;---------------------------------------------------------
67、------------</p><p> SETTIME: ;設置時間</p><p><b> CLR TR0</b></p><p> TT: ACALL DISPLAY ;設置小時</p><p> TS: JNB K1,TT</p><p>
68、; TSS: ACALL DISPLAYS</p><p><b> JNB K1,TF</b></p><p> JNB K2,JIAS</p><p> JNB K3,JIANS</p><p> JNB K5,QUE</p><p><b> SJMP TSS&
69、lt;/b></p><p> JIAS: INC SHI ;加時子程序</p><p><b> MOV A,SHI</b></p><p> CJNE A,#24,K2S</p><p> MOV SHI,#0</p><p> K2S: ACALL CON
70、V</p><p> ACALL DISPLAY</p><p> JNB K2,K2S</p><p><b> SJMP TSS</b></p><p> JIANS: DEC SHI ;減時子程序</p><p><b> MOV A,SHI<
71、;/b></p><p> CJNE A,#255,K3S</p><p> MOV SHI,#23</p><p> K3S: ACALL CONV</p><p> ACALL DISPLAY</p><p> JNB K3,K3S</p><p><b>
72、 SJMP TSS</b></p><p> QUE: ACALL BZ</p><p><b> SETB TR0</b></p><p> QQ: ACALL CONV</p><p> ACALL DISPLAY</p><p><b> JNB
73、K5,QQ</b></p><p><b> LJMP LOOP</b></p><p> ;------------------------------------------------</p><p> TM: ACALL DISPLAY ;設置秒</p><p><b
74、> JNB K1,TM</b></p><p> TMM: ACALL DISPLAYM</p><p><b> JNB K1,TS</b></p><p> JNB K2,JIAM</p><p> JNB K3,JIANM</p><p> JNB K5,QUE
75、</p><p><b> JMP TMM</b></p><p> JIAM: INC MIAO ;加秒</p><p> MOV A,MIAO</p><p> CJNE A,#60,K2M</p><p> MOV MIAO,#0</p><p>
76、 K2M: ACALL CONV</p><p> ACALL DISPLAY</p><p> JNB K2,K2M</p><p><b> JMP TMM</b></p><p> JIANM: DEC MIAO ;減秒</p><p> MOV A,MIAO</p
77、><p> CJNE A,#255,K3M</p><p> MOV MIAO,#59</p><p> K3M: ACALL CONV</p><p> ACALL DISPLAY</p><p> JNB K3,K3M</p><p><b> JMP TMM</b
78、></p><p> ;-------------------------------------------------------------</p><p> TF: ACALL DISPLAY ;設置分鐘</p><p><b> JNB K1,TF</b></p><p> TFF:
79、 ACALL DISPLAYF</p><p><b> JNB K1,TM</b></p><p> JNB K2,JIAF</p><p> JNB K3,JIANF</p><p> JNB K5,QUE</p><p><b> JMP TFF</b>&l
80、t;/p><p> JIAF: INC FEN ;加分鐘</p><p><b> MOV A,FEN</b></p><p> CJNE A,#60,K2F</p><p> MOV FEN,#0</p><p> K2F: ACALL CONV</p>&
81、lt;p> ACALL DISPLAY</p><p> JNB K2,K2F</p><p><b> JMP TFF</b></p><p> JIANF: DEC FEN ;減分鐘</p><p><b> MOV A,FEN</b></p>&
82、lt;p> CJNE A,#255,K3F</p><p> MOV FEN,#59</p><p> K3F: ACALL CONV</p><p> ACALL DISPLAY</p><p> JNB K3,K3F</p><p><b> JMP TFF</b>
83、</p><p> ;------------------------------------------------------------</p><p> DISPLAYS: ;時閃子程序</p><p> MOV R3,#20</p><p> DISS: MOV R1,#BUF
84、+2</p><p> MOV A,#04H</p><p><b> MOV R2,#6</b></p><p><b> ACALL DP1</b></p><p> DJNZ R3,DISS</p><p> MOV R3,#20</p><
85、;p> DIS2: MOV R1,#BUF</p><p> MOV A,#01H</p><p><b> MOV R2,#8</b></p><p><b> ACALL DP1</b></p><p> DJNZ R3,DIS2</p><p>
86、<b> RET</b></p><p> DISPLAYF: ;分閃子程序</p><p> MOV R3,#20</p><p> DISF: MOV R1,#BUF+5</p><p> MOV A,#20H</p><p><b>
87、; MOV R2,#6</b></p><p><b> ACALL DP1</b></p><p> DJNZ R3,DISF</p><p> MOV R3,#20</p><p> ACALL DIS2</p><p><b> RET</b>&
88、lt;/p><p> DISPLAYM: ;秒閃子程序</p><p> MOV R3,#20</p><p> DISM: MOV R1,#BUF</p><p> MOV A,#01H</p><p><b> MOV R2,#6</b></p
89、><p><b> ACALL DP1</b></p><p> DJNZ R3,DISM</p><p> MOV R3,#20</p><p> ACALL DIS2</p><p><b> RET</b></p><p> ;-----
90、--------------------------------------------</p><p> SETNAO:;設置鬧鐘時間</p><p> TTN: ACALL CONVNAO</p><p> ACALL DISPLAY ;鬧設置小時</p><p> TSN:
91、 JNB K4,TTN</p><p> TSSN: ACALL DISPLAYS</p><p> JNB K4,TFN</p><p> JNB K2,JIASN</p><p> JNB K3,JIANSN</p><p> JNB K5,QUEN</p><p><
92、;b> SJMP TSSN</b></p><p> JIASN: INC HH ;鬧加時子程序</p><p><b> MOV A,HH</b></p><p> CJNE A,#24,K2SN</p><p><b> MOV HH,#0</b&
93、gt;</p><p> K2SN: ACALL CONVNAO</p><p> ACALL DISPLAY</p><p> JNB K2,K2SN</p><p><b> SJMP TSSN</b></p><p> JIANSN: DEC HH
94、 ;鬧減時子程序</p><p><b> MOV A,HH</b></p><p> CJNE A,#255,K3SN</p><p> MOV HH,#23</p><p> K3SN: ACALL CONVNAO</p><p> ACALL DISPLAY&l
95、t;/p><p> JNB K3,K3SN</p><p><b> SJMP TSSN</b></p><p> QUEN: ACALL BZ</p><p><b> SETB TR0</b></p><p><b> LJMP LOOP</b
96、></p><p> ;------------------------------------------------</p><p> TMN: ACALL CONVNAO</p><p> ACALL DISPLAY ;鬧設置秒</p><p> JNB K4,TMN</p>
97、<p> TMMN: ACALL DISPLAYM</p><p> JNB K4,TSN</p><p> JNB K2,JIAMN</p><p> JNB K3,JIANMN</p><p> JNB K5,QUEN</p><p><b> JMP TMMN</b&
98、gt;</p><p> JIAMN: INC MM ;鬧加秒</p><p><b> MOV A,MM</b></p><p> CJNE A,#60,K2MN</p><p><b> MOV MM,#0</b></p><p>
99、 K2MN: ACALL CONVNAO</p><p> ACALL DISPLAY</p><p> JNB K2,K2MN</p><p><b> JMP TMMN</b></p><p> JIANMN: DEC MM ;鬧減秒</p><p>
100、;<b> MOV A,MM</b></p><p> CJNE A,#255,K3MN</p><p> MOV MM,#59</p><p> K3MN: ACALL CONVNAO</p><p> ACALL DISPLAY</p><p> JNB K3,K3MN<
101、;/p><p><b> JMP TMMN</b></p><p> ;-------------------------------------------------------------</p><p> TFN: ACALL CONVNAO</p><p> ACALL DISPLAY
102、 ;鬧設置分鐘</p><p> JNB K4,TFN</p><p> TFFN: ACALL DISPLAYF</p><p> JNB K4,TMN</p><p> JNB K2,JIAFN</p><p> JNB K3,JIANFN</p><p&
103、gt; JNB K5,QUEN</p><p><b> JMP TFFN</b></p><p> JIAFN: INC FF ;鬧加分鐘</p><p><b> MOV A,FF</b></p><p> CJNE A,#60,K2FN</p&g
104、t;<p><b> MOV FF,#0</b></p><p> K2FN: ACALL CONVNAO</p><p> ACALL DISPLAY</p><p> JNB K2,K2FN</p><p><b> JMP TFFN</b></p>
105、<p> JIANFN: DEC FF ;減分鐘</p><p><b> MOV A,FF</b></p><p> CJNE A,#255,K3FN</p><p> MOV FF,#59</p><p> K3FN: ACALL CONVNAO</p
106、><p> ACALL DISPLAY</p><p> JNB K3,K3FN</p><p><b> JMP TFFN</b></p><p> ;---------------------------------------------</p><p> RST:
107、 ;復位</p><p> MOV SHI,#0</p><p> MOV FEN,#0</p><p> MOV MIAO,#0</p><p> MOV MS50,#0</p><p><b> RET</b></p><
108、p> ;---------------------------------------------</p><p> NAOPRO: ;檢查鬧鐘</p><p> JB ALB,TI3 </p><p><b> RET</b></p><p> TI3: MOV A,SHI&
109、lt;/p><p><b> MOV B,HH</b></p><p> CJNE A,B,BK</p><p><b> MOV A,FEN</b></p><p><b> MOV B,FF</b></p><p> CJNE A,B,BK&l
110、t;/p><p> MOV A,MIAO</p><p><b> MOV B,MM</b></p><p> CJNE A,B,BK</p><p> ACALL TIMEOUT</p><p><b> BK: RET</b></p><p&g
111、t; ;--------------------------------</p><p> CONVNAO: ;轉換子程序</p><p> MOV A,HH ;轉換小時 存到34 35H</p><p><b> MOV B,#10</b></p>
112、<p><b> DIV AB</b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p><b> MOV BUF,A</b></p><p><b> MOV A,B</b></p>
113、;<p> MOVC A,@A+DPTR</p><p> MOV BUF+1,A</p><p> MOV A,FF ;轉換分 存到37 38H</p><p><b> MOV B,#10</b></p><p><b> DIV AB&l
114、t;/b></p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV BUF+3,A</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p&g
115、t; MOV BUF+4,A</p><p> MOV A,MM ;轉換秒 存到40 41H</p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV DPTR,#TAB</p>
116、<p> MOVC A,@A+DPTR</p><p> MOV BUF+6,A</p><p><b> MOV A,B</b></p><p> MOVC A,@A+DPTR</p><p> MOV BUF+7,A</p><p> MOV BUF+2,#10111
117、111B ;第三個位置顯示一杠</p><p> MOV BUF+5,#10111111B ;第五個位置顯示一杠</p><p><b> RET</b></p><p> ;----------------------------------</p><p&
118、gt; TIMEOUT: ;鬧鐘指示燈亮</p><p> MOV R0,#30</p><p> X4: MOV R3,#2</p><p> X3: MOV R4,#10 </p><p> X1: CPL DENG</p><p
119、> ACALL CONV</p><p><b> JB K5,X9</b></p><p><b> SJMP X6</b></p><p> X9: ACALL DISPLAY</p><p> DJNZ R4,X1</p><p><b&g
120、t; JB K5,X8</b></p><p><b> SJMP X6</b></p><p> X8: ACALL BZ</p><p> DJNZ R3,X3</p><p><b> JB K5,X7</b></p><p><b
121、> SJMP X6</b></p><p> X7: MOV R4,#95</p><p> X2: CPL DENG</p><p> ACALL CONV</p><p><b> JB K5,X10</b></p><p><b>
122、 SJMP X6</b></p><p> X10: ACALL DISPLAY</p><p> DJNZ R4,X2</p><p> DJNZ R0,X5</p><p><b> SETB DENG</b></p><p><b> LJMP LOOP
123、</b></p><p> X5: JB K5,X4</p><p> X6: SETB DENG</p><p><b> RET</b></p><p> ;---------------------------------------------</p><p&g
124、t; BZ: ;蜂鳴器</p><p> MOV R5,#100</p><p> BZ2: CPL SPK</p><p> ACALL DELAYB</p><p> DJNZ R5,BZ2</p><p><b> RET</b><
125、/p><p> DELAYB: ;蜂鳴延時1MS</p><p><b> MOV R6,#2</b></p><p> DLB: MOV R7,#98</p><p><b> DJNZ R7,$</b></p>
126、;<p> DJNZ R6,DLB</p><p><b> RET</b></p><p> ;---------------------------------------------------------</p><p> DELAY: ;顯示延時
127、1MS</p><p><b> MOV R6,#5</b></p><p> DL1: MOV R7,#98</p><p><b> DJNZ R7,$</b></p><p> DJNZ R6,DL1</p><p><b> RET<
128、;/b></p><p> ;------------------------------------------------------------</p><p> CHUSHI: ;設置初始時間</p><p> MOV SHI,#0</p><p> MOV FEN,#0</p><
129、p> MOV MIAO,#0</p><p> MOV MS50,#0</p><p> MOV HH,#0;鬧鐘初始值</p><p><b> MOV FF,#0</b></p><p><b> MOV MM,#0</b></p><p><b
130、> RET</b></p><p> ;------------------------------------------------------------</p><p> INTO:;定時器T0初始化</p><p> MOV TMOD,#01H</p><p> MOV TL0,#0B0H</
131、p><p> MOV TH0,#3CH</p><p> MOV IE,#82H</p><p><b> SETB TR0</b></p><p><b> RET</b></p><p> ;-------------------------------------
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計報告--簡易的電子時鐘
- 單片機課程設計---單片機數(shù)字時鐘
- 單片機課程設計報告---單片機數(shù)字時鐘
- 單片機課程設計---單片機數(shù)字時鐘.doc
- 單片機課程設計--數(shù)字時鐘
- 單片機數(shù)字時鐘課程設計
- 單片機課程設計--數(shù)字時鐘
- 單片機課程設計(數(shù)字時鐘)
- 單片機課程設計---時鐘系統(tǒng)設計
- 單片機簡易秒表課程設計
- 單片機課程設計--基于單片機的數(shù)字時鐘設計
- 課程設計-單片機基于單片機的數(shù)字時鐘設計
- 單片機課程設計---單片機電子時鐘
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計時鐘設計
- 單片機簡易電子琴單片機課程設計
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計——電子時鐘
- 單片機課程設計——電子時鐘
評論
0/150
提交評論