基于單片機的電子鐘設計畢業(yè)論文_第1頁
基于單片機的電子鐘設計畢業(yè)論文_第2頁
基于單片機的電子鐘設計畢業(yè)論文_第3頁
基于單片機的電子鐘設計畢業(yè)論文_第4頁
基于單片機的電子鐘設計畢業(yè)論文_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的電子時鐘設計摘 要20世紀末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。現(xiàn)代生活的人們越來越重視起了時間觀念,可以說是時間和金錢劃上了等號。對于那些對時間把握非常嚴格和準確的人或事來說,時間的不準確會帶來非常大的麻煩,所以以數(shù)碼管為顯示器的時鐘比指針式的時鐘表現(xiàn)出了很大的優(yōu)勢。數(shù)碼管顯示的時間簡單明了而且讀數(shù)快、時間準確顯示到秒。而機械式的依賴于晶體震蕩器,可能會導致誤差。數(shù)字鐘是采用數(shù)字電路實現(xiàn)對“時”、“分”、“秒”數(shù)字顯示的計

2、時裝置。數(shù)字鐘的精度、穩(wěn)定度遠遠超過老式機械鐘。在這次設計中,我們采用LED數(shù)碼管顯示時、分、秒,以24小時計時方式,根據(jù)數(shù)碼管動態(tài)顯示原理來進行顯示,用12MHz的晶振產(chǎn)生振蕩脈沖,定時器計數(shù)。在此次設計中,電路具有顯示時間的其本功能,還可以實現(xiàn)對時間的調(diào)整。數(shù)字鐘是其小巧,價格低廉,走時精度高,使用方便,功能多,便于集成化而受廣大消費的喜愛,因此得到了廣泛的使用。關(guān)鍵字:數(shù)字電子鐘 單片機1.1數(shù)字電子鐘的背景 20世紀末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進一步提高,產(chǎn)品

3、更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當前的時間。忘記了要做的事情,當事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。目前,單片機正朝著高性能和多品種方向發(fā)展趨勢將是進一步向著CMOS化、低功耗、小體積、大容量、高性能、低價格和外圍電路內(nèi)裝化等幾個方面發(fā)展。下面是單片機的主要發(fā)展趨勢。單片機應用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設計思想和設計方法。從前必須由模擬電路或數(shù)字電路實現(xiàn)的大部分功能,現(xiàn)在已能用單片機通過軟件方法來實現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革

4、命。單片機模塊中最常見的是數(shù)字鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實現(xiàn)時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更更長的使用壽命,因此得到了廣泛的使用。1.2數(shù)字電子鐘的意義數(shù)字鐘是采用數(shù)字電路實現(xiàn)對.時,分,秒.數(shù)字顯示的計時裝置,廣泛用于個人家庭,車站, 碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應用,使得數(shù)字鐘的精度,遠遠超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)

5、烘箱、通斷動力設備、甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字鐘及擴大其應用,有著非常現(xiàn)實的意義。1.3數(shù)字電子鐘的應用 數(shù)字鐘已成為人們?nèi)粘I钪校罕夭豢缮俚谋匦杵?,廣泛用于個人家庭以及車站、碼頭、劇場、辦公室等公共場所,給人們的生活、學習、工作、娛樂帶來極大的方便。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進的石英技術(shù),使數(shù)字鐘具有走時準確、性能穩(wěn)定、攜帶方便等優(yōu)點,它還用于計時、自動報時及自動控制等各個領(lǐng)域。 1.4電路及功能說明: 電路圖如圖所示: 圖A 圖B 圖C該數(shù)字鐘是用一片AT89C51A單片機通過編程去驅(qū)動8個數(shù)碼管實現(xiàn)的。通過6個開關(guān)控制,從

6、上到下6個開關(guān)KEY1KEY6的功能分別為:KEY1,切換至秒表;KEY2,調(diào)節(jié)時間,每調(diào)一次時加1;KEY3, 調(diào)節(jié)時間,每調(diào)一次分加1;KEY4,從其它狀態(tài)切換至時鐘狀態(tài);KEY5,切換至鬧鐘設置狀態(tài),也可以對秒表清零;KEY6,秒表暫停.控制鍵分別與P1.0P1.5口連接其中:A.通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的ag端,是控制輸出編碼,P3口接數(shù)碼管的18端,是控制動態(tài)掃描輸出B.從P0.0輸出一個信號使二極管發(fā)光,二極管在設置的鬧鐘時間到了時候發(fā)光,若有樂曲可以去驅(qū)動揚聲器實現(xiàn)。(圖A是時鐘運行狀態(tài),圖B是鬧鐘運行狀態(tài),圖C是秒表運行狀態(tài))功能說明:1 各個

7、控制鍵的功能:可對時間進行校準調(diào)節(jié)(只能加);按下設置鍵數(shù)字時鐘進入鬧鐘設置狀態(tài),設置鬧鐘的時間;時加、分加鍵是在校準時間時或設置鬧鐘時間對小時數(shù)或分鐘數(shù)調(diào)節(jié)而設置的;按下秒切換鍵就可以進入秒表模式,同時秒表也開始計時,按下秒表暫停、復位鍵就暫停、歸零,如果要重新對秒計時則可以按秒表開始、復位;清零鍵可以對鬧鐘清零。2 AT89C51單片機,通過編寫程序?qū)?shù)碼顯示進行控制。3 八個7段數(shù)碼管顯示時鐘和秒表信號。二, 實驗程序流程圖:1. 主程序流程圖: 2. 中斷程序流程圖 2. 秒表中斷程序流程圖: 3. 按鍵程序流程圖:第一圖為時鐘和鬧鐘的調(diào)節(jié). 第二圖為進入中斷和清零第三章 數(shù)字鐘的硬件

8、設計3.1 最小系統(tǒng)設計圖3-1 單片機最小系統(tǒng)的結(jié)構(gòu)圖 單片機的最小系統(tǒng)是由電源、復位、晶振、/EA=1組成,下面介紹一下每一個組成部分。1.電源引腳 Vcc40電源端GND20接地端工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V, 引腳功能一樣。 2.外接晶體引腳圖3-2 晶振連接的內(nèi)部、外部方式圖XTAL119XTAL218 XTAL1是片內(nèi)振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1MHz-24MHz

9、內(nèi)選擇。電容取30PF左右。系統(tǒng)的時鐘電路設計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12MHz,電容應盡可能的選擇陶瓷電容,電容值約為22F。在焊接刷電路板時,晶體振蕩器和電容應盡可能安裝得與

10、單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。3. 復位RST9在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環(huán)復位。復位后P0P3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器SFR全部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM的00H處開始運行程序。復位是由外部的復位電路來實現(xiàn)的。片內(nèi)復位電路是復位引腳RST通過一個斯密特觸發(fā)器與復位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機器周期的S5P2,由復位電路采樣一次。復位電路通常采用上電自動復位和按鈕復位兩種方式,此電路系統(tǒng)

11、采用的是上電與按鈕復位電路。當時鐘頻率選用6MHz時,C取22F,Rs約為200,Rk約為1K。復位操作不會對內(nèi)部RAM有所影響。常用的復位電路如下圖所示:圖3-3 常用復位電路圖4.輸入輸出引腳(1) P0端口P0.0-P0.7 P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個TTL。對內(nèi)部Flash程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電阻。在訪問外部程序和外部數(shù)據(jù)存儲器時,P0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。(2) P1端口P1.0P1.7 P1是一個帶有內(nèi)部上拉電阻

12、的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TTL。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。(4) P3端口P3.0P3.7 P2是一個帶有內(nèi)部上拉電阻的8位雙向I/0端口。輸出時可驅(qū)動4個TT

13、L。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能,具體請看下表。P3引腳兼用功能P3.0串行通訊輸入(RXD)P3.1串行通訊輸出(TXD)P3.2外部中斷0( INT0)P3.3外部中斷1(INT1)P3.4定時器0輸入(T0)P3.5定時器1輸入(T1)P3.6外部數(shù)據(jù)存儲器寫選通WRP3.7外部數(shù)據(jù)存儲器寫選通RD表3-1P3端口引腳兼用功能表3.2 LED顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機應用系統(tǒng)中常用的顯示器有: 發(fā)光二極管LED顯示器、液晶

14、LCD顯示器、CRT顯示器等。LED顯示器是現(xiàn)在最常用的顯示器之一,如下圖所示。圖3-4 LED顯示器的符號圖發(fā)光二極管(LED)由特殊的半導體材料砷化鎵、磷砷化鎵等制成,可以單獨使用,也可以組裝成分段式或點陣式LED顯示器件(半導體顯示器)。分段式顯示器(LED數(shù)碼管)由7條線段圍成8字型,每一段包含一個發(fā)光二極管。外加正向電壓時二極管導通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。LED數(shù)碼管有共陽、共陰之分。圖是共陽式、共陰式LED數(shù)碼管的原理圖和符號.圖3-5 共陽式、共陰式LED數(shù)碼管的原理圖和數(shù)碼管的符號圖顯示電路顯示模塊需要實時顯示當前的時間,即時、分

15、、秒,因此需要6個數(shù)碼管,另需兩個數(shù)碼管來顯示橫。采用動態(tài)顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分別顯示在第四個和第五個數(shù)碼管,秒的十位和個位分別顯示在第七個和第八個數(shù)碼管,其余數(shù)碼管顯示橫線。LED顯示器的顯示控制方式按驅(qū)動方式可分成靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位LED顯示器,通常都是采用動態(tài)掃描的方法進行顯示,其硬件連接方式如下圖所示。圖3-6 數(shù)碼管的硬件連接示意圖數(shù)碼管使用條件:a、段及小數(shù)點上加限流電阻 b、使用電壓:段:根據(jù)發(fā)光顏色決定; 小數(shù)點:根據(jù)發(fā)光顏色決定c、使用電流:靜態(tài):總電流 80mA(每段 10m

16、A);動態(tài):平均電流 4-5mA 峰值電流 100mA數(shù)碼管使用注意事項說明:()數(shù)碼管表面不要用手觸摸,不要用手去弄引角;()焊接溫度:度;焊接時間:()表面有保護膜的產(chǎn)品,可以在使用前撕下來。第四章 數(shù)字鐘的軟件設計系統(tǒng)的軟件設計也是工具系統(tǒng)功能的設計。單片機軟件的設計主要包括執(zhí)行軟件(完成各種實質(zhì)性功能)的設計和監(jiān)控軟件的設計。單片機的軟件設計通常要考慮以下幾個方面的問題:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨立的部分,設計出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;(2)培養(yǎng)良好的編程風格,如考慮結(jié)構(gòu)化程序設計、實行模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植和修

17、改;(3)建立正確的數(shù)學模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4)繪制程序流程圖;(5)合理分配系統(tǒng)資源;(6)為程序加入注釋,提高可讀性,實施軟件工程;(7)注意軟件的抗干擾設計,提高系統(tǒng)的可靠性。4.1 系統(tǒng)軟件設計流程圖 這次的數(shù)字電子鐘設計用到很多子程序,它們的流程圖如下所示。開始啟動定時器按鍵檢測時間顯示 主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,檢測完后,就可以顯示時間。圖4-1 主程序流程圖按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵

18、如果按下,時就加1;如果沒有按下,就把時間顯示出來。 NYNYNY時加1顯示時間結(jié)束開始秒按鍵按下?秒加1分按鍵按下?分加1時按鍵按下? 圖4-2 按鍵處理流程圖定時器中斷時是先檢測1秒是否到,1秒如果到,秒單元就加1;如果沒到,就檢測1分鐘是否到,1分鐘如果到,分單元就加1;如果沒到,就檢測1小時是否到,1小時如果到,時單元就加1,如果沒到,就顯示時間。N24小時到?分單元清零,時單元加1NNNYY時單元清零時間顯示中斷返回開始一秒時間到?60秒時間到?60分鐘到?秒單元加1秒單元清零,分單元加1YY 圖4-3 定時器中斷流程圖時間顯示是先秒個位計算顯示,然后是秒十位計算顯示,再是分個位計算

19、顯示,再然后是分十位顯示,再就是時個位計算顯示,最后是時十位顯示。時十位計算顯示結(jié)束開始秒個位計算顯示秒十位計算顯示分個位計算顯示分十位計算顯示時個位計算顯示 圖4-4 時間顯示流程圖4.2 數(shù)字鐘的原理圖用PROTUES軟件,根據(jù)要求畫出數(shù)字電子鐘的原理圖如下所示。圖4-5 數(shù)字鐘的原理圖 在此有必要介紹一下數(shù)字電子鐘的工作原理。工作原理 : 數(shù)字電子鐘是一個將“ 時”,“分”,“秒”顯示于人的視覺器官的計時裝置。它的計時周期為24小時,顯示滿刻度為23時59分59秒,另外還有校時功能。因此,一個基本的數(shù)字鐘電路主要由顯示器“時”,“分”,“秒”和單片機,還有校時電路組成。8個數(shù)碼管的段選接

20、到單片機的P0口,位選接到單片機的P2口。數(shù)碼管按照數(shù)碼管動態(tài)顯示的工作原理工作,將標準秒信號送入“秒單元”,“秒單元”采用60進制計數(shù)器,每累計60秒發(fā)出一個“分脈沖”信號,該信號將作為“分單元”的時鐘脈沖?!胺謫卧币膊捎?0進制計數(shù)器,每累計60分鐘,發(fā)出一個“時脈沖”信號,該信號將被送到“時單元”?!皶r單元”采用24進制計時器,可實現(xiàn)對一天24小時的累計。顯示電路將“時”、“分”、“秒”通過七段顯示器顯示出來。4.3 設計主程序。(本次設計我們采用匯編語言編寫程序簡單明了); P0.0-7口 為數(shù)碼管段選,采用共陽顯示管。; P2.1-6為數(shù)碼管位選。; 7071H 秒計時和顯示單元

21、; 7273H 分顯示單元 注意:72H放個位數(shù) 73H放十位數(shù); 7475H 小時顯示單元; 7677H 分計時單元; 7879H 小時計時單元; 中斷入口程序 ; ORG 0000H ;程序執(zhí)行開始地址 LJMP START ;跳到標號START執(zhí)行 ORG 0003H ;外中斷0中斷程序入口 RETI ;外中斷0中斷返回 ORG 000BH ;定時器T0中斷程序入口 LJMP INTT0 ;跳至INTTO執(zhí)行 ORG 0013H ;外中斷1中斷程序入口 RETI ;外中斷1中斷返回 ORG 001BH ;定時器T1中斷程序入口 LJMP INTT1 ;跳至INTT1執(zhí)行 ORG 0023

22、H ;串行中斷程序入口地址 RETI ;串行中斷程序返回; ; ; 主 程 序 ; ; START: MOV R0,#70H ;清70H-7AH共11個內(nèi)存單元 MOV R7,#0BH ; CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清20H(標志用) MOV 7AH,#0AH ;放入"熄滅符"數(shù)據(jù) MOV TMOD,#11H ;設T0、T1為16位定時器;用11.0592M初值是4C00H;用12M初值是3CB0H MOV TL0,#00H ;50MS定時初值(T0計時用) MOV

23、 TH0,#4cH ;50MS定時初值 MOV TL1,#00H ;50MS定時初值(T1閃爍定時用) MOV TH1,#4cH ;50MS定時初值 SETB EA ;總中斷開放 SETB ET0 ;允許T0中斷 SETB TR0 ;開啟T0定時器 MOV R4,#14H ;1秒定時用初值(50MS×20) START1: LCALL DISPLAY ;調(diào)用顯示子程序 jnb P1.1,set_h ;此按鍵是小時加1 jnb P1.2,set_M ;此按鍵是分鐘加1 SJMP START1 ;P1.0口為1時跳回START1 set_h: ljmp set_hh set_m: ljm

24、p set_mm; 1秒計時程序 ;T0中斷服務程序 INTT0: PUSH ACC ;累加器入棧保護 PUSH PSW ;狀態(tài)字入棧保護 CLR ET0 ;關(guān)T0中斷允許 CLR TR0 ;關(guān)閉定時器T0;用11.0592M初值是4C00H;用12M初值是3CB0H MOV A,#00H ;中斷響應時間同步修正,要精確調(diào)整在這里! ADD A,TL0 ;低8位初值修正 MOV TL0,A ;重裝初值(低8位修正值) MOV A,#4CH ;高8位初值修正 ADDC A,TH0 ; MOV TH0,A ;重裝初值(高8位修正值) SETB TR0 ;開啟定時器T0 DJNZ R4, OUTT0

25、 ;20次中斷未到中斷退出 ADDSS: MOV R4,#014H ;20次中斷到(1秒)重賦初值 14h MOV R0,#71H ;指向秒計時單元(70H-71H) ACALL ADD1 ;調(diào)用加1程序(加1秒操作) MOV A,R3 ;秒數(shù)據(jù)放入A(R3為2位十進制數(shù)組合) CLR C ;清進位標志 CJNE A,#60H,ADDMM ; ADDMM: JC OUTT0 ;小于60秒時中斷退出 ACALL CLR0 ;大于或等于60秒時對秒計時單元清0 MOV R0,#77H ;指向分計時單元(76H-77H) ACALL ADD1 ;分計時單元加1分鐘 MOV A,R3 ;分數(shù)據(jù)放入A

26、CLR C ;清進位標志 CJNE A,#60H,ADDHH ; ADDHH: JC OUTT0 ;小于60分時中斷退出 ACALL CLR0 ;大于或等于60分時分計時單元清0 MOV R0,#79H ;指向小時計時單元(78H-79H) ACALL ADD1 ;小時計時單元加1小時 MOV A,R3 ;時數(shù)據(jù)放入A CLR C ;清進位標志 CJNE A,#24H,HOUR ; HOUR: JC OUTT0 ;小于24小時中斷退出 ACALL CLR0 ;大于或等于24小時小時計時單元清0 OUTT0: MOV 72H,76H ;中斷退出時將分、時計時單元數(shù)據(jù)移 MOV 73H,77H ;

27、入對應顯示單元 MOV 74H,78H ; MOV 75H,79H ; POP PSW ;恢復狀態(tài)字(出棧) POP ACC ;恢復累加器 SETB ET0 ;開放T0中斷 RETI ;中斷返回; 加1子 程 序 ; ADD1: MOV A,R0 ;取當前計時單元數(shù)據(jù)到A DEC R0 ;指向前一地址 SWAP A ;A中數(shù)據(jù)高四位與低四位交換 ORL A,R0 ;前一地址中數(shù)據(jù)放入A中低四位 ADD A,#01H ;A加1操作 DA A ;十進制調(diào)整 MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高四位變0 MOV R0,A ;放回前一地址單元 MOV A,R3 ;取回R3中暫

28、存數(shù)據(jù) INC R0 ;指向當前地址單元 SWAP A ;A中數(shù)據(jù)高四位與低四位交換 ANL A,#0FH ;高四位變0 MOV R0,A ;數(shù)據(jù)放入當削地址單元中 RET ;子程序返回; 清零程序 ;對計時單元復零用 CLR0: CLR A ;清累加器 MOV R0,A ;清當前地址單元 DEC R0 ;指向前一地址 MOV R0,A ;前一地址單元清0 RET ;子程序返回; 顯示程序 ; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽數(shù)碼管顯示,P1口輸出段碼數(shù)據(jù),P2口作; 掃描控制,每個LED數(shù)碼管亮1MS時間再逐位循環(huán)。 DISPLAY: MOV R1,#70H ;指向顯示數(shù)據(jù)首

29、址 MOV R5,#11011111B ;掃描控制字初值 PLAY: MOV a,r5 MOV P2,A ;從P2口輸出 MOV A,R1 ;取顯示數(shù)據(jù)到A MOV DPTR,#TAB ;取段碼表地址 MOVC A,A+DPTR ;查顯示數(shù)據(jù)對應段碼 CJNE R5,#0FEH,PLAY_1 ;不是秒低位則轉(zhuǎn)移PLAY_1 ANL A,#7FH ;是,則點亮 AJMP PLAY_3 PLAY_1: CJNE R5,#0FBH,PLAY_2 ;分低位? ANL A,#7FH AJMP PLAY_3 PLAY_2: CJNE R5,#0EFH,PLAY_3 ;時低位? ANL A,#7FH PLA

30、Y_3:MOV dptr,#00ffh ;將要顯示的字型碼送74LS273 MOVX dptr,a ;段碼放入P0口 LCALL DL1MS ;顯示1MS INC R1 ;指向下一地址 MOV A,R5 ;掃描控制字放入A JNB ACC.0,ENDOUT ;ACC.5=0時一次顯示結(jié)束 RR A ;A中數(shù)據(jù)循環(huán)左移 MOV R5,A ;放回R5內(nèi) AJMP PLAY ;跳回PLAY循環(huán) ENDOUT: SETB P2.0 ;一次顯示結(jié)束,P2口復位 ;MOV P1,#0FFH ;P1口復位 RET ;子程序返回 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,

31、0F8H,80H,90H,0FFH;共陽段碼表 "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" 延時程序 ;1MS延時程序,LED顯示程序用 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET;20MS延時程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍

32、現(xiàn)象 DS20MS: ACALL DISPLAY ACALL DISPLAY ACALL DISPLAY RET;延時程序,用作按鍵時間的長短判斷 DL1S: LCALL DL05S LCALL DL05S RET DL05S: MOV R3,#20H ;8毫秒*32=0.256秒 DL05S1: LCALL DISPLAY DJNZ R3,DL05S1 RET; 閃動調(diào)時 程 序 ;T1中斷服務程序,用作時間調(diào)整時調(diào)整單元閃爍指示INTT1: PUSH ACC ;中斷現(xiàn)場保護 PUSH PSW ; MOV TL1, #00H ;裝定時器T1定時初值 MOV TH1, #4CH ; DJNZ

33、R2,INTT1OUT ;0.3秒未到退出中斷(50MS中斷6次) MOV R2,#06H ;重裝0.3秒定時用初值 CPL 02H ;0.3秒定時到對閃爍標志取反 JB 02H,FLASH1 ;02H位為1時顯示單元"熄滅" MOV 72H,76H ;02H位為0時正常顯示 MOV 73H,77H ; MOV 74H,78H ; MOV 75H,79H ;INTT1OUT: POP PSW ;恢復現(xiàn)場 POP ACC ; RETI ;中斷退出FLASH1: JB 01H,FLASH2 ;01H位為1時,轉(zhuǎn)小時熄滅控制 MOV 72H,7AH ;01H位為0時,"

34、熄滅符"數(shù)據(jù)放入分 MOV 73H,7AH ;顯示單元(72H-73H),將不顯示分數(shù)據(jù) MOV 74H,78H ; MOV 75H,79H ; AJMP INTT1OUT ;轉(zhuǎn)中斷退出FLASH2: MOV 72H,76H ;01H位為1時,"熄滅符"數(shù)據(jù)放入小時 MOV 73H,77H ;顯示單元(74H-75H),小時數(shù)據(jù)將不顯示 MOV 74H,7AH ; MOV 75H,7AH ; AJMP INTT1OUT ;轉(zhuǎn)中斷退出; P1.1 小時加1調(diào)整程序 ;當調(diào)小時時P1.1按鍵按下時進入此程序 SET_hh: CLR ET0 ;關(guān)定時器T0中斷 CLR

35、TR0 ;關(guān)閉定時器T0 MOV R2,#06H ;進入調(diào)時間的狀態(tài),賦閃爍定時初值 SETB ET1 ;允許T1中斷 SETB TR1 ;開啟定時器T1 SETHH1: JNB P1.1,SET5 ;等待鍵釋放 CLR 00H ;清調(diào)分標志 SETB 01H ;小時調(diào)整標志置1 SET6: JB P1.1,SET7 ;等待按鍵按下 LCALL DL05S ;有鍵按下延時0.5秒 JNB P1.1,SETOUT ;按下時間大于0.5秒退出時間調(diào)整 MOV R0,#79H ;按下時間小于0.5秒加1小時操作 LCALL ADD1 ;調(diào)加1子程序 MOV A,R3 ;取調(diào)整單元數(shù)據(jù) CLR C ;清進位標志 CJNE A,#24H,HOUU ;計時單元數(shù)據(jù)與24比較 HOUU: JC SET6 ;小于24轉(zhuǎn)SET6循環(huán)

溫馨提示

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

評論

0/150

提交評論