基于單片機的萬年歷課程設計報告_第1頁
基于單片機的萬年歷課程設計報告_第2頁
基于單片機的萬年歷課程設計報告_第3頁
基于單片機的萬年歷課程設計報告_第4頁
基于單片機的萬年歷課程設計報告_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的萬年歷設計課程設計摘要電子萬年歷是一種非常廣泛的日常計時工具,它不僅能夠對時間技術,還能夠對日期、溫度、濕度等進行顯示,所以在現代社會受到廣泛應用。本設計是一個基于AT89C51單片機的多功能日歷顯示系統(tǒng),本設計能顯示公歷年、月、日,以與時、分、秒、溫度、星期等信息,而且還具有日期調整、時間校準以與溫度采集等功能。系統(tǒng)所用的時鐘日歷芯片DS1302和數字式溫度傳感器DS18B20具有高性能、低功耗、接口簡單的特點,使本系統(tǒng)電路簡化,編程方便,同時功能也很強。采用AT89C51單片機的萬年歷系統(tǒng)可以很好的改善傳統(tǒng)采用模擬電路引起的計時不準確,不可靠,一致性差等問題。本文設計是用單片機

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

3、22.4溫度傳感器的選擇方案與論證32.5電路設計最終方案系統(tǒng)原理與總體結構圖33 系統(tǒng)設計43.1 系統(tǒng)硬件仿真原理圖43.2 單片機89C51控制模塊的設計43.3 LCD液晶顯示模塊設計73.4 DS1302時鐘模塊的設計93.5 DS18B20溫度采集模塊的設計124 系統(tǒng)調試154.1硬件調試154.2軟件調試155 結論15參 考 文 獻16附 錄171 引言人類的日常生活離不開時間,任何具有周期變化的自然現象都可用來測量時間。而現在人們日常生活中廣泛使用的是機械表、電子表、電子中等。隨著科技的發(fā)展,電子技術和計算機應用領域不斷擴大,特別是單片機的出現,是近代計算機技術發(fā)展史上的一

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

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

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

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

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

9、,必須用到斷電存貯資料,否則一斷電,時鐘就不會準確,誤差太大。方案二:采用DS1302時鐘芯片實現時鐘DS1302時鐘芯片是一種高性能的時鐘芯片,可自動對秒、時、分、日、周、月、年以與閏年補償的年進行計數,而且精度高的RAM作為數據暫存區(qū),工作電壓2.5V5.5V圍,2.5V時耗電小于300mA。此外可以外接電池,具有實時性,斷電后時間還會走,比較精準。2.4溫度傳感器的選擇方案與論證方案一:使用熱敏電阻作為傳感器用熱敏電阻與一個相應該阻值相串聯分壓,用熱敏電阻隨溫度變化的特性,采集這兩個電阻變化的分壓值,并用A/D轉換。此設計方案需用A/D轉換電路,增加硬件成本而且熱敏電阻的溫性曲線并不是嚴

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

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

12、、日和時、分、星期顯示,所以在單片機通過對數據處理進行同時在液晶上顯示。3 系統(tǒng)設計3.1 系統(tǒng)硬件仿真原理圖本次設計是在Proteus軟件繪制的硬件圖,如下圖3-1所示圖3-1 硬件仿真原理圖3.2 單片機89C51控制模塊的設計AT89C51是美國ATMEL公司生產的低電壓、高性能CMOS8位單片機,片含4KB的可反復擦除的只讀程序存儲器(PEROM)和128B隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產兼容標準MCS-51指令系統(tǒng),片置通用8位中央處理器(CPU)和FLASH存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應用場合。主要

13、性能參數:與MCS-51產品指令系統(tǒng)完全兼容4K字節(jié)可重擦寫FLASH閃速存儲器1000次擦寫周期全靜態(tài)操作:0HZ-24MHZ三級加密程序存儲器1288字節(jié)部RAM32個可編程I/O口線2個16位定時/計數器6個中斷源可編程串行UART通道圖3-2 AT89C51 引腳封裝圖芯片引腳介紹: (1)主電源引腳VCC:+5 V電源VSS:地線。 (2)時鐘電路引腳XTAL1和XTAL2:外接晶體引線端。當使用芯片部時鐘時,此二引線端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。 (3)控制信號引腳RST/VPD:復位信號。當輸入的復位信號延續(xù)兩個機器周期以上的高電平時即為

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

15、讀操作是從部程序存儲器開始,并可延至外部程序存儲器。對于EPROM型單片機,在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口各引腳與第二功能表引腳第二功能信號名稱P3.0RXD串行數據接收P3.1TXD串行數據發(fā)送P3.2INT0外部中斷0申請P3.3INT1外部中斷1申請P3.4T0定時/計數器0的外部輸入

16、P3.5T1定時/計數器1的外部輸入P3.6WR外部RAM寫選通P3.7RD外部RAM讀選通以上把8051單片機的全部信號引腳分別以第一功能和第二功能的形式列出。對于各種型號的芯片,其引腳的第一功能信號是一樣的,所不同的只在引腳的第二功能信號。對于9、30和31三個引腳,由于第一功能信號與第二功能信號是單片機在不同工作方式下的信號,因此不會發(fā)生使用上的矛盾。但是P3口的情況卻有所不同,它的第二功能信號都是單片機的重要控制信號。因此,在實際使用時,都是先按需要選用第二功能信號,剩下的才以第一功能的身份作數據位的輸入/輸出使用。圖3-3 單片機控制模塊3.3 LCD液晶顯示模塊設計顯示模塊主要是用

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

18、系。每個存儲單元存儲8個液晶點的顯示信息。下面是關于1602LCD液晶相關信息:(1)引腳說明如下表所示表3-2 1602LCD引腳說明引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度)。4RSRS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、 雙向數據總線 0位(最低位

19、)8DB1底4位三態(tài)、 雙向數據總線 1位9DB2底4位三態(tài)、 雙向數據總線 2位10DB3底4位三態(tài)、 雙向數據總線 3位11DB4高4位三態(tài)、 雙向數據總線 4位12DB5高4位三態(tài)、 雙向數據總線 5位13DB6高4位三態(tài)、 雙向數據總線 6位14DB7高4位三態(tài)、 雙向數據總線 7位(最高位)(也是busy flag)15BLA背光電源正極16BLK背光 電源負極請在DB0DB7數據線中加入10K上拉電阻,特別是使用單片機中的三態(tài)I/O口時。V0需要一個外部的0V10V負壓輸入,是液晶顯示,可串入電位器調整液晶灰度。(2) 下面為1602LCD的指令集表:表3-3 1602LCD指令集

20、3.4 DS1302時鐘模塊的設計DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數據。DS1302部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了對后備電源進行涓細電流充電的能力。DS1302的引腳排列其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,

21、也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電

22、運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。 下圖為DS1302的引腳功能圖:圖3-4 DS1302的引腳功能圖DS1302的控制字節(jié)DS1302 的控制字如表3-4所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。表3-4 DS13

23、02的控制字格式DS1302數據的輸入輸出在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。圖3-5DS1302讀寫時序圖DS1302的寄存器DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器與其控制字見下表。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器與與RAM相關的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器容。 DS1

24、302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。表3-5 DS1302的日歷、時鐘寄存器與其控制字寄存器名命令字取值圍各位容寫操作讀操作76543210秒寄存器80H81H00-59CH10SECSEC分鐘寄存器82H83H00-59010MINMIN小時寄存器84H85H01- 12或00-2312/24010APHRHR日期寄存器86H87H01-28,29,30

25、,310010DATEDATE月份寄存器88H89H01-12000IOMMONTH周日寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEARDS1302時鐘芯片與AT89C51的連接圖如下:圖3-6DS1302時鐘芯片與AT89C51的連接圖3.5 DS18B20溫度采集模塊的設計采用數字式溫度傳感器DS18B20,有DALLAS半導體公司生產的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事領域的溫度測量與控制儀器、測量系統(tǒng)和大型設備中。(1)DS18B20的性能特點可歸納如下:1)獨特的單線接

26、口僅需一個端口引腳進行通信;2)DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現組網多點測溫;3)DS18B20在使用中不需要任何外圍元件,全部 傳感元件與轉換電路集成在形如一只三極管的集成電路;4)測溫圍55125,在-10+85時精度為±0.5;5)可編程的分辨率為912位,對應的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現高精度測溫;6)在9位分辨率時最多在 93.75ms把溫度轉換為數字,12位分辨率時最多在750ms把溫度值轉換為數字,速度更快;7)測量結果直接輸出數字溫度信號,以"一 線總線"串行傳送

27、給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;8)負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。 (2)電路設計如下圖所示。采用數字式溫度傳感器DS18B20,它是數字式溫度傳感器,具有測量精度高,電路連接簡單等特點,此類傳感器僅需要一條數據線進行數據傳輸,使用AT89C51單片機芯片的P2.7端口與DS18B20的I/O口連接,加一個上拉電阻,Vcc接電源,Vss接地。圖3-7 DS18B20溫度采集(3)DS18B20工作時序1.復位時序圖圖3-8 復位時序圖2.讀時序圖圖3-9 讀時序圖3.寫時序圖圖3-10 寫時序圖4 系統(tǒng)調試4.1硬件調試硬件調試是

28、測試焊接完成后的成品的硬件電路的功能,發(fā)現與排除相關故障,主要包括主控芯片的調試以與各模塊電路的調試。由于本次設計僅僅處于軟件仿真階段,并沒有去設計焊接電路,故該部分略。在不久的畢業(yè)設計論文中一定會完善該部分。4.2軟件調試本設計的軟件編譯是在Keil uVision4上進行的,此軟件可以生成HEX文件用于下載到單片機上工作。生成HEX文件后可以在PROTEUS上進行仿真調試。5 結論經過將近三周的時間,課程設計終于完成了,心里頓時輕松不少,這段時間經歷了從茫然不知從哪里下手到收集資料,小組討論,有了些頭緒再到理出思路,開始設計各部分電路,再到調試解決各個問題,期間經過老師的指導又修改電路,最

29、后完成整個電路設計,心情也跟著起起伏伏,有調試成功的喜悅,有試了好多次卻不知道哪兒出了問題的迷惑,也有突然有了新想法想嘗試的沖動,總之,從畏懼漸漸喜歡上了設計,從設計中學到了好多實用的知識。參考文獻1 蔡美琴等.MCS-51系列單片機系統(tǒng)極其應用.:高等教育,20042林伸茂.8051單片機徹底研究實習篇.:人民郵電,20043胡學海.單片機原理極其應用系統(tǒng)設計.:電子工業(yè),2005 4毅剛.單片機原理極其應用.:工業(yè)大學,20045志軍等.單片機應用系統(tǒng)設計.:機械工業(yè),20056舒懷林.單片機原理與接口技術.:華中科技大學,2001附錄課程設計中的程序如下:#include<reg5

30、2.h> #include <intrins.h>#include "SoundPlay.h"#define uchar unsigned char#define uint unsigned intsbit SCK=P36; /時鐘 sbit SDA=P34; /數據 sbit RST=P35; / DS1302復位sbit lcdrs=P26;sbit lcdrw=P25;sbit lcden=P27;sbit key1=P10; /開調時鍵sbit key2=P11; /調時加鍵sbit key3=P12; /調時減鍵sbit key4=P13; /開

31、設定鬧鈴鍵sbit key5=P14; /返回正常顯示鍵sbit key6=P15; /鬧鈴開關鍵sbit DQ=P37; /溫度傳感器數據通信位sbit beep = P21; /蜂鳴器控制IO口sbit led1 = P20; /led燈,鬧鈴響標志bit ReadRTC_Flag,Display_Flag,Alarm_Flag,flag; /定義標志位uchar miao,fen,shi,ri,yue,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

32、,temp_value;char l_tmpdate7=0x50,0x08,0x011,0x07,0x10,0x01,0x12;/設置初始時間,秒分時日月周年12-10-07 01:08:50uchar code write_rtc_address7=0x80,0x82,0x84,0x86,0x88,0x8a,0x8c; /秒分時日月周年 最低位寫位uchar code read_rtc_address7=0x81,0x83,0x85,0x87,0x89,0x8b,0x8d; /秒分時日月周年 最低位讀位 uchar code table1="SUN" /星期字表uchar

33、 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 tab1="20 - - "uchar code tab2=" : :"uchar code tab314=" Set Alarm! &quo

34、t;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,0x03, 0x10,0x03, 0x10,0x0E, 0x15,0x04, 0x0F,0x01, 0x17,0x03, 0x16,0x03, 0x17,0x01, 0x16,0x03, 0x1

35、7,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, 0x15,0x01, 0x10,0x03, 0x15,0x03, 0x16,0x02, 0x16,0x0D, 0x17,0x03, 0x16,0x03, 0x15,0x03, 0x10,0

36、x03, 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, 0x10,0x0D, 0x15,0x00, 0x19,0x03, 0x19,0x03, 0x1A,0x03, 0x1F,0x03, 0x1B,0x03, 0x1B,0x03, 0x1A,0x03

37、, 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,0x02, 0x1F,0x02, 0x1B,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x17,0x02, 0x1A,0x03, 0x1A,0x03, 0

38、x1A,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,0x03, 0x16,0x03, 0x16,0x03, 0x17,0x01, 0x17,0x03, 0x17,0x03, 0x19,0x03, 0x1A,0x02, 0x1A,0x02, 0x10

39、,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, 0x17,0x16, 0x1A,0x03, 0x1A,0x03, 0x1A,0x0E, 0x1B,0x04, 0x1A,0x03, 0x19,0x03, 0x17,0x03, 0x16,0x

40、03, 0x0F,0x02, 0x10,0x03, 0x15,0x00, 0x00,0x00 ;/*/* 函數聲明 */*/ void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(uchar dat);void ReadTemp(void);void temp_to_str(); /溫度數據轉換成液晶字符顯示void Write_Ds1302_byte(uchar temp); void Write_Ds1302( uchar address,uchar dat );uchar Read_Ds1302

41、 ( 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(uchar xq);void write_nyr(uchar add,uchar dat);void write_sfm(uchar add,uchar dat);void display();voi

42、d keyscan();void alarm();/*/* 主函數 */*/void main(void) ini_lcd1602(); Init_DS18B20(); Set_RTC(); /寫入時鐘值,如果使用備用電池時候,不需要沒每次上電寫入,此程序應該屏蔽 while(1) ReadTemp(); temp_to_str(); keyscan(); if(ReadRTC_Flag=0) Read_RTC(); if(Display_Flag=0) display(); if(flag=1) alarm(); /*/* 毫秒級延時函數 */*/void delay(uchar a) uc

43、har 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ā)聲函數 */*/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延遲子函數(晶振12MHz) */*/void delay_18B20(unsigned int i) while(i-);/*/* ds18b20初始化函數 */*/void Init_DS18B20(void) unsigned char x=0; DQ = 1

溫馨提示

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

最新文檔

評論

0/150

提交評論