




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、21第一章 前言數(shù)字電子鐘具有走時準確,一鐘多用等特點,在生活中已經(jīng)得到廣泛的應用。雖然現(xiàn)在市場上已有現(xiàn)成的電子鐘集成電路芯片,價格便宜、使用也方便,但是人們對電子產(chǎn)品的應用要求越來越高,數(shù)字鐘不但可以顯示當前的時間,而且可以顯示期、農(nóng)歷 、以及星期等,給人們的生活帶來了方便。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。單片機具有體積小、功能強可靠性高、價格低廉等一系列優(yōu)點,不僅已成為工業(yè)測控領域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個角落,有力地推動了各行業(yè)的技術改造和產(chǎn)品的更新?lián)Q代,應用前景廣闊。時鐘電路在計算機系統(tǒng)中起著非常重要
2、的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間,它通常有兩種實現(xiàn)方法:一是用軟件實現(xiàn),即用單片機內(nèi)部的可編程定時/計數(shù)器來實現(xiàn),但誤差很大,主要用在對時間精度要求不高的場合;二是用專門的時鐘芯片實現(xiàn),在對時間精度要求很高的情況下,通常采用這種方法,典型的時鐘芯片有:DS1302,DS12887,X1203等都可以滿足高精度的要求。AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(
3、In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,
4、看門狗(WDT)電路,片內(nèi)時鐘振蕩器。 此外,AT89S51設計和配置了振蕩頻率可為0Hz并可通過軟件設置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應不同產(chǎn)品的需求。本文主要介紹用單片機內(nèi)部的定時/計數(shù)器來實現(xiàn)電子時鐘的方法,本設計由單片機AT89S51芯片和LED數(shù)碼管為核心,輔以必要的電路,構成了一個單片機電子時鐘。第二章 關于電子時鐘2.1電子時鐘簡介 1957年,Ventura發(fā)明了世界上第一個電子
5、表,從而奠定了電子時鐘的基礎,電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分小時進一,滿二十四小時小時清零。從而達到計時的功能,是人民日常生活補課缺少的工具。2.2 電子時鐘的基本特點 現(xiàn)在高精度的計時工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術,因此走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和
6、分的校對,片選的靈活性好。2.3 電子時鐘的原理 該電子時鐘由89C51,BUTTON,六段數(shù)碼管等構成,采用晶振電路作為驅(qū)動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中唯一的一個控制鍵卻擁有多種不同的功能,按下又松開,可以實現(xiàn)屏蔽數(shù)碼管顯示的功能,達到省電的目的;直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而連續(xù)兩次按下按鍵不放松,則可實現(xiàn)小時的調(diào)節(jié),同樣每按一次小時加一。第三章 方案論證與比較3.1數(shù)字時鐘方案數(shù)字時鐘是本設計的最主要的部分。根據(jù)需要,可利用兩種方案實現(xiàn)。方案一:本方案采用Da
7、llas公司的專用時鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時鐘鬧鐘功能,因此,可直接對其以用于顯示或設置,使得軟件編程相對簡單。為保證時鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當電網(wǎng)電壓不足或突然掉電時,系統(tǒng)自動轉換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時,鋰電池也能保證芯片的正常運行,以備隨時提供正確的時間。方案二:本方案完全用軟件實現(xiàn)數(shù)字時鐘。原理為:在單片機內(nèi)部存儲器設三個字節(jié)分別存放時鐘的時、分、秒信息。利用定時器與軟件結合實現(xiàn)1秒定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應的秒值加1;若
8、秒值達到60,則將其清零,并將相應的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點。但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高。而且,由于是軟件實現(xiàn),當單片機不上電,程序不執(zhí)行時,時鐘將不工作。基于硬件電路的考慮,本設計采用方案二完成數(shù)字時鐘的功能。3.2 數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當顯示器顯示某一字符時,相應的發(fā)光二極管恒定的導通或截止。該方式每一位都需要一個8 位輸出口控制。靜態(tài)顯示時較小的電流能獲得較高的亮度,且字符不閃爍。但當所顯示的位數(shù)較多時,靜態(tài)顯示所需的I/O口
9、太多,造成了資源的浪費。方案二:動態(tài)顯示。所謂動態(tài)顯示就是一位一位的輪流點亮各個位,對于顯示器的每一位來說,每隔一段時間點亮一次。利用人的視覺暫留功能可以看到整個顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導通電流有關,也于點亮時間與間隔時間的比例有關。調(diào)整參數(shù)可以實現(xiàn)較高穩(wěn)定度的顯示。動態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省I/O口和降低能耗出發(fā),本設計采用方案二。第四章 系統(tǒng)設計4.1總體設計計時方案利用AT89S51單片機內(nèi)部的定時/計數(shù)器進行中斷時,配合軟件延時實現(xiàn)時、分、秒的計時。該方案節(jié)省硬件成本,且能使讀者在定時/計數(shù)器的使用、中斷及程序設計方面得到鍛煉與提高
10、,對單片機的指令系統(tǒng)能有更深入的了解,從而對學好單片機技術這門課程起到一定的作用。控制方案AT89S51的P0口和P2口外接由八個LED數(shù)碼管(LED8LED1)構成的顯示器,用P0口作LED的段碼輸出口,P2口作八個LED數(shù)碼管的位控輸出線,P1口外接四個按鍵A、B、C構成鍵盤電路。AT89S51 是一種低功耗,高性能的CMOS 8位微型計算機。它帶有8K Flash 可編程和擦除的只讀存儲器(EPROM),該器件采用ATMEL的高密度非易失性存儲器技術制造,與工業(yè)上標準的80C51和80C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個芯片上,可用與解決復雜的問題,且成本較低。簡易電子
11、鐘的功能不復雜,采用其現(xiàn)有的I/O便可完成,所以本設計中采用此的設計方案。具體設計分析利用單片機(AT89S51)制作簡易電子時鐘,由六個LED數(shù)碼管分別顯示小時十位、小時個位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位。結合本設計實驗來說,要求顯示的時間為時,分,秒,并且都用兩位數(shù)碼管來實現(xiàn)顯示。因此,具體設計程序時,應盡可能多用一些子程序與數(shù)據(jù)暫寄存器單元。本程序設計中,在主程序之外,可以設置時間值處理子程序,時間值顯示前的處理子程序,按鍵情況掃描子程序,1S定時中斷子程序以及5ms延時消除按鍵抖動子程序等多個小型的子程序。另外,可以設置一些數(shù)據(jù)單元作為數(shù)據(jù)寄存器。用28H,2AH,2BH和2
12、CH地址單元分別作為顯示位數(shù)的掃描指針值寄存器,時寄存器,分寄存器和秒寄存器,再用20H地址單元作為顯示寄存器。單片機譯碼器數(shù)碼管顯示晶振時間調(diào)整按鈕系統(tǒng)框圖4.2 模塊設計4.2.1芯片分析 AT89S51芯片選用的AT89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實現(xiàn)在線的編程。用于實現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:1、為一般控制應用的 8 位單片機2、晶片內(nèi)部具有時鐘振蕩器(傳統(tǒng)最高工作頻率可至 33MHz)3、內(nèi)部程式存儲器(ROM)為 4KB4、內(nèi)部數(shù)據(jù)存儲器(RAM)為 128B5、外部程序存儲器可擴充至 64KB6、外部數(shù)據(jù)存儲器可擴充至 64KB7
13、、32 條雙向輸入輸出線,且每條均可以單獨做 I/O 的控制8、5 個中斷向量源9、2 組獨立的 16 位定時器10、1 個全雙工串行通信端口11、8751 及 8752 單芯片具有數(shù)據(jù)保密的功能12、單芯片提供位邏輯運算指令 74LS47芯片說明74LS47是BCD-7段數(shù)碼管譯碼器/驅(qū)動器, 74LS47的功能用于將BCD碼轉化成數(shù)碼塊中的數(shù)字,通過它解碼, 可以直接把數(shù)字轉換為數(shù)碼管的顯示數(shù)字, 從而簡化了程序。74LS47譯碼器原理譯碼為編碼的逆過程。它將編碼時賦予代碼的含義“翻譯”過來。實現(xiàn)譯碼的邏輯電路成為譯碼器。譯碼器輸出與輸入代碼有唯一的對應關系。74LS47是輸出低電平有效的
14、七段字形譯碼器,它在這里與數(shù)碼管配合使用,下表列出了74LS47的真值表,表示出了它與數(shù)碼管之間的關系。LTRBIA3A2A1A0BIRBOabcdefg1100001000000101X00011100111111X00101001001021X00111000011031X01001100110041X01011010010051X01101110000061X01111000111171X10001000000081X1001100011009XXXXXX01111111滅10000000111111滅0XXXXX10000000874LS138芯片說明74HC138:74LS138 為
15、3 線8 線譯碼器,共有 54/74S138和 54/74LS138 兩種線路結構型式,其74LS138工作原理如下: 當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平譯出。74LS138的作用利用 G1、/(G2A)和/(G2B)可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32 線譯碼器。 若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器。74LS138引腳圖 與非門組成的3線-8線譯碼器74LS138 無論從邏輯圖還是功能表我們都可以看到74LS138的八個
16、輸出引腳,任何時刻要么全為高電平1芯片處于不工作狀態(tài),要么只有一個為低電平0,其余7個輸出引腳全為高電平1。如果出現(xiàn)兩個輸出引腳同時為0的情況,說明該芯片已經(jīng)損壞。71LS138有三個附加的控制端、和。當、時,輸出為高電平(S1),譯碼器處于工作狀態(tài)。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平,如表3.3.5所示。這三個控制端也叫做“片選”輸入端,利用片選的作用可以將多篇連接起來以擴展譯碼器的功能。3線-8線譯碼器74LS138的功能表帶控制輸入端的譯碼器又是一個完整的數(shù)據(jù)分配器。在圖3.3.8電路中如果把作為“數(shù)據(jù)”輸入端(同時),而將作為“地址”輸入端,那么從送來的數(shù)據(jù)只能通過所指定的
17、一根輸出線送出去。這就不難理解為什么把叫做地址輸入了。例如當 101時,門的輸入端除了接至輸出端的一個以外全是高電平,因此的數(shù)據(jù)以反碼的形式從輸出,而不會被送到其他任何一個輸出端上。4.2.2 晶振電路右圖所示為時鐘電路原理圖,在AT89S51芯片內(nèi)部有一個高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構成一個穩(wěn)定的自激振蕩器。時鐘電路產(chǎn)生的振蕩脈沖經(jīng)過觸發(fā)器進行二分頻之后,才成為單片機的時鐘脈沖信號。圖3晶振電路4.2.3復位電路單片機復位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩
18、個機器周期(即24個振蕩周期)的高電平。例如,若時鐘頻率為12 MHz,每機器周期為1s,則只需2s以上時間的高電平,在RST引腳出現(xiàn)高電平后的第二個機器周期執(zhí)行復位。單片機常見的復位如圖所示。電路為上電復位電路,它是利用電容充電來實現(xiàn)的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時間大于兩個機器周期,便能正常復位。該電路除具有上電復位功能外,若要復位,只需按圖中的RESET鍵,此時電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個復位高電平。圖4單片機復位電路4.2.4數(shù)碼顯示模塊設計共陰數(shù)碼管數(shù)碼管是一種把多個
19、LED顯示段集成在一起的顯示設備。有兩種類型,一種是共陽型,一種是共陰型。共陽型就是把多個LED顯示段的陽極接在一起,又稱為公共端。共陰型就是把多個LED顯示段的陰極接在一起,即為公共商。陽極即為二極管的正極,又稱為正極,陰極即為二極管的負極,又稱為負極。通常的數(shù)碼管又分為8段,即8個LED顯示段,這是為工程應用方便如設計的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點位段。而多位數(shù)碼管,除某一位的公共端會連接在一起,不同位的數(shù)碼管的相同端也會連接在一起。即,所有的A段都會連在一起,其它的段也是如此,這是實際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動態(tài)顯示兩種。靜態(tài)顯示就是數(shù)
20、碼管的8段輸入及其公共端電平一直有效。動態(tài)顯示的原理是,各個數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽極連在一起組成公共端。利用人眼的視覺暫留性,依次給出各個數(shù)碼管公共端加有效信號,在此同時給出該數(shù)碼管加有效的數(shù)據(jù)信號,當全段掃描速度大于視覺暫留速度時,顯示就會清晰顯示出來。 系統(tǒng)采用動態(tài)顯示方式,用P0口來控制LED數(shù)碼管的段控線,而用P2口來控制其位控線。動態(tài)顯示通常都是采用動態(tài)掃描的方法進行顯示,即循環(huán)點亮每一個數(shù)碼管,這樣雖然在任何時刻都只有一位數(shù)碼管被點亮,但由于人眼存在視覺殘留效應,只要每位數(shù)碼管間隔時間足夠短,就可以給人以同時顯示的感覺。4.2.5按鍵模塊時
21、間計數(shù)電路由秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器、時個位和時十位計數(shù)器及星期計數(shù)器電路構成,其中秒個位和秒十位計數(shù)器、分個位和分十位計數(shù)器為60進制計數(shù)器,時個位和時十位計數(shù)器為24進制計數(shù)器。下圖為按鍵模塊電路原理圖。4.2.6整個電路原理圖 第五章 控制系統(tǒng)的軟件設計基本的程序流程應該是:在主程序中檢測各個時間按鈕是否有動作若有,就儲存并修改相關的的時間寄存器的值,若沒有,就繼續(xù)檢測。在計時子程序中將各時間寄存器的值逐個加1,每加一次就要檢查是否已超過顯示的上限值,這樣在后面就便于處理,在掃描顯示子程序中,將掃描位數(shù)指針與20H相加,從而得到相應的顯示數(shù)據(jù);然后按照顯示的位數(shù)加顯示數(shù)
22、就的格式,將數(shù)據(jù)從P1口輸出到數(shù)碼管上去顯示,當然還有定時中斷子程序,它實現(xiàn)計時1S的時間延時。開 始定時器T0初始化設置顯示初值為12:00:00設置定時4ms初值設中斷250次設置中斷允許秒寄存器值加1秒按鍵了?秒寄存器值加1使秒寄存器清0秒按鍵松 開了?N分按鍵了?分寄存器值加1水電費第三方秒寄存器60?秒按松開了?分按鍵松開?時寄存器值20使分寄存器清0時寄存器值加1使寄存器清0啟動T0中斷NY時按鍵了?NNNNY5.1源程序代碼ORG 00H;主程序起始地址JMP START;主程序STARTORG 0BH;定時器T0中斷起始地址JMP TIM0;定時器T0中斷子程序TIM0STAR
23、T: MOV SP,#70H;;設置堆棧指針MOV 28H,#00;;設置顯示位數(shù)掃描指針初值為0MOV 2AH,#12H;;設置時鐘顯示寄存器初值為12HMOV 2BH,#00;;設置分鐘顯示寄存器初值為00HMOV 2CH,#00;;設置秒鐘顯示寄存器初值為00HMOV TMOD,#01H;;設置定時器T0工作在方式1MOV TH0,#0F0H;;定時4ms的初值,即0F060HMOV TL0,#60H;;初值的低位MOV IE,#82H;;定時器T0中斷允許MOV R4,#250;;保證后面實現(xiàn)中斷250次,即1s的延時SETB TR0;;啟動定時器T0LOOP: JB P0.0,N2;
24、;若秒沒有按鍵,就轉去下一步檢查分CALL DELAY;;延時5ms消除抖動MOV A,2CH;;將秒寄存器的值載入累加器A ADD A,#01H;;A的內(nèi)容加1DA A;;十進制調(diào)整MOV 2CH,A;;A 的值存入秒寄存器CJNE A,#60H,N1;;看是否已經(jīng)是60秒,若不是就繼續(xù)檢查MOV 2CH,#00;;已經(jīng)是60秒,就清空秒寄存器的值N1: JNB P0.0,$;;秒按鍵還沒有放開就循環(huán)等待CALL DELAY;延時5ms,消除抖動N2: JB P0.1,N4;;若分沒有按鍵,就轉去下一步檢查時鐘CALL DELAY;;延時5ms,消除抖動MOV A,2BH;;將分寄存器的值載
25、入累加器AADD A,#01H;;A的內(nèi)容加1DA A;;十進制調(diào)整MOV 2BH,A;;A的值存入分寄存器CJNE A,#60H,N3;;看是否已經(jīng)是60分MOV 2BH,#00;;已經(jīng)是60分,就清空秒寄存器的值N3: JNB P0.1,$;;分按鍵還沒有放開就循環(huán)等待CALL DELAY;;延時5ms,消除抖動N4: JB P0.2,LOOP;;若時沒有按鍵,就轉回去繼續(xù)檢查看是否秒有按鍵CALL DELAY;;延時5ms,消除抖動MOV A,2AH;;將時寄存器的值載入累加器AADD A,#01H;;A的內(nèi)容加1DA A;;十進制調(diào)整MOV 2AH,A;;A的值存入時寄存器CJNE A
26、,#24H,N5;;看是否已經(jīng)是24時,若不是就繼續(xù)檢查MOV 2AH,#00;;已經(jīng)是24時,就清空寄存器的值N5: JNB P0.2,$;;時鐘按鍵還沒有放開就循環(huán)等待CALL DELAY;;延時5ms,消除抖動JMP LOOP;;返回重新檢查看是否有按鍵;*定時器T0中斷子程序*TIM0: MOV TH0,#0F0H;;定時初值重設MOV TL0,#60HPUSH ACC;;將累加器A的值暫存于堆棧PUSH PSW;;將PSW的值暫存于堆棧DJNZ R4,X2;;計時中斷不滿1s就退出繼續(xù)中斷MOV R4,#250;;計時1sCALL CLOCK;;調(diào)用計時子程序CLOCKCALL DI
27、SP;;調(diào)用顯示子程序DISPX2: CALL SCAN;;調(diào)用掃描子程序SCADPOP PSW;;到堆棧取回PSW的值POP ACC;;到堆棧取回累加器ACC的值RETI;返回主程序;;*掃描子程序*SCAN: MOV R0,#28HINC R0;顯示位數(shù)掃描值加1CJNE R0,#6,X3;掃描位數(shù)不為6就準備控制輸出MOV R0,#0;掃描位數(shù)為6,就另其值為0X3:MOV A,R0;掃描位數(shù)載入AADD A,#20H;A加上20H(顯示寄存器地址)=各時間顯示區(qū)地址MOV R1,A;各時間顯示區(qū)地址存入AMOV A,R0;掃描位數(shù)存入ASWAP A;將A的高低4位交換(其高4位為掃描
28、;的位數(shù),低4位為顯示數(shù)據(jù)值)ORL A,R1;將掃描值與顯示數(shù)據(jù)組合MOV P1,A;顯示輸出RET;*計時子程序*CLOCK: MOV A,2CH;;秒寄存器值載入AADD A,#1;;加1秒DA A;;十進制調(diào)整MOV 2CH,A;;A的值存入秒寄存器CJNE A,#60H,X4;;A不等于60秒,就跳出程序去顯示MOV 2CH,#00;;已經(jīng)是60秒,就清0MOV A,2BH;;分寄存器值載入AADD A,#1;;加1分DA A;;十進制調(diào)整MOV 2BH,A;;A的值存入分寄存器 CJNE A,#60H,X4;;A不等于60分,就跳出程序去顯示MOV 2BH,#00;;已經(jīng)是60分就
29、清0MOV A,2AH;;時寄存器值載入AADD A,#1;;加1小時DA A;;十進制調(diào)整MOV 2AH,A;;A的值存入是寄存器CJNE A,#24H,X4;;A不等于24時,就跳出程序去顯示MOV 24H,#00;;已經(jīng)是24時,就清0X4: RET;*顯示子程序*DISP: MOV R1,20H;;20H為顯示寄存器單元MOV A,2CH;;將秒寄存器的內(nèi)容存入AMOV B,#10H;;設B累加器的值為10HDIV AB;;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))MOV R1,B;;將顯示的個位數(shù)存入20H顯示寄存器單元INC R1MOV R1;,;A將顯示的十位數(shù)存入21H顯示
30、寄存器單元INC R1MOV A,2BH;;將分寄存器的內(nèi)容存入AMOV B,#10H;;設B累加器的值為10HDIV AB;;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))MOV R1,B;;將顯示的個位數(shù)存入22H顯示寄存器單元INC R1MOV R1,A;;將顯示的十位數(shù)存入23H顯示寄存器單元INC R1MOV A,2AH;;將時寄存器的內(nèi)容存入AMOV B,#10H;設B累加器的值為10HDIV AB;;A/B,商存入A(十位數(shù)),余數(shù)存入(個位數(shù))MOV R1,B;;將顯示的個位數(shù)存入24H顯示寄存器單元INC R1MOV R1,A;;將顯示的十位數(shù)存入25H顯示寄存器單元RET;*延時5ms消除抖動*DELAY: MOV R6,#60D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETEND第六章 系統(tǒng)仿真與實驗測試電子時鐘主要的設計要求是能夠?qū)崿F(xiàn)時鐘的一般功能,以及包括時間的調(diào)整功能,這個基于單片機的電子時鐘基本上實現(xiàn)了上述功能
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 阿米巴經(jīng)營考試題及答案
- 街道社工考試題及答案
- 神經(jīng)源性膀胱護理查房
- 物業(yè)管理及物業(yè)電工培訓
- 冠脈搭橋術后心理護理
- 腫瘤學概論:化療專題
- 質(zhì)量意識培訓報告
- 導尿管技術及尿管護理
- 犬貓尿常規(guī)檢查規(guī)范與解讀
- 鋼板材質(zhì)培訓
- 初中學段勞動任務清單(七到九年級)
- 色溫-XY-UV色坐標換算公式
- 小紅書寵物行業(yè)月報
- 國企治理三會一層詳解
- YY 0731-2009大型蒸汽滅菌器手動控制型
- 2020重大疾病保險的疾病定義使用規(guī)范修訂解讀及影響課件
- 《建筑工程消防施工質(zhì)量驗收規(guī)范》
- 電能質(zhì)量概念課件
- 計算機網(wǎng)絡課程設計小型公司網(wǎng)絡
- 中考考前注意事項講稿
- 朗讀技巧之重音、停連、語速、語調(diào)、語氣、節(jié)奏要領方法指導
評論
0/150
提交評論