51單片機(jī)電子萬(wàn)年歷設(shè)計(jì)電路圖及程序_第1頁(yè)
51單片機(jī)電子萬(wàn)年歷設(shè)計(jì)電路圖及程序_第2頁(yè)
51單片機(jī)電子萬(wàn)年歷設(shè)計(jì)電路圖及程序_第3頁(yè)
51單片機(jī)電子萬(wàn)年歷設(shè)計(jì)電路圖及程序_第4頁(yè)
51單片機(jī)電子萬(wàn)年歷設(shè)計(jì)電路圖及程序_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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、摘 要:電子萬(wàn)年歷是一種非常廣泛日常計(jì)時(shí)工具,對(duì)現(xiàn)代社會(huì)越來(lái)越流行。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差小。對(duì)于數(shù)字電子萬(wàn)年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒和溫度等信息,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。本設(shè)計(jì)是基于51系列的單片機(jī)進(jìn)行的電子萬(wàn)年歷設(shè)計(jì),可以顯示年月日時(shí)分秒及周信息,具有可調(diào)整日期和時(shí)間功能。在設(shè)計(jì)的同時(shí)對(duì)單片機(jī)的理論基礎(chǔ)和外圍擴(kuò)展知識(shí)進(jìn)行了比較全面準(zhǔn)備。在硬件與軟件設(shè)計(jì)時(shí),沒(méi)有良好的基礎(chǔ)知識(shí)和實(shí)踐

2、經(jīng)驗(yàn)會(huì)受到很大限制,每項(xiàng)功能實(shí)現(xiàn)時(shí)需要那種硬件,程序該如何編寫(xiě),算法如何實(shí)現(xiàn)等,沒(méi)有一定的基礎(chǔ)就不可能很好的實(shí)現(xiàn)。在編寫(xiě)程序過(guò)程中發(fā)現(xiàn)以現(xiàn)有的相關(guān)知識(shí)要獨(dú)自完成編寫(xiě)任務(wù)困難重重,在老師和同學(xué)的幫助下才完成了程序部分的編寫(xiě)。萬(wàn)年歷的設(shè)計(jì)過(guò)程在硬件與軟件方面進(jìn)行同步設(shè)計(jì)。硬件部分主要由AT89C52單片機(jī),LED顯示電路,以及調(diào)時(shí)按鍵電路等組成。在單片機(jī)的選擇上本人使用了AT89C52單片機(jī),該單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。顯示器使用2片7SEG-MPX8-CA和一片7SEG-MPX4-CA。7SEG-MPX8-CA是一種八個(gè)共陽(yáng)二極管顯示器,7SEG-MPX4-CA是一種四個(gè)共陽(yáng)二極管顯

3、示器。為了能更輕松的控制這三片顯示器,本人使用了3片74HC164來(lái)驅(qū)動(dòng)。74HC164 是 8 位邊沿觸發(fā)式移位寄存器,串行輸入數(shù)據(jù),然后并行輸出。軟件方面主要包括日歷程序、時(shí)間調(diào)整程序,公歷轉(zhuǎn)陰歷程序,顯示程序等。程序采用匯編語(yǔ)言編寫(xiě),以便更簡(jiǎn)單地實(shí)現(xiàn)調(diào)整時(shí)間及陰歷顯示功能。所有程序編寫(xiě)完成后,在wave軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,在Proteus軟件中嵌入單片機(jī)內(nèi)進(jìn)行仿真。最后總在老師同學(xué)的幫助以及自己的努力下完成了此次電子萬(wàn)年歷的設(shè)計(jì)。關(guān)鍵詞:目錄一、設(shè)計(jì)要求與方案論證 41.1 設(shè)計(jì)要求 41.2 系統(tǒng)基本方案選擇和論證 4單片機(jī)芯片的選擇方案和論證 4 顯示模塊選擇方案和論證

4、4 時(shí)鐘芯片的選擇方案和論證 4二.系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)52.1 電路設(shè)計(jì)框圖 52.2 系統(tǒng)硬件概述 52.3 主要單元電路的設(shè)計(jì) 6單片機(jī)主控制模塊的設(shè)計(jì) 6時(shí)鐘電路模塊的設(shè)計(jì) 6電路原理及說(shuō)明 72.3 4顯示模塊的設(shè)計(jì) 8三、系統(tǒng)的軟件設(shè)計(jì) 93.1程序流程框圖 93.2 子程序的設(shè)計(jì) 9讀、寫(xiě)DS1302子程序 10五、作品總結(jié)12六、致謝詞12參考文獻(xiàn)13附錄一:系統(tǒng)電路圖14附錄二:系統(tǒng)程序清單15附錄三:系統(tǒng)使用說(shuō)明書(shū)40 一、設(shè)計(jì)要求與方案論證1.1設(shè)計(jì)要求:()基本要求具有年、月、日、星期、時(shí)、分、秒等功能;萬(wàn)年歷具有閏月識(shí)別顯示功能;具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功

5、能;( 2 ) 創(chuàng)新要求萬(wàn)年歷具有陰歷顯示功能; 具有測(cè)量室內(nèi)溫度功能;1.2 系統(tǒng)基本方案選擇和論證單片機(jī)芯片的選擇方案和論證:方案一: 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。方案二: 采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時(shí)也與MCS-51系列單片機(jī)完全該芯片內(nèi)部存儲(chǔ)器為

6、8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。所以選擇采用AT89S52作為主控制系統(tǒng). 顯示模塊選擇方案和論證:方案一: 采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn),但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用LED液晶顯示屏.方案二: 采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示.

7、方案三:采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格適中,對(duì)于顯示數(shù)字最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。所以采用了LED數(shù)碼管作為顯示。時(shí)鐘芯片的選擇方案和論證:方案一: 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。方案二: 采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時(shí)耗電小于3

8、00nA.1.3 電路設(shè)計(jì)最終方案決定綜上各方案所述,對(duì)此次作品的方案選定: 采用AT89S52作為主控制系統(tǒng); DS1302提供時(shí)鐘;數(shù)字式溫度傳感器;LED數(shù)碼管動(dòng)態(tài)掃描作為顯示。二.系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)2.1 電路設(shè)計(jì)框圖 2.2 系統(tǒng)硬件概述本電路是由AT89S52單片機(jī)為控制核心,具有在線編程功能,低功耗,能在3V超低壓工作;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS

9、1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周日、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;溫度的采集由DS18B20構(gòu)成;顯示部份由個(gè)數(shù)碼管,74ls138、74ls47譯碼器構(gòu)成。使用動(dòng)態(tài)掃描顯示方式對(duì)數(shù)字的顯示。2.3 主要單元電路的設(shè)計(jì)單片機(jī)主控制模塊的設(shè)計(jì) AT89S52單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。單片機(jī)的最小系統(tǒng)如下圖所示,18引腳和19引腳接時(shí)鐘電路,XTAL1接外

10、部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,XTAL2接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出.第9引腳為復(fù)位輸入端,接上電容,電阻及開(kāi)關(guān)后夠上電復(fù)位電路,20引腳為接地端,40引腳為電源端. 如圖-1 所示 圖-1 主控制系統(tǒng) 時(shí)鐘電路模塊的設(shè)計(jì)圖-2示出DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接

11、32.KHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RSTS置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電動(dòng)行時(shí),在Vcc大于等于2.5V之前,RST必須保持低電平。中有在SCLK 為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。 圖-2 DS1302的引腳圖電路原理及說(shuō)明(1) 時(shí)鐘

12、芯片DS1302的工作原理: DS1302在每次進(jìn)行讀、寫(xiě)程序前都必須初始化,先把SCLK端置 "0",接著把RST端置"1",最后才給予SCLK脈沖;讀/寫(xiě)時(shí)序如下圖4所示。圖5為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對(duì)DS1302進(jìn)行讀寫(xiě)數(shù)據(jù)。對(duì)于位6,若對(duì)程序進(jìn)行讀/寫(xiě)時(shí)RAM=1,對(duì)時(shí)間進(jìn)行讀/寫(xiě)時(shí),CK=0。位1至位5指操作單元的地址。位0是讀/寫(xiě)操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫(xiě)操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出的。表6為DS1302的日歷、時(shí)間寄存器內(nèi)容:"CH"是時(shí)鐘暫

13、停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開(kāi)始運(yùn)行。"WP"是寫(xiě)保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,WP必須為0。當(dāng)"WP"為1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。(2) DS1302的控制字節(jié)DS1302的控制字如表-1所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出 RAM RD

14、 1 A4 A3 A2 A1 A0 / CK /WR 表-1 DS1302的控制字格式(3) 數(shù)據(jù)輸入輸出(I/O)在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。如下圖-4所示 圖-4 DS1302讀/寫(xiě)時(shí)序圖(4) DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表-2。 表-2 DS1302的日歷、時(shí)間寄存器 此外,DS1302 還有年

15、份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。 顯示模塊的設(shè)計(jì)如圖5所示,采用動(dòng)態(tài)掃描顯示,由個(gè)數(shù)碼管,3-8譯碼器74LS138接1K限流電阻,再接8550三極管接到共陽(yáng)數(shù)碼管的CoM端作為選通位碼,每位選擇相應(yīng)的列。74

16、ls47接240限流電阻,再接共行的LED數(shù)碼管的斷碼。 圖-5 LED動(dòng)態(tài)掃描顯示三、系統(tǒng)的軟件設(shè)計(jì)3.1程序流程框圖 圖-A 主程序流程圖 圖-B計(jì)算陽(yáng)歷程序流程圖 圖-C 時(shí)間調(diào)整程序流程圖3.2 子程序的設(shè)計(jì) 讀、寫(xiě)DS1302子程序 ;寫(xiě)1302程序WRITE: CLR SCLK NOP SETB RST NOP MOV A,32H MOV R4,#8WRITE1: RRC A ;送地址給1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE1 CLR SCLK NO

17、P MOV A,31H MOV R4,#8WRITE2: RRC A NOP ;送數(shù)據(jù)給1302 CLR SCLK NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLR RST RET;讀1302程序READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8READ1: RRC A ;送地址給1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP DJNZ R4,READ1 MOV R

18、4,#8READ2: CLR SCLK NOP ;從1302中讀出數(shù)據(jù) NOP NOP MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV 31H,A CLR RST RET 五、作品總結(jié)在整個(gè)設(shè)計(jì)過(guò)程中,發(fā)揮團(tuán)隊(duì)精神,分工合作,充分發(fā)揮人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到了許多沒(méi)學(xué)到的知識(shí)。較好的完成了作品。達(dá)到了預(yù)期的目的,在最初的設(shè)計(jì)中,發(fā)揮"三個(gè)臭皮匠,頂個(gè)諸葛亮"的作用。相互學(xué)習(xí)、相互討論、研究。完了最初的設(shè)想。在電路焊接時(shí)雖然沒(méi)什么大問(wèn)題,但從中也知道了焊

19、接在整個(gè)作品中的重要性,電路工程量大,不能心急,一個(gè)個(gè)慢慢來(lái)不能急于求成。反而達(dá)到事半功倍的效果。對(duì)電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路板美觀、大方。程序編寫(xiě)中,由于思路不清晰,開(kāi)始時(shí)遇到了很多的問(wèn)題,經(jīng)過(guò)靜下心來(lái)思考,和同組員的討論,理清了思路,反而得心應(yīng)手。在此次設(shè)計(jì)中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次比賽中學(xué)到了很多很多東西,這是最重要的??傊?,參加電子競(jìng)賽我們的能力得到了全方位的提高。致謝詞感謝學(xué)院給我們提供了一個(gè)展現(xiàn)自己的舞臺(tái),給我們一次難得煅煉的機(jī)會(huì),使得我們的動(dòng)手能力和專業(yè)技能都有了很大的提高。在做作

20、品的日子里得到了劉老師的悉心指導(dǎo),在此向我們的指導(dǎo)教師致以誠(chéng)摯的謝意。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵(lì)使我們對(duì)這次的作品完成有了信心和動(dòng)力,也給了我們很多無(wú)私的幫助和支持,我們?cè)诖松畋碇x意。 姓名:龔澤汗參考文獻(xiàn)1劉勇 編 數(shù)字電路 電子工業(yè)出版社 20042陳正振 編 電子電路設(shè)計(jì)與制作 廣西交通職業(yè)技術(shù)學(xué)院信息工程系 20073楊子文 編 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社 20064 王法能 編 單片機(jī)原理及應(yīng)用 科學(xué)出版社 20042010年5月20日附錄一:系統(tǒng)電路圖 附錄二:系統(tǒng)程序清單 CONFIG12 EQU 7FH TEMPH EQU 21H TEMP

21、L EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 SCLK EQU P3.2 IO EQU P3.3 RST EQU P3.4 year DATA 66H month DATA 65H week DATA 64H day DATA 63H hour DATA 62H mintue DATA 61H second DATA 60H ORG 0000H LJMP START ORG 001BH LJMP INTT1START: ;初值 LCALL ZJ SETB EA MOV SCON,#00H ; 串行輸出,方式0 MOV

22、 TMOD,#10H ;計(jì)數(shù)器1,方式1 MOV TL1,#00H MOV TH1,#00H MOV 32H,#8EH MOV 31H,#00H ;允許寫(xiě)1302 LCALL WRITE MOV 32H,#90H MOV 31H,#0A6H ;1302充電,充電電流1.1MA LCALL WRITE ;主程序MAIN1: MOV 32H,#8DH ;讀出年 LCALL READ MOV year,31H MOV 32H,#8BH ;讀出星期 LCALL READ MOV week,31H MOV 32H,#89H ;讀出月 LCALL READ MOV month,31H MOV 32H,#8

23、7H ;讀出日 LCALL READ MOV day,31H MOV 32H,#85H ;讀出小時(shí) LCALL READ MOV hour,31H MOV 32H,#83H ;讀出分鐘 LCALL READ MOV mintue,31H MOV 32H,#81H ;讀出秒 LCALL READ MOV second,31H ;分離緩存 MOV R0,year ;年分離,送顯示緩存 LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1 MOV 7CH,R2 MOV 4CH,R2 MOV 78H,week MOV 48H,week MOV R0,month ;月分離,送顯示緩存 L

24、CALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2 MOV R0,day ;日分離,送顯示緩存 LCALL DIVIDE MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 MOV R0,hour ;小時(shí)分離,送顯示緩存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 MOV R0,mintue ;分鐘分離,送顯示緩存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 M

25、OV R0,second ;秒分離,送顯示緩存 LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 CLR EA LCALL TOUTOU SETB EA LCALL DISPLAY LCALL GENGXIAN ;更新農(nóng)歷程序 JNB P0.1,SETG111 JNB F0,SSS setb P0.4 ;非閏月,則p0.4清零,指示燈亮 LJMP MAIN1SETG111: LJMP SETGSSS: clr P0.4 ;閏月,則p0.4置位,指示燈不亮 LJMP MAIN1; 溫度TOUTOU: LCALL CHUSHI LCA

26、LL RDTEMP MOV A,TEMPL ANL A,#11110000B MOV TEMPL,A MOV A,TEMPH ANL A,#00000111B ORL A,TEMPL SWAP A MOV 25H,A MOV A,25H MOV B,#64H DIV AB MOV A,B MOV B,#0AH DIV AB SWAP A ORL A,B MOV 10H,A RETCHUSHI: LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#4EH LCALL WRITE111 MOV A,#CONFIG12 LCALL WRITE111 RETRD

27、TEMP: LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#44H LCALL WRITE111 LCALL DL1MS LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#0BEH LCALL WRITE111 LCALL ERAD111 MOV TEMPL,A LCALL ERAD111 MOV TEMPH,A RETRESET:LA: SETB DAT MOV 52H,#200LB: CLR DAT DJNZ 52H,LB SETB DAT MOV 52H,#30LC: DJNZ 52H,LC CLR C

28、 ORL C,DAT JC LB MOV 58H,#80LD: ORL C,DAT JC LP DJNZ 58H,LD SJMP LALP: MOV 52H,#250LF: DJNZ 52H,LF RETWRITE111: MOV 53H,#8W51HA: SETB DAT MOV 54H,#8 RRC A CLR DATW52HA: DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30W53HA: DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RETERAD111: CLR EA MOV 58H,#8RD1A: CLR DAT MOV 54

29、H,#6 NOP SETB DATRD2A: DJNZ 54H,RD2A MOV C,DAT RRC A MOV 55H,#30RD3A: DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET;公歷設(shè)置程序SETG : SETB TR1 SETB ET1 MOV 32H,#8EH MOV 31H,#00H ;允許寫(xiě)1302 LCALL WRITE MOV 32H,#80H MOV 31H,#80H ;1302停止振蕩 LCALL WRITEGWAIT: ; LCALL DISPLAY JNB P0.1,GWAITSETG1: LCALL DISPLAY JNB P0

30、.1,SETG2 JNB P0.2,GADDYEAR JNB P0.3,JIANYEAR AJMP SETG1GADDYEAR: MOV R7,66H ;年加一 LCALL ADD1 MOV 66H,A CJNE A,#51H,GADDYEAR1 MOV 66H,#00H AJMP GADDYEAR1JIANYEAR: MOV R7,66H ;年減一 LCALL JIAN1 MOV 66H,A CJNE A,#00H,GADDYEAR1 MOV 66H,#51HGADDYEAR1: MOV 32H,#8CH ;年值送人1302 MOV 31H,66H LCALL WRITE MOV R0,66

31、H LCALL DIVIDE ;年分離送顯示緩存 MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2WAITT1: ; LCALL DISPLAY JNB P0.2,WAITT1 JNB P0.3,WAITT1 AJMP SETG1SETG2: SETB 0AH ;調(diào)月時(shí)閃標(biāo)志GWAIT2: LCALL DISPLAY JNB P0.1,GWAIT2SETG3: LCALL DISPLAY JNB P0.1,SETG4 JNB P0.2,GADDMONTH JNB P0.3,JIANMONTH AJMP SETG3GADDMONTH: MOV R7,65H

32、;月加一 LCALL ADD1 MOV 65H,A CJNE A,#13H,GADDMONTH1 MOV 65H,#01H AJMP GADDMONTH1JIANMONTH: MOV R7,65H ;月減一 LCALL JIAN1 MOV 65H,A CJNE A,#00H,GADDMONTH1 MOV 65H,#12HGADDMONTH1: MOV 32H,#88H ;月值送人1302 MOV 31H,65H LCALL WRITE MOV R0,65H LCALL DIVIDE ;月分離,送顯示緩存 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2WA

33、ITT2: ; LCALL DISPLAY JNB P0.2,WAITT2 JNB P0.3,WAITT2 AJMP SETG3SETG4: SETB 0BH ;調(diào)日時(shí)閃標(biāo)志GWAIT4: LCALL DISPLAY JNB P0.1,GWAIT4SETG5: LCALL DISPLAY JNB P0.1,SETG6 JNB P0.2,GADDDAY JNB P0.3,JIANDAY AJMP SETG5GADDDAY: MOV R7,63H ;日加一 LCALL ADD1 MOV 63H,A CJNE A,#32H,GADDDAY1 MOV 63H,#01HJIANDAY: MOV R7,6

34、3H ;日減一 LCALL JIAN1 MOV 63H,A CJNE A,#00H,GADDDAY1 MOV 63H,#31HGADDDAY1: MOV 32H,#86H ;日值送人1302 MOV 31H,63H LCALL WRITE MOV R0,63H LCALL DIVIDE ;日分離,送顯示緩存 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2WAITT3: ; LCALL DISPLAY JNB P0.2,WAITT3 JNB P0.3,WAITT3 AJMP SETG5SETG6: SETB 0CH ;調(diào)星期時(shí)閃標(biāo)志GWAIT6: LCAL

35、L DISPLAY JNB P0.1,GWAIT6SETG7: LCALL DISPLAY JNB P0.1,SETG8 JNB P0.2,GADDWEEK JNB P0.3,JIANWEEK AJMP SETG7GADDWEEK: MOV R7,64H ;星期加一 LCALL ADD1 MOV 64H,A CJNE A,#07H,GADDWEEK1 MOV 64H,#00H AJMP GADDWEEK1JIANWEEK: MOV R7,64H ;星期減一 LCALL JIAN1 MOV 64H,A CJNE A,#00H,GADDWEEK1 MOV 64H,#06HGADDWEEK1: MO

36、V 32H,#8AH MOV 31H,64H ;星期值送人1302 LCALL WRITE MOV R0,64H LCALL DIVIDE ;星期值分離送顯示緩存 MOV 48H,R1 MOV 78H,R1WAITT4: ; LCALL DISPLAY JNB P0.2,WAITT4 JNB P0.3,WAITT4 AJMP SETG7SETG8: SETB 0DH ;調(diào)小時(shí)時(shí)閃標(biāo)志GWAIT8: LCALL DISPLAY JNB P0.1,GWAIT8SETG9: LCALL DISPLAY JNB P0.1,SETG10 JNB P0.2,GADDHOUR JNB P0.3,JIANHO

37、UR AJMP SETG9GADDHOUR: MOV R7,62H ;小時(shí)加一 LCALL ADD1 MOV 62H,A CJNE A,#24H,GADDHOUR1 MOV 62H,#00H AJMP GADDHOUR1JIANHOUR: MOV R7,62H ;小時(shí)減一 LCALL JIAN1 MOV 62H,A CJNE A,#00H,GADDHOUR1 MOV 62H,#23HGADDHOUR1: MOV 32H,#84H ;小時(shí)值送人1302 MOV 31H,62H LCALL WRITE MOV R0,62H LCALL DIVIDE ;小時(shí)值分離送顯示緩存 MOV 74H,R1 M

38、OV 44H,R1 MOV 75H,R2 MOV 45H,R2WAITT5: ; LCALL DISPLAY JNB P0.2,WAITT5 JNB P0.3,WAITT5 AJMP SETG9SETG10: SETB 0EH ;調(diào)分時(shí)候閃標(biāo)志GWAIT10: LCALL DISPLAY JNB P0.1,GWAIT10SETG11: LCALL DISPLAY JNB P0.1,SETGOUT JNB P0.2,GADDMINTUE JNB P0.3,JIANMINTUE AJMP SETG11GADDMINTUE: MOV R7,61H ;分鐘加一 LCALL ADD1 MOV 61H,A

39、 CJNE A,#60H,GADDMINTUE1 MOV 61H,#00H AJMP GADDMINTUE1JIANMINTUE: MOV R7,61H ;分鐘減一 LCALL JIAN1 MOV 61H,A CJNE A,#00H,GADDMINTUE1 MOV 61H,#59HGADDMINTUE1: MOV 32H,#82H ;分鐘值送人1302 MOV 31H,61H LCALL WRITE MOV R0,61H LCALL DIVIDE ;分鐘值分離送顯示緩存 MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2WAITT6: LCALL DISPL

40、AY JNB P0.2,WAITT6 JNB P0.3,WAITT6 AJMP SETG11SETGOUT: LCALL DISPLAY JNB P0.1,SETGOUT LCALL GENGXIAN MOV 32H,#80H MOV 31H,#00H ;1302晶振開(kāi)始振蕩 LCALL WRITE MOV 32H,#8EH MOV 31H,#80H ;禁止寫(xiě)入1302 LCALL WRITE CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH CLR 0DH CLR 0EH CLR 0FH CLR ET1 ;關(guān)閃中斷 CLR TR1 LJMP MAIN1;閃動(dòng)調(diào)時(shí)

41、程序INTT1: PUSH ACC PUSH PSWGFLASH: CPL 0FH JB 0FH,GFLASH1 MOV 7CH,4CH ;全部顯示 MOV 7BH,4BH MOV 7AH,4AH MOV 79H,49H MOV 78H,48H MOV 77H,47H MOV 76H,46H MOV 75H,45H MOV 74H,44H MOV 73H,43H MOV 72H,42H MOV 71H,41H MOV 70H,40HGFLASHOUT: POP PSW POP ACC RETIGFLASH1: JB 0AH,GFLASH2 ;調(diào)年閃 MOV 7CH,#0FH MOV 7BH,#

42、0FH AJMP GFLASHOUTGFLASH2: JB 0BH,GFLASH3 ;調(diào)月閃 MOV 7AH,#0FH MOV 79H,#0FH AJMP GFLASHOUTGFLASH3: JB 0CH,GFLASH4 ;調(diào)日閃 MOV 77H,#0FH MOV 76H,#0FH AJMP GFLASHOUTGFLASH4: JB 0DH,GFLASH5 ;調(diào)星期閃 MOV 78H,#0FH AJMP GFLASHOUTGFLASH5: JB 0EH,GFLASH6 ;調(diào)小時(shí)閃 MOV 75H,#0FH MOV 74H,#0FH AJMP GFLASHOUTGFLASH6: MOV 73H,

43、#0FH ;調(diào)分鐘閃 MOV 72H,#0FH AJMP GFLASHOUT;加一程序ADD1: MOV A,R7 ADD A,#1 DA A RET;減一程序JIAN1: MOV A,R7 DEC A CJNE A,#4FH,KK1 MOV A,#49HKK1: CJNE A,#3FH,KK2 MOV A,#39HKK2: CJNE A,#2FH,KK3 MOV A,#29HKK3: CJNE A,#1FH,KK4 MOV A,#19HKK4: CJNE A,#0FH,KK5 MOV A,#09HKK5: RET;分離程序DIVIDE: MOV A,R0 ANL A,#0FH MOV R1,

44、A MOV A,R0 SWAP A ANL A,#0FH MOV R2,A RET;寫(xiě)1302程序WRITE: CLR SCLK NOP SETB RST NOP MOV A,32H MOV R4,#8WRITE1: RRC A ;送地址給1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE1 CLR SCLK NOP MOV A,31H MOV R4,#8WRITE2: RRC A NOP ;送數(shù)據(jù)給1302 CLR SCLK NOP NOP MOV IO,C NOP NO

45、P NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLR RST RET;讀1302程序READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8READ1: RRC A ;送地址給1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP DJNZ R4,READ1 MOV R4,#8READ2: CLR SCLK NOP ;從1302中讀出數(shù)據(jù) NOP NOP MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV 31H,A CLR RST RET;BCD碼轉(zhuǎn)換為10進(jìn)制程序BCD_10: MOV A,R0 ANL A,#0FH MOV R1,A ;高位×10, 加低位 MOV A,R0 SWAP A ANL A,#0FH MOV B,#10 MUL AB ADD A,R1 MOV R0,A RET;查一年數(shù)據(jù)程序CHECKM

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論