![萬年歷畢業(yè)論文_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/9a36eeea-ce46-4ef5-a4ca-c5fbfe849104/9a36eeea-ce46-4ef5-a4ca-c5fbfe8491041.gif)
![萬年歷畢業(yè)論文_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/9a36eeea-ce46-4ef5-a4ca-c5fbfe849104/9a36eeea-ce46-4ef5-a4ca-c5fbfe8491042.gif)
![萬年歷畢業(yè)論文_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/9a36eeea-ce46-4ef5-a4ca-c5fbfe849104/9a36eeea-ce46-4ef5-a4ca-c5fbfe8491043.gif)
![萬年歷畢業(yè)論文_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/9a36eeea-ce46-4ef5-a4ca-c5fbfe849104/9a36eeea-ce46-4ef5-a4ca-c5fbfe8491044.gif)
![萬年歷畢業(yè)論文_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/9a36eeea-ce46-4ef5-a4ca-c5fbfe849104/9a36eeea-ce46-4ef5-a4ca-c5fbfe8491045.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄1概述21.1單片機原理及應用簡介21.2系統(tǒng)硬件設計31.2.1 AT89C51芯片介紹31.1.2 DS1302日歷時鐘芯片62 系統(tǒng)總體方案設計82.1系統(tǒng)總體方案82.1.1 微處理器82.1.2 顯示電路92.1.3 按鍵電路92.2電路原理圖設計103 軟件設計113.1主程序流程圖設計113.2顯示模塊流程圖124.仿真過程134.1軟件仿真134.2仿真結果13結束語14文獻15附錄1:源程序16附錄2:原理圖471概述在當代繁忙的工作與生活中,時間與我們每一個人都有非常親密的關系,每個人都收到時間的影響,為了更好的利用我們自己的時間,我們必須對時間有一個度量,因此產生了
2、鐘表。隨著社會、科技的發(fā)展,人類得知時間,從觀太陽、擺鐘到現在電子鐘,不斷研究、創(chuàng)新。為了在觀測時間的同時能夠了解其他與人類密切相關的信息,比如溫度、星期、日期等,電子萬年歷誕生了,它集時間、日期、星期和溫度于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。隨著人們生活水平的提高和生活節(jié)奏的加快,對時間的要求越來越高,精準數字計時的消費需求也是越來越多。該電子萬年歷主要采用AT89C51單片機作為主控核心,由DS1302時鐘芯片提供時鐘、LED動態(tài)掃描顯示屏顯示,AT89C51單片機具有功耗小,片內ROM全都采用FlashROM:能以
3、3V的超低電壓工作,同時也與MCS-51系列單片機完全兼容,該芯片內部存儲器為8KB ROM存儲空間,同時具有89C51的功能.當在對電路進行調試時,由于程序的錯誤修改或程序的新增功能需要燒入程序時,不需要對芯片進行多次插拔,所以不會對芯片造成損壞。DS1302時鐘芯片是美國DALLAS公司推出的具有涓流電流充電功能的低功耗實時時鐘芯片,它可以對年、月、日等進行計時,還有閏年補償等功能,而且使用壽命長,誤差小,數字顯示是采用的LCD液晶顯示,可以同時顯示各種需要的信息。此外,該電子萬年歷還具有時間校準等功能。下面對萬年歷制作時所用的芯片進行介紹。1.1單片機原理及應用簡介隨著國內超大規(guī)模集成電
4、路的出現,微處理器及其外圍芯片有了迅速的發(fā)展。集成技術的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數據存儲器、并行、串行I/O口、定時/計數器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機(Single-Chip Microcomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如A/D、D/A轉換器、調制解調器、通信控制器、鎖相環(huán)、DMA、浮點運算單元等。因此,只要外加一些擴展電路及必要的通道接口就可以構成各種計算機應用系統(tǒng),如工業(yè)控制系統(tǒng)、數據采集系統(tǒng)、自動測試系統(tǒng)、萬年歷電子表等。單片機的出現,并在各個技術領域中得到如此迅猛的發(fā)展,與單片機構成計算機
5、應用系統(tǒng)所形成的下述特點有關:(1)、單片機構成的應用系統(tǒng)有較大的可靠性。這些可靠性的獲得除了依靠單片機芯片本身的高可靠性以及應用有最少的聯接外,還可以方便地采用軟、硬件技術。(2)、系統(tǒng)擴展、系統(tǒng)配置較典型、規(guī)范,容易構成各種規(guī)模的應用系統(tǒng),應用系統(tǒng)有較高的軟、硬件利用系數。(3)、由于構成的應用系統(tǒng)是一個計算機系統(tǒng),相當多的測、控功能由軟件實現,故具有柔性特征,不須改變硬件系統(tǒng)就能適當地改變系統(tǒng)功能。(4)、有優(yōu)異的性能、價格比??梢哉f,對于廣大的電子應用專業(yè)技術人員,目前國內、國外面臨的單片機應用技術,如同60年代面臨晶體管技術,70年代面臨數字集成電路一樣。單片機和可編程門陣列相結合,
6、構成新一代電子應用技術是不可能回避的一項新型的工程應用技術。一臺完整的微機。隨著科學技術的迅猛發(fā)展,單片計集成度高、體積小、運算速度快、功耗低、運行可靠、價格低廉等諸多優(yōu)點,越來越顯現出來。目前可以說單片機已經滲透到我們的生活的各個領域,在工業(yè)方面:像過程控制、數據采集,機電一體化、智能化儀器儀表,特別在軍事武器控制方面尤為突出。在日常生活方面,我們使用彩電、洗衣機、電冰箱,錄放機、VCD、照相機、手機、高級定時鬧鐘以及公共汽車上的報站器等等可以說舉不勝舉。把單片機的誕生稱為計算機發(fā)展史上的一個重要里程碑并不過分。單片機的應用,使許多領域的技術水平和自動化程度大大提高。可以說當今世界正在經受一
7、場以單片機技術為標志的新技術革命浪潮的沖擊。人們需要掌握單片機知識,跨入單片機應用與開發(fā)領域的大門。我們作為理工科的大學生,學習單片機課程尤其顯得越來越重要.1.2系統(tǒng)硬件設計1.2.1 AT89C51芯片介紹AT89C51是標準的40引腳雙列直插式集成電路芯片,引腳分布請參照單片機引腳圖如下圖1-1。 圖1-1 AT89C51引腳P0.0-P0.7 P0口8位雙向口線(在引腳的39-32號端子)P1.0-P1.7 P1口8位雙向口線(在引腳的1-8號端子) P2.0-P2.7 P2口8位雙向口線(在引腳的21-28號端子)P3.0-P3.7 P2口8位雙向口線(在引腳的10-17號端子) A
8、T89C51芯片管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。 當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在編程時,P0口作為原碼輸入口,當進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2
9、口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為
10、高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表1-1所示: 表1-1 特殊功能口引腳備選功能P3.0 RXD串行輸入口P3.1 TXD串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時器0外部輸入P3.5 T1記時器1外部輸入P3.6 /WR外部數據存儲器寫選通P3.7 /RD外部數據存儲器讀選通RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。
11、在FLASH編程期間,此引腳用于輸入編程脈沖。一般情況下,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSE N信號將不出現。/EA/VPP:當/
12、EA保持低電平時,則在此期間外部程序存儲器(0000 H- FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內 部 鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FL ASH 編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。1.1.2 DS1302日歷時鐘芯片本電路是由AT89S52單片機為控制核心,低功耗,能在3V超低壓工作;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能
13、,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302內部有一個31*8的用于臨時性存放數據的RAM寄存器??僧a生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能,DS1302圖如下1-2.圖1-2 DS1302芯片圖(1)時鐘芯片DS1302的工作原理:DS1302在每次進行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖。DS1302的控制字的位7必須置1,若為0則不能把對DS1302進行讀寫數據。對于位6,若對程序進行
14、讀/寫時RAM=1,對時間進行讀/寫時,CK=0,位1至位5指操作單元的地址。位0是讀/寫操作位,進行讀操作時,該位為1;該位為0則表示進行的是寫操作。控制字節(jié)總是從最低位開始輸入/輸出的。 “CH”是時鐘暫停標志位,當該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當該位為0時,時鐘開始運行?!癢P”是寫保護位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當“WP”為1時,寫保護位防止對任一寄存器的寫操作。(2)DS1302的控制字節(jié):DS1302控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果0,則表示存取日歷時鐘數據,為1表示存取
15、RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出.(3)數據輸入輸出(I/O):在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。(4)DS1302的寄存器:DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關的寄存器等。時鐘突
16、發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。2 系統(tǒng)總體方案設計2.1系統(tǒng)總體方案 我選用的是單片機(AT89C51)來實現電子萬年歷的功能。共具備兩個功能:(1)顯示年月日及分秒信息(2)具有可調整日期和時間功能。該電子萬年歷能夠成功實現時鐘運行,調整功能,且精確度經調試一天的誤差在2S內。2.1.
17、1 微處理器在設計過程中我使用12MHZ晶振與單片機89C51相連接,通過軟件編程的方法實現了以24小時為一個周期同時顯示小時,分鐘和秒的要求,該萬年歷有二個按鍵,使之具備了校時功能。利用單片機定時器及計數器產生定時效果通過編程形成數字鐘效果,再利用數碼管動態(tài)掃描顯示單片機內部處理的數據。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實現不同功能。在Proteus軟件環(huán)境下的89C51芯片如圖2-1所示: 圖2-1 Proteus軟件環(huán)境下的89C51芯片 2.1.2 顯示電路本次設計采用7SEG-MPX6-CA顯示模塊,它是共陽極顯示。它具有各種規(guī)格,廣泛應用于智能儀表、通訊、辦公自
18、動化及軍工等領域。這種顯示模塊目前在國際上已經規(guī)范化,無論顯示屏的規(guī)格如何變化,其電特性和接口形式都是統(tǒng)一的。因此只要設計出一種型號的接口電路,在指令設置上稍加改動即可使用各種規(guī)格的字符型液晶顯示模塊,顯示電路如下圖2-2所示。圖2-2 顯示電路2.1.3 按鍵電路由于我設計的是電子萬年歷,需要實現多種功能的顯示,并要能夠切換顯示和調節(jié)年月日,因此,在設計過程中按鍵的設計就顯得尤為重要。在設計過程中我一共采用了2個按鍵,盡量在小的空間里實現最多的功能。其中MODE鍵是年月日與時間顯示切換鍵,按下一次就能夠更換一次顯示位。在調整顯示環(huán)境下加1鍵,提高萬年歷顯示的精確性。最左邊的為切換鍵,而第二個
19、的鍵位加一鍵。按鍵電路如圖2-3所示:圖6 按鍵電路 圖2-3 按鍵電路2.2電路原理圖設計該萬年歷是以單片機89C51為核心來完成的。在電路中采用P2口和P3口作為8位液晶顯示電路的驅動接口,這是因為共陰的LED數碼管它的驅動電流是分開的,在單片機進行動態(tài)掃描的時候不會影響彼此的電流,故該電路中的8位LED數碼管均用共陽陰極的數碼管,以成功實現萬年歷校時的功能。電路設計框圖圖如圖2-3所示:按鍵電路LED數碼管動態(tài)掃描顯示模塊AT89C51主控制模 塊 DS1302時鐘模塊圖2-3 電路設計框圖 3 軟件設計3.1主程序流程圖設計該設計主程序流程圖如下圖3-1所示初始化定時器初始化化定時器初
20、始化化串口初始化顯示待機指示符設定月設置年顯示刷新啟動走時變量初始化刷新顯示判時分變化是否?秒指示判秒到否?年代顯示時間顯示星期顯示YYYY圖3-1 主程序流程圖3.2顯示模塊流程圖基本顯示模塊設計的重點是由顯示代碼取得相應的段碼、顯示段碼數據的串行發(fā)送,程序流程如圖3-2所示。軟件秒脈沖發(fā)生器其實質是利用了定時器1的定時溢出中斷,將它設定為100ms溢出中斷,則10次中斷的時間正好為1s。將時間參數設計為100ms的原因有兩個:(1)根據系統(tǒng)時鐘主頻為6M的特點,16位定時器最大定時時間為65536×2M(M為機器周期,這里是2),即131ms,取整數100便于計次數;(2)如取的
21、太短,如10ms,則定時器頻繁中斷,干擾系統(tǒng)正常運行效果。有了秒脈沖發(fā)生器,10次中斷為1s,秒指示燈閃亮1次,秒變量單元加1,60后分變量單元加1,如果為60分則時變量單元加1。任何一個變量的變化,則顯示刷新一次(更新)。上述思想的實現均集成在定時器0的中斷子程序中。該設計顯示模塊流程圖如下圖3-2所示:將進制時分數據轉化為顯示代碼關顯示以免顯示抖動通過串口將時十位段碼送入對應的將時個位段碼送入對應的將分十位和個位段碼送入各自對應打開顯示 圖3-2 基本顯示模塊的程序流程圖4.仿真過程4.1軟件仿真(1)、仿真:打開QTH,輸入所編寫的源程序并對程序進行編譯,在軟件的幫助下檢查其中的錯誤并進
22、行反復修改,知道編譯正確后運行,確保沒有錯誤以后對正確的源程序進行保存,保存時給其命名,以便將來載入程序時容易找到。(2)、打開Proteus軟件,并出畫單片機電子萬年歷具體運行電路圖。(3)、檢查所畫電路運行圖,確保沒有錯誤以后,在Proteus下對原理圖進行加載QTH下的源程序。(4)、加載完成后,單擊電路圖框下的開始按鈕,進行仿真,觀察LED數碼管現實情況,此時LED數碼管開始顯示數字。調節(jié)開關進行時間的調節(jié)。當秒的顯示間隔快與或慢與實際間隔時,使秒的間隔達到標準。然后檢查電路其它問題,并對其的各參數進行調整,使之正確。4.2仿真結果通過在QTH下對源程序的編譯,改正了其中的很多錯誤,然
23、后運行,保證源程序的正確性。然后按原理圖選擇正確合理的電器元件,畫出正確的電路圖,加載源程序運行,順利實現了單片機數字電子鐘的“小時”、“分鐘”、“秒”的顯示。該電子萬年歷的顯示效果及電子萬年歷時間和日期的調節(jié)效果分別如下圖4-1所示: 圖4-1 仿真結果圖結束語通過這畢業(yè)論文設計,我學到了不少的知識。把以前沒有學好的單片機知識進行了補充和加強。這使我受益很大。加深了我對于單片機和數字電路的認識,相信在以后的學習和工作中碰到這些基礎的元器件我會更加得心應手。通過查閱大量的資料,我獲得了以前在課堂上學不到的東西,我想這對于以后的學習,或者工作也好,都是很有幫助的。我很認真地對待這個過程中的每一個
24、細節(jié),希望自己能做得更好。希望今后還有這樣的機會,能夠讓我學到更多的知識。在此次的萬年歷設計過程中,更進一步地熟悉了芯片的結構及掌握了各芯片的工作原理和其具體的使用方法。首先要衷心的感謝的事我的指導老師。在我學習期間不僅傳授了知識上的秘訣,更教育了我做人的準則。這些都將使我終生受益。無論是在理論學習階段,還是在論文的選題、資料的查詢、開題、研究和撰寫的每一個環(huán)節(jié),都得到了老師無微不至的悉心指導和幫助。我愿借此機會向導師表示衷心的感謝!其次要感謝所有教育過我的老師!是你們纏手給我的專業(yè)知識是我不斷成長的源泉,也是完成本論文的基礎。我還要向關心和支持我學習的朋友們表示真摯的謝意!感謝他們對我的關心
25、、關注和支持!大學的生活讓我有了堅強的性格,冷靜的頭腦和永遠樂觀的態(tài)度。最重要的是讓我有了責任感,對自己、對家人和對社會的責任感。我愿在未來的學習生活過程中,以更加豐厚的成果來答謝曾經關心、幫助和支持我的所有領導、老師、同學和朋友。文獻【1】李建忠.單片機原理及應用.西安電子科技大學出版 2006.02 【2】張俊謨.單片機中級教程.北京航空航天大學出版 2006.03【3】余發(fā)山.單片機原理及及應用技術.中國礦業(yè)大學出版社 2003.12【4】楊凌霄.微型計算機原理及應用.中國礦業(yè)大學出版社 2004.08【5】何立民.單片機應用技術選編.北京航空航天大學出版社 2000.08【6】萬光毅.
26、單片機實驗與實踐教程.北京航空航天大學出版社 2005.01【7】周航慈.單片機程序設計基礎.北京航空航天大學出版社 1991.11【8】黃遵熹.單片機原理接口與應用.西北工業(yè)大學出版社 1997.05附錄1:源程序;77 / 77文檔可自由編輯打印*;* 萬年歷程序 ;*SCLK EQU P3.2IO EQU P3.3RST EQU P3.4YEAR DATA 66HMONTH DATA 65HWEEK DATA 64HDAY DATA 63HHOUR DATA 62HMINUTE DATA 61HSECOND DATA 60HDS1302_ADDR DATA 32HDS1302_DATA
27、DATA 31HORG 0000HAJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHLJMP INTT1ORG 0023HRETIORG 002BHRETI;*;* 主程序 *;*START: SETB EAMOV SCON,#00H ;串行輸出,方式0MOV TMOD,#10H ;計數器1,方式1MOV TL1,#00HMOV TH1,#00HMOV DS1302_ADDR,#8EHMOV DS1302_DATA,#00H ;允許寫1302LCALL WRITEMOV DS1302_ADDR,#90HMOV DS1302_DA
28、TA,#0A6H ;1302充電LCALL WRITEMAIN1:MOV DS1302_ADDR,#8DH ;READ OUT YEARLCALL READMOV YEAR,DS1302_DATAMOV DS1302_ADDR,#8BH ;READ OUT WEEKLCALL READMOV WEEK,DS1302_DATAMOV DS1302_ADDR,#89H ;READ OUT MONTHLCALL READMOV MONTH,DS1302_DATAMOV DS1302_ADDR,#87H ;READ OUT DAYMOV DAY,DS1302_DATAMOV DS1302_ADDR,#
29、85H ;READ OUT HOURLCALL READMOV HOUR,DS1302_DATAMOV DS1302_ADDR,#83H ;READ OUT MINTUELCALL READMOV MINUTE,DS1302_DATAMOV DS1302_ADDR,#81H ;READ OUT SECONDLCALL READMOV SECOND,DS1302_DATAMOV R0,YEAR ;年分離,送顯示緩存LCALL DIVIDEMOV 7BH,R1MOV 4BH,R1MOV 7CH,R2MOV 4CH,R2MOV 78H,WEEKMOV 48H,WEEKMOV R0,MONTH ;月分
30、離,送顯示緩存LCALL DIVIDEMOV 79H,R1MOV 49H,R1MOV 7AH,R2MOV 4AH,R2MOV R0,DAY ;日分離,送顯示緩存LCALL DIVIDEMOV 76H,R1MOV 46H,R1MOV 77H,R2MOV 47H,R2MOV R0,HOUR ;小時分離,送顯示緩存LCALL DIVIDEMOV 74H,R1MOV 44H,R1MOV 75H,R2MOV 45H,R2MOV R0,MINUTE ;分分離,送顯示緩存LCALL DIVIDEMOV 72H,R1MOV 42H,R1MOV 73H,R2MOV 43H,R2MOV R0,SECOND ;秒分
31、離,送顯示緩存LCALL DIVIDEMOV 70H,R1MOV 40H,R1MOV 71H,R2MOV 41H,R2LCALL DISPLAYLCALL GENGXIN ;更新農歷程序JNB P1.1,SETGJNB F0,SSSCLR P1.3 ;閏月,則p1.3清0,指示燈亮LJMP MAIN1SSS: SETB P1.3 ;非閏月,則p1.3置位,指示燈滅LJMP MAIN1;*;* 公歷設置程序 *;*SETG: SETB TR1SETB ET1CLR 08HCLR 09HCLR 0AHCLR 0BHCLR 0CHCLR 0DHCLR 0EHCLR 0FHMOV DS1302_ADD
32、R,#8EHMOV DS1302_DATA,#00H ;允許寫1302LCALL WRITEMOV DS1302_ADDR,#80HMOV DS1302_DATA,#80H ;1302停止振蕩LCALL WRITEGWAIT: LCALL DISPLAYJNB P1.1,GWAITSETG1: LCALL DISPLAYJNB P1.1,SETG2JNB P1.2,GADDYEARAJMP SETG1GADDYEAR:MOV R7,66H ;年加1LCALL ADD1MOV 66H,ACJNE A,#51H,GADDYEAR1MOV 66H,#01HGADDYEAR1:MOV DS1302_A
33、DDR,#8CH ;年值送1302MOV DS1302_DATA,66HLCALL WRITEMOV R0,66HLCALL DIVIDE ;年分離送顯示緩沖MOV 4BH,R1MOV 7BH,R1MOV 4CH,R2MOV 7CH,R2WAITT1:LCALL DISPLAYJNB P1.2,WAITT1AJMP SETG1SETG2:SETB 0AH ;調月時閃標志GWAIT2:LCALL DISPLAYJNB P1.1,GWAIT2SETG3: LCALL DISPLAYJNB P1.1,SETG4JNB P1.2,GADDMONTHAJMP SETG3GADDMONTH: MOV R7
34、,65H ;月加1LCALL ADD1MOV 65H,ACJNE A,#13H,GADDMONTH1MOV 65H,#01HGADDMONTH1: MOV DS1302_ADDR,#88H ;月值送1302MOV DS1302_DATA,65HLCALL WRITEMOV R0,65HLCALL DIVIDE;月分離送顯示緩沖MOV 79H,R1MOV 49H,R1MOV 7AH,R2MOV 4AH,R2WAITT2: LCALL DISPLAYJNB P1.2,WAITT2AJMP SETG3SETG4: SETB 0BH ;調日時閃標志GWAIT4: LCALL DISPLAYJNB P1
35、.1,GWAIT4SETG5: LCALL DISPLAYJNB P1.1,SETG6JNB P1.2,GADDDAYAJMP SETG5GADDDAY: MOV R7,63H;日加1LCALL ADD1MOV 63H,ACJNE A,#32H,GADDDAY1MOV 63H,#01HGADDDAY1:MOV DS1302_ADDR,#86H ;日值送1302MOV DS1302_DATA,63HLCALL WRITEMOV R0,63HLCALL DIVIDE ;日分離送顯示緩沖MOV 76H,R1MOV 46H,R1MOV 77H,R2MOV 47H,R2WAITT3: LCALL DIS
36、PLAYJNB P1.2,WAITT3AJMP SETG5SETG6: SETB 0CH ;調星期時閃標志GWAIT6: LCALL DISPLAYJNB P1.1,GWAIT6SETG7: LCALL DISPLAYJNB P1.1,SETG8JNB P1.2,GADDWEEKAJMP SETG7GADDWEEK: MOV R7,64H ;星期加1LCALL ADD1MOV 64H,ACJNE A,#08H,GADDWEEK1MOV 64H,#01HGADDWEEK1:MOV DS1302_ADDR,#8AH ;星期值送1302MOV DS1302_DATA,64HLCALL WRITEMO
37、V R0,64HLCALL DIVIDE ;星期分離送顯示緩沖MOV 48H,R1MOV 78H,R1WAITT4: LCALL DISPLAYJNB P1.2,WAITT4AJMP SETG7SETG8: SETB 0DH ;調小時時閃標志GWAIT8: LCALL DISPLAYJNB P1.1,GWAIT8SETG9: LCALL DISPLAYJNB P1.1,SETG10JNB P1.2,GADDHOURAJMP SETG9GADDHOUR: MOV R7,62H ;小時加1LCALL ADD1MOV 62H,ACJNE A,#24H,GADDHOUR1MOV 62H,#00HGAD
38、DHOUR1:MOV DS1302_ADDR,#84H ;小時值送1302MOV DS1302_DATA,62HLCALL WRITEMOV R0,62HLCALL DIVIDE ;小時分離送顯示緩沖MOV 74H,R1MOV 44H,R1MOV 75H,R2MOV 45H,R2WAITT5: LCALL DISPLAYJNB P1.2,WAITT5AJMP SETG9SETG10: SETB 0EH ;調分時閃標志GWAIT10: LCALL DISPLAYJNB P1.1,GWAIT10SETG11: LCALL DISPLAYJNB P1.1,SETGOUTJNB P1.2,GADDMI
39、NUTEAJMP SETG11GADDMINUTE: MOV R7,61H ;分加1LCALL ADD1MOV 61H,ACJNE A,#60H,GADDMINUTE1MOV 61H,#00HGADDMINUTE1: MOV DS1302_ADDR,#82H;分值送1302MOV DS1302_DATA,61HLCALL WRITEMOV R0,61HLCALL DIVIDE ;分分離送顯示緩沖MOV 72H,R1MOV 42H,R1MOV 73H,R2MOV 43H,R2WAITT6: LCALL DISPLAYJNB P1.2,WAITT6AJMP SETG11SETGOUT: LCALL
40、 DISPLAYJNB P1.1,SETGOUTLCALL GENGXINMOV DS1302_ADDR,#80HMOVD S1302_DATA,#00H;1302晶振開始振蕩LCALL WRITEMOV DS1302_ADDR,#8EHMOV DS1302_DATA,#80H ;禁止寫入1302LCALL WRITECLR 08HCLR 09HCLR 0AHCLR 0BHCLR 0CHCLR 0DHCLR 0EHCLR 0FHCLR ET1CLR TR1 ;關閃中斷LJMP MAIN1;*;* 閃動調時程序 *;*INTT1: PUSH ACCPUSH PSWGFLASH: CPL 0FHJ
41、B 0FH,GFLASH1MOV 7CH,4CH ;全部顯示MOV 7BH,4BHMOV 7AH,4AHMOV 79H,49HMOV 78H,48HMOV 77H,47HMOV 76H,46HMOV 75H,45HMOV 74H,44HMOV 73H,43HMOV 72H,42HMOV 71H,41HMOV 70H,40HGFLASHOUT: POP PSWPOP ACCRETIGFLASH1: JB 0AH,GFLASH2;調年閃MOV 7CH,#0AHMOV 7BH,#0AHAJMP GFLASHOUTGFLASH2: JB 0BH,GFLASH3;調月閃MOV 7AH,#0AHMOV 7
42、9H,#0AHAJMP GFLASHOUTGFLASH3: JB 0CH,GFLASH4 ;調日閃MOV 77H,#0AHMOV 76H,#0AHAJMP GFLASHOUTGFLASH4: JB 0DH,GFLASH5 ;調星期閃MOV 78H,#0AHAJMP GFLASHOUTGFLASH5: JB 0EH,GFLASH6 ;調小時閃MOV 75H,#0AHMOV 74H,#0AHAJMP GFLASHOUTGFLASH6: MOV 73H,#0AH ;調分閃MOV 72H,#0AHAJMP GFLASHOUT;*;* 加1程序 *;*ADD1: MOV A,R7ADD A,#01HDA
43、 ARET;*;* 分離程序 *;*DIVIDE: MOV A,R0ANL A,#0FHMOV R1,AMOV A,R0SWAP AANL A,#0FHMOV R2,ARET;*;* 寫1302程序 *;*WRITE: CLR SCLKNOPSETB RSTNOPMOV A,DS1302_ADDRMOV R4,#8WRITE1: RRC A ;送地址給1302NOPNOPCLR SCLKNOPNOPNOPMOV IO,CNOPNOPNOPSETB SCLKNOPNOPDJNZ R4,WRITE1CLR SCLKNOPMOV A,DS1302_DATAMOV R4,#8WRITE2: RRC A
44、NOP ;送數據給1302CLR SCLKNOPNOPMOV IO,CNOPNOPNOPSETB SCLKNOPNOPDJNZ R4,WRITE2CLR RSTRET;*;* 讀1302程序 *;*READ: CLR SCLKNOPNOPSETB RSTNOPMOV A,DS1302_ADDRMOV R4,#8READ1: RRC ANOPMOV IO,CNOPNOPNOPSETB SCLKNOPNOPNOPCLR SCLKNOPNOPDJNZ R4,READ1MOV R4,#8READ2: CLR SCLKNOPNOPNOPMOV C,IONOPNOPNOPNOPNOPRRC ANOPNOP
45、NOPNOPSETB SCLKNOPDJNZ R4,READ2MOV DS1302_DATA,ACLR RSTRET;*;* BCD碼轉換為十進制程序 *;*BCD_10: MOV A,R0ANL A,#0FHMOV R1,A ;高位*10,加低位MOV A,R0SWAP AANL A,#0FHMOV B,#10MUL ABADD A,R1MOV R0,ARET;*;* 查一年數據程序 *;*CHECKMONTH: LCALL BCD_10MOV A,R0MOV B,#04MUL ABMOV R1,AMOV DPTR,#TABMOVC A,A+DPTRMOV R7,A;第1字節(jié)送R7INC R
46、1MOV A,R1MOVC A,A+DPTRMOV R6,A ;第2字節(jié)送R6INC R1MOV A,R1MOVC A,A+DPTRMOV R5,A ;第3字節(jié)送R5INC R1MOV A,R1MOVC A,A+DPTRMOV R4,A ;第4字節(jié)送R4RET ;*;* 自動更新農歷 *;*GENGXIN: MOV R2,#00HMOV R3,#00HMOV A,MONTHCJNE A,#01H,GM2MOV R0,DAY ;當前月為1月LCALL BCD_10 ;當前日轉換為十進制,送R2MOV A,R0MOV R2,AAJMP TIAOZHENG1GM2: CJNE A,#02H,GM3M
47、OV R0,DAY ;當前月為2月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加31送R2ADD A,#31MOV R2,AAJMP TIAOZHENG1GM3: CJNE A,#03H,GM4MOV R0,DAY ;當前月為3月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加59送R2ADD A,#59MOV R2,AAJMP TIAOZHENG1GM4: CJNE A,#04H,GM5MOV R0,DAY ;當前月為4月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加90送R2ADD A,#90MOV R2,AAJMP T
48、IAOZHENG1GM5: CJNE A,#05H,GM6MOV R0,DAY ;當前月為5月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加120送R2ADD A,#120MOV R2,AAJMP TIAOZHENG1GM6: CJNE A,#06H,GM7MOV R0,DAY ;當前月為6月LCALL BCD_10;當前日轉換為十進制MOV A,R0 ;再加151送R2ADD A,#151MOV R2,AAJMP TIAOZHENG1GM7: CJNE A,#07H,GM8MOV R0,DAY ;當前月為7月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加181送R2ADD A,#181MOV R2,AAJMP TIAOZHENG1GM8: CJNE A,#08H,GM9MOV R0,DAY ;當前月為8月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加212送R2ADD A,#212MOV R2,AAJMP TIAOZHENG1GM9: CJNE A,#09H,GM10MOV R0,DAY ;當前月為9月LCALL BCD_10 ;當前日轉換為十進制MOV A,R0 ;再加243CLR CADD A,#243JC GGGMOV R2,A ;A沒溢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度合作社新能源技術研發(fā)合作協議
- 2025年度互聯網企業(yè)股權質押風險控制協議范本
- 2025-2031年中國婦科炎癥外用藥行業(yè)發(fā)展全景監(jiān)測及投資前景展望報告
- 2025年教育機構教育信息化產品銷售合同
- 2025氫能源項目可行性研究報告
- 2025年六氟化硫高壓斷路器項目可行性研究報告
- 2025年電爐配料加料系統(tǒng)項目投資可行性研究分析報告
- 微課題研究的特點與發(fā)展趨勢
- 2025年連機線項目投資可行性研究分析報告
- 2025年度智能倉儲監(jiān)控系統(tǒng)采購合同文本
- DB31-T 1375-2022 辦公樓物業(yè)企業(yè)安全生產管理實施指南
- 蒸汽換算計算表
- 人教版高中數學必修1全冊導學案
- 四年級計算題大全(列豎式計算,可打印)
- GB/T 5782-2016六角頭螺栓
- 婦產科正常分娩課件
- 產業(yè)鏈鏈長分工表
- 國際金融課件(完整版)
- 導向標識系統(tǒng)設計(一)課件
- 220t鍋爐課程設計 李學玉
- 全英文劇本 《劇院魅影》
評論
0/150
提交評論