版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 單片機(jī)定時(shí)(dn sh)鬧鐘一、電路(dinl)概述該時(shí)鐘電路主要以單片機(jī)AT89S52為核心而設(shè)計(jì)的,通過單片機(jī)對(duì)信息的分析與處理控制外圍設(shè)備。電路整體設(shè)計(jì)思想是想把它做成一個(gè)實(shí)用的器件,所以在題目要求的前提下,我們又加入了星期程序(chngx),溫度程序,年、月、日程序以及時(shí)間的1224轉(zhuǎn)換程序。 關(guān)鍵字:?jiǎn)纹瑱C(jī) 數(shù)碼顯示 溫度傳感器 光識(shí)電路二、題目分析與方案論證按照系統(tǒng)設(shè)計(jì)功能的要求,初步確定設(shè)計(jì)系統(tǒng)由復(fù)位模塊、時(shí)鐘模塊、溫度模塊、音樂模塊、光識(shí)模塊及顯示模塊共五個(gè)模塊組成,后來(lái)在時(shí)鐘模塊的基礎(chǔ)上又加載了日歷、星期的模塊從單片機(jī)AT89S52入手,通過使用AT89S52的內(nèi)部的可編程
2、定時(shí)器/計(jì)數(shù)器,結(jié)合對(duì)外接晶振的調(diào)節(jié)來(lái)確定一個(gè)合適的振蕩周期,從而確定出內(nèi)部的機(jī)器周期。再通過對(duì)內(nèi)部中斷程序的設(shè)置來(lái)設(shè)計(jì)出時(shí)鐘程序,即設(shè)計(jì)出了電子時(shí)鐘的核心。根據(jù)題目的要求,我們?cè)O(shè)計(jì)了以下方案:方案一設(shè)計(jì)中加載了年、月、日的設(shè)計(jì),剛開始時(shí)打算用18個(gè)共陽(yáng)數(shù)碼管,考慮到數(shù)碼管太多是畢會(huì)給硬件電路帶來(lái)麻煩,經(jīng)過考慮后,決定把年、月、日與時(shí)間設(shè)置到一組數(shù)碼管上來(lái),即六個(gè)數(shù)碼管即能顯示時(shí)間又能顯示年、月、日,這樣一來(lái)就方便了硬件電路;方案二主控芯片使用51系列AT89S52單片機(jī)設(shè)計(jì)時(shí)溫度模塊設(shè)計(jì)溫度元件用AD590,利用AD590以及接口電路把溫度轉(zhuǎn)換成模擬電壓,經(jīng)由ADC0804轉(zhuǎn)換成數(shù)字信號(hào),然
3、后經(jīng)AT89S52處理顯示溫度。但由于AD590價(jià)錢比較貴,且只能轉(zhuǎn)換成模擬電壓,這樣一來(lái)硬件就要增加更多的器件且又不經(jīng)濟(jì),經(jīng)查找發(fā)現(xiàn)18B20溫度傳感器價(jià)錢便宜且可以直接把溫度轉(zhuǎn)換成數(shù)字量測(cè)溫范圍為-55125度,最大分辨率可達(dá)0.0625度,采用3線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn),所以我們選擇了18B20溫度傳感器。附18B20溫度傳感器工作原理:DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。溫度傳感器D
4、S18B20采集溫度信號(hào)送該給單片機(jī)處理,存儲(chǔ)器通過單片機(jī)對(duì)某些時(shí)間點(diǎn)的數(shù)據(jù)進(jìn)行存儲(chǔ);,DS18B20的性能特點(diǎn)如下: 1、獨(dú)特的單線接口僅需要一個(gè)引腳進(jìn)行通信; 2、多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能; 3、無(wú)須外部器件; 4、可通過數(shù)據(jù)線供電,電壓范圍為3.0-5.5V; 5、零待機(jī)功耗; 6、溫度以9或12位數(shù)字量讀出; 7、用戶可定義的非易失性溫度報(bào)警(bo jng)設(shè)置; 8、報(bào)警搜索命令識(shí)別并標(biāo)志(biozh)超過程序限定溫度(溫度報(bào)警條件)的器件; 9、負(fù)電壓特性(txng),電源極性接反是,溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。三、系統(tǒng)總體結(jié)構(gòu)框圖AT
5、89S52主控模塊光識(shí)電路溫度電路音樂電路顯示電路 電路時(shí)鐘電路復(fù)位電路按鍵功能 a鍵:P2.1口12-24轉(zhuǎn)換 b鍵:P2.3口調(diào)整定時(shí)、計(jì)時(shí)的時(shí)、調(diào)整年 c鍵:P2.5口調(diào)整計(jì)時(shí)的秒和定時(shí)狀態(tài)及日 d鍵:P2.7口判斷定時(shí)到否 e鍵:P2.0口調(diào)整星期 f鍵:P2.2口定時(shí)、計(jì)時(shí)轉(zhuǎn)換 g鍵:P2.4口調(diào)整定時(shí)、計(jì)時(shí)的秒和判斷定時(shí)狀態(tài)、調(diào)整日 h鍵:P2.6口調(diào)整定時(shí)的報(bào)警音樂、省電模式 i鍵:復(fù)位鍵 j鍵:P3.6口年、月、日的顯示四、主要電路原理與設(shè)計(jì)(1)系統(tǒng)硬件電路的設(shè)計(jì):電路是由控制部分和顯示部分兩大部分組成。利用單片機(jī)程序進(jìn)行控制,單片機(jī)以晶體振蕩器的振蕩周期(或外部引入的時(shí)鐘周
6、期)為最小的時(shí)序單位,片內(nèi)的各種微操作都以此周期為時(shí)序基準(zhǔn)。振蕩頻率二分頻后形成狀態(tài)周期或稱s周期,所以,1個(gè)狀態(tài)周期包含有2個(gè)振蕩周期。振蕩頻率foscl2分頻后形成機(jī)器周期MC。所以,1個(gè)機(jī)器周期包含有6個(gè)狀態(tài)周期或12個(gè)振蕩周期。1個(gè)到4個(gè)機(jī)器周期確定一條指令的執(zhí)行時(shí)間,這個(gè)時(shí)間就是指令周期。AT89S52單片機(jī)指令系統(tǒng)中,各條指令的執(zhí)行時(shí)間都在1個(gè)到4個(gè)機(jī)器周期之間。,并通過數(shù)碼管進(jìn)行(jnxng)顯示單片機(jī)普遍采用鎖相環(huán)技術(shù),使單片機(jī)的時(shí)鐘頻率可由程序控制。鎖相環(huán)允許用戶在片外使用頻率較低的晶振,可以很大地減小板級(jí)噪聲;而且,由于時(shí)鐘頻率可由程序控制,系統(tǒng)(xtng)時(shí)鐘可以在一個(gè)很
7、寬的范圍內(nèi)調(diào)整,總線頻率往往能升得很高。但是,使用鎖相環(huán)也會(huì)帶來(lái)額外的功率消耗。 單就時(shí)鐘(shzhng)方案來(lái)講,使用外部晶振且不使用鎖相環(huán)是功率消耗最小的一種。AT89S52單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡(jiǎn)稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。內(nèi)部振蕩方式的外部電路如下圖所示。圖中,電容器C01,C02起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF。晶振頻率的典型值為12MH2,采用6MHz的情況也比較
8、多。內(nèi)部振蕩方式所得的時(shí)鐘情號(hào)比較穩(wěn)定,實(shí)用電路中使用較多。外部振蕩方式是把外部已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi)。這種方式適宜用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持同步。外部振蕩方式的外部電路如下圖所示。如圖所示:各模塊(m kui)分析:顯示(xinsh)模塊電路先通過電源(dinyun)電路送出+5V電壓,單片機(jī)AT89S52通過74LS47和CD4515(416譯碼器)驅(qū)動(dòng)數(shù)碼管顯示數(shù)值, 顯示部分采用普通共陽(yáng)極數(shù)碼管顯示,采用動(dòng)態(tài)掃描,以減少硬件電路。考慮到一次掃描12位數(shù)碼管顯示時(shí)會(huì)出現(xiàn)閃爍情況,設(shè)計(jì)時(shí)分兩排顯示,一排顯示時(shí)間和年月日,一排顯示星期和溫度, 共陽(yáng)極數(shù)碼管中8個(gè)發(fā)光二極管的陽(yáng)極(二
9、極管正端)連在一起。通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸入端為低電平時(shí),該端所連接的字段導(dǎo)通并點(diǎn)亮。根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。采用動(dòng)態(tài)顯示方式,比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡(jiǎn)單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多時(shí)間。 為了提供共陽(yáng)LED數(shù)碼管的驅(qū)動(dòng)電壓,用三極管9012作電源驅(qū)動(dòng)輸出。采用12MHz晶振,有利于提高秒計(jì)時(shí)的精確性。三極管采用9012。數(shù)碼管采用紅色的共陽(yáng)型L
10、ED數(shù)碼管,亮度高些,因?yàn)槭菕呙璧娘@示方式,所以各個(gè)數(shù)碼管的abcdefg各腳采用了總線并聯(lián),改動(dòng)510歐姆的電阻可以改變顯示亮度;時(shí)鐘模塊利用芯片內(nèi)部的振蕩器,然后在引腳XTAL1和引腳XTAL2兩端接晶體諧振器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部的時(shí)鐘電路,如圖外接晶振時(shí),C1和C2的值通常選擇30pF; C1、C2對(duì)頻率有微調(diào)作用,晶體諧振器的頻率12MHz。為了減少寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作,振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近。設(shè)置了1224兩種顯示狀態(tài),調(diào)整計(jì)時(shí)的按鍵、設(shè)置定時(shí)的按鍵且定時(shí)設(shè)置了3次定時(shí)、還另加載了星期、年、月、日的調(diào)整及閏年的
11、自動(dòng)調(diào)整;溫度(wnd)模塊主要(zhyo)由18B20通過單片機(jī)AT89S52中的溫度程序不斷的檢測(cè)溫度來(lái)顯示溫度溫度傳感器DS18B20采集溫度信號(hào)送該給單片機(jī)處理,存儲(chǔ)器通過(tnggu)單片機(jī)對(duì)某些時(shí)間點(diǎn)的數(shù)據(jù)進(jìn)行存儲(chǔ);音樂模塊通過LM386N-1給揚(yáng)聲器信號(hào)來(lái)發(fā)出音樂,這個(gè)模塊主要是為時(shí)鐘定時(shí)到時(shí)發(fā)出音樂鬧鈴,而在軟件部分設(shè)置了可以一次設(shè)置3次定時(shí),每次定時(shí)到時(shí),音樂程序中編了6種音樂,它可以自動(dòng)選擇6種音樂中的任一音樂響1分鐘,如果中間不想讓鬧鈴響可以按一按鍵,鬧鈴就立刻停止SpeakerVS6GND4GAIN8325BYP7GAIN1LM386N-110k470GNDGND0.0
12、047U0.1U10U47UGNDGNDGND+5V1KGND AT89S52 P3.1;復(fù)位模塊單片機(jī)復(fù)位電路是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從該狀態(tài)開始工作,例如復(fù)位后PC=0000H,使單片機(jī)從第一個(gè)單元取指令。無(wú)論是在單片機(jī)剛接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位;單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化狀態(tài),其中包括使程序計(jì)數(shù)器PC0000H,這表明程序從0000H地址單元開始執(zhí)行。單片機(jī)冷啟動(dòng)后,片內(nèi)RAM為隨機(jī)值,運(yùn)行中的復(fù)位操作不改變片內(nèi)RAM區(qū)中的內(nèi)容,21個(gè)特殊功能寄存器復(fù)位后的狀態(tài)為確定值,見下表。值得指出的是,記住一些特殊功能寄存器復(fù)位后的主
13、要狀態(tài),對(duì)于了解單片機(jī)的初態(tài),減少應(yīng)用程序中的韌始化部分是十分必要的。說明:表中符號(hào)*為隨機(jī)狀態(tài);A00H,表明累加器已被清零;特殊功能寄存器 初始狀態(tài) 特殊功能寄存器 初始狀態(tài) A 00H TMOD 00H B 00H TCON 00H PSW 00H TH0 00H SP 07H TL0 00H DPL 00H TH1 00H DPH 00H TL1 00H P0P3 FFH SBUF 不定 IP *00000B SCON 00H IE 0*00000B PCON 0*B PSW00H,表明選寄存器0組為工作寄存器組;SP07H,表明堆棧指針指向片內(nèi)RAM 07H字節(jié)單元,根據(jù)堆棧操作的先
14、加后壓法則,第一個(gè)被壓入的內(nèi)容寫入到08H單元中;Po-P3FFH,表明已向各端口線寫入1,此時(shí),各端口既可用于輸入(shr)又可用于輸出;IP00000B,表明各個(gè)中斷源處于低優(yōu)先級(jí);IE000000B,表明各個(gè)中斷均被關(guān)斷;系統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下。51單片機(jī)的復(fù)位是由RESET引腳來(lái)控制的,此引腳與高電平相接超過24個(gè)振蕩周期后,51單片機(jī)即進(jìn)入芯片內(nèi)部(nib)復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會(huì)執(zhí)行外部程序。 光識(shí)模塊(m ku
15、i)同樣也是為定時(shí)服務(wù)的,只要定時(shí)到,組成心字的18只發(fā)光二極管就會(huì)按程序先做左移位,再全亮全滅3次,然后(rnhu)再右移,再全亮全滅3次如此循環(huán)1分鐘;AT89S52 P1安全(nqun)省電模式電源電路上裝了保險(xiǎn)管只要電流大于額定電流保險(xiǎn)就斷來(lái)保護(hù)電路,省電模式:不看時(shí)顯示不亮,看時(shí),按下一鍵顯示就亮,盡量達(dá)到人性化。五、軟件系統(tǒng)設(shè)計(jì)計(jì)時(shí)程序是實(shí)現(xiàn)電子時(shí)鐘的核心內(nèi)容,本程序用中斷time0來(lái)控制,計(jì)時(shí)顯示的單元從50h開始,50h=秒的個(gè)位,51h=秒的十位,52h=分的個(gè)位,53h=分的十位,54h=時(shí)的個(gè)位,55h=時(shí)的十位org 000bh jmp time0mov tmod,#0
16、0010001b mov ie,#10001010b mov ip,#00000010b mov th0,#(65536-2000)/256 mov tl0,#low(65536-2000) mov 4fh,#02;兩個(gè)(lin )中斷250次為1秒定時(shí)(dn sh)報(bào)警程序 作用是判斷時(shí)間是否與設(shè)置的鬧鐘(nozhng)時(shí)間相等,如相等則開啟鬧鐘。 單片機(jī)內(nèi)定時(shí)振鈴開關(guān)使用軟件開關(guān),即用標(biāo)志寄存器,且程序設(shè)置了3次定時(shí),可見要使電子時(shí)鐘定時(shí)打鈴,必須同時(shí)具備兩個(gè)條件,第一:定時(shí)振鈴開;第二:當(dāng)前定時(shí)項(xiàng)數(shù)不為0項(xiàng)。 因?yàn)橐闺娮訒r(shí)鐘定時(shí)打鈴,必須同時(shí)具備上述的兩個(gè)條件,所以在單片機(jī)執(zhí)行查詢定時(shí)
17、各項(xiàng)的程序之前,主程序會(huì)首先查詢這兩個(gè)條件是否同時(shí)滿足,如果滿足的話,則進(jìn)行一輪查詢,所謂一輪查詢定時(shí),即將當(dāng)前時(shí)間與定時(shí)各項(xiàng)一一比較,看是否相符,如果查到某項(xiàng)相符,則調(diào)用音樂程序。每查完一項(xiàng),寄存器中的值會(huì)自動(dòng)減1(即為定時(shí)時(shí)間的項(xiàng)數(shù))。當(dāng)定時(shí)時(shí)間的項(xiàng)數(shù)值自動(dòng)減為時(shí),則表示這一輪查詢定時(shí)時(shí)間完畢,只要條件允許(定時(shí)音樂開且定時(shí)項(xiàng)數(shù)不為),有可以進(jìn)行一輪新的查詢定時(shí)時(shí)間。定時(shí)1:33h=分,34h=時(shí),定時(shí)2:35h=分,36h=時(shí),定時(shí)3:37h=分,38h=時(shí),定時(shí)狀態(tài)=39h;定時(shí)顯示的單元從60h開始,60h=定時(shí)狀態(tài),61h=此時(shí);定時(shí)狀態(tài)的音樂種類,62h=分的個(gè)位,63h=分的十
18、位;64h=時(shí)的個(gè)位,65h=時(shí)的十位溫度程序:57h=溫度的十位,58h=溫度的個(gè)位, wendu:CALL REST;調(diào)復(fù)位MOV A,#0CCH CALL WRITE調(diào)寫程序 MOV A,#4EH CALL WRITE MOV A,#00H CALL WRITE MOV A,#00H CALL WRITE MOV A,#7FH CALL WRITE CALL REST MOV A,#0CCH CALL WRITE MOV A,#44H CALL WRITE MOV R0,#20LOOP5:MOV R1,#100 LOOP6:MOV R2,#250 DJNZ R2,$ DJNZ R1,LO
19、OP6 DJNZ R0,LOOP5 CALL REST MOV A,#0CCH CALL WRITE MOV A,#0BEH CALL WRITE CALL READ2;調(diào)讀程序 MOV A,#0ECH CALL WRITE CALL HUAN clr 20h.3 ret 開始系統(tǒng)初始化 顯示計(jì)時(shí)、溫度值判斷按鍵是否有按下年、月、日調(diào)整計(jì)時(shí)調(diào)整定時(shí)調(diào)整星期12-24轉(zhuǎn)換省電模式*初始化* org 0000h;計(jì)時(shí)顯示的單元(dnyun)從50h開始,50h=秒的個(gè)位,51h=秒的十位,52h= jmp main;分的個(gè)位(gwi),53h=分的十位,54h=時(shí)的個(gè)位,55h=時(shí)的十位,56h=
20、 org 000bh;星期,57h=溫度的十位,58h=溫度的個(gè)位(gwi),30h=秒,31h=分,32h=時(shí),定時(shí)1:33h=分,34h=時(shí), jmp time0;定時(shí)2:35h=分,36h=時(shí),定時(shí)3:37h=分,38h=時(shí),定時(shí)狀態(tài)=39h org 001bh jmp time1*主程序* main:mov r0,#00;等待 djnz r0,$ movsp,#6ah ;定時(shí)顯示的單元從60h開始,60h=定時(shí)狀態(tài)(zhungti),61h=此時(shí) mov tmod,#00010001b ;定時(shí)(dn sh)狀態(tài)的音樂種類,62h=分的個(gè)位,63h= 分的十位 mov ie,#10001
21、010b ;64h=時(shí)的個(gè)位(gwi),65h=時(shí) 的十位 mov ip,#00000010b mov th0,#(65536-2000)/256 mov tl0,#low(65536-2000) mov 4fh,#02;兩個(gè)中斷250次為1秒 mov 4eh,#00;光報(bào)警 mov 2dh,#250;中斷250次為0.5秒 mov 2fh,#00h;設(shè)置計(jì)時(shí)顯示數(shù)碼管的編號(hào) mov 2eh,#00h;設(shè)置定時(shí)顯示數(shù)碼管的編號(hào) mov 24h,#00h;設(shè)置年月日顯示數(shù)碼管的編號(hào) mov 30h,#00h;設(shè)置時(shí)間的初值 mov 31h,#00h mov 32h,#12h mov 56h,#0
22、1h;設(shè)置星期初值 mov 33h,#00h;設(shè)置定時(shí)初值 mov 34h,#01h mov 35h,#00hmov 36h,#02h mov 37h,#00h mov 38h,#03h mov 39h,#01h;設(shè)置定時(shí)狀態(tài)初始值 mov 3ah,#01h;設(shè)置定時(shí)狀態(tài)1時(shí)音樂的初始值 mov 3bh,#02h;設(shè)置定時(shí)狀態(tài)2時(shí)音樂的初始值 mov 3ch,#03h;設(shè)置定時(shí)狀態(tài)3時(shí)音樂的初始值 mov 21h,#00h;設(shè)置年初值,00表示2000年 mov 22h,#01h;設(shè)置月初值 mov 23h,#01h;設(shè)置日初值 setb 20h.0;12,24標(biāo)志位,1表示12小時(shí)制,0表示
23、24小時(shí)制 setb 20h.1;定時(shí),計(jì)時(shí)標(biāo)志位,1表示計(jì)時(shí),0表示定時(shí) clr 20h.2;定時(shí)到否標(biāo)志位,1表示到,0表示不到 setb 20h.3;是否允許檢測(cè)溫度標(biāo)志位,1表示允許 clr 20h.4;年標(biāo)志位,1表示閏年 setb 20h.5;1表示31天,0表示30天 clr 20h.6;1表示顯示年月日 setb p3.0;上下午標(biāo)志位,1表示上午,0表示下午 clr p1 setb tr0 *星期(xngq)設(shè)置程序* start:jb p2.0,q1;調(diào)整(tiozhng)星期 call del;消除(xioch)抖動(dòng) mov a,56h add a,#01h cjne a
24、,#07h,z1mov 56h,#08hjmp a1z1:cjne a,#09h,z2mov 56h,#01hjmp a1z2:mov 56h,aa1:call deljnb p2.0,a1jmp start *設(shè)置12-24小時(shí)轉(zhuǎn)換程序* q1:jb p2.1,q2;12,24小時(shí)制轉(zhuǎn)換 call del; 消除抖動(dòng) jnb 20h.0,b1 jnb p3.0,b2;將12小時(shí)制轉(zhuǎn)換為24小時(shí)制 jmp a2 b2:mov a,32h add a,#12h da acjne a,#24h,b3mov 32h,#00hsetb p3.0jmp a2b3:mov 32h,asetb p3.0jm
25、p a2b1:mov a,32h;將24小時(shí)制轉(zhuǎn)換為12小時(shí)制cjne a,#00h,b7mov 32h,#12hclr p3.0jmp a2b7:cjne a,#20h,b8mov 32h,#08hclr p3.0jmp a2b8:cjne a,#21h,b9 mov 32h,#09h clr p3.0 jmp a2 b9:cjne a,#12h,b4 jmp a2 b4:jnc b5 jmp a2 b5:subb a,#12h mov 32h,a clr p3.0 a2:cpl 20h.0 b6:call del jnb p2.1,b6 jmp start *定時(shí)計(jì)時(shí)調(diào)整程序* q2:jb
26、 p2.2,q3;定時(shí),計(jì)時(shí)轉(zhuǎn)換 call del; cpl 20h.1 a3:call del jnb p2.2,a3 jmp start q3:jb p2.3,q4;調(diào)整定時(shí),計(jì)時(shí)的時(shí),年 call del;消除抖動(dòng) jnb 20h.6,c00 call yearyear jmp a4 c00:jnb 20h.1,c1 jb 20h.0,c2;計(jì)時(shí)調(diào)整 mov a,32h add a,#01h da a cjne a,#24h,c3 mov 32h,#00h jmp a4 c3:mov 32h,a jmp a4 c2:mov a,32h add a,#01h da a mov 32h,a
27、cjne a,#13h,c4 mov 32h,#01h cpl p3.0 jmp a4 c4:mov 32h,a jmp a4 c1:mov a,39h;定時(shí)(dn sh)調(diào)整 cjne a,#01h,c5 mov r0,#34h jmp c10 c5:cjne a,#02h,c6 mov r0,#36h jmp c10 c6:mov r0,#38h c10:jb 20h.0,c7 mov a,r0 add a,#01h da a cjne a,#24h,c8 mov r0,#00h jmp a4 c8:mov r0,a jmp a4 c7:mov a,r0 add a,#01h da a c
28、jne a,#13h,c9 mov r0,#01h jmp a4 c9:mov r0,a a4:call del jnb p2.3,a4 jmp start q4:jb p2.4,q5;調(diào)整(tiozhng)定時(shí),計(jì)時(shí)的分,月 call del jnb 20h.6,d00 call yueyue jmp a5 d00:jnb 20h.1,d1 mov a,31h;計(jì)時(shí)分(shfn)調(diào)整 add a,#01h da a cjne a,#60h,d2 mov 31h,#00h jmp a5 d2:mov 31h,a jmp a5 d1:mov a,39h ;定時(shí)分調(diào)整 cjne a,#01h,d3
29、 mov r0,#33h jmp d5 d3:cjne a,#02h,d4 mov r0,#35h jmp d5 d4:mov r0,#37h d5:mov a,r0 add a,#01h da a cjne a,#60h,d6 mov r0,#00h jmp a5 d6:mov r0,a a5:call del jnb p2.4,a5 jmp start q5:jb p2.5,q6;調(diào)整計(jì)時(shí)的秒和定時(shí)的狀態(tài),日 call del jnb 20h.6,e00 call ri jmp a6 e00:jnb 20h.1,e1 mov a,30h;調(diào)整計(jì)時(shí)的秒 add a,#01h da a cjn
30、e a,#60h,e2 mov 30h,#00h jmp a6 e2:mov 30h,a jmp a6 e1:mov a,39h;調(diào)整(tiozhng)定時(shí)狀態(tài) add a,#01h da a cjne a,#04h,e3 mov 39h,#01h jmp a6 e3:mov 39h,a a6:call del jnb p2.5,a6 jmp start *調(diào)整定時(shí)的報(bào)警(bo jng)音樂,省電模式* q6:jb p2.6,q7 call del jnb 20h.1,gh cpl p3.4 jmp i3 gh:mov a,39h cjne a,#01h,i1 mov a,3ah add a,
31、#01h mov 3ah,a cjne a,#07h,i3 mov 3ah,#01h jmp i3 i1:cjne a,#02h,i2 mov a,3bh add a,#01H mov 3bh,a cjne a,#07h,i3 mov 3bh,#01h jmp i3 i2:mov a,3ch add a,#01h mov 3ch,a cjne a,#07h,i3 mov 3ch,#01h i3:call del jnb p2.6,i3 jmp start *定時(shí)(dn sh)報(bào)警* q7:jnb 20h.2,q8 call yinyue jmp start q8:jnb 20h.3,q9 ca
32、ll wendu;檢測(cè)溫度 jmp start q9:jb p3.6,q10 cpl 20h.6 q11:call del jnb p3.6,q11 q10:jmp start *閏年判斷* nian:mov a,21h cjne a,#00h,nian0 jmp year nian0:cjne a,#04h,nian1 jmp year nian1:cjne a,#08h,nian2 jmp year nian2:cjne a,#12h,nian3 jmp year nian3:cjne a,#16h,nian4 jmp year nian4:cjne a,#20h,nian5 jmp ye
33、ar nian5:cjne a,#24h,nian6 jmp year nian6:cjne a,#28h,nian7 jmp year nian7:cjne a,#32h,nian8 jmp year nian8:cjne a,#36h,nian9 jmp year nian9:cjne a,#40h,nian10 jmp year nian10:cjne a,#44h,nian11 jmp year nian11:cjne a,#48h,nian12 jmp year nian12:cjne a,#52h,nian13 jmp year nian13:cjne a,#56h,nian14
34、jmp year nian14:cjne a,#60h,nian15 jmp year nian15:cjne a,#64h,nian16 jmp year nian16:cjne a,#68h,nian17 jmp year nian17:cjne a,#72h,nian18 jmp year nian18:cjne a,#76h,nian19 jmp year nian19:cjne a,#80h,nian20 jmp year nian20:cjne a,#84h,nian21 jmp year nian21:cjne a,#88h,nian22 jmp year nian22:cjne
35、 a,#92h,nian23 jmp year nian23:cjne a,#96h,nian24 year:setb 20h.4 jmp year1 nian24:clr 20h.4 year1:retyue:mov a,22h;大月(dyu)31天,小月30天 cjne a,#04h,yue0 jmp yue4 yue0:cjne a,#06h,yue1 jmp yue4 yue1:cjne a,#09h,yue2 jmp yue4 yue2:cjne a,#11h,yue3 yue4:clr 20h.5 jmp yue5 yue3:setb 20h.5 yue5:ret yearyear
36、:mov a,21h;年加1 add a,#01h da a mov 21h,a ret yueyue:mov a,22h;月加1 add a,#01h da a mov 22h,a cjne a,#13h,yueyue0 mov 22h,#01h yueyuye0:ret ri:mov a,23h;日加1 add a,#01h da a mov 23h,a cjne a,#29h,ri0 mov a,22h cjne a,#02h,ri1 call nian jb 20h.4,ri1 mov 23h,#01h jmp ri1 ri0:cjne a,#31h,ri2 call yue jb 2
37、0h.5,ri1 mov 23h,#01h jmp ri1 ri2:cjne a,#32h,ri1 mov 23h,#01h ri1:ret *計(jì)時(shí)子程序* jishi:mov a,30h;秒加一 add a,#01h da a mov 30h,a cjne a,#60h,f4 mov 30h,#00h setb 20h.3;允許(ynx)檢測(cè)溫度 mov a,31h;分加一 add a,#01h da a mov 31h,a cjne a,#60h,f4 mov 31h,#00h mov a,32h;時(shí)加一 add a,#01h da a mov 32h,a jb 20h.0,f1 cjne
38、 a,#24h,f4 mov 32h,#00h jmp f2 f1:cjne a,#13h,f4 mov 32h,#01h cpl p3.0 jnb p3.0,f4 f2:mov a,56h; 星期(xngq)加一 add a,#01h mov 56h,a cjne a,#07h,f3 mov 56h,#08h jmp f4 f3:cjne a,#09h,f4 mov 56h,#01h f4:call day;更新(gngxn)年月日 jb p2.7,f7;定時(shí)(dn sh)到否子程序段 mov a,31h cjne a,33h,f5 mov a,32h cjne a,34h,f8 setb
39、20h.2 mov a,3ah mov 2ch,a jmp a7 f8:mov a,31h f5:cjne a,35h,f6 mov a,32h cjne a,36h,f9 setb 20h.2 mov a,3bh mov 2ch,a jmp a7 f9:mov a,31h f6:cjne a,37h,f7 mov a,32h cjne a,38h,f7 setb 20h.2 mov a,3ch mov 2ch,a jmp a7 f7:clr 20h.2 a7:ret day:mov a,23h;日加1 add a,#01h da a mov 23h,a cjne a,#29h,rri0 mo
40、v a,22h cjne a,#02h,wan call nian jb 20h.4,wan mov 23h,#01h jmp yuey rri0:cjne a,#31h,rri2 call yue jb 20h.5,wan mov 23h,#01h jmp yuey rri2:cjne a,#32h,wan mov 23h,#01h yuey:mov a,22h;月加1 add a,#01h da a mov 22h,a cjne a,#13h,wan mov 22h,#01h mov a,21h;年加1 add a,#01h da a mov 21h,a wan:ret *計(jì)時(shí)掃描子程序*
41、 scan1:mov r0,#2fh inc r0 cjne r0,#0ch,g1 mov r0,#00h g1:mov a,r0 add a,#50h mov r1,a mov a,r0 swap a orl a,r1 mov p0,a ret *定時(shí)(dn sh)掃描子程序* scan2:mov r0,#2eh inc r0 cjne r0,#06h,g2 mov r0,#00h g2:mov a,r0 add a,#60h mov r1,a mov a,r0 swap a orl a,r1 mov p0,a ret scan3:mov r0,#24h;定時(shí)(dn sh)掃描子程序 inc
42、 r0 cjne r0,#06h,gg2 mov r0,#00h gg2:mov a,r0 add a,#40h mov r1,a mov a,r0 swap a orl a,r1 mov p0,a ret *計(jì)時(shí)顯示(xinsh)子程序* xianshi1:mov r1,#50h mov a,30h mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,31h mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,32h mov b,#10h div ab mov r1,b i
43、nc r1 mov r1,a ret*定時(shí)顯示子程序* xianshi2: mov a,39h mov 60h,a cjne a,#01h,h1 mov a,3ah mov 61h,a mov r1,#62h mov a,33h mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,34h mov b,#10h div ab mov r1,b inc r1 mov r1,a jmp h3 h1:cjne a,#02h,h2 mov a,3bh mov 61h,a mov r1,#62h mov a,35h mov b,#10h div
44、ab mov r1,b inc r1 mov r1,a inc r1 mov a,36h mov b,#10h div ab mov r1,b inc r1 mov r1,a jmp h3 h2:mov a,3ch mov 61h,a mov r1,#62h mov a,37h mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,38h mov b,#10h div ab mov r1,b inc r1 mov r1,a h3:ret xianshi3:mov r1,#40h;計(jì)時(shí)顯示(xinsh)子程序 mov a,21h mov
45、b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,22h mov b,#10h div ab mov r1,b inc r1 mov r1,a inc r1 mov a,23h mov b,#10h div ab mov r1,b inc r1 mov r1,a ret time0:mov th0,#(65536-2000)/256 mov tl0,#low(65536-2000) push a push psw setb rs0 clr rs1 djnz 2dh,h4 mov 2dh,#250 djnz 4fh,h4 mov 4fh,#0
46、2 call jishi h4:jnb 20h.6,hh4 call xianshi3 call scan3 jmp h6 hh4:jb 20h.1,h5 call xianshi2 call scan2 jmp h6 h5:call xianshi1 call scan1 h6:pop psw pop a reti del:mov r6,#40 j1:mov r5,#248 djnz r5,$ djnz r6,j1 ret *音樂程序* yinyue:push a push psw setb rs1 clr rs0 main1:mov 2bh,#00h m:mov a,2ch cjne a,
47、#01,q mov dptr,#song1 jmp pu q:cjne a,#02,w mov dptr,#song2 jmp pu w:cjne a,#03,e mov dptr,#song3 jmp pu e:cjne a,#04,r mov dptr,#song4 jmp pu r:cjne a,#05,t mov dptr,#song5 jmp pu t:mov dptr,#song6 pu:jnb 20h.2,jj mov a,2bh movc a,a+dptr mov r0,a jz end0 anl a,#0fh mov r7,a mov a,r0 swap a anl a,#0
48、fh jnz sing clr tr1 jmp dd1 sing:dec a mov 2ah,a mov dptr,#table1 movc a,a+dptr mov 29h,a mov th1,a mov a,2ah mov dptr,#table2 movc a,a+dptr mov 28h,a mov tl1,a setb tr1 dd1:call yanshi inc 2bh inc 4eh mov a,4eh cjne a,#60,www;? mov 4eh,#00 www:mov dptr,#table3 mov a,4eh movc a,a+dptr mov p1,a jmp m
49、 end0:clr tr1 jmp main1 yanshi:mov r6,#02 dd2:mov r5,#125 dd3:mov r4,#248 djnz r4,$ djnz r5,dd3 djnz r6,dd2 djnz r7,yanshi ret jj:jmp mmm time1:push a push psw cpl p3.1 mov th1,29h mov tl1,28h pop psw pop a reti song1:db 42h,42h,42h,52h,64h,04h db 62h,62h,62h,72h,84h,04h db 92h,92h,82h,72h,64h,04h d
50、b 82h,82h,52h,62h,44h,04h db 42h,42h,42h,52h,64h,04h db 62h,62h,62h,72h,84h,04h db 92h,92h,82h,72h,64h,04h db 82h,82h,52h,62h,44h,04h db 00h song2:db 82h,01h,81h,94h,84h db 0b4h,0a4h,04h db 82h,01h,81h,94h,84h db 0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h db 0b4h,0a4h,94h db 0e2h,01h,0e1h,0d4h,0b4h db 0
51、c4h,0b4h,04h db 00h song3:db 84h,94h,88h db 64h,54h,68h db 84h,64h,54h,44h db 62h,82h,42h,62h,58h db 84h,94h,88h db 64h,54h,68h db 84h,64h,54h,44h db 52h,42h,52h,62h,48h db 00h song4:db 84h,02h,82h,64h,54h db 64h,54h,48h, db 64h,02h,52h,44h,24h db 14h,24h,18h db 24h,02h,22h,42h,24h db 44h,54h,68h db
52、 54h,02h,52h,84h,84h db 54h,64h,48h db 00h song5:db 44h,54h,64h,44h db 44h,54h,64h,44h db 64h,74h,88h db 64h,74h,88h db 82h,92h,82h,72h,64h,44h db 82h,92h,82h,72h,64h,44h db 44h,84h,48h db 44h,14h,48h db 00h song6:db 62h,82h,82h,62h,98h db 92h,0b2h,0b2h,82h,98h db 62h,82h,82h,52h,68h db 92h,0b2h,0b2
53、h,82h,98h db 62h,82h,82h,62h,92h,92h,94h db 92h,0b2h,0b2h,92h,84h,94h db 0b8h,0b4h,04h db 00h table1: db 251,251,251,252 db 252,253,253,253 db 253,254,254,254 db 254,254,254 table2: db 004,144,248,068 db 172,009,052,130 db 200,006,034,086 db 131,154,193 table3: db 0feh,0fdh,0fbh,0f7h db 0efh,0dfh,0bfh,7fh db 00h,0ffh,00h,0ffh db 7fh,0bfh,0dfh,0efh db 0f7h,0fh,0fdh,0feh db 00h,0ffh,00h,0ffh db 81h,0c3h,0e7h,0ffh db 0e7h,0c3h,81h,00h db 81h,42h,24h,18h,00h mmm:clr tr1 clr p1 pop psw pop a ret *溫度(wnd)程序* wendu:CALL REST MOV A,#0CCH CALL WRITE MO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年消防給水系統(tǒng)節(jié)能改造與運(yùn)行維護(hù)合同3篇
- 2025年度建筑節(jié)能改造設(shè)計(jì)與實(shí)施合同gf02094篇
- 2025年生物科技專業(yè)共建校企合作框架協(xié)議3篇
- 2025年高科技農(nóng)業(yè)項(xiàng)目委托種植與采購(gòu)協(xié)議3篇
- 2025年食堂檔口租賃及節(jié)假日特別服務(wù)合同3篇
- 2025年度陸路貨物運(yùn)輸合同標(biāo)準(zhǔn)化管理范本4篇
- 2025版五金產(chǎn)品售后服務(wù)與購(gòu)銷合同3篇
- 個(gè)人房產(chǎn)租賃合同(2024新版)一
- 二零二五年文化藝術(shù)品交易賠償合同范本3篇
- 2025年度時(shí)尚購(gòu)物中心黃金地段攤位經(jīng)營(yíng)權(quán)轉(zhuǎn)讓合同范本3篇
- 2024版塑料購(gòu)銷合同范本買賣
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語(yǔ)文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 汽車噴漆勞務(wù)外包合同范本
- 2024年重慶南開(融僑)中學(xué)中考三模英語(yǔ)試題含答案
- 建筑制圖與陰影透視-第3版-課件12
- 2023年最新的校長(zhǎng)給教師春節(jié)祝福語(yǔ)
評(píng)論
0/150
提交評(píng)論