基于單片機的多功能電子萬年歷的設(shè)計_第1頁
基于單片機的多功能電子萬年歷的設(shè)計_第2頁
基于單片機的多功能電子萬年歷的設(shè)計_第3頁
基于單片機的多功能電子萬年歷的設(shè)計_第4頁
基于單片機的多功能電子萬年歷的設(shè)計_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

2、試過程,給出了下一步的改進方案等。關(guā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ù)字萬年歷的現(xiàn)狀與發(fā)展2 1.3 論文的主要工作及章節(jié)安排3 1.4 本章小結(jié)3第2章 方案論證比較 4 2.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21、內(nèi)相應的秒值加 1;若秒值達到 60,則將其清零,并 將相應的分字節(jié)值加 1;若分值達到 60,則清零分字節(jié),并將時字節(jié)值加 1;若時值達 到 24,則將十字節(jié)清零。該方案具有硬件電路簡單的特點,但由于每次執(zhí)行程序時,定時器都要重新賦初值,所以該時鐘精度不高,而且,由于是軟件實現(xiàn),當單片機不上電,程序不執(zhí)行時,時鐘 將不工作。方案二:采用 dallas 公司的專用時鐘芯片 ds1302。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于 10ms/年,可直接讀取時間、日期,使得軟件編程相對簡單。而 且 ds1302 可以在很小電流的后備電源(2.5v-5.5v,在2.5v 時耗電小于 300na)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44、擇位 tcs=1010 使能涓流充電ds=01 選擇一個二極管 tcs=其它 禁止涓流充電ds=10 選擇兩個二極管 ds=00 或11, 即使tcs=1010, 充電功能也被禁止表4-2rs位配置表rs位電阻典型位00沒有沒有01r12k10r24k11r38k注:數(shù)據(jù)來源于ds1302操作說明書。4.1.2 時間讀取程序設(shè)計本系統(tǒng)的時間讀取主要來源于單片機對ds1302的操作,在硬件上ds1302與單片機的 連接需要三條線,即sclk(7)、i/o(6)、rst(5),具體連接圖見系統(tǒng)硬件設(shè)計部分圖2-1, ds1302與atmega16的連接圖。在軟件上的操作可分為以下幾個步驟:(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è)置是否使用涓流充電,復位 ds1302,發(fā)控制命令,允許寫 ds1302。(2)讀取時間和日期。ds1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位 msb(d7)必須為邏輯 1,如果 d7=0,則禁止寫 ds1302,即寫保護;d6=0,指定時鐘數(shù)據(jù),d6=1,指定 ram 數(shù)據(jù);d5d1 指定輸入或輸出的特定寄存器;最低位 lsb(d0)為邏輯 0,指定寫操作(輸入),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 的時間,讀取小時、分鐘、秒鐘的具體值。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è)置。在ds1302的時鐘日歷或ram進行數(shù)據(jù)傳送時,ds1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個sclk周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個sclk周期的下降沿輸出數(shù)據(jù)字節(jié)。ds1302與ram相關(guān)的寄存器分為兩類:一類是單個ram單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下

49、的ram寄存器,在此方式下可一次性讀、寫所有的ram的31個字節(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 的時間,寫入修改的小時、分鐘、秒鐘的具體值。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è)計農(nóng)歷轉(zhuǎn)換程序主要是通過對當前公歷日期的計算,得到當前的農(nóng)歷日期。農(nóng)歷是同 時考慮太陽和月亮

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論