版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 本科學(xué)年論文 第 23 頁 基于單片機(jī)電子時(shí)鐘設(shè)計(jì)分析 目 錄第一章 引言.2 1.1 數(shù)字電子鐘的背景.2 1.2 數(shù)字電子鐘的意義.2第二章 設(shè)計(jì)方案.2 2.1 數(shù)字時(shí)鐘方案.2 2.2 數(shù)碼管顯示方案.3第三章 系統(tǒng)設(shè)計(jì).3 3.1總體設(shè)計(jì).3 3.2單片機(jī)外圍控制電路.3 3.2.1單片機(jī)的選擇.3 3.2.2控制電路.5 3.2.3電源部分.6 3.2.4復(fù)位電路.6 3.2.5程序下載接口.7 3.2.6位選部分.7第四章 軟件設(shè)計(jì).9 4.1程序流程圖.94.2源程序.11第五章 使用調(diào)試.18結(jié)論.18參考文獻(xiàn).18內(nèi)容摘要現(xiàn)代社會(huì)人們對(duì)時(shí)間的觀念越來越強(qiáng),時(shí)間不準(zhǔn)確會(huì)給人
2、們帶來很大的麻煩,所以數(shù)碼管為顯示器時(shí)鐘比指針式的顯示器表現(xiàn)出了很大的優(yōu)勢(shì)。數(shù)碼管顯示的時(shí)間簡單明了而且讀數(shù)快、時(shí)間準(zhǔn)確顯示到秒。所以數(shù)字電子鐘的精度、穩(wěn)定度遠(yuǎn)遠(yuǎn)超過老式機(jī)械鐘。而機(jī)械式的依賴于晶體震蕩器,可能會(huì)導(dǎo)致誤差。在這次設(shè)計(jì)中,我采用了led數(shù)碼管顯示時(shí)、分、秒,以24小時(shí)計(jì)時(shí)方式,根據(jù)數(shù)碼管動(dòng)態(tài)顯示原理來進(jìn)行顯示,以at89s51芯片為核心,輔以必要的電路,設(shè)計(jì)了一個(gè)簡易的電子時(shí)鐘,它由4.5v直流電源供電,通過數(shù)碼管能夠準(zhǔn)確顯示時(shí)間,調(diào)整時(shí)間,并在數(shù)碼管上顯示相應(yīng)的時(shí)間。 關(guān)鍵詞 單片機(jī),at89s51,電子時(shí)鐘 第一章 引 言 1.1 數(shù)字電子鐘的背景 20世紀(jì)末,電子技術(shù)獲得了
3、飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,而單片機(jī)模塊中最常見的就是數(shù)字電子鐘,數(shù)字鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,本設(shè)計(jì)由單片機(jī)at89s51芯片和led數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)電子時(shí)鐘1.2數(shù)字電子鐘的意義 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地
4、擴(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。 第二章 設(shè) 計(jì) 方 案 2.1 數(shù)字時(shí)鐘方案 本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該
5、方案具有硬件電路簡單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。 基于硬件電路的考慮,本設(shè)計(jì)采用完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。2.2 數(shù)碼管顯示方案 方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個(gè)8 位輸出口控制。靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的i/o口太多,造成了資源的浪費(fèi)。 方案二:動(dòng)態(tài)顯示。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的每一位來說,每隔一段時(shí)間點(diǎn)亮一次
6、。利用人的視覺暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了i/o口,降低了能耗。 從節(jié)省i/o口和降低能耗出發(fā),本設(shè)計(jì)采用方案二。 第三章 系 統(tǒng) 設(shè) 計(jì) 3.1 總體設(shè)計(jì) 利用單片機(jī)(at89s51)制作簡易電子時(shí)鐘,由六個(gè)led數(shù)碼管分別顯示小時(shí)十位、小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位。6個(gè)pnp管(9012)分別控制六個(gè)數(shù)碼管的亮滅,其中一個(gè)按鍵(s1)用于系統(tǒng)復(fù)位,另一個(gè)按鍵(s2)用于時(shí)間調(diào)整。3.2 單片機(jī)外圍控制電路 3.2.1 單片
7、機(jī)的選擇 單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和i/o接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,正朝著多功能、高性能、低電壓、低功耗、低價(jià)格、大存儲(chǔ)容量、強(qiáng)i/o功能及較好的結(jié)構(gòu)兼容性方向發(fā)展。其發(fā)展趨勢(shì)不外乎以下幾個(gè)方面: 1、多功能 單片機(jī)中盡可能地把所需要的存儲(chǔ)器和i/o口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比如a/d、pwm、pca(可編程計(jì)數(shù)器陣列)、wdt(監(jiān)視定時(shí)器-看家狗)、高速i/o口及計(jì)數(shù)器的捕獲/比較邏輯等。 有的單片機(jī)針對(duì)某一個(gè)應(yīng)用
8、領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了usb控制器、smart card接口、mp3解碼器、can或者i*i*c總線控制器等,led、lcd或vfd顯示驅(qū)動(dòng)器也開始集成在8位單片機(jī)中。 2、高效率和高性能 為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用risc、流水線和dsp的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時(shí)鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)rom(flash)和ram的容量都突破了以往的數(shù)量和限制。 由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級(jí)語言(如
9、c語言)來開發(fā)單片機(jī)的程序。使用高級(jí)語言可以降低開發(fā) 難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。 3、低電壓和低功耗 單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于cmos等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作(1.2v或0.9v),功耗已經(jīng)降低到ua級(jí)。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時(shí)間。 4.價(jià)格 價(jià)格是一個(gè)很重要的因素,如果成本過高就不能普及不能大規(guī)模的生產(chǎn)。那樣就有很多人不能用上。目前,我國生產(chǎn)很多型號(hào)的單片機(jī),在此,我們采用型號(hào)為at89c51的單片機(jī)。因?yàn)椋篴t89c51的時(shí)鐘頻率可以為零,即具備可用軟件設(shè)置
10、的睡眠省電功能,系統(tǒng)的喚醒方式有ram、定時(shí)/計(jì)數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)ram將被凍結(jié),時(shí)鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運(yùn)行。 3.2.2 控制電路 圖3-2控制電路at89s51是美國atmel公司生產(chǎn)的低功耗,高性能cmos 8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的flash只讀程序存儲(chǔ)器,器件采用atmel公司的高密度,非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。at89s51提供以下標(biāo)準(zhǔn)功能:4k字節(jié)flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部ram,32i/o口線,看門狗(wdt),兩個(gè)數(shù)據(jù)指針,兩個(gè)1
11、6位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。 如圖3-2所示,at89s51有40引腳,雙列直插(dip)封裝,所用引腳功能如下: 1. vcc 運(yùn)行時(shí)加4.5v2. gnd 接地 3. xtal1 振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端 4. xtal2 振蕩器反相放大器的輸出端 5. rst 復(fù)位輸入,高電平有效,在晶振工作時(shí),在rst引腳上作用2個(gè)機(jī)器周期以上的高電平,將使單片機(jī)復(fù)位。wdt溢出將使該引腳輸出高電平,設(shè)置sft auxr的disrto位(地址8eh)可打開或關(guān)閉該功能。disrto位缺省為reset輸出高電平打開狀態(tài)。 6. e
12、a/vpp 片外程序存儲(chǔ)器訪問允許信號(hào)。欲使cpu僅訪問外部程序存儲(chǔ)器(地址為0000h-ffffh),ea端必須保持低電平(接地),如果ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。 7. p1口,p2口p1,p2是一組帶內(nèi)部上拉電阻的8位雙向i/o口。運(yùn)行時(shí)通過p1口控制驅(qū)動(dòng)電路的工作,將數(shù)據(jù)送到數(shù)碼管,顯示相應(yīng)的段碼,為了達(dá)到減少功耗或滿足端口對(duì)最大電流的限制,應(yīng)加上一限流電阻。p2.0p2.5口控制數(shù)碼管的位選,使六個(gè)數(shù)碼管輪流顯示數(shù)據(jù),等于1時(shí)位選三極管導(dǎo)通,等于0 時(shí)位選三極管截止。 8. 無自鎖開關(guān)(s2p3.7)開關(guān)接相應(yīng)引腳p3.7,當(dāng)開關(guān)按下時(shí),相應(yīng)引腳
13、為低電平0,斷開時(shí)引腳為高電平1。3.2.3 電源部分 圖3-3電源電路 如圖3-3所示,從外部引入4.5v的直流電,為單片機(jī)、復(fù)位電路提供電源。3.2.4 復(fù)位電路 圖3-4復(fù)位電路如圖3-4所示,復(fù)位電路主要由型號(hào)為1n4148的二極管,型號(hào)為10uf/16v的電解電容,型號(hào)為104的瓷片電容,10k的電阻以及按鍵s1構(gòu)成,s1接芯片的相應(yīng)引腳rst,當(dāng)開關(guān)按下時(shí)引腳rst為高電平1,斷開時(shí)引腳為低電平0。3.2.5 程序下載接口圖3-5程序下載接口模塊 如圖3-5所示,由at89s isp構(gòu)成的兩排十針下載口,板圖上有一個(gè)小方框,為1號(hào)引角;下載線的凸口為正方向,凸口的右側(cè)邊的第一個(gè)插孔
14、為1號(hào)引角。3.2.6 位選部分 圖3-6位選電路 圖3-6為位選電路,三極管的集電極接數(shù)碼管的公共端,當(dāng)p2口對(duì)應(yīng)的引腳輸出高電平時(shí)三極管導(dǎo)通,對(duì)應(yīng)的數(shù)碼管顯示數(shù)據(jù)。這樣,在同一時(shí)刻,6位led中只有選通的那1位顯示出字符,而其他5位則是熄滅的。同樣,在下一時(shí)刻,只讓下一位的位選線處于選通狀態(tài),而其他個(gè)位的位選線處于關(guān)閉狀態(tài),在段碼線上輸出將要顯示字符的段碼,則同一時(shí)刻,只有選通位顯示出相應(yīng)的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。雖然這些字符是在不同時(shí)刻出現(xiàn)的,而在同一時(shí)刻,只有一位顯示,其他各位熄滅,但由于led的余輝和人眼的視覺暫留作用,只要每位顯示
15、間隔足夠短,則可以造成多位同時(shí)亮的假象,達(dá)到同時(shí)顯示的效果。 第四章軟 件 設(shè) 計(jì)4.1程序流程圖4.2源程序表4-1 p1口對(duì)應(yīng)段碼及數(shù)值:顯示數(shù)字p1.7p1.6p1.5p1.4p1.3p1.2p1.1p1.016進(jìn)制代碼dpgfedcba0001111113fh10000011006h2010110115bh3010011114fh40110011066h5011011016dh6011111017dh70000011107h8011111117fh9011011116fh; ; 中斷入口程序; ;org 0000h;程序執(zhí)行開始地址ljmp start;跳到標(biāo)號(hào)start執(zhí)行org 0
16、003h;外中斷0中斷程序入口reti;外中斷0中斷返回org 000bh;定時(shí)器t0中斷程序入口ljmp intt0;跳至intto執(zhí)行org 0013h;外中斷1中斷程序入口reti ;外中斷1中斷返回org 001bh;定時(shí)器t1中斷程序入口ljmp intt1;跳至intt1執(zhí)行org 0023h;串行中斷程序入口地址reti;串行中斷程序返回; 主 程 序 ; start: mov r0,#70h ;清70h-7ah共11個(gè)內(nèi)存單元 mov r7,#0bh ;clr p3.7; cleardisp: mov r0,#00h ; inc r0 ; djnz r7,cleardisp ;
17、 mov 20h,#00h ;清20h(標(biāo)志用) mov 7ah,#0ah ;放入熄滅符數(shù)據(jù) mov tmod,#11h ;設(shè)t0、t1為16位定時(shí)器 mov tl0,#0b0h ;50ms定時(shí)初值(t0計(jì)時(shí)用) mov th0,#3ch ;50ms定時(shí)初值 mov tl1,#0b0h ;50ms定時(shí)初值(t1閃爍定時(shí)用) mov th1,#3ch ;50ms定時(shí)初值 setb ea ;總中斷開放 setb et0 ;允許t0中斷 setb tr0 ;開啟t0定時(shí)器 mov r4,#14h ;1秒定時(shí)用初值(50ms20) start1: lcall display ;調(diào)用顯示子程序 jnb
18、p3.7,setmm1 ;p3.7口為0時(shí)轉(zhuǎn)時(shí)間調(diào)整程序 sjmp start1 ;p3.7口為1時(shí)跳回start1 setmm1: ljmp setmm ;轉(zhuǎn)到時(shí)間調(diào)整程序setmm; 1秒計(jì)時(shí)程序;t0中斷服務(wù)程序 intt0: push acc ;累加器入棧保護(hù) push psw ;狀態(tài)字入棧保護(hù) clr et0 ;關(guān)t0中斷允許 clr tr0 ;關(guān)閉定時(shí)器t0 mov a,#0b7h ;中斷響應(yīng)時(shí)間同步修正 add a,tl0 ;低8位初值修正 mov tl0,a ;重裝初值(低8位修正值) mov a,#3ch ;高8位初值修正 addc a,th0 ; mov th0,a ;重裝
19、初值(高8位修正值) setb tr0 ;開啟定時(shí)器t0 djnz r4, outt0 ;20次中斷未到中斷退出 addss: mov r4,#14h ;20次中斷到(1秒)重賦初值 mov r0,#71h ;指向秒計(jì)時(shí)單元(71h-72h) acall add1 ;調(diào)用加1程序(加1秒操作) mov a,r3 ;秒數(shù)據(jù)放入a(r3為2位十進(jìn)制數(shù)組合) clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,addmm ; addmm: jc outt0 ;小于60秒時(shí)中斷退出 acall clr0 ;大于或等于60秒時(shí)對(duì)秒計(jì)時(shí)單元清0 mov r0,#77h ;指向分計(jì)時(shí)單元(76h-77h) a
20、call add1 ;分計(jì)時(shí)單元加1分鐘 mov a,r3 ;分?jǐn)?shù)據(jù)放入a clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,addhh ; addhh: jc outt0 ;小于60分時(shí)中斷退出 acall clr0 ;大于或等于60分時(shí)分計(jì)時(shí)單元清0 mov r0,#79h ;指向小時(shí)計(jì)時(shí)單(78h-79h) acall add1 ;小時(shí)計(jì)時(shí)單元加1小時(shí) mov a,r3 ;時(shí)數(shù)據(jù)放入a clr c ;清進(jìn)位標(biāo)志 cjne a,#24h,hour ; hour: jc outt0 ;小于24小時(shí)中斷退出 acall clr0 ;大于或等于24小時(shí)小時(shí)計(jì)時(shí)單元清0 outt0: mov 72
21、h,76h ;中斷退出時(shí)將分、時(shí)計(jì)時(shí)單元數(shù)據(jù)移 mov 73h,77h ;入對(duì)應(yīng)顯示單元 mov 74h,78h ; mov 75h,79h ; pop psw ;恢復(fù)狀態(tài)字(出棧) pop acc ;恢復(fù)累加器 setb et0 ;開放t0中斷 reti ;中斷返回; 閃動(dòng)調(diào)時(shí) 程 序 ;t1中斷服務(wù)程序,用作時(shí)間調(diào)整時(shí)調(diào)整單元閃爍指示intt1: push acc ;中斷現(xiàn)場(chǎng)保護(hù) push psw ; mov tl1, #0b0h ;裝定時(shí)器t1定時(shí)初值 mov th1, #3ch ; djnz r2,intt1out ;0.3秒未到退出中斷(50ms中斷6次) mov r2,#06h ;
22、重裝0.3秒定時(shí)用初值 cpl 02h ;0.3秒定時(shí)到對(duì)閃爍標(biāo)志取反 jb 02h,flash1 ;02h位為1時(shí)顯示單元熄滅 mov 72h,76h ;02h位為0時(shí)正常顯示 mov 73h,77h ; mov 74h,78h ; mov 75h,79h ;intt1out: pop psw ;恢復(fù)現(xiàn)場(chǎng) pop acc ; reti ;中斷退出flash1: jb 01h,flash2 ;01h位為1時(shí),轉(zhuǎn)小時(shí)熄滅控制 mov 72h,7ah ;01h位為0時(shí),熄滅符數(shù)據(jù)放入分 mov 73h,7ah ;顯示單元(72h-73h),將不顯示分?jǐn)?shù)據(jù) mov 74h,78h ; mov 75h
23、,79h ; ajmp intt1out ;轉(zhuǎn)中斷退出flash2: mov 72h,76h ;01h位為1時(shí),熄滅符數(shù)據(jù)放入小時(shí) mov 73h,77h ;顯示單元(74h-75h),小時(shí)數(shù)據(jù)將不顯示 mov 74h,7ah ; mov 75h,7ah ; ajmp intt1out ;轉(zhuǎn)中斷退出; 加1子 程 序 ; add1: mov a,r0 ;取當(dāng)前計(jì)時(shí)單元數(shù)據(jù)到a dec r0 ;指向前一地址 swap a ;a中數(shù)據(jù)高四位與低四位交換 orl a,r0 ;前一地址中數(shù)據(jù)放入a中低四位 add a,#01h ;a加1操作 da a ;十進(jìn)制調(diào)整 mov r3,a ;移入r3寄存器
24、anl a,#0fh ;高四位變0 mov r0,a ;放回前一地址單元 mov a,r3 ;取回r3中暫存數(shù)據(jù) inc r0 ;指向當(dāng)前地址單元 swap a ;a中數(shù)據(jù)高四位與低四位交換 anl a,#0fh ;高四位變0 mov r0,a ;數(shù)據(jù)放入當(dāng)削地址單元中 ret ;子程序返回 ; 清零程序 ;對(duì)計(jì)時(shí)單元復(fù)零用 clr0: clr a ;清累加器 mov r0,a ;清當(dāng)前地址單元 dec r0 ;指向前一地址 mov r0,a ;前一地址單元清0 ret ;子程序返回; 時(shí)鐘調(diào)整程序;當(dāng)調(diào)時(shí)按鍵按下時(shí)進(jìn)入此程序 setmm: clr et0 ;關(guān)定時(shí)器t0中斷 clr tr0
25、;關(guān)閉定時(shí)器t0 lcall dl1s ;調(diào)用1秒延時(shí)程序 jb p3.7,closedis ;鍵按下時(shí)間小于1秒,關(guān)閉顯示(省電) mov r2,#06h ;進(jìn)入調(diào)時(shí)狀態(tài),賦閃爍定時(shí)初值 setb et1 ;允許t1中斷 setb tr1 ;開啟定時(shí)器t1 set2: jnb p3.7,set1 ;p3.7口為0(鍵未釋放),等待 setb 00h ;鍵釋放,分調(diào)整閃爍標(biāo)志置1 set4: jb p3.7,set3 ;等待鍵按下 lcall dl05s ;有鍵按下,延時(shí)0.5秒 jnb p3.7,sethh ;按下時(shí)間大于0.5秒轉(zhuǎn)調(diào)小時(shí)狀態(tài) mov r0,#77h ;按下時(shí)間小于0.5秒加
26、1分鐘操作 lcall add1 ;調(diào)用加1子程序 mov a,r3 ;取調(diào)整單元數(shù)據(jù) clr c ;清進(jìn)位標(biāo)志 cjne a,#60h,hhh ;調(diào)整單元數(shù)據(jù)與60比較 hhh: jc set4 ;調(diào)整單元數(shù)據(jù)小于60轉(zhuǎn)set4循環(huán) lcall clr0 ;調(diào)整單元數(shù)據(jù)大于或等于60時(shí)清0 clr c ;清進(jìn)位標(biāo)志 ajmp set4 ;跳轉(zhuǎn)到set4循環(huán) closedis: setb et0 ;省電(led不顯示)狀態(tài)。開t0中斷 setb tr0 ;開啟t0定時(shí)器(開時(shí)鐘) close: jb p3.7,close ;無按鍵按下,等待。 lcall display ;有鍵按下,調(diào)顯示子程
27、序延時(shí)削抖 jb p3.7,close ;是干擾返回close等待 waith: jnb p3.7,waith ;等待鍵釋放 ljmp start1 ;返回主程序(led數(shù)據(jù)顯示亮) sethh: clr 00h ;分閃爍標(biāo)志清除(進(jìn)入調(diào)小時(shí)狀態(tài)) sethh1: jnb p3.7,set5 ;等待鍵釋放 setb 01h ;小時(shí)調(diào)整標(biāo)志置1 set6: jb p3.7,set7 ;等待按鍵按下 lcall dl05s ;有鍵按下延時(shí)0.5秒 jnb p3.7,setout ;按下時(shí)間大于0.5秒退出時(shí)間調(diào)整 mov r0,#79h ;按下時(shí)間小于0.5秒加1小時(shí)操作 lcall add1 ;
28、調(diào)加1子程序 mov a,r3 ; clr c ; cjne a,#24h,houu ;計(jì)時(shí)單元數(shù)據(jù)與24比較 houu: jc set6 ;小于24轉(zhuǎn)set6循環(huán) lcall clr0 ;大于或等于24時(shí)清0操作 ajmp set6 ;跳轉(zhuǎn)到set6循環(huán) setout: jnb p3.7,setout1 ;調(diào)時(shí)退出程序。等待鍵釋放 lcall display ;延時(shí)削抖 jnb p3.7,setout ;是抖動(dòng),返回setout再等待 clr 01h ;清調(diào)小時(shí)標(biāo)志 clr 00h ;清調(diào)分標(biāo)志 clr 02h ;清閃爍標(biāo)志 clr tr1 ;關(guān)閉定時(shí)器t1 clr et1 ;關(guān)定時(shí)器t1中
29、斷 setb tr0 ;開啟定時(shí)器t0 setb et0 ;開定時(shí)器t0中斷(計(jì)時(shí)開始) ljmp start1 ;跳回主程序 set1: lcall display ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào)分) ajmp set2 ;防止鍵按下時(shí)無時(shí)鐘顯示 set3: lcall display ;等待調(diào)分按鍵時(shí)時(shí)鐘顯示用 ajmp set4 set5: lcall display ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào)小時(shí)) ajmp sethh1 ;防止鍵按下時(shí)無時(shí)鐘顯示 set7: lcall display ;等待調(diào)小時(shí)按鍵時(shí)時(shí)鐘顯示用 ajmp set6 setout1: lcall display
30、 ;退出時(shí)鐘調(diào)整時(shí)鍵釋放等待 ajmp setout ;防止鍵按下時(shí)無時(shí)鐘顯示; 顯示程序 ; 顯示數(shù)據(jù)在70h-75h單元內(nèi),用六位led共陽數(shù)碼管顯示,p0口輸出段碼數(shù)據(jù),p3口作; 掃描控制,每個(gè)led數(shù)碼管亮1ms時(shí)間再逐位循環(huán)。 display: mov r1,#70h ;指向顯示數(shù)據(jù)首址 mov r5,#0feh ;掃描控制字初值 play: mov a,r5 ;掃描字放入a mov p2,a ;從p2口輸出 mov a,r1 ;取顯示數(shù)據(jù)到a mov dptr,#tab ;取段碼表地址 movc a,a+dptr ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼 mov p1,a ;段碼放入p0口 lcal
31、l dl1ms ;顯示1ms inc r1 ;指向下一地址 mov a,r5 ;掃描控制字放入a jnb acc.5,endout ;acc.5=0時(shí)一次顯示結(jié)束 rl a ;a中數(shù)據(jù)循環(huán)左移 mov r5,a ;放回r5內(nèi) ajmp play ;跳回play循環(huán) endout: setb p2.5 ;一次顯示結(jié)束,p2口復(fù)位 mov p1,#0ffh ;p0口復(fù)位 ret ;子程序返回 tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;1ms延時(shí)程序,led顯示程序用 dl1ms: mov r6,#14h dl1: mov r7,#19h dl2
32、: djnz r7,dl2 djnz r6,dl1 ret;20ms延時(shí)程序,采用調(diào)用顯示子程序以改善led的顯示閃爍現(xiàn)象 ds20ms: acall display acall display acall display ret;延時(shí)程序,用作按鍵時(shí)間的長短判斷 dl1s: lcall dl05s lcall dl05s ret dl05s: mov r3,#20h ;8毫秒*32=0.196秒 dl05s1: lcall display djnz r3,dl05s1 ret end ;程序結(jié)束第五章 使 用 調(diào) 試 1.顯示xx:xx:xx時(shí)間 2.時(shí)間可調(diào):調(diào)整鍵(s2)按下時(shí)間小于1秒(t0.5s)分鐘位閃亮,此時(shí)按下s2鍵(t0.5s)時(shí)鐘位閃亮,此時(shí)按下s2鍵(t0.5s),返回到正常顯示狀態(tài)。 3.下載線和電源線插接說明:1.下載線插接說明:兩排十針下載口,板圖上都有一個(gè)小方框,為1號(hào)引角;下載線的凸口為正方向,凸口的右
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 危險(xiǎn)品倉儲(chǔ)出租倉管理規(guī)范考核試卷
- 小學(xué)生計(jì)算機(jī)教育的實(shí)施模式考核試卷
- 熱塑性化學(xué)纖維的制造與應(yīng)用考核試卷
- 《不完全佐劑和完全佐劑分別與牛二型膠原蛋白制備的SD大鼠CIA模型的比較研究》
- 游樂園年度市場(chǎng)經(jīng)營計(jì)劃考核試卷
- 2024年燒堿項(xiàng)目申請(qǐng)報(bào)告模板
- 《我國自由式滑雪空中技巧項(xiàng)目發(fā)展態(tài)勢(shì)的研究》
- 2024-2030年中國皮草行業(yè)運(yùn)行動(dòng)態(tài)及發(fā)展?jié)摿ρ芯繄?bào)告版
- 2024-2030年中國白云石行業(yè)競(jìng)爭現(xiàn)狀及投資規(guī)模分析報(bào)告
- 2024-2030年中國電餅鐺行業(yè)競(jìng)爭力策略及發(fā)展?jié)摿Ψ治鰣?bào)告版
- 大學(xué)美育(同濟(jì)大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 過敏性休克完整版本
- 第四節(jié) 烤瓷熔附金屬全冠的制作工藝流程
- 建筑施工現(xiàn)場(chǎng)安全警示牌標(biāo)示(標(biāo)志圖片)
- 設(shè)計(jì)單位考察評(píng)價(jià)表
- 交通銀行企業(yè)文化理念
- 土壤板結(jié)與改良方法.ppt
- 盤縣地域分異匯總
- aspcms后臺(tái)操作說明書
- 免疫學(xué)發(fā)展簡史及展望PPT課件
- 個(gè)人上學(xué)簡歷模板
評(píng)論
0/150
提交評(píng)論