論文_單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第1頁(yè)
論文_單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第2頁(yè)
論文_單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第3頁(yè)
論文_單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第4頁(yè)
論文_單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)電子時(shí)鐘的設(shè)計(jì)摘 要單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開發(fā)較為容易。由于具有上述優(yōu)點(diǎn),在我國(guó),單片機(jī)已廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器、電力電子、機(jī)電一體化設(shè)備等各個(gè)方面,而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計(jì)通過(guò)對(duì)它的學(xué)習(xí)、應(yīng)用,以AT89S51芯片為核心,輔以必要的電路,設(shè)計(jì)了一個(gè)簡(jiǎn)易的電子時(shí)鐘,它由4.5V直流電源供電,通過(guò)數(shù)碼管能夠準(zhǔn)確顯示時(shí)間,調(diào)整時(shí)間,從而到達(dá)學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬

2、件的能力。關(guān)鍵詞:?jiǎn)纹瑱C(jī) AT89S51 電子時(shí)鐘 數(shù)碼管Design of the singlechip electronics clockAbstractSingle slice machine from published in 70's for 20 centuries, is compare with its very high function price, is value by people and pay attention to, apply very widely, develop very quickly. Single slice the machine ph

3、ysical volume is small,the weight is light,the anti- interference ability is strong,the environment haven't high request,the price is cheap,the credibility is high,vivid good,develop more easy. In order to having an above-mentioned advantage, at the our country, single slice the machine is broad

4、ly applied already to turn an equipment at industrial automation control,automatic examination,intelligence instrument appearance,home appliances,electric power electronics,the machine electricity integral whole etc. each aspect, but 51 machines is is a typical model most and have a representative m

5、ost in each machine of a kind. This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accur

6、ate manifestation time, adjust time。Arrive a study and design, develop thus soft,the ability of the hardware .Keywords:MCU AT89S51 electronics clock digital tube目 錄摘 要IAbstractII第一章前言1第二章方案論證與比較22.1數(shù)字時(shí)鐘方案22.2數(shù)碼管顯示方案2第三章系統(tǒng)設(shè)計(jì)33.1總體設(shè)計(jì)33.1.1系統(tǒng)說(shuō)明33.1.2系統(tǒng)框圖33.2模塊設(shè)計(jì)43.2.1電源部分43.2.2復(fù)位電路43.2.3程序下載接口53.2.4位選部

7、分53.2.5數(shù)碼管的連接電路63.2.6控制部分6第四章原理圖與PCB圖8第五章軟件設(shè)計(jì)95.1程序流程圖95.2源程序11第六章總結(jié)186.1物品清單與元件特性186.2設(shè)計(jì)總結(jié)19參考文獻(xiàn)(References):20致 謝2019第一章 前言時(shí)鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著時(shí)間的推移,科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高,應(yīng)用越來(lái)越廣。怎樣讓時(shí)鐘更好的為人民服務(wù),怎樣讓我們的老朋友煥發(fā)青春呢?這就要求人們不斷設(shè)計(jì)出新型時(shí)鐘?,F(xiàn)今,高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘,石英表,石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便

8、,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí),分,秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),但誤差很大,主要用在對(duì)時(shí)間精度要求不高的場(chǎng)合;二

9、是用專門的時(shí)鐘芯片實(shí)現(xiàn),在對(duì)時(shí)間精度要求很高的情況下,通常采用這種方法,典型的時(shí)鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。本文主要介紹用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)AT89S51芯片和LED數(shù)碼管為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)電子時(shí)鐘。第二章 方案論證與比較2.1數(shù)字時(shí)鐘方案數(shù)字時(shí)鐘是本設(shè)計(jì)的最主要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案采用Dallas公司的專用時(shí)鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,

10、使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(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é)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由

11、于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作?;谟布娐返目紤],本設(shè)計(jì)采用方案二完成數(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ì)于顯示器的每一位來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。利用人的視覺暫留功能可以看到整個(gè)顯示

12、,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(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ì)3.1.1系統(tǒng)說(shuō)明利用單片機(jī)(AT89S51)制作簡(jiǎn)易電子時(shí)鐘,由六個(gè)LED數(shù)碼管分別顯示小時(shí)十位、小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位。6個(gè)PNP管(9012)分別控制六個(gè)數(shù)碼管的亮滅,一個(gè)按鍵用于時(shí)間調(diào)整。3.1.2系統(tǒng)框圖顯示部分控制部分單片機(jī)(AT89S51)按鍵S2復(fù)位電路電源部分直流電源4.5V6個(gè)七段共陰極數(shù)碼管顯示秒

13、,分鐘及小時(shí)位位選部分6個(gè)PNP三極管(9012)圖3-13.2模塊設(shè)計(jì)3.2.1電源部分 圖3-2如圖3-2所示,從外部引入4.5V的直流電,為單片機(jī)、復(fù)位電路提供電源。3.2.2復(fù)位電路圖3-3如圖3-3所示,復(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.3程序下載接口圖3-4如圖3-4所示,由AT89S ISP構(gòu)成的兩排十針下載口,板圖上有一個(gè)小方框,為1號(hào)引角;下載線的凸口為正方向,凸口的右側(cè)邊的第一個(gè)插孔為1號(hào)

14、引角。3.2.4位選部分圖3-5圖3-5為位選電路,三極管的集電極接數(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í)顯示的效果。3.2.5數(shù)碼管的連接電路圖3-6圖3-6為數(shù)碼管的引腳圖,每位的段碼線(a,b,c,d,e,f,g,dp)分別與1個(gè)8位的鎖存器輸出相連,由AT89S51控制組合09十個(gè)數(shù)據(jù),如令其顯示1則b,c引腳(即2,3引腳)送高電平,此時(shí)數(shù)碼管顯示1。由于各位的段碼線并聯(lián),8位I/O口輸出段碼對(duì)各個(gè)顯示位來(lái)說(shuō)都是相同的。3.2.6控制部分圖3-7AT89S51是美國(guó)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)及

16、引腳。AT89S51提供以下標(biāo)準(zhǔn)功能:4K字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32I/O口線,看門狗(WDT),兩個(gè)數(shù)據(jù)指針,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。如圖3-7所示,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溢出將使該引腳輸出高電

17、平,設(shè)置SFT AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。6. EA/VPP 片外程序存儲(chǔ)器訪問(wèn)允許信號(hào)。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地),如果EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。7. P1口,P2口P1,P2是一組帶內(nèi)部上拉電阻的8位雙向I/O口。運(yùn)行時(shí)通過(guò)P1口控制驅(qū)動(dòng)電路的工作,將數(shù)據(jù)送到數(shù)碼管,顯示相應(yīng)的段碼,為了達(dá)到減少功耗或滿足端口對(duì)最大電流的限制,應(yīng)加上一限流電阻。P2.0P2.5口控制數(shù)碼管的位選,使六個(gè)數(shù)碼管輪流顯示數(shù)據(jù),

18、等于1時(shí)位選三極管導(dǎo)通,等于0 時(shí)位選三極管截止。8. 無(wú)自鎖開關(guān)(S2P3.7)開關(guān)接相應(yīng)引腳P3.7,當(dāng)開關(guān)按下時(shí),相應(yīng)引腳為低電平0,斷開時(shí)引腳為高電平1。第四章 原理圖與PCB圖圖4-1圖4-2第五章 軟件設(shè)計(jì)5.1程序流程圖主程序開始設(shè)定定時(shí)器常數(shù),開中斷顯示時(shí)間到1秒?T0中斷現(xiàn)場(chǎng)保護(hù)重裝定時(shí)器初值滿20次否?滿24小時(shí)否?滿60秒否?滿60分否?恢復(fù)現(xiàn)場(chǎng)時(shí)值加1時(shí)緩沖單元清零秒值加1分緩沖單元清零秒緩沖單元清零分值加1結(jié)束時(shí)鐘調(diào)整程序關(guān)閉顯示,省電狀態(tài)分鐘閃爍,調(diào)時(shí)狀態(tài)分值加1按鍵S2時(shí)間t>1時(shí)值=24?按鍵S2時(shí)間t<0.5按鍵S2時(shí)間t<0.5時(shí)鐘閃爍,調(diào)

19、時(shí)狀態(tài)分值=60?分值清零時(shí)值加1時(shí)值清零返回顯示S2是否按下5.2源程序表5-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 0003H;外中斷0中斷程序入口RET

20、I;外中斷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 ; MOV 20H,#00H ;清20

21、H(標(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í)用初值(50MS×20) START1: LCALL DISPLAY ;調(diào)用顯示子程序 JNB

22、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 ;重裝

23、初值(高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

24、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

25、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 ;

26、重裝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),將不顯示分

27、數(shù)據(jù) MOV 74H,78H ; MOV 75H,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 ;

28、A加1操作 DA A ;十進(jìn)制調(diào)整 MOV R3,A ;移入R3寄存器 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)入此

29、程序 SETMM: cLR ET0 ;關(guān)定時(shí)器T0中斷 CLR TR0 ;關(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í)間大

30、于0.5秒轉(zhuǎn)調(diào)小時(shí)狀態(tài) MOV R0,#77H ;按下時(shí)間小于0.5秒加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

31、;無(wú)按鍵按下,等待。 LCALL DISPLAY ;有鍵按下,調(diào)顯示子程序延時(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

32、,#79H ;按下時(shí)間小于0.5秒加1小時(shí)操作 LCALL ADD1 ;調(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 ;清閃爍

33、標(biāo)志 CLR TR1 ;關(guān)閉定時(shí)器T1 CLR ET1 ;關(guān)定時(shí)器T1中斷 SETB TR0 ;開啟定時(shí)器T0 SETB ET0 ;開定時(shí)器T0中斷(計(jì)時(shí)開始) LJMP START1 ;跳回主程序 SET1: LCALL DISPLAY ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào)分) AJMP SET2 ;防止鍵按下時(shí)無(wú)時(shí)鐘顯示 SET3: LCALL DISPLAY ;等待調(diào)分按鍵時(shí)時(shí)鐘顯示用 AJMP SET4 SET5: LCALL DISPLAY ;鍵釋放等待時(shí)調(diào)用顯示程序(調(diào)小時(shí)) AJMP SETHH1 ;防止鍵按下時(shí)無(wú)時(shí)鐘顯示 SET7: LCALL DISPLAY ;等待調(diào)小時(shí)按鍵時(shí)時(shí)鐘

34、顯示用 AJMP SET6 SETOUT1: LCALL DISPLAY ;退出時(shí)鐘調(diào)整時(shí)鍵釋放等待 AJMP SETOUT ;防止鍵按下時(shí)無(wú)時(shí)鐘顯示; 顯示程序 ; 顯示數(shù)據(jù)在70H-75H單元內(nèi),用六位LED共陽(yáng)數(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+DP

35、TR ;查顯示數(shù)據(jù)對(duì)應(yīng)段碼 MOV P1,A ;段碼放入P0口 LCALL 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: DJNZ R7,DL2 DJNZ R6,DL1 RET;20MS延時(shí)程序,采用調(diào)用顯示子程序以改善LED的顯示閃爍現(xiàn)象 DS20MS: ACALL DISPLA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論