電子萬年歷的設(shè)計與制作課程設(shè)計_第1頁
電子萬年歷的設(shè)計與制作課程設(shè)計_第2頁
電子萬年歷的設(shè)計與制作課程設(shè)計_第3頁
電子萬年歷的設(shè)計與制作課程設(shè)計_第4頁
電子萬年歷的設(shè)計與制作課程設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華 南 農(nóng) 業(yè) 大 學(xué)電子工程學(xué)院 應(yīng) 用 物 理 系課 程 設(shè) 計(報告)任 務(wù) 書設(shè)計題目: 電子萬年歷的設(shè)計與制作 任務(wù)與要求(請按所選題目自行總結(jié))任務(wù):設(shè)計一個電子萬年歷,利用實時時鐘芯片ds1302和51單片機制作實時時鐘。要求:1 使用lcd1602顯示屏顯示日期和時間;2 能夠顯示新歷和農(nóng)歷;3. 包括時鐘模塊,能夠顯示實時時鐘;4. 要有時間設(shè)置按鍵部分;5. 完成硬件電路的設(shè)計后,編寫程序,實現(xiàn)時間和日期的顯示等功能;6. 調(diào)試程序,完成功能驗證,寫出完整的課程設(shè)計論文。實驗器材:1. 單片機最小系統(tǒng):單片機(插座),晶振,電阻,電容,按鍵;2. 電源模塊:自鎖開關(guān),led

2、燈,usb插座;3. 按鍵模塊:按鍵;4. 1602顯示模塊:1602(排母),電位器,電容;5. rtc模塊:ds1302芯片(插座),晶振,cr2032電池(插座);6. diy小部件:漆包線,杜邦線,排針,排母,ic插座,電阻包,電容包,烙鐵套裝;開始日期 2016 年 3 月 4 日 完成日期 2016 年3 月 23 日電子萬年歷設(shè)計摘要:本系統(tǒng)是由單片機最小系統(tǒng)、電源模塊、按鍵模塊、lcd1602顯示模塊及rtc模塊組成的電子萬年歷系統(tǒng)。通過時鐘模塊實時進行時間和日期的計數(shù),進而傳遞給單片機處理,單片機再將其傳遞給lcd1602模塊顯示當(dāng)前時間,另設(shè)有按鍵模塊可以完成時間設(shè)置以及日

3、期查詢等功能操作。其設(shè)計簡單,性能優(yōu)良,時間設(shè)置可調(diào),同時同步顯示農(nóng)歷和星期,具有較強的實用性。本文先簡要介紹每個模塊的工作原理,再作整個系統(tǒng)電路的綜合分析,說明該電子萬年歷的實現(xiàn)過程。summary:this system,electronic calendar system,is composed of scm minimum system, power supply module, keys module, lcd1602 display module and rtc module .through rtc module for counting the time and date, a

4、nd then transmit to scm for processing,and then send it to the lcd1602 module to show the current time, also operates key modules can be completed time setting and operating date query function.its simple design, excellent performance, adjustable time setting, synchronous display lunar calendar and

5、week at the same time, has strong practicability.this paper first briefly introduces the working principle of each module, and then a comprehensive analysis of the circuit.the last,illustrate the whole system implementation process of the electronic calendar. 關(guān)鍵詞:萬年歷,計時,顯示,農(nóng)歷keywords: calendar、timin

6、g、display、lunar calendar1. 引言在社會發(fā)展快速的今天,便利和諧的生活方式無疑成為人們追求的目標,而在現(xiàn)實生活中,很多地方還是依靠傳統(tǒng)的日歷和時鐘來查看日期和時間,這樣既不能快速地同時查看日期和時間,而且一般的時鐘精度不高,經(jīng)常需要人工校準時間。單片機作為自動控制領(lǐng)域中的一個重要部件,發(fā)揮著其重要作用。用單片機實現(xiàn)電子萬年歷,功能完善,電路的設(shè)計簡單,集成芯片的可靠度高,還可以利用軟件來進行定期時間校準。在群眾環(huán)保意識日益增強的今天,電子萬年歷可以代替?zhèn)鹘y(tǒng)的紙質(zhì)日歷,同時還可以顯示實時時間,具有很強的實用性。2. 系統(tǒng)的設(shè)計與理論分析 2.1 系統(tǒng)的模塊圖如下所示:圖

7、1 系統(tǒng)模塊圖系統(tǒng)框圖簡單說明:單片機最小系統(tǒng)作為核心處理模塊,讀取rtc模塊的實時時間并輸送到lcd1602模塊進行顯示,通過按鍵模塊可以更改當(dāng)前時間以及查詢?nèi)掌谛畔?,電源模塊為整個電路系統(tǒng)供電。 2.2 系統(tǒng)的理論分析2.2.1 系統(tǒng)的硬件系統(tǒng)和軟件系統(tǒng)概括電子萬年歷系統(tǒng)主要由單片機最小系統(tǒng)、按鍵模塊、時鐘模塊和顯示模塊構(gòu)成。單片機最小系統(tǒng)起到數(shù)據(jù)處理的作用,初始化rtc模塊和lcd模塊,時鐘模塊接收單片機發(fā)出的指令或進行時間設(shè)置或進行實時時間計數(shù),單片機讀取時鐘信息送到顯示模塊顯示,并且可以根據(jù)不同的按鍵按下而實現(xiàn)不同的功能。硬件部分主要由以上4部分組成,而rtc模塊可以完成新歷的計數(shù)功

8、能,直接讀取其時間就能得到新歷時間信息,其余的功能可以通過相應(yīng)的算法即用程序完成,比如農(nóng)歷的同步顯示、星期的同步顯示、按鍵設(shè)置時間以及自動日期糾錯和自動時間校準。在本設(shè)計程序中,時鐘模塊及顯示模塊的初始化分別通過ds1302init()和lcd1602init()來實現(xiàn)。單片機從時鐘模塊讀取數(shù)據(jù)是通過 ds1302read(uchar addr)來實現(xiàn),而時鐘模塊從單片機那里讀取數(shù)據(jù)是通過ds1302readtime()來實現(xiàn)。單片機傳送命令到顯示屏是通過void lcdwritecom(uchar com)完成,寫入數(shù)據(jù)到顯示屏顯示是通過 lcdwritedata(uchar dat)來完成

9、。調(diào)用conversion_week()可以實現(xiàn)星期的同步顯示,以及nongli1()可以實現(xiàn)農(nóng)歷的同步顯示。整體的代碼架構(gòu)包括六部分:頭文件:lcd1602.h,ds1302.h,nongli.h;c文件:lcd1602.c,ds1302.c,main.c。2.2.2 系統(tǒng)完成步驟與可行性分析首先完成原理圖的繪制,根據(jù)原理圖分模塊完成硬件部分焊接,每焊接一個模塊就測試一個模塊,知道整個硬件電路都測試完,最后把整個系統(tǒng)程序燒錄到單片機進行功能驗證和程序調(diào)試?;谟布娐繁容^簡潔,只要有耐心以及細心就能夠完成焊接;程序部分通過小組三人的合作,細推慢敲也一定能夠?qū)崿F(xiàn)基本功能要求,故在有限的時間內(nèi),

10、只要分工明確,刻苦堅持,也能夠做出完善的系統(tǒng)設(shè)計。3. 硬件系統(tǒng)設(shè)計3.1 單片機最小系統(tǒng)單片機最小系統(tǒng)主要由電源、復(fù)位、振蕩電路以及擴展部分等部分組成。最小系統(tǒng)原理圖如圖3所示。圖3最小系統(tǒng)電路圖3.1.1 電源供電模塊圖4 電源模塊電路圖對于一個完整的電子設(shè)計來講,首要問題就是為整個系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運行的前提和基礎(chǔ)。51單片機雖然使用時間最早、應(yīng)用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機,51單片機更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個重要手段就是為單片機系統(tǒng)配置一個穩(wěn)定可靠的電源供電模塊。本最小系統(tǒng)中的

11、電源供電模塊的電源通過計算機的usb口供給。電源電路中接入了電源指示led,圖中r11為led的限流電阻,s1 為電源開關(guān)。3.1.2 復(fù)位電路圖5 復(fù)位電路圖單片機的置位和復(fù)位,都是為了把電路初始化到一個確定的狀態(tài),一般來說,單片機復(fù)位電路作用是把一個例如狀態(tài)機初始化到空狀態(tài),而在單片機內(nèi)部,復(fù)位的時候單片機是把一些寄存器以及存儲設(shè)備裝入廠商預(yù)設(shè)的一個值。復(fù)位電路由按鍵復(fù)位和上電復(fù)位兩部分組成。(1)上電復(fù)位:stc89系列單片及為高電平復(fù)位,通常在復(fù)位引腳rst上連接一個電容到vcc,再連接一個電阻到gnd,由此形成一個rc充放電回路保證單片機在上電時rst腳上有足夠時間的高電平進行復(fù)位,

12、隨后回歸到低電平進入正常工作狀態(tài),這個電阻和電容的典型值為10k和10uf。(2)按鍵復(fù)位:按鍵復(fù)位就是在復(fù)位電容上并聯(lián)一個開關(guān),當(dāng)開關(guān)按下時電容被放電、rst也被拉到高電平,而且由于電容的充電,會保持一段時間的高電平來使單片機復(fù)位。3.1.3 振蕩電路圖6 振蕩電路圖單片機系統(tǒng)里都有晶振,在單片機系統(tǒng)里晶振作用非常大,它結(jié)合單片機內(nèi)部電路產(chǎn)生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,那么單片機運行速度就越快,單片機的一切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。3.2 rtc時鐘模塊 rtc模塊采用ds1302芯片,晶振工作頻率為32.786m。3.2.1 ds1302芯片概括

13、 ds1302是一種高性能、低功耗的實時時鐘芯片,附加31字節(jié)靜態(tài)ram,采用spi三線接口與cpu進行通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和ram數(shù)據(jù)。實時時鐘可提供秒、分、時、日、星期、月和年,一個月小與31天時可以自動調(diào)整,且具有閏年補償功能。工作電壓寬達2.55.5v。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備電源進行涓細電流充電的能力。(1)ds1302引腳示意圖如下所示:圖 3 ds1302芯片圖vcc2:電源輸入端 :復(fù)位端/使能端x1:晶振連接端 i/o:數(shù)據(jù)傳輸端x2:晶振連接端 sclk:時鐘信號輸入端gnd:接地端 vcc1:備用

14、電源輸入端 (2)rtc模塊電路接線原理圖如下所示:圖 4 時鐘模塊連接原理圖3.2.2 ds1302工作時序ds1302是通過spi串行總線跟單片機通信的,當(dāng)進行一次讀寫操作時最少得讀寫兩個字節(jié),第一個字節(jié)是控制字節(jié),就是一個命令,告訴ds1302是讀還是寫操作,是對ram還是對clok寄存器操作。第二個字節(jié)就是要讀或?qū)懙臄?shù)據(jù)了。(1) 單字節(jié)讀單字節(jié)讀:只有在sclk為低電平時,才能將ce置為高電平。所以在進行操作之前先將sclk置低電平,然后將ce置為高電平,接著開始在io上面放入要傳送的電平信號,然后跳變sclk。數(shù)據(jù)在sclk上升沿時,ds1302讀取數(shù)據(jù),在sclk下降沿時,ds1

15、302放置數(shù)據(jù)到io上。(2) 單字節(jié)寫單字節(jié)寫:只有在sclk為低電平時,才能將rst置為高電平。說以在進行操作之前先將sclk置低電平,然后將rst置為高電平,開始在io上面放入要傳送的電平信號,然后跳變sclk。數(shù)據(jù)在sclk上升沿時,ds1302讀取數(shù)據(jù),在sclk下降沿時,ds1302放置數(shù)據(jù)到io上。(3)ds1302內(nèi)部寄存器原理圖時鐘/日歷包含在7個寄存器中,數(shù)據(jù)在時鐘/日歷寄存器中是二進制編碼的十進制格式存儲的,也就是常說的bcd碼存儲的。 3.3顯示模塊顯示模塊使用的是lcd1602液晶,也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號的點陣型液晶模塊。它是由若

16、干個5x7或者5x11的點陣字符位組成,每個點陣字符位都可以用顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此,所以它不能很好的顯示圖片。 lcd1602的引腳圖:lcd1602引腳說明:1腳和2腳:gnd和vcc,為lcd1602工作的電源接入。 3 腳:vl,液晶顯示偏壓信號,用于調(diào)整lcd1602 的顯示對比度,一般會外接電位器用以調(diào)整偏壓信號,注意此腳電壓為0 時可以得到最強的對比度。4 腳:rs,數(shù)據(jù)/命令選擇端,當(dāng)此腳為高電平時,可以對1602 進行數(shù)據(jù)字節(jié)的傳輸操作,而為電平時,則是進行命令字節(jié)的傳輸操作。命令字節(jié),即是用來對lc

17、d1602 的一些工作方式作設(shè)置的字節(jié);數(shù)據(jù)字節(jié),即使用以在1602 上顯示的字節(jié)。值得一提的是,lcd1602的數(shù)據(jù)是8 位的。 5腳:r/w,讀寫選擇端。當(dāng)此腳為高電平可對lcd1602 進行讀數(shù)據(jù)操作,反之進行寫數(shù)據(jù)操作。筆者認為,此腳其實用處不大,直接接地永久置為低電平也不會影響其正常工作。但是尚未經(jīng)過復(fù)雜系統(tǒng)驗證,保留此意見。 6 腳:e,使能信號,其實是lcd1602 的數(shù)據(jù)控制時鐘信號,利用該信號的上升沿實現(xiàn)對lcd1602 的數(shù)據(jù)傳輸。 714 腳:8 位并行數(shù)據(jù)口,使得對lcd1602 的數(shù)據(jù)讀寫大為方便。15、16腳:bgvcc和bggnd,為lcd1602背光顯示的電源接

18、入。 lcd1602顯示模塊接線原理圖如下所示:圖 5 lcd1602連接原理圖操作步驟:1、初始化;2、寫命令(rs=l)設(shè)置顯示坐標;3、寫數(shù)據(jù)(rs=h)。寫操作時序圖:顯示開/關(guān)及光標設(shè)置圖:ram地址映射圖圖:3.4 系統(tǒng)總流程分析及系統(tǒng)原理圖圖 6 電子萬年歷總體原理圖電源通過usb插口接入,接到自鎖開關(guān),開關(guān)控制整個電路的電源,再接到單片機stc89s52芯片的vcc腳,其中引腳40為接地端gnd。單片機的p30p33引腳連接4個按鍵,其中一個連了外部中斷0,用來實現(xiàn)時間暫停以便進入時間和日期設(shè)置,其余3個則為時間加減以及設(shè)置位的選擇。單片機的p35p3腳分別連接ds1302芯片

19、的 (復(fù)位端)、sclk(時鐘信號輸入端)以及i/o(數(shù)據(jù)傳輸端)端,用來與ds1302芯片進行數(shù)據(jù)傳輸,此外還增加了備用電源,在沒有接電時用來保持時間;單片機的p07p00腳則接lcd1602的數(shù)據(jù)口,p24p26腳分別連接lcd1602的rw、rs及en,控制lcd1602的數(shù)據(jù)傳輸功能,lcd1602外接一個電位器用來控制液晶屏顯示對比度,電源和地接入一個發(fā)光二極管(串聯(lián)一個電阻),作為電源指示燈。4. 軟件系統(tǒng)設(shè)計 4.1 功能設(shè)計與特點 (1)能夠顯示公歷和當(dāng)前時間; (2)農(nóng)歷和星期跟隨公歷同步顯示,并且能夠顯示出農(nóng)歷中的閏月; (3)可對當(dāng)前時間進行設(shè)置,有時間+和時間-操作;

20、(4)自動日期更正,即按鍵設(shè)置過程中不會顯示錯誤的日期; (5)農(nóng)歷查詢范圍達到200年。 4.2 程序子模塊設(shè)計 (1)時鐘模塊及顯示模塊的初始化; (2)rtc時鐘模塊操作函數(shù); (3)lcd顯示模塊操作函數(shù); (4)掃描按鍵進行時鐘模塊的時間設(shè)置; (5)顯示子程序,合理排版公歷、農(nóng)歷、時間和星期的顯示; (6)農(nóng)歷和星期轉(zhuǎn)換函數(shù); 4.3 程序的流程圖如下所示開始lcd初始化ds1302初始化掃描按鍵顯示子程序按鍵功能選擇子程序 結(jié)束4.4 程序關(guān)鍵算法設(shè)計(1)星期轉(zhuǎn)換算法公歷日所對應(yīng)的星期天可以通過計算直接得到,理論上公元0 年1 月1 日為星期日,只要求得公歷日離公元0 年1 月

21、1 日的日子數(shù)除7 后的余數(shù)就是星期天。為了簡化計算,采用月校正法,根據(jù)公歷的年月日可直接計算出星期天。其算法是:日期+年份+所過閏年數(shù)+月校正數(shù)之和除以7的余數(shù)就是星期天,但如果是在閏年又不到3月份,上述之和要減一天再除7。其1-12 月的校正數(shù)據(jù)為:6、2、2、5、0、3、5、1、4、6、2、4。(2)農(nóng)歷轉(zhuǎn)換算法實現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,一般采用查表法,按日查表是速度最快的方法,但51 單片機尋址能力有限,不可能采用按日查表的方法,除按日查外,我們可以通過按月查表和按年查表的方法,再通過適當(dāng)?shù)挠嬎悖瑏泶_定公歷日所對應(yīng)的農(nóng)歷日期。本文采用的是按年查表法,最大限度地減少表格所占的程序空間。對于農(nóng)

22、歷月來說,大月為30天,小月為29天,這是固定不變的,這樣我們就可用1個bit來表示大小月信息。農(nóng)歷一年,如有閏月為13個月,否則是12個月,所以一年需要用13個bit,閏月在農(nóng)歷年中所在的月份并不固定,大部分閏月分布在農(nóng)歷2-8月,但也有少量年份在9月以后,所以要表示閏月的信息,至少要4bit,在這里我們用4bit的值來表示閏月的月份,值為0 表示本年沒有閏月。有了以上信息還不足以判斷公歷日對應(yīng)的農(nóng)歷日,因為還需要一個參照日,我們選用農(nóng)歷正月初一所對應(yīng)的公歷日期作參照日,公歷日最大為31日,需要5bit 來表示,而春節(jié)所在的月份不是1月就是2月,用1bit就夠了,考慮到表達方便,我們用2bi

23、t來表示春節(jié)月,2bit 的值直接表示月份。這樣一年的農(nóng)歷信息只用3個字節(jié)就全部包括了。計算公歷日對應(yīng)的農(nóng)歷日期的方法:先計算出公歷日離當(dāng)年元旦的天數(shù),然后查表取得當(dāng)年的春節(jié)日期,計算出春節(jié)離元旦的天數(shù),二者相減即可算出公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減一月天數(shù),調(diào)整一月農(nóng)歷月份,即可推算出公歷日所對應(yīng)的農(nóng)歷日期。如公歷日不到春節(jié)日期,農(nóng)歷年要比公歷年小一年,農(nóng)歷大小月取前一年的信息,農(nóng)歷月從12 月向前推算。 5. 系統(tǒng)運行情況分析(1)上電開始工作usb插口外接5v直流電源,開啟開關(guān),電路正常工作,顯示當(dāng)前時間與日期。(2)時間和日期的設(shè)置按下按鍵k3,觸發(fā)中斷,進入時間

24、設(shè)置模式,光標顯示出當(dāng)前設(shè)置位,按鍵k2可以移動光標并且轉(zhuǎn)向其他設(shè)置位,而k1和k4分別為+和-功能,可以方便的設(shè)置時間。(3)lcd顯示的內(nèi)容lcd左上角顯示的是年、月、日,右下角顯示的是相應(yīng)的農(nóng)歷。lcd右上角顯示的是星期,左下角顯示的是當(dāng)前的時間,表現(xiàn)為24小時制的時、分、秒。(4) 在設(shè)置時間的過程中,從不會出現(xiàn)顯示錯誤的日期,達到了預(yù)期的目標。(5) 農(nóng)歷的顯示范圍以及閏月的顯示在查詢時間時,農(nóng)歷可以正確顯示從19002099年間200年范圍,并且在閏月出現(xiàn)時能夠顯示一個r代表閏月,達到預(yù)期功能。(6)時間誤差測試經(jīng)過兩天的測試,系統(tǒng)時間精度能到達到每天小于1s的時間誤差。 6. 總

25、結(jié)與討論6.1系統(tǒng)不足與改進在設(shè)計電路與調(diào)試的過程中,我們遇到了不少問題,經(jīng)過仔細思考找到了問題原因,也對實際應(yīng)用情況下應(yīng)該注意及改善的問題進行了總結(jié),這些經(jīng)驗對于我們以后自己設(shè)計電路的時候無疑有很大的幫助。主要有以下幾點:1 電源指示燈不能直接接到單片機的vcc,led燈的壓降使得單片機無法正常工作。2 單片機的0口作為輸出端口的時候要接上拉電阻。3.焊電路時,應(yīng)該要一個模塊一個模塊來焊接,并且逐一測試完再焊下一個模塊,避免整個系統(tǒng)焊接完成出現(xiàn)問題而找不到問題原因所在。4.程序的時間查詢功能不完善,查詢過程會改變當(dāng)前時間,有待改進。5.按鍵靈敏度不高。6.程序缺少時間自動校準函數(shù),這樣長時間積累會造成時間誤差,有待改進。6.2總結(jié)語在此次的課程設(shè)計中,我們對之前學(xué)的理論知識有進一步理解,并能將其應(yīng)用到實際中,做到理論與實際相結(jié)合。設(shè)計的過程中也遇到了不少困難,例如,一開始我們要自己設(shè)計原理圖和選擇元件,這和以前相比是不同的,原理圖完全靠自己去想,老師不會給出。當(dāng)我們想到大致原理圖時,開始進行軟件畫圖和仿真,發(fā)現(xiàn)電路連接完卻不能仿真出正確的結(jié)果,試過幾次后,從各個模塊檢查,小組同學(xué)再一起進行探討,最后終于發(fā)

溫馨提示

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

評論

0/150

提交評論