基于單片機(jī)的多功能電子萬(wàn)年歷的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的多功能電子萬(wàn)年歷的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的多功能電子萬(wàn)年歷的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的多功能電子萬(wàn)年歷的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的多功能電子萬(wàn)年歷的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(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ī)的多功能電子萬(wàn)年歷的設(shè)計(jì)摘 要隨著科技的快速發(fā)展,自從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀(jì)錄。本文主要介紹了基于單片機(jī)的智能電子萬(wàn)年歷的研制,該萬(wàn)年歷能夠?qū)崟r(shí)顯示公歷年、月、日、時(shí)、分、秒,以及對(duì)應(yīng)的農(nóng)歷日期、24節(jié)氣、天干地支、鬧鈴功能,同時(shí)還能夠?qū)崟r(shí)測(cè)取環(huán)境溫度。本系統(tǒng)的硬件部分主要由avr單片機(jī)、時(shí)鐘芯片、溫度傳感器等部件組成,文中給出了詳細(xì)的硬件設(shè)計(jì)實(shí)現(xiàn)及相關(guān)電路圖;軟件部分主要包含公歷轉(zhuǎn)農(nóng)歷的算法設(shè)計(jì)模塊、顯示模塊、時(shí)間的讀取、溫度的檢測(cè)模塊,按鍵的掃描輸入模塊等,文中給出了系統(tǒng)的軟件程序流程圖及各功能模塊的軟件程序清單,最后介紹了整體系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)、仿真及調(diào)

2、試過(guò)程,給出了下一步的改進(jìn)方案等。關(guān)鍵詞:?jiǎn)纹瑱C(jī);液晶技術(shù);萬(wàn)年歷;時(shí)鐘芯片design of multifunctional digital perpetual calendar based on mcuabstractwith the development of technology,since the concept of the sun, baizhong, andnow the electronic bell,human beings continue to study and constant innovation record。this paper-based microcon

3、troller development of intelligent electronic calendar, the calendar can display real-time in the calendar year, month, day, hours, minutes and seconds,a nd the correspond ing date of the lunar new year, 24 solar terms,at the same time also to real-time measurement from the ambient temperature,in ad

4、dition to the user through the keyboard input years of history,for the correspond ing period of the lunar.the system hardware from some of the major avr microcontroller, a number of digital control, decoder, the clock chip,temperature sensors and other components,the paper gives a detailed design an

5、d implementation of hardware and related circuit;software contains some of the major lunar calendar to the algorithm design module,dynamic digital display modules,time to read,temperature detection module,press enter the scanning module.in this paper, the system software modules and flow chart of th

6、e list of software programs,finally, the realization of the overall system design, simulation and debugging process, the next step is the improvement programmes.keywords:mcu;crystal technology;calendar;clock chip目錄引言1第1章 緒論2 1.1 課題的背景與意義2 1.2 數(shù)字萬(wàn)年歷的現(xiàn)狀與發(fā)展2 1.3 論文的主要工作及章節(jié)安排3 1.4 本章小結(jié)3第2章 方案論證比較 4 2.1

7、多功能數(shù)字萬(wàn)年歷系統(tǒng)概述 42.2計(jì)時(shí)方案42.3溫度檢測(cè)方案52.4顯示方案5 2.5本章小結(jié)5第3章 系統(tǒng)硬件設(shè)計(jì)63.1 主控制器atmega16 單片機(jī)介紹63.2 時(shí)鐘電路ds130263.3 溫度檢測(cè)ds18b2073.4 動(dòng)態(tài)顯示83.5 鍵盤(pán)接口83.6 語(yǔ)音鬧鈴模塊83.7 電源設(shè)計(jì)9 3.8本章小結(jié)11第4章 系統(tǒng)軟件設(shè)計(jì)124.1 公歷計(jì)算顯示程序設(shè)計(jì)134.1.1 ds1302 內(nèi)部寄存器134.1.2 時(shí)間讀取程序設(shè)計(jì)154.2 農(nóng)歷轉(zhuǎn)換程序設(shè)計(jì)164.2.1 公歷轉(zhuǎn)農(nóng)歷算法研究164.2.2 干支紀(jì)年簡(jiǎn)介184.2.3 公歷轉(zhuǎn)農(nóng)歷程序184.3 溫度測(cè)量程序設(shè)計(jì)20

8、4.3.1 ds18b20 的測(cè)溫原理204.3.2 溫度程序214.4 二十四節(jié)氣算法研究234.5系統(tǒng)仿真24 4.6本章小結(jié)25結(jié)論與展望26致謝27參考文獻(xiàn)28附錄 a 電子萬(wàn)年歷原理圖29附錄 b 外文文獻(xiàn)與譯文30英文原文:30中文譯文:33附錄 c 參考文獻(xiàn)題錄及摘要35附錄d 電子萬(wàn)年歷源程序37插圖清單圖2-1 數(shù)字萬(wàn)年歷系統(tǒng)框圖4圖3-1 ds1302與atmega16連接圖7圖3-2 ds18b20與atmega16連接圖8圖3-3 報(bào)時(shí)電路9圖3-4 穩(wěn)壓電源原理圖10圖3-5 電源電路10圖4-1 系統(tǒng)程序流程圖13圖4-2 公歷程序流程圖14圖4-3 ds18b20

9、測(cè)溫原理21表格清單表3-1 lcd12864顯示內(nèi)容8表4-1 ds1302的寄存器及其控制字14表4-2 rs位配置15- 51 -引言人類的日常生活離不開(kāi)時(shí)間,任何具有周期性變化的自然現(xiàn)象都可以用來(lái)測(cè)量時(shí) 間。遠(yuǎn)古時(shí)代的中國(guó)人通過(guò)觀測(cè)日影的位置以確定當(dāng)時(shí)的時(shí)辰或刻數(shù),發(fā)明了古老的計(jì) 時(shí)工具日晷。日晷雖然只由一根晷針和刻有刻線的晷面組成,但是它確利用了復(fù)雜的天 體運(yùn)動(dòng)規(guī)律,這反映了我國(guó)古代勞動(dòng)人民的智慧。隨著科技的進(jìn)步以及中西文化的交融 , 希臘人根據(jù)水流從一個(gè)容器滴漏到另一個(gè)容器的數(shù)量來(lái)計(jì)量時(shí)間從而發(fā)明了滴漏,在當(dāng) 時(shí)得到了普遍的應(yīng)用。到十四世紀(jì),簡(jiǎn)易的機(jī)械鐘開(kāi)始在歐洲流行,1656 年

10、出現(xiàn)了有擺 的座鐘。它是以伽利略發(fā)現(xiàn)的擺動(dòng)具有規(guī)則性這個(gè)原理為基礎(chǔ)而發(fā)明的。自此以后人類 掌握了比較精確的計(jì)時(shí)工具,并不斷改進(jìn)計(jì)時(shí)方法?,F(xiàn)在人們?nèi)粘I钪袕V泛使用的是 機(jī)械表、電子表、電子鐘等。對(duì)于日以上的時(shí)間系統(tǒng)計(jì)量與安排則屬于歷法范疇,歷法在我們幾千年的華夏文明 中占有重要的地位,中華子孫繁衍生息,最早就是依靠耕種為主的農(nóng)業(yè),那時(shí)人們是日 出而作、日落而息。后來(lái)經(jīng)過(guò)長(zhǎng)期的經(jīng)驗(yàn)積累,掌握了太陽(yáng)的變化,發(fā)現(xiàn)年、月、日都 直接與天體運(yùn)行周期相關(guān)。因此,人們就把四季更迭的周期定為年,把月亮盈虧變化的 周期定為月。一回歸年 365.2422 日,一朔望月為 29.5306 日,它們既不是月的整數(shù)倍,

11、 也不是日的整數(shù)倍,使用起來(lái)很不方便。因此在人為規(guī)定歷法中的年和月都是整數(shù)日, 這種整數(shù)日的年和月,稱為歷年和歷月。這就是早期的歷法,根據(jù)春夏秋冬的季節(jié)變化 及天干地支時(shí)間為依據(jù),來(lái)確定什么時(shí)候應(yīng)該耕種,什么時(shí)間該收獲,這些歷法一直延 續(xù)了幾千年,這是在世界上也是首屈一指的。現(xiàn)在人們?nèi)粘I钪袕V泛使用的有日歷和 掛歷等。以上介紹的記錄時(shí)間的鐘表和記錄年、月、日的掛歷都只具有某一方面的功能,比 如鐘表只能記錄時(shí)間,即便是比較先進(jìn)的鐘表頂多也只能多一個(gè)記錄日期的功能;掛歷 也只能記錄日期而不能記錄時(shí)間。隨著科技的發(fā)展,電子技術(shù)和計(jì)算機(jī)應(yīng)用領(lǐng)域不斷擴(kuò) 大,特別是單片機(jī)的出現(xiàn),是近代計(jì)算機(jī)技術(shù)發(fā)展史上

12、的一個(gè)重要里程碑,因?yàn)閱纹瑱C(jī) 的誕生標(biāo)志著計(jì)算機(jī)正式形成了通用計(jì)算機(jī)系統(tǒng)和嵌入式計(jì)算機(jī)系統(tǒng)兩大分支。單片機(jī) 單芯片的微小體積和低的成本,可廣泛地嵌入到如玩具、家用電器、機(jī)器人、儀器儀表 、 汽車電子系統(tǒng)、工業(yè)控制單元、辦公自動(dòng)化設(shè)備、金融電子系統(tǒng)、艦船、個(gè)人信息終端 及通訊產(chǎn)品中,成為現(xiàn)代電子系統(tǒng)中最重要的智能化工具,于是基于單片機(jī)的醒目而時(shí) 尚的電子版萬(wàn)年歷順應(yīng)而生?;趩纹瑱C(jī)的電子萬(wàn)年歷結(jié)合了時(shí)鐘和日歷的功能,將其二者融為一體,在顯示時(shí)間的同時(shí)還能顯示日期和年、月,它主要是通過(guò)單片機(jī)來(lái)讀取時(shí)鐘芯片的時(shí)間、日期,然后送給顯示設(shè)備顯示出來(lái)。本文設(shè)計(jì)的數(shù)字萬(wàn)年歷與普通萬(wàn)年歷相比具有一下特點(diǎn):1.

13、除了能顯示通用的公歷外還能顯示我國(guó)的農(nóng)歷,除了能顯示農(nóng)歷的日、月外還能顯示農(nóng)歷的年號(hào)、節(jié)氣。它是根據(jù)單片機(jī)讀取到的時(shí)鐘芯片的日期計(jì)算出農(nóng)歷的日期、年號(hào)和節(jié)氣,然后通過(guò)單片機(jī)的i/o口直接送給液晶顯示屏,通過(guò)軟件程序來(lái)控制顯示內(nèi)容; 2.能查詢1921年2月8日至2100年2月8日間任意一天的公歷和農(nóng)歷的對(duì)應(yīng)關(guān)系;3.能實(shí)時(shí)準(zhǔn)確顯示它所處環(huán)境的溫度。本設(shè)計(jì)所采用的測(cè)溫元件是美國(guó)dallas半導(dǎo)體公司生產(chǎn)的一種智能溫度傳感器ds18b20,測(cè)溫范圍為55125,最高分辨率達(dá)到0.0625;4.能實(shí)現(xiàn)多點(diǎn)定時(shí)并且語(yǔ)音報(bào)時(shí)。第1章 緒論1.1 課題的背景與意義隨著電子技術(shù)的迅速發(fā)展,特別是大規(guī)模集成電

14、路出現(xiàn),給人類生活帶來(lái)了根本性的改變,尤其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶。近年來(lái),我國(guó)科技的不斷發(fā)展,我國(guó)經(jīng)濟(jì)發(fā)展的支柱產(chǎn)業(yè)電子產(chǎn)業(yè)獲得長(zhǎng)足發(fā)展,各種電子產(chǎn)品琳瑯滿目,隨處可見(jiàn),隨著電子產(chǎn)品的更新速度的加快,各種功能強(qiáng)大,款式新穎的電子產(chǎn)品不斷問(wèn)世。數(shù)字萬(wàn)年歷便是這一發(fā)展趨勢(shì)中的代表,數(shù)字萬(wàn)年歷則順應(yīng)了人們對(duì)時(shí)間方面的要求。它的出現(xiàn)給人們的生活帶來(lái)的諸多方便,在時(shí)間極顯寶貴的現(xiàn)代生活中,其作用更是不言而喻。它在學(xué)校、車站、碼頭、劇院、醫(yī)院、辦公室等公共場(chǎng)所的應(yīng)用非常廣泛。但傳統(tǒng)的數(shù)字萬(wàn)年歷除顯示時(shí)間之外,功能較為單一,逐漸失去了市場(chǎng)。順應(yīng)技術(shù)發(fā)展和人們生產(chǎn)、生活需求,各種功能的新式萬(wàn)

15、年歷不斷涌現(xiàn),且功能不斷更新。數(shù)字萬(wàn)年歷作為電子類的小產(chǎn)品以其方便、實(shí)用等優(yōu)勢(shì)成為市場(chǎng)上的寵兒,同時(shí)也成為單片機(jī)設(shè)計(jì)培訓(xùn)中一個(gè)很實(shí)用的課題。因?yàn)檫@個(gè)課題有很好的的開(kāi)發(fā)性和可發(fā)揮性,因此對(duì)設(shè)計(jì)者的要求比較高,不僅考察了對(duì)單片機(jī)的掌握能力更加強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的應(yīng)用。而且要求設(shè)計(jì)的數(shù)字萬(wàn)年歷在操作上力求簡(jiǎn)潔,功能上盡量齊全,顯示界面也要出色。所以數(shù)字萬(wàn)年歷無(wú)論從實(shí)用的角度和培養(yǎng)能力的角度都很有價(jià)值。1.2 數(shù)字萬(wàn)年歷的現(xiàn)狀與發(fā)展當(dāng)前,數(shù)字萬(wàn)年歷技術(shù)已經(jīng)進(jìn)入了優(yōu)化人-家庭 -環(huán)境的整體關(guān)系的階段,它向著超微型、超高效以及集成電路的微型化方向發(fā)展,并為數(shù)字萬(wàn)年歷上的集中控制提供了基礎(chǔ)。目前,市場(chǎng)上出售

16、的數(shù)字萬(wàn)年歷品種很多,其中大部分是基于單片機(jī)技術(shù)設(shè)計(jì)的電子系統(tǒng)。它們一般由輸入脈沖電路、單片機(jī)、晶振和復(fù)位電路、外部存儲(chǔ)器電路和led顯示電路組成。當(dāng)今,數(shù)字萬(wàn)年歷主要還是用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)、定時(shí)、日期查詢以及自動(dòng)控制等方面。由于單片機(jī)技術(shù)以及數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使得如今的數(shù)字萬(wàn)年歷系統(tǒng)具有體積小、耗電省、計(jì)時(shí)準(zhǔn)確、性能穩(wěn)定、維護(hù)方便、走時(shí)準(zhǔn)確、攜帶方便等優(yōu)點(diǎn),此外,現(xiàn)在市場(chǎng)上已有現(xiàn)成的數(shù)字萬(wàn)年歷集成電路芯片出售,而且價(jià)格便宜、使用也很方便。日歷的發(fā)展經(jīng)歷了數(shù)千年的歷史?,F(xiàn)代日歷隨著使用范圍的不斷擴(kuò)大,功能日益增加,種類也越來(lái)越多。從70年代以來(lái),隨著單片機(jī)和超大規(guī)模

17、集成電路的發(fā)展,為數(shù)字萬(wàn)年歷的飛速發(fā)展奠定了物質(zhì)基礎(chǔ)。近幾年來(lái),數(shù)字萬(wàn)年歷的發(fā)展方向是朝著走時(shí)精度高、穩(wěn)定性好、使用方便、耗電量小、走時(shí)延續(xù)時(shí)間長(zhǎng)、體積小、功能多、制造成本低等方向發(fā)展。最新的數(shù)字萬(wàn)年歷,它除了具有常見(jiàn)萬(wàn)年歷功能外,而且還具有倒計(jì)時(shí)、多點(diǎn)定時(shí)、語(yǔ)音報(bào)時(shí)、實(shí)時(shí)溫度測(cè)量等功能。在硬件方面它并沒(méi)有太大的變化,主要是通過(guò)增加軟件部分來(lái)實(shí)現(xiàn)倒計(jì)時(shí)、多點(diǎn)定時(shí)的功能。 不難想像,隨著科學(xué)技術(shù)的飛速發(fā)展, 各種高新技術(shù)的出現(xiàn)并被廣泛應(yīng)用到生產(chǎn)、生活中,未來(lái)數(shù)字萬(wàn)年歷產(chǎn)品也必將沿著體積小、耗電省、計(jì)時(shí)準(zhǔn)確、性能穩(wěn)定、維護(hù)方便、走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等方向發(fā)展而其成本卻越來(lái)越低。1.3 論文

18、的主要工作及章節(jié)安排論文主要圍繞對(duì)數(shù)字萬(wàn)年歷系統(tǒng)的設(shè)計(jì)為主線展開(kāi),主要包括復(fù)位電路設(shè)計(jì)、時(shí)鐘電路設(shè)計(jì)、按鍵電路設(shè)計(jì)、實(shí)時(shí)控制電路設(shè)計(jì)、報(bào)時(shí)電路設(shè)計(jì)、數(shù)字萬(wàn)年歷顯示電路設(shè)計(jì)等硬件電路的設(shè)計(jì)以及為實(shí)現(xiàn)其各項(xiàng)功能而編寫(xiě)的軟件程序設(shè)計(jì)等。論文具體章節(jié)的安排如下:第一章:闡述本課題的背景與意義,并對(duì)數(shù)字萬(wàn)年歷系統(tǒng)的現(xiàn)狀與發(fā)展展開(kāi)了敘述,以及按章節(jié)具體介紹了論文所需要完成的工作。第二章:介紹了本套系統(tǒng)的組成,并討論了本套數(shù)字萬(wàn)年歷系統(tǒng)的幾種方案設(shè)計(jì)以及主要電路的方案設(shè)計(jì)與比較,從而從理論上得出了本套系統(tǒng)最合理的方案設(shè)計(jì)。第三章:介紹了本套系統(tǒng)的各硬件模塊設(shè)計(jì),提出了幾種基本硬件電路的設(shè)計(jì)。第四章:介紹了數(shù)

19、字萬(wàn)年歷系統(tǒng)的軟件設(shè)計(jì)以及如何讀取ds1302時(shí)間以及公歷與農(nóng)歷如何轉(zhuǎn)換等。1.4 本章小結(jié) 本章首先講述了本文的選題來(lái)源及研究意義,然后講述了數(shù)字萬(wàn)年歷系統(tǒng)在國(guó)內(nèi)外的發(fā)展過(guò)程及當(dāng)前現(xiàn)狀,其中敘述了數(shù)字萬(wàn)年歷系統(tǒng)的優(yōu)點(diǎn),最后根據(jù)論文需要研究的主要內(nèi)容,對(duì)課題的來(lái)源與所要完成的工作做了進(jìn)一步的交代。第2章 方案論證比較2.1 多功能數(shù)字萬(wàn)年歷系統(tǒng)概述本設(shè)計(jì)是利用鍵盤(pán)模塊進(jìn)行輸入控制,將控制指令傳送到單片機(jī),通過(guò)單片機(jī)的數(shù)據(jù)處理,配合復(fù)位電路以及時(shí)鐘電路來(lái)驅(qū)動(dòng)lcd顯示和鬧鈴音樂(lè),從而實(shí)現(xiàn)該數(shù)字萬(wàn)年歷的各項(xiàng)功能。單片機(jī)是整個(gè)系統(tǒng)的核心,它既是協(xié)調(diào)整機(jī)工作的控制器,又是數(shù)據(jù)處理器,avr公司的meg

20、a系列能完成本系統(tǒng)所要求的所有功能,所以選用單片機(jī)atmega16;時(shí)鐘芯片采用dallas公司的ds1302涓流充電時(shí)鐘芯片;按鍵電路擬采用四個(gè)按鍵,分別實(shí)現(xiàn)校時(shí)、定時(shí)功能,并且定時(shí)時(shí)間到可報(bào)時(shí);顯示電路采用12864點(diǎn)陣字符液晶顯示器;語(yǔ)音系統(tǒng)是提示用戶系統(tǒng)的實(shí)時(shí)狀態(tài)或?qū)ο到y(tǒng)進(jìn)行操作,語(yǔ)音電路可提供整點(diǎn)報(bào)時(shí)、鬧鈴等功能,本系統(tǒng)選用簡(jiǎn)單的蜂鳴器來(lái)完成。系統(tǒng)整體設(shè)計(jì)框圖如圖 2-1 所示:圖 2-1 系統(tǒng)總體框圖2.2 計(jì)時(shí)方案時(shí)鐘是本電子萬(wàn)年歷最主要的部分,根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案完全用軟件實(shí)現(xiàn)走時(shí),原理為:利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn) 1 秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器

21、內(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),但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高,而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘 將不工作。方案二:采用 dallas 公司的專用時(shí)鐘芯片 ds1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于 10ms/年,可直接讀取時(shí)間、日期,使得軟件編程相對(duì)簡(jiǎn)單。而 且 ds1302 可以在很小電流的后備電源(2.5v-5.5v,在2.5v 時(shí)耗電小于 300na)

22、下繼續(xù)計(jì)時(shí),時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作。基于時(shí)鐘芯片的上述優(yōu)點(diǎn),本電子萬(wàn)年歷設(shè)計(jì)采用方案二完成時(shí)鐘的功能。2.3 溫度檢測(cè)方案方案一:采用傳統(tǒng)的方法,測(cè)溫元件用熱電偶或熱電阻,但它們測(cè)出的一般都是電 壓,再轉(zhuǎn)換成對(duì)應(yīng)的溫度,需要比較多的外部硬件支持,電路復(fù)雜,軟件調(diào)試復(fù)雜,制 作成本高。方案二:用一種智能傳感器 ds18b20 作為檢測(cè)元件,測(cè)溫范圍-55125,分辨 率最大可達(dá) 0.0625。ds18b20 可以直接讀出被測(cè)溫度值,而且采用 3 線制與單片機(jī)相 連,減少了外部硬件電路,具有低成本和易使用的特點(diǎn)?;?ds18b20 的上述優(yōu)點(diǎn),本電子萬(wàn)年歷的測(cè)溫設(shè)計(jì)

23、采用方案二完成溫度的檢測(cè)。2.4 顯示方案方案一:采用數(shù)字萬(wàn)年歷顯示。數(shù)字萬(wàn)年歷亮度高、體積小、重量輕,但其顯示信息簡(jiǎn)單、有限,在本題目中應(yīng)用受到很大的限制。 方案二:采用液晶顯示。液晶顯示功耗低,輕便防震。采用液晶顯示界面友好清晰,操作方便,顯示信息豐富。能使成品具有美觀與人性化等特點(diǎn),故采用此方案。2.5 本章小結(jié) 章本章主要圍繞電子萬(wàn)年歷這一整套系統(tǒng)為主線展開(kāi),首先講述了電子萬(wàn)年歷的組成,然后介紹了計(jì)時(shí)方案、溫度檢測(cè)方案和顯示方案的論證比較,選擇最優(yōu)方案。 第三章 系統(tǒng)硬件設(shè)計(jì)本系統(tǒng)以單片機(jī)為核心控制器,包含了時(shí)鐘芯片的接口、鍵盤(pán)接口、溫度檢測(cè)接口以及液晶顯示輸出接口,因此在硬件設(shè)計(jì)中合

24、理分配單片機(jī)的輸入輸出端口尤為重要,通過(guò)綜合比較市場(chǎng)上的元器件的價(jià)格以及分析單片機(jī)的i/o 口數(shù)量,本系統(tǒng)最終選擇了avr 單片機(jī)中的 mega16 型,設(shè)計(jì)的硬件電路圖見(jiàn)附錄2,其單片機(jī)的i/o的分配如下:11個(gè)i/o口用于液晶顯示,4個(gè)i/o口用于按鍵輸入,3個(gè) i/o 口用于時(shí)鐘芯片,1個(gè) i/o口用于溫度檢測(cè),1個(gè)i/o口用于聲音輸出,單片機(jī)的20個(gè)i/o口充分利用。下面從系統(tǒng)硬件的各個(gè)組成部分一一做介紹。3.1 主控制器 atmega16 單片機(jī)介紹atmega16帶有16k字節(jié)的系統(tǒng)內(nèi)可編程flash(具有同時(shí)讀寫(xiě)的能力,即rww),512字 節(jié)的eeprom,1k字節(jié)的sram,

25、32個(gè)通用i/o口線,32個(gè)通用工作寄存器,用于邊界掃描 的jtag 接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器(t/c), 片內(nèi)/外中斷,可編程串行usart,有起始條件檢測(cè)器的通用串行接口,8路10位具有可 選差分輸入級(jí)可編程增益(tqfp 封裝)的adc,具有片內(nèi)振蕩器的可編程看門(mén)狗定時(shí)器,一個(gè)spi串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。工作于空閑模式時(shí)cpu 停止工作,而usart、兩線接口、a/d轉(zhuǎn)換器、sram、t/c、spi端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時(shí)晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位之外都停止工作;在省電模式下,異步定時(shí)器繼

26、續(xù)運(yùn)行,允許用戶保持一個(gè)時(shí)間基準(zhǔn),而其余功能模塊處于休眠狀態(tài);adc噪聲抑制模式時(shí)終止cpu和除了異步定時(shí)器與adc以外所有i/o模塊的工作,以降低adc轉(zhuǎn)換時(shí)的開(kāi)關(guān)噪聲;standby 模式下只有晶體或諧振振蕩器運(yùn)行,其余功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時(shí)具有快速啟動(dòng)能力;擴(kuò)展 standby 模式下則允許振蕩器和異步定時(shí)器繼續(xù)工作。該芯片是以atmel高密度非易失性存儲(chǔ)器技術(shù)生產(chǎn)的。片內(nèi)isp flash允許程序存儲(chǔ)器通過(guò)isp 串行接口,或者通用編程器進(jìn)行編程,也可以通過(guò)運(yùn)行于avr內(nèi)核之中的引 導(dǎo)程序進(jìn)行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用 flash存

27、儲(chǔ)區(qū) (application flash memory)。在更新應(yīng)用 flash存儲(chǔ)區(qū)時(shí)引導(dǎo) flash區(qū)(boot flash memory)的程序繼續(xù)運(yùn)行,實(shí)現(xiàn)了rww操作。通過(guò)將8位risc cpu與系統(tǒng)內(nèi)可編程的flash集成在一個(gè)芯片內(nèi),atmega16成為一個(gè)功能強(qiáng)大的單片機(jī),為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。3.2 時(shí)鐘電路 ds1302本系統(tǒng)時(shí)鐘芯片選擇了ds1302芯片,該芯片是dallas 公司推出的涓流充電時(shí)鐘 芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)ram,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行 通信實(shí)。時(shí)鐘/日歷電路提供秒、分、時(shí)、日、日期、月、年的信息

28、,每月的天數(shù)和閏 年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)am/pm 指示決定采用24或12小時(shí)格式。ds1302與 單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信僅需用到三個(gè)口線:(1)res(復(fù)位);(2)i/o( 數(shù) 據(jù) 線 );(3)sclk(串行時(shí)鐘)。時(shí)鐘/ram的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信。ds1302由ds1202改進(jìn)而來(lái),有主電源、后備電源雙電源引 腳:vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;vcc2在 雙電源系統(tǒng)中提供主電源。在這種運(yùn)用方式中,vcc1連接到后備電源,以便在沒(méi)有主電 源的情況下能保存 時(shí)間信息以 及數(shù)據(jù)。 ds

29、1302由vcc1或vcc2中較大者供電。當(dāng) vcc2(vcc1+0.2v)時(shí),vcc2給ds1302供電;當(dāng) vcc2vcc1時(shí),ds1302由vcc1供電。ds1302 工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mw。ds1302與atmega16的接口電路圖如圖3-1所示:圖 3-1ds1302 與 atmega16 的接口電路圖3.3 溫度檢測(cè) ds18b20隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),溫度自動(dòng)檢測(cè)和顯示系統(tǒng)在很多領(lǐng)域得到廣泛應(yīng)用,傳統(tǒng)的溫度檢測(cè)元件如熱敏電阻、ad590,雖然成本低,但因其后續(xù)處理電路復(fù)雜、可靠性相對(duì)較差、測(cè)量準(zhǔn)確度低,因此逐步被新型溫度傳

30、感器所代替,本萬(wàn)年歷采用了美國(guó) dal-las公司最新推出的 ds18b20數(shù)字式溫度傳感器 ,并由 ds18b20和atmega16組成了室溫測(cè)量系統(tǒng),可根據(jù)實(shí)際需要任意設(shè)定溫度值,并進(jìn)行自動(dòng)控制。ds18b20 是美國(guó)dallas 公司繼ds18b20 之后推出的增強(qiáng)型單總線數(shù)字式溫度傳感 器,它在轉(zhuǎn)換速度、轉(zhuǎn)換時(shí)間、傳輸距離、分辨率等方面較ds18b20 有了很大的改進(jìn),給 用戶帶來(lái)了更方便、更令人滿意的效果。18b20與atmega16的接口電路如圖3-2所示:圖 3-2 18b20與 atmega16 的接口電路圖3.4 液晶顯示液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),現(xiàn)

31、在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件,功能介紹:lcd12864-12(黃色背光)是一款具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ascii字符集。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示84行1616點(diǎn)陣的漢字. 也可完成圖形顯示。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略

32、低于相同點(diǎn)陣的圖形液晶模塊。擬顯示內(nèi)容如表3-1所示。 表3-1 lcd12864畫(huà)面1顯示內(nèi)容20090601星期一己丑年五月初九芒種19:25:0829.1度3.5 鍵盤(pán)接口按鍵輸入部分主要用于時(shí)間調(diào)整、定時(shí)設(shè)置、鬧鐘設(shè)置以及查詢公歷某日對(duì)應(yīng)的農(nóng)歷日期,最終確定由四個(gè)按鍵來(lái)實(shí)現(xiàn)上敘功能,由于按鍵比較少,所以用普通按鈕接在 i/o 口,啟用 i/o 口的內(nèi)部上拉電阻,用查詢法完成讀鍵功能。3.6 語(yǔ)音鬧鈴模塊報(bào)時(shí)是本套數(shù)字萬(wàn)年歷的一個(gè)重要功能,報(bào)時(shí)器可用蜂鳴器和揚(yáng)聲器來(lái)實(shí)現(xiàn),本次設(shè)計(jì)采用蜂鳴器實(shí)現(xiàn)鬧鈴報(bào)時(shí),蜂鳴器俗稱喇叭,是一種一體化結(jié)構(gòu)的電子訊響器,它是目前被廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印

33、機(jī)、報(bào)警器、電話機(jī)等各種電子產(chǎn)品中的一種元器件。它可用于提示、報(bào)警、音樂(lè)等許多應(yīng)用場(chǎng)合。蜂鳴器發(fā)聲原理是接通電源后,振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,蜂鳴器與家用電器上面的喇叭在用法上也有相似的地方,通常工作電流比較大,因此需要一定的電流才能驅(qū)動(dòng)它。由于單片機(jī)i/o引腳輸出的電流較小,所以單片機(jī)輸出的ttl電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路。本次設(shè)計(jì)采用了一個(gè)很簡(jiǎn)單的電路來(lái)實(shí)現(xiàn)蜂鳴器的連接,利用一個(gè)三極管來(lái)放大驅(qū)動(dòng)蜂鳴器,電路連接如圖3-3所示。在本設(shè)計(jì)電路中,設(shè)計(jì)者采用pnp管9012來(lái)做為控制蜂鳴器的開(kāi)關(guān),由圖3-3可以看出當(dāng)

34、pd6引腳為高電平時(shí),pnp管截止,蜂鳴器不工作;當(dāng)pd6引腳為低電平時(shí),pnp管導(dǎo)通,蜂鳴器工作,其中r2為限流電阻。采用pnp管9012的作用是為了防止系統(tǒng)上電時(shí)峰鳴器發(fā)出聲音,因?yàn)橄到y(tǒng)復(fù)位以后,i/o口輸出的是高電平。用戶可以通過(guò)程序控制pd6管腳的置低和置高來(lái)使蜂鳴器發(fā)出聲音和關(guān)閉,同時(shí),蜂鳴器的聲音大小及音調(diào)可以通過(guò)調(diào)整pd6管腳的置高時(shí)間及輸出的波形進(jìn)行控制,這一點(diǎn)可以在調(diào)試程序的時(shí)候來(lái)實(shí)現(xiàn)。 圖3-3 報(bào)時(shí)電路3.7 電源的設(shè)計(jì)電源部分的設(shè)計(jì)目的就是為各個(gè)硬件提供工作電源。單片機(jī)atmega16芯片,顯示電路等都采用5v電源供電。具體的方案是用w7805集成穩(wěn)壓電源提供+5v的電

35、壓供給單片機(jī)。其原理是(以+5v為例介紹)用交流電220v通過(guò)變壓器變壓,變?yōu)榻涣鞯?v電壓,再經(jīng)過(guò)整流變?yōu)橹绷麟姾螅俳右粋€(gè)w7805使其轉(zhuǎn)換為所需的直流電作為外接電源。集成穩(wěn)壓電源又稱三端集成穩(wěn)壓器,它是指將功率調(diào)整管、取樣電阻、基準(zhǔn)電壓、誤差放大、啟動(dòng)及保護(hù)電路等全部集成在一塊芯片上,具有特定輸出電壓的穩(wěn)壓集成電路。三端是指電壓輸入端、電壓輸出端和公共接地端。這類穩(wěn)壓器的輸出為固定電壓。國(guó)內(nèi)外廠家均將此系列穩(wěn)壓器命名為78系列,如7805、7812等。其中“78”后面的數(shù)字代表該穩(wěn)壓器輸出的正電壓數(shù)值,以伏特為單位。例如7805即表示穩(wěn)壓輸出為5v,7812表示穩(wěn)壓輸出為12v等。有時(shí)我

36、們會(huì)發(fā)現(xiàn)型號(hào)78前面和后面還有一個(gè)或幾個(gè)英文字母,如w78、an78、l78cv等。前面的字母稱“前綴”,一般是各生產(chǎn)廠(公司)的代號(hào);后面的字母稱“后綴”用以表示輸出電壓容差和封裝外殼的類型。穩(wěn)壓電源由電源變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分組成,如圖3-4所示圖3-4 穩(wěn)壓電源原理圖電源變壓器的作用是將來(lái)自電網(wǎng)的220v交流電壓ui變換為整流電路所需要的交流電壓u1。在穩(wěn)壓電源中一般用四個(gè)二極管組成橋式整流電路,整流電路的作用是將交流電壓u2變換成脈動(dòng)的直流電壓u3。由于輸入電壓u3發(fā)生波動(dòng)、負(fù)載和溫度發(fā)生變化時(shí),濾波電路輸出的直流電壓u3會(huì)隨著變化。因此,為了維持輸出電壓u0穩(wěn)定

37、不變,還需加一級(jí)穩(wěn)壓電路。穩(wěn)壓電源是單片機(jī)系統(tǒng)的重要組成部分,它不僅為系統(tǒng)提供多路電壓源,還直接影響到系統(tǒng)的技術(shù)指標(biāo)和抗干擾性能。一個(gè)穩(wěn)壓電源輸出電壓和最大輸出電流決定于所選三端穩(wěn)壓器。在本次設(shè)計(jì)中采用+5v電壓所以選用h7805穩(wěn)壓器。它的主要特點(diǎn)如下:1.輸出電流可達(dá)1a 2.輸出電壓有:5v 3.過(guò)熱保護(hù) 4.短路保護(hù) 5.輸出晶體管soa保護(hù)光靠一個(gè)穩(wěn)壓器還不行,還需要有電容或電阻與其連接才能得到較穩(wěn)定的+5v電壓。220v電壓必須經(jīng)過(guò)整流才可接到穩(wěn)壓器的輸入端,則整個(gè)電源電路可分整流、濾波、穩(wěn)壓三部分。電路圖如圖3-5所示。圖3-5 電源電路整流部分為橋式整流電路,其橋式整流電路的工

38、作原理如下:e為正半周時(shí),對(duì)d1、d3加正向電壓,dl,d3導(dǎo)通;對(duì)d2、d4加反向電壓,d2、d4截止。電路中構(gòu)成e、dl、后接負(fù)載、d3通電回路,在后接負(fù)載上形成上正下負(fù)的半波整洗電壓,e為負(fù)半周時(shí),對(duì)d2、d4加正向電壓,d2、d4導(dǎo)通;對(duì)d1、d3加反向電壓,d1、d3截止。電路中構(gòu)成e、d2、d4通電回路,同樣在后接負(fù)載上形成上正下負(fù)的另外半波的整流電壓。如此重復(fù)下去,結(jié)果在后接負(fù)載上便得到全波整流電壓。從圖2-6中還不難看出,橋式電路中每只二極管承受的反向電壓等于變壓器次級(jí)電壓的最大值,比全波整流電路小一半。濾波部分為帶極性的電容,如圖3-5中電容e2即為濾波電容其值取2200uf

39、。穩(wěn)壓部分接三端穩(wěn)壓集成芯片h7805,能輸出5v穩(wěn)壓電源,電容c0來(lái)抵消輸入線較長(zhǎng)時(shí)的電感效應(yīng),以防止電路產(chǎn)生自激振蕩,其容量較小,一般小于1uf。用e3消除輸出電壓中的高頻噪聲,并有濾波的作用。另外,二極管d5起保護(hù)作用。3.8本章小結(jié)本章主要介紹的是硬件結(jié)構(gòu)設(shè)計(jì),以單片機(jī)為核心控制器,介紹了主控制器atmega16 單片機(jī)、時(shí)鐘電路 ds1302、溫度檢測(cè) ds18b20、鍵盤(pán)接口硬件電路、顯示電路、語(yǔ)音電路以及電源電路等的設(shè)計(jì)。第4章 系統(tǒng)軟件設(shè)計(jì)本系統(tǒng)的軟件部分主要要進(jìn)行公歷計(jì)算程序設(shè)計(jì),公歷轉(zhuǎn)農(nóng)歷的算法的研究,溫度 測(cè)量程序設(shè)計(jì),按鍵的掃描輸入等。程序開(kāi)始運(yùn)行后首先要進(jìn)行初始化,把

40、單片機(jī)的各引腳的狀態(tài)按程序里面的初始化命令進(jìn)行初始化,初始化完成后運(yùn)行溫度測(cè)量程序,讀取出溫度傳感器測(cè)量出來(lái)的溫度,然后運(yùn)行公歷計(jì)算程序,得到公歷的時(shí)間、日期信息 , 再運(yùn)行按鍵掃描程序,檢測(cè)有無(wú)按鍵按下,如果沒(méi)有按鍵按下則直接調(diào)用公歷轉(zhuǎn)農(nóng)歷程 序,根據(jù)得到的公歷日期信息計(jì)算出農(nóng)歷的日期和年號(hào),如果有按鍵按下則更新按鍵修 改后的變量后送給農(nóng)歷計(jì)算程序,由農(nóng)歷計(jì)算程序根據(jù)修改后的變量計(jì)算出對(duì)應(yīng)的農(nóng)歷 年份,計(jì)算完成后運(yùn)行顯示程序,顯示程序?qū)⒌玫降臏囟葦?shù)據(jù)、公歷信息、農(nóng)歷信息送給對(duì)應(yīng)的數(shù)碼管讓其顯示。系統(tǒng)總體程序流程圖如圖所示:圖4-1 系統(tǒng)整體流程圖4.1 公歷計(jì)算顯示程序設(shè)計(jì)本系統(tǒng)使用的是時(shí)鐘

41、芯片 ds1302,公歷程序主要完成從 ds1302 各個(gè)寄存器中讀出 年、周、月、日、時(shí)、分、秒等數(shù)據(jù),再進(jìn)行處理。在首次對(duì) ds1302 進(jìn)行操作前,必 須對(duì)它進(jìn)行初始化,然后從 ds1302 中讀出數(shù)據(jù),再經(jīng)過(guò)處理后,送給液晶屏顯示。公歷程序流程圖如圖 4-2 所示:圖 4-2 公歷計(jì)算程序流程圖4.1.1 ds1302內(nèi)部寄存器ds1302共有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd 碼形式。其日歷、時(shí)間寄存器及其控制字見(jiàn)表4-1。表4-1 ds1302的日歷、時(shí)鐘寄存器及其控制字寄存器名命令字取值范圍各位內(nèi)容寫(xiě)操作讀操作76543210秒寄存器80h81h

42、00-59ch10secsec分寄存器82h83h00-59010minmin小時(shí)寄存器84h85h01-12或00-2312/24010/aphrhr日期寄存器86h87h00-28、29、30、310010datadata月份寄存器88h89h01-1200010mmonth周寄存器8ah8bh01-0700000day年寄存器8ch8dh00-9910yearyear注:本數(shù)據(jù)均來(lái)自ds1302操作說(shuō)明書(shū)。此外,ds1302還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。ds1302與ram相關(guān)

43、的寄存器分為兩類,一類是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為cohfdh,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫(xiě)所有的ram的31個(gè)字節(jié),命令控制字為feh(寫(xiě))、 ffh(讀)。ch:時(shí)鐘停止位寄存器2 的第7 位12/24 小時(shí)標(biāo)志 ch=0 振蕩器工作允許bit7=1,12 小時(shí)模式ch=1 振蕩器停止bit7=0,24 小時(shí)模式wp:寫(xiě)保護(hù)位寄存器2 的第5 位:am/pm定義 wp=0 寄存器數(shù)據(jù)能夠?qū)懭隺p=1 下午模式wp=1 寄存器數(shù)據(jù)不能寫(xiě)入ap=0 上午模式 tcs:涓流充電選擇ds:二極管選

44、擇位 tcs=1010 使能涓流充電ds=01 選擇一個(gè)二極管 tcs=其它 禁止涓流充電ds=10 選擇兩個(gè)二極管 ds=00 或11, 即使tcs=1010, 充電功能也被禁止表4-2rs位配置表rs位電阻典型位00沒(méi)有沒(méi)有01r12k10r24k11r38k注:數(shù)據(jù)來(lái)源于ds1302操作說(shuō)明書(shū)。4.1.2 時(shí)間讀取程序設(shè)計(jì)本系統(tǒng)的時(shí)間讀取主要來(lái)源于單片機(jī)對(duì)ds1302的操作,在硬件上ds1302與單片機(jī)的 連接需要三條線,即sclk(7)、i/o(6)、rst(5),具體連接圖見(jiàn)系統(tǒng)硬件設(shè)計(jì)部分圖2-1, ds1302與atmega16的連接圖。在軟件上的操作可分為以下幾個(gè)步驟:(1)初

45、始化ds1302:#asm.equ ds1302_port=0x18 ;portb.equ ds1302_io=5.equ ds1302_sclk=4.equ ds1302_rst=6#endasm/定義 ds1302 所使用的 i/o 口void rtc_init(unsigned char tc_on,unsigned char diodes,unsigned char res)res&=3;if (tc_on) res|=0xa0;if (diodes=1) res|=4;else if (diodes=2) res|=8; else res=0; ds1302_write(0x8e,0

46、); ds1302_write(0x90,res); ds1302_write(0x8e,0x80);該函數(shù)的主要功能是設(shè)置是否使用涓流充電,復(fù)位 ds1302,發(fā)控制命令,允許寫(xiě) ds1302。(2)讀取時(shí)間和日期。ds1302 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位 msb(d7)必須為邏輯 1,如果 d7=0,則禁止寫(xiě) ds1302,即寫(xiě)保護(hù);d6=0,指定時(shí)鐘數(shù)據(jù),d6=1,指定 ram 數(shù)據(jù);d5d1 指定輸入或輸出的特定寄存器;最低位 lsb(d0)為邏輯 0,指定寫(xiě)操作(輸入),d0=1,指定讀操作(輸出)。void rtc_get_time(

47、unsigned char *hour,unsigned char *min,unsigned char *sec)*hour=bcd2bin(ds1302_read(0x85);*min=bcd2bin(ds1302_read(0x83);*sec=bcd2bin(ds1302_read(0x81);該函數(shù)的主要功能是讀取 ds1302 的時(shí)間,讀取小時(shí)、分鐘、秒鐘的具體值。void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char*year)*date=bcd2bin(ds1302_read(0x87);

48、*month=bcd2bin(ds1302_read(0x89);*year=bcd2bin(ds1302_read(0x8d); 該函數(shù)的主要功能是讀取 ds1302 的日期,月份和年份。(3)時(shí)間設(shè)置。在ds1302的時(shí)鐘日歷或ram進(jìn)行數(shù)據(jù)傳送時(shí),ds1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個(gè)sclk周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個(gè)sclk周期的下降沿輸出數(shù)據(jù)字節(jié)。ds1302與ram相關(guān)的寄存器分為兩類:一類是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;再一類為突發(fā)方式下

49、的ram寄存器,在此方式下可一次性讀、寫(xiě)所有的ram的31個(gè)字節(jié)。void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec) ds1302_write(0x8e,0); ds1302_write(0x84,bin2bcd(hour); ds1302_write(0x82,bin2bcd(min); ds1302_write(0x80,bin2bcd(sec); ds1302_write(0x8e,0x80);該函數(shù)的主要功能是設(shè)置 ds1302 的時(shí)間,寫(xiě)入修改的小時(shí)、分鐘、秒鐘的具體值。void rtc_

50、set_date(unsigned char date,unsigned char month,unsigned char year) ds1302_write(0x8e,0); ds1302_write(0x86,bin2bcd(date); ds1302_write(0x88,bin2bcd(month); ds1302_write(0x8c,bin2bcd(year); ds1302_write(0x8e,0x80);該函數(shù)的主要功能是設(shè)置 ds1302 的日期,月份和年份。4.2 農(nóng)歷轉(zhuǎn)換程序設(shè)計(jì)農(nóng)歷轉(zhuǎn)換程序主要是通過(guò)對(duì)當(dāng)前公歷日期的計(jì)算,得到當(dāng)前的農(nóng)歷日期。農(nóng)歷是同 時(shí)考慮太陽(yáng)和月亮

51、運(yùn)動(dòng)的歷法,它起源于夏朝,又名夏歷、中歷、舊歷,民間也有稱陰 歷的。它用嚴(yán)格的朔望周期來(lái)定月,又用設(shè)置閏月的辦法使年的平均長(zhǎng)度與回歸年相近 , 兼有陰歷月和陽(yáng)歷年的性質(zhì),因此在實(shí)質(zhì)上是一種陰陽(yáng)合歷,它采用的是干支紀(jì)年法。4.2.1 公歷轉(zhuǎn)農(nóng)歷算法研究農(nóng)歷以月為基本單位,一個(gè)月以新月出現(xiàn)的那一天為始直至下一個(gè)新月出現(xiàn)的前一天。由于月亮公轉(zhuǎn)的周期介于 29 到 30 天之間,農(nóng)歷的一個(gè)月也就由新月出現(xiàn)時(shí)刻的早晚或是29天或是30天。大月為30天,小月為29天。與公歷不同的是,大小月在不同的年中不固定。如春節(jié)的前一天常稱為大年三十,但有不少年如 2000 年的農(nóng)歷十二月 只有 29 天。由于十二個(gè)月的時(shí)間較陽(yáng)歷年即地球繞太陽(yáng)公轉(zhuǎn)一周的時(shí)間短 11 天左右, 為了使農(nóng)歷年與公歷年保持相對(duì)穩(wěn)定,每隔兩三年就需要加入一個(gè)閏月。大約每十九年 要加入七個(gè)閏月。而二十四節(jié)氣則是由地球在繞太陽(yáng)公轉(zhuǎn)的軌道上的位置確定的。以每年的冬至為始,每 15 度為一個(gè)節(jié)氣。是故二十四節(jié)氣在陽(yáng)歷的每月中有大概固定的日期。其中陽(yáng)歷下半月的十二個(gè)節(jié)氣又稱為中氣。中氣出現(xiàn)的時(shí)刻和閏月的確定有直接的關(guān)系。我國(guó)農(nóng)歷的計(jì)算有下列四條規(guī)則:(1)所有新月和節(jié)氣出現(xiàn)的時(shí)刻的計(jì)算以東經(jīng) 120 度即東八區(qū)標(biāo)準(zhǔn)時(shí)為準(zhǔn)。但計(jì)算1929 年以前的陰歷時(shí)應(yīng)以北京即東經(jīng) 116 度 25 分的當(dāng)?shù)貢r(shí)為準(zhǔn)

溫馨提示

  • 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)論