基于單片機(jī)的萬年歷設(shè)計(jì)_第1頁
基于單片機(jī)的萬年歷設(shè)計(jì)_第2頁
基于單片機(jī)的萬年歷設(shè)計(jì)_第3頁
基于單片機(jī)的萬年歷設(shè)計(jì)_第4頁
基于單片機(jī)的萬年歷設(shè)計(jì)_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、物理與電子工程學(xué)院2011級(jí)本科課程設(shè)計(jì)摘 要電子萬年歷是一種非常廣泛的日常計(jì)時(shí)工具,它不僅能夠?qū)r(shí)間技術(shù),還能夠?qū)θ掌?、溫度、濕度等進(jìn)行顯示,所以在現(xiàn)代社會(huì)受到廣泛應(yīng)用。 本設(shè)計(jì)是一個(gè)基于AT89C51單片機(jī)的多功能日歷顯示系統(tǒng),本設(shè)計(jì)能顯示公歷年、月、日,以及時(shí)、分、秒、溫度、星期等信息,而且還具有日期調(diào)整、時(shí)間校準(zhǔn)以及溫度采集等功能。系統(tǒng)所用的時(shí)鐘日歷芯片DS1302和數(shù)字式溫度傳感器DS18B20具有高性能、低功耗、接口簡單的特點(diǎn),使本系統(tǒng)電路簡化,編程方便,同時(shí)功能也很強(qiáng)。采用AT89C51單片機(jī)的萬年歷系統(tǒng)可以很好的改善傳統(tǒng)采用模擬電路引起的計(jì)時(shí)不準(zhǔn)確,不可靠,一致性差等問題。本文

2、設(shè)計(jì)是用單片機(jī)為主控制,通過電路仿真而實(shí)現(xiàn)的。在Proteus7軟件繪制硬件電路原理圖,用Keil軟件進(jìn)行編程與調(diào)試,最終生成hex文件,載入單片機(jī),從而實(shí)現(xiàn)仿真效果。本文設(shè)計(jì)經(jīng)過最終調(diào)試,能夠正確顯示年、月、日、周、時(shí)、分、秒以及溫度等所需信息,并能正常使用對(duì)日期與時(shí)間的調(diào)整與校正功能。系統(tǒng)使用1602LCD液晶屏顯示信息,界面簡潔、直觀、易于操作。關(guān)鍵詞:萬年歷;單片機(jī);AT89C51;DS1302;DS18B200 目 錄1 引言11.1研究的目的和意義11.2本系統(tǒng)主要研究的內(nèi)容12 系統(tǒng)方案論證22.1控制部分的選擇方案與論證22.2顯示部分的選擇方案與論證22.3時(shí)鐘芯片的選擇方案

3、與論證22.4溫度傳感器的選擇方案與論證32.5電路設(shè)計(jì)最終方案系統(tǒng)原理及總體結(jié)構(gòu)圖33 系統(tǒng)設(shè)計(jì)43.1 系統(tǒng)硬件仿真原理圖43.2 單片機(jī)89C51控制模塊的設(shè)計(jì)43.3 LCD液晶顯示模塊設(shè)計(jì)73.4 DS1302時(shí)鐘模塊的設(shè)計(jì)93.5 DS18B20溫度采集模塊的設(shè)計(jì)124 系統(tǒng)調(diào)試154.1硬件調(diào)試154.2軟件調(diào)試155 結(jié)論15參 考 文 獻(xiàn)16附 錄17VI 1 引言 人類的日常生活離不開時(shí)間,任何具有周期變化的自然現(xiàn)象都可用來測(cè)量時(shí)間。而現(xiàn)在人們?nèi)粘I钪袕V泛使用的是機(jī)械表、電子表、電子中等。隨著科技的發(fā)展,電子技術(shù)和計(jì)算機(jī)應(yīng)用領(lǐng)域不斷擴(kuò)大,特別是單片機(jī)的出現(xiàn),是近代計(jì)算機(jī)技

4、術(shù)發(fā)展史上的一個(gè)重要里程碑?;趩纹瑱C(jī)的萬年歷結(jié)合了時(shí)鐘和日立的功能,將其二者融為一體,在現(xiàn)實(shí)時(shí)間的同時(shí)還能顯示日期和年月,它主要通過單片機(jī)來讀取時(shí)鐘芯片的時(shí)間、日期,然后送給顯示設(shè)備顯示出來。本系統(tǒng)的萬年歷除了顯示年月日外還能準(zhǔn)確顯示溫度它所處環(huán)境的溫度。本設(shè)計(jì)采用的測(cè)溫元件是美國DALLAS半導(dǎo)體公司生產(chǎn)的一種智能溫度傳感器DS18B21,測(cè)溫范圍為-55125C,最高分辨率達(dá)到0.0625C。1.1研究的目的和意義隨著電子技術(shù)的迅速發(fā)展,特別是大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的變化,尤其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬戶。近年來,我國科技不斷發(fā)展,我國經(jīng)濟(jì)發(fā)展的支柱產(chǎn)業(yè)電

5、子產(chǎn)業(yè)獲得長足發(fā)展,各種電子產(chǎn)品琳瑯滿目,隨處可見,隨著電子產(chǎn)品的更新速度的加快,各種功能強(qiáng)大,款式新穎的電子產(chǎn)品不斷問世。 萬年歷便是這一發(fā)展趨勢(shì)中的代表,萬年歷則順應(yīng)了人們對(duì)時(shí)間方面的要求。它的出現(xiàn)給人們的生活帶來的諸多方便,在時(shí)間極顯寶貴的現(xiàn)代生活中,起作用更是不言而喻的。他在學(xué)校、車站、碼頭、劇院、醫(yī)院、辦公室等公共場(chǎng)所的應(yīng)用非常廣泛。但傳統(tǒng)的萬年歷除了顯示時(shí)間之外,功能較為單一,逐漸失去了市場(chǎng)。順應(yīng)技術(shù)發(fā)展和人們生產(chǎn)生活需求,各種功能的新式萬年歷不斷涌現(xiàn),且功能不斷更新。 萬年歷作為電子類的小產(chǎn)品以其方便、實(shí)用等優(yōu)勢(shì)成為市場(chǎng)上的寵兒,同時(shí)也成為單片機(jī)設(shè)計(jì)培訓(xùn)中一個(gè)很實(shí)用的課題。因?yàn)檫@

6、個(gè)課題有很好的開發(fā)性和可發(fā)揮性,因此對(duì)設(shè)計(jì)者的要求比較高,不僅考察了隊(duì)單片機(jī)的掌握能力更加強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的應(yīng)用。而且要求設(shè)計(jì)的萬年歷在操作上力求簡潔,功能上盡量齊全,顯示界面也要出色。所以萬年歷不論從實(shí)用角度還是培養(yǎng)能力角度都很有價(jià)值。1.2本系統(tǒng)主要研究的內(nèi)容本系統(tǒng)的主要研究內(nèi)容是:(1)選用電子萬年歷芯片時(shí),應(yīng)重點(diǎn)考慮功能實(shí)在、使用方便、單片存儲(chǔ)、低功耗、抗斷電的器件。(2)根據(jù)選用的電子萬年歷芯片設(shè)計(jì)外圍電路和單片機(jī)的接口電路。(3)在硬件設(shè)計(jì)時(shí),結(jié)構(gòu)要盡量簡單實(shí)用,易于實(shí)現(xiàn),是系統(tǒng)電路盡量簡單。(4)根據(jù)硬件電路,編寫控制AT89C51芯片的單片機(jī)程序。(5)通過編程、編譯、調(diào)試,

7、把程序下載到單片機(jī)上運(yùn)行,并實(shí)現(xiàn)本設(shè)計(jì)的功能。2 系統(tǒng)方案論證2.1控制部分的選擇方案與論證方案一:用可編程邏輯器件設(shè)計(jì)可采用PLD器件,設(shè)計(jì)起來結(jié)構(gòu)清晰,各個(gè)模塊從硬件上設(shè)計(jì)起來相對(duì)簡單,控制與顯示的模塊間連接也會(huì)比較方便。但是考慮到本設(shè)計(jì)的特點(diǎn),EDA在能夠擴(kuò)展上比較受局限,占用的資源也多。從成本上講,可編程邏輯器件價(jià)格比較高。方案二:用單片機(jī)設(shè)計(jì)用單片機(jī)芯片作為控制部分,單片機(jī)有豐富的中斷源,它的準(zhǔn)確度相當(dāng)高,并且C語言的靈活運(yùn)用,給編程帶來了方便。單片機(jī)I/O功能也比較強(qiáng)大,容易對(duì)其進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善,此外單片機(jī)的成本也比較低。綜上所述,資源豐富,程序編寫也靈活簡單,可移植性強(qiáng),

8、性價(jià)比也高,所以選擇作為主控芯片。2.2顯示部分的選擇方案與論證方案一:采用點(diǎn)陣式數(shù)碼管顯示點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較合適,但是基于電子萬年歷主要是顯示數(shù)字,就顯得太浪費(fèi)了,且價(jià)格相對(duì)較高。方案二:采用LCD液晶顯示屏LCD液晶顯示屏的顯示功能特別強(qiáng)大,可以顯示大量文字、圖形,顯示多樣清晰可見,使得萬年歷的內(nèi)容更加豐富,加上動(dòng)態(tài)顯示效果,更加吸引觀眾的眼球。2.3時(shí)鐘芯片的選擇方案與論證方案一:直接采用單片機(jī)定時(shí)計(jì)數(shù)器直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供時(shí)間單位秒,使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)時(shí)間誤差

9、較大,而且不具有實(shí)時(shí)性,必須用到斷電存貯資料,否則一斷電,時(shí)鐘就不會(huì)準(zhǔn)確,誤差太大。方案二:采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘DS1302時(shí)鐘芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、時(shí)、分、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高的RAM作為數(shù)據(jù)暫存區(qū),工作電壓2.5V5.5V范圍內(nèi),2.5V時(shí)耗電小于300mA。此外可以外接電池,具有實(shí)時(shí)性,斷電后時(shí)間還會(huì)走,比較精準(zhǔn)。2.4溫度傳感器的選擇方案與論證方案一:使用熱敏電阻作為傳感器用熱敏電阻與一個(gè)相應(yīng)該阻值相串聯(lián)分壓,用熱敏電阻隨溫度變化的特性,采集這兩個(gè)電阻變化的分壓值,并用A/D轉(zhuǎn)換。此設(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且

10、熱敏電阻的溫性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大測(cè)量誤差。 方案二:采用數(shù)字式溫度傳感器DS18B20此類傳感器為數(shù)字式傳感器,而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以去除A/D模塊,降低硬件成本,簡化系統(tǒng)電路,測(cè)量溫度精度高。2.5電路設(shè)計(jì)最終方案系統(tǒng)原理及總體結(jié)構(gòu)圖本系統(tǒng)包括主控模塊,顯示模塊,時(shí)鐘模塊,溫度采集模塊,綜上各方案所述,電路設(shè)計(jì)最終方案:采用作為主控制系統(tǒng),1602LCD液晶作為顯示部分,DS1302作為時(shí)鐘模塊,DS18B20傳感器來采集溫度信息。根據(jù)上述電路設(shè)計(jì)最終方案,系統(tǒng)總體設(shè)計(jì)方案如圖2-1所示設(shè)計(jì)的電路主要由四大模塊構(gòu)成:溫度傳感器電路,單片機(jī)控制電

11、路,顯示電路以及校正電路。圖2-1 系統(tǒng)總體結(jié)構(gòu)圖當(dāng)溫度傳感器接受到外面的信號(hào),送入單片機(jī),單片機(jī)將接受到的信號(hào)輸出,讓它在液晶上顯示。同時(shí)由單片機(jī)控制的萬年歷以及時(shí)間顯示,當(dāng)時(shí)間及秒計(jì)數(shù)計(jì)滿60時(shí)就向分進(jìn)位,分計(jì)數(shù)器計(jì)滿60分后向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按“24翻1”規(guī)律計(jì)數(shù)。時(shí)、分、秒的計(jì)數(shù)結(jié)果經(jīng)過數(shù)據(jù)處理可直接送顯示器顯示。當(dāng)計(jì)時(shí)發(fā)生誤差的時(shí)候可以用校時(shí)電路進(jìn)行校正。時(shí)計(jì)數(shù)器計(jì)滿24小時(shí)后自動(dòng)向日計(jì)數(shù)器進(jìn)一,日計(jì)數(shù)器由平年、閏年的28/30/31對(duì)大、小月和二月的判斷應(yīng)與當(dāng)月相應(yīng)的日期相一致,當(dāng)日計(jì)數(shù)器計(jì)滿時(shí),向月計(jì)數(shù)器進(jìn)位,月計(jì)數(shù)器計(jì)滿12月向年計(jì)數(shù)器進(jìn)位,當(dāng)年計(jì)數(shù)器計(jì)滿100時(shí)所以計(jì)

12、數(shù)器清零。設(shè)計(jì)采用的是年、月、日和時(shí)、分、星期顯示,所以在單片機(jī)通過對(duì)數(shù)據(jù)處理進(jìn)行同時(shí)在液晶上顯示。3 系統(tǒng)設(shè)計(jì)3.1 系統(tǒng)硬件仿真原理圖 本次設(shè)計(jì)是在Proteus軟件繪制的硬件圖,如下圖3-1所示圖3-1 硬件仿真原理圖3.2 單片機(jī)89C51控制模塊的設(shè)計(jì) AT89C51是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機(jī),片內(nèi)含4KB的可反復(fù)擦除的只讀程序存儲(chǔ)器(PEROM)和128B隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn)兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和FLASH存儲(chǔ)單元,功能強(qiáng)大AT89C51單片機(jī)可

13、為您提供許多高性價(jià)比的應(yīng)用場(chǎng)合。主要性能參數(shù):與MCS-51產(chǎn)品指令系統(tǒng)完全兼容4K字節(jié)可重擦寫FLASH閃速存儲(chǔ)器1000次擦寫周期全靜態(tài)操作:0HZ-24MHZ三級(jí)加密程序存儲(chǔ)器1288字節(jié)內(nèi)部RAM32個(gè)可編程I/O口線2個(gè)16位定時(shí)/計(jì)數(shù)器6個(gè)中斷源可編程串行UART通道 圖3-2 AT89C51 引腳封裝圖芯片引腳介紹: (1)主電源引腳 VCC:+5 V電源 VSS:地線。 (2)時(shí)鐘電路引腳XTAL1和XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。 (3)控制信號(hào)引腳 RST/VPD:復(fù)位信號(hào)。當(dāng)

14、輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用以完成單片機(jī)的復(fù)位初始化操作;當(dāng)單片機(jī)掉電時(shí),此引腳上可接備用電源,由VPD向片內(nèi)RAM提供備用電源,一保持片內(nèi)RAM中的數(shù)據(jù)不丟失。 ALE/PROG:地址鎖存控制信號(hào)。在系統(tǒng)擴(kuò)展時(shí),ALE用于控制把P0口輸出的低8位地址鎖存起來,以實(shí)現(xiàn)低位地址和數(shù)據(jù)的隔離。此外,由于ALE是以晶振1/6的固定頻率輸出的正脈沖,因此,可作為外部時(shí)鐘或外部定時(shí)脈沖使用。 對(duì)于EPROM型單片機(jī),在EPRAM編程期間,此引腳接收編程脈沖。 PSEN:片外程序存儲(chǔ)器讀選通信號(hào)輸出端。 EA/VPP:訪問程序存儲(chǔ)控制信號(hào)。當(dāng)EA信號(hào)為低電平時(shí),對(duì)ROM的讀操作

15、限定在外部程序存儲(chǔ)器;當(dāng)EA信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延至外部程序存儲(chǔ)器。對(duì)于EPROM型單片機(jī),在EPRAM編程期間,此引腳接上加21V EPROM編程電源VPP。 (4)I/O引腳P0.0 P0.7: P0口8位雙向口線,P1.0 P1.7 :P1口8位雙向口線,P2.0 P2.7 :P2口8位雙向口線,P3.0 P3.7 :P3口8位雙向口線。 P3口線的第二功能。P3的8條口線都定義有第二功能,詳見表3-21。表3-1 P3口各引腳與第二功能表引腳第二功能信號(hào)名稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2INT0外部中斷0申請(qǐng)P3.3

16、INT1外部中斷1申請(qǐng)P3.4T0定時(shí)/計(jì)數(shù)器0的外部輸入P3.5T1定時(shí)/計(jì)數(shù)器1的外部輸入P3.6WR外部RAM寫選通P3.7RD外部RAM讀選通以上把8051單片機(jī)的全部信號(hào)引腳分別以第一功能和第二功能的形式列出。對(duì)于各種型號(hào)的芯片,其引腳的第一功能信號(hào)是相同的,所不同的只在引腳的第二功能信號(hào)。對(duì)于9、30和31三個(gè)引腳,由于第一功能信號(hào)與第二功能信號(hào)是單片機(jī)在不同工作方式下的信號(hào),因此不會(huì)發(fā)生使用上的矛盾。但是P3口的情況卻有所不同,它的第二功能信號(hào)都是單片機(jī)的重要控制信號(hào)。因此,在實(shí)際使用時(shí),都是先按需要選用第二功能信號(hào),剩下的才以第一功能的身份作數(shù)據(jù)位的輸入/輸出使用。圖3-3 單

17、片機(jī)控制模塊3.3 LCD液晶顯示模塊設(shè)計(jì) 顯示模塊主要是用來顯示公歷年、月、日以及時(shí)、分、秒、溫度、星期等信息。LCD智能型顯示模塊則是一種低功耗、低價(jià)值、低損耗的顯示器件,它不但可以顯示各式各樣的字符、漢子和圖形,同時(shí)具有可編程能力,且與單片機(jī)接口方便,基于以上優(yōu)點(diǎn),LCD智能型顯示模塊獲得了廣泛的應(yīng)用。1602LCD點(diǎn)陣液晶顯示模塊是由16*2個(gè)液晶顯示點(diǎn)組成的一個(gè)16列*2行的陣列。每個(gè)顯示點(diǎn)對(duì)應(yīng)一位二進(jìn)制數(shù),1表示亮,0表示滅。存儲(chǔ)這些點(diǎn)陣信息的RAM稱為顯示數(shù)據(jù)存儲(chǔ)器,要顯示某個(gè)圖形或漢字就是將相應(yīng)的點(diǎn)陣信息寫入到相應(yīng)的存儲(chǔ)單元中。圖形或漢字的點(diǎn)陣信息當(dāng)然有自己設(shè)計(jì),問題的關(guān)鍵就是

18、顯示點(diǎn)在液晶屏上的位置(行或列)與其在存儲(chǔ)器中的地址之間的關(guān)系。每個(gè)存儲(chǔ)單元存儲(chǔ)8個(gè)液晶點(diǎn)的顯示信息。下面是關(guān)于1602LCD液晶相關(guān)信息:(1)引腳說明如下表所示表3-2 1602LCD引腳說明 引腳符號(hào)功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。4RSRS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。5R/WR/W為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。6EE(或EN)端為使能(enable)端

19、,下降沿使能。7DB0底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8DB1底4位三態(tài)、 雙向數(shù)據(jù)總線 1位9DB2底4位三態(tài)、 雙向數(shù)據(jù)總線 2位10DB3底4位三態(tài)、 雙向數(shù)據(jù)總線 3位11DB4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12DB5高4位三態(tài)、 雙向數(shù)據(jù)總線 5位13DB6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14DB7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)15BLA背光電源正極16BLK背光 電源負(fù)極請(qǐng)?jiān)贒B0DB7數(shù)據(jù)線中加入10K上拉電阻,特別是使用單片機(jī)中的三態(tài)I/O口時(shí)。 V0需要一個(gè)外部的0V10V負(fù)壓輸入,是液晶顯示,可串入電位器調(diào)整液晶灰度。(2)

20、 下面為1602LCD的指令集表:表3-3 1602LCD指令集3.4 DS1302時(shí)鐘模塊的設(shè)計(jì)DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶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ù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時(shí)提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。 DS1302的引腳

21、排列其中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是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程

22、中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK為時(shí)鐘輸入端。 下圖為DS1302的引腳功能圖:圖3-4 DS1302的引腳功能圖 DS1302的控制字節(jié) DS1302 的控制字如表3-4所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操

23、作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。表3-4 DS1302的控制字格式 DS1302數(shù)據(jù)的輸入輸出在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。圖3-5 DS1302讀寫時(shí)序圖 DS1302的寄存器DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見下表。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的

24、寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0HFDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。表3-5 DS1302的日歷、時(shí)鐘寄存器及其控制字寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分鐘寄存器82H83H00-59010MINMIN小時(shí)寄存器84H85H01- 12

25、或00-2312/24010APHRHR日期寄存器86H87H01-28,29,30,310010DATEDATE月份寄存器88H89H01-12000IOMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR DS1302時(shí)鐘芯片與AT89C51的連接圖如下:圖3-6 DS1302時(shí)鐘芯片與AT89C51的連接圖3.5 DS18B20溫度采集模塊的設(shè)計(jì)采用數(shù)字式溫度傳感器DS18B20,有DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事領(lǐng)域的溫度測(cè)量及控

26、制儀器、測(cè)量系統(tǒng)和大型設(shè)備中。(1)DS18B20的性能特點(diǎn)可歸納如下:1)獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通信;2)DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫;3)DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);4)測(cè)溫范圍55125,在-10+85時(shí)精度為±0.5;5)可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫;6)在9位分辨率時(shí)最多在 93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時(shí)最多在750ms內(nèi)把溫度值轉(zhuǎn)換

27、為數(shù)字,速度更快;7)測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),以"一 線總線"串行傳送給CPU,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力;8)負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。 (2)電路設(shè)計(jì)如下圖所示。采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡單等特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用AT89C51單片機(jī)芯片的P2.7端口與DS18B20的I/O口連接,加一個(gè)上拉電阻,Vcc接電源,Vss接地。圖3-7 DS18B20溫度采集(3)DS18B20工作時(shí)序1.復(fù)位時(shí)序圖圖3-8 復(fù)位時(shí)序圖2

28、.讀時(shí)序圖圖3-9 讀時(shí)序圖3.寫時(shí)序圖圖3-10 寫時(shí)序圖4 系統(tǒng)調(diào)試4.1硬件調(diào)試硬件調(diào)試是測(cè)試焊接完成后的成品的硬件電路的功能,發(fā)現(xiàn)及排除相關(guān)故障,主要包括主控芯片的調(diào)試以及各模塊電路的調(diào)試。由于本次設(shè)計(jì)僅僅處于軟件仿真階段,并沒有去設(shè)計(jì)焊接電路,故該部分略。在不久的畢業(yè)設(shè)計(jì)論文中一定會(huì)完善該部分。4.2軟件調(diào)試本設(shè)計(jì)的軟件編譯是在Keil uVision4上進(jìn)行的,此軟件可以生成HEX文件用于下載到單片機(jī)上工作。生成HEX文件后可以在PROTEUS上進(jìn)行仿真調(diào)試。5 結(jié)論經(jīng)過將近三周的時(shí)間,課程設(shè)計(jì)終于完成了,心里頓時(shí)輕松不少,這段時(shí)間經(jīng)歷了從茫然不知從哪里下手到收集資料,小組討論,有

29、了些頭緒再到理出思路,開始設(shè)計(jì)各部分電路,再到調(diào)試解決各個(gè)問題,期間經(jīng)過老師的指導(dǎo)又修改電路,最后完成整個(gè)電路設(shè)計(jì),心情也跟著起起伏伏,有調(diào)試成功的喜悅,有試了好多次卻不知道哪兒出了問題的迷惑,也有突然有了新想法想嘗試的沖動(dòng),總之,從畏懼漸漸喜歡上了設(shè)計(jì),從設(shè)計(jì)中學(xué)到了好多實(shí)用的知識(shí)。參 考 文 獻(xiàn)1 蔡美琴等.MCS-51系列單片機(jī)系統(tǒng)極其應(yīng)用.北京:高等教育出版社,20042 林伸茂.8051單片機(jī)徹底研究實(shí)習(xí)篇.北京:人民郵電出版社,20043 胡學(xué)海.單片機(jī)原理極其應(yīng)用系統(tǒng)設(shè)計(jì).北京:電子工業(yè)出版社,2005 4 張毅剛.單片機(jī)原理極其應(yīng)用.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004 5

30、韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:機(jī)械工業(yè)出版社,2005 6 舒懷林.單片機(jī)原理與接口技術(shù).武漢:華中科技大學(xué)出版社,2001 附 錄課程設(shè)計(jì)中的程序如下:#include<reg52.h> #include <intrins.h>#include "SoundPlay.h"#define uchar unsigned char#define uint unsigned intsbit SCK=P36; /時(shí)鐘 sbit SDA=P34; /數(shù)據(jù) sbit RST=P35; / DS1302復(fù)位sbit lcdrs=P26;sbit lcdrw=

31、P25;sbit lcden=P27;sbit key1=P10; /開調(diào)時(shí)鍵sbit key2=P11; /調(diào)時(shí)加鍵sbit key3=P12; /調(diào)時(shí)減鍵sbit key4=P13; /開設(shè)定鬧鈴鍵sbit key5=P14; /返回正常顯示鍵sbit key6=P15; /鬧鈴開關(guān)鍵sbit DQ=P37; /溫度傳感器數(shù)據(jù)通信位sbit beep = P21; /蜂鳴器控制IO口sbit led1 = P20; /led燈,鬧鈴響標(biāo)志bit ReadRTC_Flag,Display_Flag,Alarm_Flag,flag; /定義標(biāo)志位uchar miao,fen,shi,ri,yu

32、e,week,nian,T,C=0,k=0,m=0,n=0;uchar set_miao,set_fen,set_shi,set_ri,set_yue,set_nian,TempBuffer5,temp_value;char l_tmpdate7=0x50,0x08,0x011,0x07,0x10,0x01,0x12;/設(shè)置初始時(shí)間,秒分時(shí)日月周年12-10-07 01:08:50uchar code write_rtc_address7=0x80,0x82,0x84,0x86,0x88,0x8a,0x8c; /秒分時(shí)日月周年 最低位寫位uchar code read_rtc_address7

33、=0x81,0x83,0x85,0x87,0x89,0x8b,0x8d; /秒分時(shí)日月周年 最低位讀位 uchar code table1="SUN" /星期字表uchar code table2="MON"uchar code table3="TUE"uchar code table4="WED"uchar code table5="THU"uchar code table6="FRI"uchar code table7="SAT"uchar code

34、tab1="20 - - "uchar code tab2=" : :"uchar code tab314=" Set Alarm! "char tab4=0,0,12;/兩只蝴蝶unsigned char code Music_Two = 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0

35、x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x15,0x03, 0x16,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x17,0x03, 0x16,0x03

36、, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x01, 0x19,0x03, 0x1A,0x03, 0x19,0x03, 0x17,0x01, 0x16,0x03, 0x16,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0x03, 0

37、x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x03, 0x16,0x0D, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19

38、,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x17,0x0D, 0x16,0x03, 0x17,0x03, 0x19,0x01, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03, 0x17,0x0D, 0x16,0x

39、03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10,0x03, 0x17,0x0D, 0x16,0x03, 0x16,0x01, 0x17,0x03, 0x19,0x03, 0x19,0x03, 0x17,0x03, 0x19,0x03, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04,

40、 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 ;/*/* 函數(shù)聲明 */*/ void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(uchar dat);void ReadTemp(void);void temp_to_str(); /溫度數(shù)據(jù)轉(zhuǎn)換成液晶字符顯示vo

41、id Write_Ds1302_byte(uchar temp); void Write_Ds1302( uchar address,uchar dat );uchar Read_Ds1302 ( uchar address );void Read_RTC(void); void Set_RTC(void); void delay(uchar a);void delay1(uchar a);void di();void lcd_mang();void write_lcd1602(uchar cmd,uchar i);void ini_lcd1602();void write_week(ucha

42、r xq);void write_nyr(uchar add,uchar dat);void write_sfm(uchar add,uchar dat);void display();void keyscan();void alarm();/*/* 主函數(shù) */*/void main(void) ini_lcd1602(); Init_DS18B20(); Set_RTC(); /寫入時(shí)鐘值,如果使用備用電池時(shí)候,不需要沒每次上電寫入,此程序應(yīng)該屏蔽 while(1) ReadTemp(); temp_to_str(); keyscan(); if(ReadRTC_Flag=0) Read_

43、RTC(); if(Display_Flag=0) display(); if(flag=1) alarm(); /*/* 毫秒級(jí)延時(shí)函數(shù) */*/void delay(uchar a) uchar i; while(a-) for(i=0;i<250;i+) _nop_(); _nop_(); _nop_(); _nop_(); void delay1(uchar a) uchar i; while(a-) for(i=0;i<5;i+) /*/* 蜂鳴器發(fā)聲函數(shù) */*/void di() uchar i; while(key1=0|key2=0|key3=0|key4=0|key5=0|key6=0) for(i=0;i<50;i+) delay1(4); beep=beep; /*/* ds18b20延遲子函數(shù)(晶振12MHz) */*/void delay_18B20(unsigned int i) w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論