畢業(yè)設(shè)計(論文)基于51單片機的電子日歷的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于51單片機的電子日歷的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于51單片機的電子日歷的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于51單片機的電子日歷的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于51單片機的電子日歷的設(shè)計_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 編號 淮安信息職業(yè)技術(shù)學(xué)院淮安信息職業(yè)技術(shù)學(xué)院畢畢業(yè)業(yè)論論文文題 目基于單片機的電子日歷的設(shè)計學(xué)生姓名學(xué) 號院 系電子工程學(xué)院專 業(yè)應(yīng)用電子技術(shù)班 級指導(dǎo)教師顧問教師二一二年六月摘 要i摘摘 要要電子萬年歷是實現(xiàn)對年、月、日、時、分、秒數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭、辦公室、銀行大廳等場所,是人們?nèi)粘I钪械谋匦杵?。本文通過對基于單片機實現(xiàn)萬年歷功能的電子日歷的設(shè)計,介紹了 at89s52單片機的多功能電子萬年歷的硬件結(jié)構(gòu)和軟硬件的設(shè)計、使用方法。系統(tǒng)以 at89s52 單片機為主控制模塊,以串行時鐘日歷芯片 ds1302 記錄日歷和時間,它可以對年、月、日、時、分、秒進(jìn)

2、行計時,還具有閏年補償、時間校準(zhǔn)等多種功能。萬年歷采用直觀的數(shù)字顯示,可以在 lcd 上同時顯示年、月、日、星期、時、分、秒。更有按鍵電路模塊與之相結(jié)合,不僅能實現(xiàn)時鐘日歷顯示的功能,并可進(jìn)行調(diào)整,使用更便捷、直接。萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,具有廣闊的市場前景。關(guān)鍵詞:萬年歷 單片機 at89s52 ds1302 淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文ii目 錄iii目目 錄錄摘摘 要要.i第一章第一章 緒論緒論.11.1 課題研究的意義.11.2 本課題主要的研究工作.11.3 本課題主要解決的內(nèi)容.11.4 論文主要章節(jié)安排.21.5 本章小結(jié).2第二

3、章第二章 方案論證方案論證.32.1 設(shè)計要求.32.2 單片機芯片的選擇方案和論證.32.3 顯示模塊的選擇方案和論證.32.4 時鐘芯片的選擇方案和論證.42.5 電路設(shè)計最終方案.4第三章第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)系統(tǒng)的硬件設(shè)計與實現(xiàn).53.1 電路總體設(shè)計.53.2 主控模塊的設(shè)計.53.2.1 at89s52 的內(nèi)部結(jié)構(gòu)及各引腳功能.53.2.2 單片機最小系統(tǒng)設(shè)計.73.3 時鐘模塊設(shè)計.73.4 顯示模塊設(shè)計.93.5 鍵盤模塊.10第四章第四章 系統(tǒng)的軟件設(shè)計系統(tǒng)的軟件設(shè)計.114.1 主程序設(shè)計.114.2 萬年歷優(yōu)化算法.124.3 陽歷與星期的換算方法.134.4 萬年

4、歷工作的簡易流程圖.14第五章第五章 proteus 軟件仿真軟件仿真 .155.1 proteus isis 簡介.155.2 proteus 運行流程.155.3 proteus 功能仿真.155.4 本章小結(jié).18第六章第六章 測試與結(jié)果分析測試與結(jié)果分析.196.1 硬件測試.196.2 軟件測試.196.3 測試結(jié)果分析與結(jié)論.19第七章第七章 總結(jié)與展望總結(jié)與展望.217.1 總結(jié).21 淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文iv7.2 展望.21致致 謝謝.23參考文獻(xiàn)參考文獻(xiàn).25附錄附錄 1 系統(tǒng)電路圖系統(tǒng)電路圖.27附錄附錄 2 系統(tǒng)程序系統(tǒng)程序.28第一章 緒論1第一章第一章

5、緒論緒論1.1 課題研究的意義課題研究的意義萬年歷是我國古代傳說中最古老的一部太陽歷。為紀(jì)念歷法編撰者萬年功績,便將這部歷法命名為“萬年歷” 。而現(xiàn)在所使用的萬年歷,實際上就是記錄一定時間范圍內(nèi)(比如 100 年或更多)的具體陽歷或陰歷的日期的年歷,方便有需要的人查詢使用,與原始?xì)v法并無直接聯(lián)系。隨著微電子技術(shù)的高速發(fā)展,人類用于計時的工具也在不斷發(fā)展更新,單片機技術(shù)的出現(xiàn)使得萬年歷有了新的發(fā)展方向。單片機以其體積小、功能全、性價比高等諸多優(yōu)點,在工業(yè)控制、家用電器、通信設(shè)備、信息處理、尖端武器等各種測控領(lǐng)域的應(yīng)用中獨占鰲頭,單片機開發(fā)技術(shù)已成為電子信息、電氣、通信、自動化、機電一體化等專業(yè)技

6、術(shù)人員必須掌握的技術(shù)。目前世界上單片機年產(chǎn)量已達(dá)十多億片,通常是當(dāng)年微處理器產(chǎn)量的 4-5 倍以上。用最少的芯片就能實現(xiàn)最強大的功能,這是將來電子產(chǎn)品的主流方向,它將無可置疑地一步步取代其它同類產(chǎn)品,其數(shù)量之大和應(yīng)用面之廣,是其它任何類型的計算機所無法比擬的。本文采用單片機的萬年歷作為設(shè)計課題,因為它有很好的開放性和可發(fā)揮性,對作者的要求比較高,不僅考察了對單片機的掌握能力而且強調(diào)了對單片機擴展的應(yīng)用。另外液晶顯示的萬年歷已經(jīng)越來越流行,特別適合在家庭居室、辦公室、大廳、會議室、車站和廣場等地方使用,它具有顯示清晰直觀、走時準(zhǔn)確、可調(diào)整、進(jìn)行夜視等功能。所以,電子萬年歷作為課題設(shè)計很有價值。1

7、.2 本課題主要的研究工作本課題主要的研究工作本論文主要研究基于單片機的萬年歷設(shè)計。當(dāng)程序執(zhí)行后,lcd 顯示年、月、日、時、分、秒和星期。設(shè)計共設(shè)置 4 個操作鍵:k1:選擇修改鍵;k2:上調(diào)鍵;k3:下調(diào)鍵;k4:確定鍵。設(shè)計的主要內(nèi)容有:1、了解單片機技術(shù)的發(fā)展現(xiàn)狀,熟悉萬年歷個模塊的工作原理;2、選擇適當(dāng)?shù)男酒驮骷?,確定系統(tǒng)電路,繪制電路原理圖,尤其是各接口電路;3、熟悉單片機使用方法和 c 語言的編程規(guī)則,編寫出相應(yīng)模塊的應(yīng)用程序; 4、分別在各自的模塊中調(diào)試出相應(yīng)的功能,在 proteus 軟件上進(jìn)行仿真。1.3 本課題主要解決的內(nèi)容本課題主要解決的內(nèi)容本課題所研究的電子萬年歷

8、是單片機控制技術(shù)的一個具體應(yīng)用,主要研究淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文2內(nèi)容包括以下幾個方面:1、選用電子萬年歷芯片時,應(yīng)重點考慮功能實在、使用方便、單片存儲、低功耗、抗斷電的器件。2、根據(jù)選用的電子萬年歷芯片設(shè)計外圍電路和單片機的接口電路。3、在硬件設(shè)計時,結(jié)構(gòu)要盡量簡單實用、易于實現(xiàn),使系統(tǒng)電路盡量簡單。4、根據(jù)設(shè)計的硬件電路,編寫控制 at89s51 芯片的單片機程序。5、通過編程、編譯、調(diào)試,把程序下載到 proteus 上運行,并實現(xiàn)本設(shè)計的功能。6、在硬件電路和軟件程序設(shè)計時,主要考慮提高人機界面的友好性,方便用戶操作等因素。7、軟件設(shè)計時必須要有完善的思路,要做到程序簡單,調(diào)試

9、方便。1.4 論文主要章節(jié)安排論文主要章節(jié)安排第一章:緒論是介紹了基于 stc89s52 單片機的萬年歷研究意義,重點闡述了本課題的研究內(nèi)容和研究工作。第二章:主要介紹了設(shè)計要求和課題器件選擇的論證方案。第三章:硬件基礎(chǔ)中主要描述了萬年歷的各個模塊的硬件設(shè)計方案,并結(jié)合各個元器件和相應(yīng)的硬件原理圖進(jìn)行分析,最后展示為了實現(xiàn)研究目標(biāo)所需要的全部硬件基礎(chǔ)。第四章:軟件基礎(chǔ)主要羅列了實現(xiàn)萬年歷各個功能的 c 語言程序的流程圖,并分別對其進(jìn)行了解釋和分析,最后把各個 c 語言子程序在巧妙結(jié)合在一起,共同控制整個系統(tǒng),也就形成了實現(xiàn)研究目標(biāo)所需要的所有軟件基礎(chǔ)。第五章:主要是對硬件和軟件測試結(jié)果的分析以

10、及得出的相關(guān)結(jié)論。第六章:主要對 keil 軟件、proteus 軟件進(jìn)行簡單介紹,并給出了關(guān)于proteus 軟件仿真調(diào)試萬年歷的過程。最后簡要的介紹了硬件調(diào)試中的問題和解決辦法。第七章:主要是對本次實驗研究的總結(jié),提出本次實驗的不足之處以及相應(yīng)的改進(jìn)方法,以便后人繼續(xù)深入研究。最后一部分是論文的附錄,它為論文的內(nèi)容做了補充、解釋,以便閱讀時條理更清晰。1.5 本章小結(jié)本章小結(jié)本章是論文的緒論部分,著重介紹了萬年歷的研究意義。然后介紹了本文所要解決的實際問題及意義,以及要電子萬年歷系統(tǒng)要實現(xiàn)的功能和方法。最后簡單地描述了本論文的整體框架和論文章節(jié)的安排。 第二章 方案論證3第二章第二章 方案

11、論證方案論證2.12.1 設(shè)計要求設(shè)計要求在電子日歷設(shè)計中需具備的基本功能。1能顯示實時時鐘、日歷 2允許誤差:10 秒/天; 3可以通過按鍵設(shè)置(調(diào)整)時鐘; 4顯示模式:數(shù)碼管或液晶顯示; 2.22.2 單片機芯片的選擇方案和論證單片機芯片的選擇方案和論證方案一: 采用 at89c51 芯片作為硬件核心,采用 flash rom,內(nèi)部具有 4kb rom 存儲空間,能于 3v 的超低壓工作,而且與 mcs-51 系列單片機完全兼容,但是運用于電路設(shè)計中時由于不具備 isp 在線編程技術(shù), 當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獙?dǎo)入程序時,對芯片的多次拔插會對芯片造成

12、一定的損壞。方案二:采用 at89s52,片內(nèi) rom 全都采用 flash rom;能以 3v 的超底壓工作;同時也與 mcs-51 系列單片機完全該芯片內(nèi)部存儲器為 8kb rom 存儲空間,同樣具有 89c51 的功能,且具有在線編程可擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獙?dǎo)入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。根據(jù)主功能模塊的各項功能、使用便捷程度、單片存儲、低功耗、等原因,選擇采用 at89s52 作為主控制系統(tǒng)。2.32.3 顯示模塊的選擇方案和論證顯示模塊的選擇方案和論證方案一:采用 led 數(shù)碼管動態(tài)掃描,led 數(shù)碼管價格適

13、中,對于顯示數(shù)字合適,采用動態(tài)掃描法與單片機連接時,雖然占用的單片機口線少,但連線還需要花費一點時間,所以也不用此種作為顯示。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:采用 lcd 液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字、圖形等,顯示信息豐富?;窗残畔⒙殬I(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文4由于需要顯示年、月、日、星期、等,需要可大量顯示文字和數(shù)字的顯示模塊。結(jié)合數(shù)碼管和液晶顯示的各項特點,此設(shè)計采用 lcd 液晶顯示屏。2.4 時鐘芯片的選擇方案和論證時鐘芯片的選

14、擇方案和論證方案一:直接采用單片機定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大,所以不采用此方案。方案二:采用 ds1302 時鐘芯片實現(xiàn)時鐘,ds1302 芯片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年進(jìn)行計數(shù),而且精度高,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。工作電壓在 2.5v5.5v 范圍內(nèi),2.5v 時耗電小于 300na。根據(jù)時鐘芯片的性能、功耗和顯示的準(zhǔn)確度,設(shè)計采用 ds1302 時鐘芯片。2.5 電路設(shè)計最終方案電路設(shè)計最

15、終方案本章主要介紹了系統(tǒng)要實現(xiàn)的功能和萬年歷系統(tǒng)硬件平臺的選擇,比較了主控模塊,時鐘模塊,顯示模塊中不同器件的功能及優(yōu)劣,最后確定了電路設(shè)計的整體方案: 采用 at89s52 作為主控制系統(tǒng); ds1302 提供時鐘;lcd 液晶顯示屏作為顯示模塊。第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)5第三章第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)系統(tǒng)的硬件設(shè)計與實現(xiàn)3.1 電路總體設(shè)計電路總體設(shè)計在方案設(shè)計中,整個系統(tǒng)主要包括四個部分:主控制模塊、顯示模塊、時鐘模塊和鍵盤部分。設(shè)計的總系統(tǒng)原理圖如下圖 3-1 所示。圖 3-1 總系統(tǒng)原理圖本電路是由 at89s52 單片機為控制核心,具有在線編程功能,低功耗,能在 3v 超低

16、壓工作;ds1302 內(nèi)部有一個 31*8 的用于臨時性存放數(shù)據(jù)的 ram 寄存器??僧a(chǎn)生年、月、日、周日、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;顯示部份由 lcd 點陣液晶顯示屏顯示;鍵盤模塊實現(xiàn)對萬年歷進(jìn)行調(diào)節(jié)。3.2 主控模塊的設(shè)計主控模塊的設(shè)計at89s52 在設(shè)計中作為主控制模塊使用,它是 40 引腳雙列直插芯片,有四個 i/o 口 p0、p1、p2、p3,每一條 i/o 線都能獨立地作輸出或輸入。3.2.1 at89s52at89s52 的內(nèi)部結(jié)構(gòu)及各引腳功能的內(nèi)部結(jié)構(gòu)及各引腳功能at89s52 單片機按功能分為 8 部分:cup,程序存儲器,

17、數(shù)據(jù)存儲器,時鐘電路,串行口,并行 i/o 口,中斷系統(tǒng),定時/計數(shù)器。1.電源及時鐘引腳vcc:接+5v 電源vss:接地xtal1 和 xtal2:時鐘引腳,外接晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,此兩引腳端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,用于接外部時鐘脈沖信號。2.控制引腳rst/vpq:rst 是復(fù)位信號輸入端,vpd 是備用電源輸入端。當(dāng) rst 輸入端保持 2 個機器周期以上高電平時,單片機完成復(fù)位初始化操作。顯示模塊ds1302 時鐘模塊主控模塊 鍵盤模塊淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文6當(dāng)主電源 vcc 發(fā)生故障而突然下降到一定低電壓或斷電時,第 2 功能 vpd將

18、為片內(nèi) ram 提供電源以保護片內(nèi) ram 中的信息不丟失。ale/prog:地址鎖存允許信號輸入端。在存取外存儲器時,用于鎖存低 8位地址信號。當(dāng)單片機正常工作后,ale 端就周期性地以時鐘振蕩頻率的 1/6 固定頻率向外輸出正脈沖信號。此引腳的第 2 功能 prog 是對片內(nèi)帶有 4k 字節(jié)eprom 的 8751 固外程序時,作為編程脈沖輸入端。psen:程序存儲器允許輸出端。當(dāng)片外程序存儲器的讀選通信號,低電平有效。cpu 從外部程序存儲器取指令時,psen 信號會自動產(chǎn)生負(fù)脈沖,作為外部程序存儲器的選通信號。ea/vpp:程序存儲器地址允許輸入端。當(dāng) ea 為高電平時,cpu 執(zhí)行片

19、內(nèi)程序存儲器指令但當(dāng) pc 中的值超過 0fffh 時,將自動轉(zhuǎn)向執(zhí)行片外程序存儲器指令;當(dāng) ea 為低電平時,cpu 只執(zhí)行片外程序存儲器指令。3.i/o 口引腳p0.0p0.7:p0 口 8 位雙向 i/o 口;p1.0p1.7:p1 口 8 位準(zhǔn)雙向 i/o 口;p2.0p2.7:p2 口 8 位準(zhǔn)雙向 i/o 口;p3.0p3.7:p3 口 8 位準(zhǔn)雙向 i/o 口。4片外總線結(jié)構(gòu)分為三部分:數(shù)據(jù)總線 data bus(db) ,地址總線 address bus (ab) ,控制總線 control bus(cb)。5.圖 3-2 為 at89s52 的系統(tǒng)引腳圖。圖 3-2 at89

20、s52 系統(tǒng)引腳圖第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)73.2.2 單片機最小系統(tǒng)設(shè)計單片機最小系統(tǒng)設(shè)計單片機的最小系統(tǒng)如圖 3-3 所示。18 引腳和 19 引腳接時鐘電路,xtal1 接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,xtal2 接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出。第 9 引腳為復(fù)位輸入端,接上電容,電阻及開關(guān)后夠上電復(fù)位電路,20 引腳為接地端,40 引腳為電源端。圖 3-3 單片機最小系統(tǒng)3.3 時鐘模塊設(shè)計時鐘模塊設(shè)計實時時鐘電路 ds1302 是 dallas 公司的一種具有涓細(xì)電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電

21、保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通 32.768khz 晶振。它是一種一種高性能、低功耗、帶 ram 的實時時鐘電路,可以對年、月、日、周日、時、分、秒進(jìn)行計時,具有閏年補償功能,工作電壓為2.5v5.5v。采用三線接口與 cpu 進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或 ram 數(shù)據(jù)。圖 3-4 示出 ds1302 的引腳排列圖?;窗残畔⒙殬I(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文8圖 3-4 ds1302 的引腳圖其中 vcc1 為后備電源,vcc2 為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。ds1302 由 vcc1 或 vcc2 兩者中的較大者供電

22、。當(dāng) vcc2 大于vcc1+0.2v 時,vcc2 給 ds1302 供電。當(dāng) vcc2 小于 vcc1 時,ds1302 由 vcc1 供電。x1 和 x2 是振蕩源,外接 32.768khz 晶振。rst 是復(fù)位/片選線,通過把 rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst 輸入有兩種功能:首先,rst 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng) rst 為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對 ds1302 進(jìn)行操作。如果在傳送過程中 rsts 置為低電平,則會終止此次數(shù)據(jù)傳送,i/o 引腳變?yōu)楦咦钁B(tài)。上電動行時,在

23、vcc 大于等于 2.5v 之前,rst 必須保持低電平。中有在 sclk 為低電平時,才能將 rst 置為高電平,i/o 為串行數(shù)據(jù)輸入端(雙向) 。sclk 始終是輸入端。使用 ds1302 時可參考它的硬件接線圖,如圖 3-5 所示。vcc2x1x2gndrsti/oslckvcc1u1ds1302vcc12y1c12012p1header 2c220p1.2p1.1p1.032.768khz圖 3-5 ds1302 的硬件接線圖1.時鐘芯片 ds1302 的工作原理:ds1302 在每次進(jìn)行讀、寫程序前都必須初始化,先把 sclk 端置 “0” ,接著把 rst 端置“1” ,最后才給

24、予 sclk 脈沖;讀/寫時序如下圖 4 所示。ds1302的控制字的位 7 必須置 1,若為 0 則不能把對 ds1302 進(jìn)行讀寫數(shù)據(jù)。對于位6,若對程序進(jìn)行讀/寫時 ram=1,對時間進(jìn)行讀/寫時,ck=0,位 1 至位 5 指操作單元的地址。位 0 是讀/寫操作位,進(jìn)行讀操作時,該位為 1;該位為 0 則表第三章 系統(tǒng)的硬件設(shè)計與實現(xiàn)9示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表.2 為 ds1302的日歷、時間寄存器內(nèi)容:“ch”是時鐘暫停標(biāo)志位,當(dāng)該位為 1 時,時鐘振蕩器停止,ds1302 處于低功耗狀態(tài);當(dāng)該位為 0 時,時鐘開始運行。 “wp”是寫保護位,在任何

25、的對時鐘和 ram 的寫操作之前,wp 必須為 0。當(dāng)“wp”為 1 時,寫保護位防止對任一寄存器的寫操作。2.ds1302 的控制字節(jié):ds1302 控制字節(jié)的高有效位(位 7)必須是邏輯 1,如果它為 0,則不能把數(shù)據(jù)寫入 ds1302 中,位 6 如果 0,則表示存取日歷時鐘數(shù)據(jù),為 1 表示存取ram 數(shù)據(jù);位 5 至位 1 指示操作單元的地址;最低有效位(位 0)如為 0 表示要進(jìn)行寫操作,為 1 表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出3.數(shù)據(jù)輸入輸出(i/o)在控制指令字輸入后的下一個 sclk 時鐘的上升沿時,數(shù)據(jù)被寫入 ds1302,數(shù)據(jù)輸入從低位即位 0 開始。同樣,在

26、緊跟 8 位的控制指令字后的下一個 sclk脈沖的下降沿讀出 ds1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0 位到高位 7。4.ds1302 的寄存器ds1302 有 12 個寄存器,其中有 7 個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為 bcd 碼形式。此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與 ram 相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 ds1302 與 ram 相關(guān)的寄存器分為兩類:一類是單個 ram單元,共 31 個,每個單元組態(tài)為一個 8 位的字節(jié),其命令控制字為 c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;

27、另一類為突發(fā)方式下的 ram 寄存器,此方式下可一次性讀寫所有的 ram 的 31 個字節(jié),命令控制字為 feh(寫)、ffh(讀)。3.4 顯示模塊設(shè)計顯示模塊設(shè)計本設(shè)計中由于要對年、月、日、星期、時、分、秒、顯示,選擇液晶顯示器 1602 字符型 lcd 通常有 14 條引腳線或 16 條引腳線的 lcd。它可以顯示兩行,每行 16 個字符,采用單+5v 電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比。它可以顯示的字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號等,每一個字符都有一個固定的代碼,例如大寫的英文字母“a”的代碼是01000001b(41h) ,顯示時模塊把地址 41h

28、 中的點陣字符圖形顯示出來,我們就能看到字母“a” 。如圖 3-6 即為 lcd 顯示模塊的接口線路,和附錄一的連線一樣,無需修改。 淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文10圖 3-6 lcd 液晶顯示模塊3.5 鍵盤模塊鍵盤模塊鍵盤模塊用于調(diào)節(jié)、校準(zhǔn)萬年歷的時間,更根據(jù)各個鍵盤的功能選擇合適的鍵盤使用。按鍵功能自上而下依次為:1 選擇修改項鍵、2 增大鍵、3 減小鍵、4 確定鍵.文中系統(tǒng)軟件設(shè)計使用開關(guān)做鍵盤使用如下圖 3-7 所示。圖 3-7 開關(guān)第四章 系統(tǒng)的軟件設(shè)計11第四章第四章 系統(tǒng)的軟件設(shè)計系統(tǒng)的軟件設(shè)計4.1 主程序設(shè)計主程序設(shè)計電子萬年歷的功能是在程序控制下實現(xiàn)的。首先系統(tǒng)初始化

29、,系統(tǒng)開始運行,當(dāng)有設(shè)置鍵按下時進(jìn)入修改時間模式,無按鍵按下時讀取時間等數(shù)據(jù)送入液晶屏顯示;在修改時間模式下設(shè)置時間完成后再送數(shù)據(jù)到液晶屏顯示。該系統(tǒng)的軟件設(shè)計方法按整體功能分成多個不同的程序模塊,分別進(jìn)行設(shè)計、編程和調(diào)試,最后通過主程序?qū)⒏鞒绦蚰K連接起來。這樣有利于程序修改和調(diào)試,增強了程序的可移植性。萬年歷的主程序流程圖如圖 4-1 所示。開始初始化讀日期、時間寫日期、時間顯示子程序開關(guān)控制子程序時間修改子程序日期修改子程序顯示結(jié)果返回圖 4-1 主程序流程圖淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文124.2 萬年歷優(yōu)化算法萬年歷優(yōu)化算法陽歷算法:陽歷的算法比較簡單,每十月的總的天數(shù)相對來說是固

30、定的。只有 2 月份,在閏年是 29 天,在非閏年是 28 天。每個月的日歷排法主要是確定每個月第一天是星期幾。我們知道 1901 年 1 月 1 日是星期二,星期的變化是 7 天一個周期,比如說要計算 1901 年 2 月 1 日是星期幾,可以這樣推算:從 1901 年 1 月1 日到 1901 年 2 月 1 日總共經(jīng)過了 31 天(從表 1 可 看出),31 對 7 取模是3:i901 年 1 月 1 日是星期二,加三后,是星期五。因此 1901 年 2 月 1 日是星期五。同理,可以推算出從 19012100 年任何一天是星期幾,如下表 4.1 所示。表 4.1 月份123456789

31、101112閏年312931303130313130313031非閏年312831303130313130313031下圖 4-2 是陽歷計算程序流程圖。第四章 系統(tǒng)的軟件設(shè)計13 圖 4-2 陽歷計算程序流程圖4.3 陽歷與星期的換算方法陽歷與星期的換算方法在現(xiàn)行陽歷中,歷年的長度 365 天(平年)或者 366 天(閏年)都不是七的整數(shù)倍,所以日期與星期之間沒有明顯的對應(yīng)關(guān)系。一般情況下,不看日歷牌就無法知道某月某日是星期幾。不過,它們之間還是有一定規(guī)律可循的,只要經(jīng)過簡單計算,或者查找表格,就可以知道與任何日期相對應(yīng)的星期數(shù)。這里列出兩種方法供讀者選用。 (1)公式法:設(shè) y 麥?zhǔn)竟?/p>

32、數(shù),d 表示從 1 月 1 日起算的日數(shù)。首先求出 1 月 0 日(即上一年 12 月 31 日)的星期序數(shù),然后與日數(shù) d 相加,其和用 7 除,余數(shù)就是答案。為了推導(dǎo)公式,我們想一想,第一年 1 月 0 日的星期序數(shù)與第二年 1 月 0 日的星期序數(shù)有什么關(guān)系?平年 365 天,等于 52 個星期零 1 天,所以第二年 1 月 0 日的星期序數(shù)比第一年的多 l,但這個 l 已包含在y 中了,因為第二年的年數(shù) y 比第一年大 1;閏年 366 天,等于 52 個星期零二天,所以第二年 1 月 0 日的星期序數(shù)等于第一年(閏年)的星期序數(shù)加 2,除了 y中包含的 1 外,還需加修正值 1。根據(jù)

33、這些道理我們可以推得三個公式,將式中s 用 7 除,余數(shù)就表示星期幾。從公元 1900 年 1 月 1 日到公元 2101 年 1 月 1 日之間這 201 年,可用公式:s y1900 + (y1901)/4 + d 方括號表示取商的整數(shù)部分,對于1900 年1904 年這五年方括號值為 0。這個公式是這樣來的:1900 年 1 月 0 日(即 1899 年 12 月 31 日)是星期天。這年是平年,以后直到 2100 年前都是每隔4 年一閏,閏年多出的那一天,影響到下一年 1 月 0 日的星期序數(shù),并不影響閏年本身,閏年產(chǎn)生的修正值應(yīng)加到下一年上去,所以(y1901)/4中,計算時用 19

34、0l 而不是 1900。例:求 2000 年 12 月 31 日是星期幾?2000 年是閏年,從 1 月 1 日算起,12 月 31 日是第 366 天,所以 d366。根據(jù)公式有:s20001900 +(20001901)/4+ 366100 +99/4+ 366l00 + 24 + 366490490 為 7 的整數(shù)倍,即余數(shù)為 0,所以 2000 年 12 月 31 日為星期日。(2)更普遍的公式為:sv1 +(y1/4(y1/100+(y1/400+ d對于這個公式,我們不妨這樣考慮:陽歷 400 年中有 97 個閏年,共 365x 淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文14400 + 97

35、 146.097 天,146,09720,871 7,即正好是 7 的整數(shù)倍。這表明某年某月某日所對應(yīng)的星期序數(shù)與四百年前同月同日所對應(yīng)的星期序數(shù)完全相同。前邊例中我們已算出公元 2001 年 1 月 0 日(即 2000 年 12 月 31 日)是星期日,那么,公元 1601 年、1201 年以及公元 1 年的 1 月 0 日都是星期日。假如每個歷年都是 365 天的話,那么,由于公元 1 年 1 月 0 日是星期日,只要公式 sy1 + d 就可以了,但實際上閏年是 366 天,所以我們必須根據(jù)閏年的有關(guān)規(guī)定進(jìn)行修正。 (y1)/4是四年一閨產(chǎn)生的修正值。如果只取這一個修正項,就會多修正以

36、至造成錯誤,這是因為,根據(jù)陽歷的規(guī)定,逢百之年雖然能被 4 整除,卻不一定是閏年,所以必須減去多修正的值,它等于(y1/100) 。如果逢百之年都是平年,只要這兩個修正項也就可以了??墒牵陻?shù)能被 400 整除的年(當(dāng)然也一定能被 100 整除)仍是閏年,所以還必須加上(y1/400) 。這個修正項才行。方括號中之所以用 y1 而不用 y,是由于修正值是加到閏年的下一年上去,而不是加到閏年本身上。4.4 萬年歷工作的簡易流程圖萬年歷工作的簡易流程圖在萬年里程序中,單片機的工作流程圖如下圖 4-3 所示。開始單片機讀ds1302數(shù)據(jù)單片機送數(shù)據(jù)到lcd1602單片機判斷按鍵單片機處理按鍵結(jié)束

37、圖 4-3 單片機的簡易工作流程圖 第五章 proteus 軟件仿真15 第五章第五章 proteusproteus 軟件仿真軟件仿真5.1 proteusproteus isisisis 簡介簡介proteus isis 是英國 labcenter 公司開發(fā)的電路分析與實物仿真軟件。它運行于 windows 操作系統(tǒng)上,可以仿真、分析(spice)各種模擬器件和集成電路。該軟件的特點是:(1)全部滿足我們提出的單片機軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢,使用更方便快捷。(2)具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、rs232 動態(tài)仿真、i2 c 調(diào)試器

38、、spi 調(diào)試器、鍵盤和 lcd 系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。(3)目前支持的單片機類型有:arm7 系列、68000 系列、8051 系列、avr系列、pic12 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各種外圍芯片,全力滿足軟件電路的需要。(4)支持大量的存儲器和外圍芯片??傊撥浖且豢罴瘑纹瑱C和 spice 分析于一身的仿真軟件,功能極其強大 ,可仿真 arm、51、avr、pic。5.2 proteusproteus 運行流程運行流程proteus isis 的工作界面是一種標(biāo)準(zhǔn)的 windows 界面,它包

39、括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。運行 proteus 程序后,進(jìn)入軟件的主界面。通過左側(cè)工具欄中的 p(從庫中選擇元件命令)命令,在 pick devices 左側(cè)窗口中選擇所需元件的關(guān)鍵字,然后放置元件并調(diào)整方向和位置以及參數(shù)設(shè)置,最后進(jìn)行連線。proteus isis 的工作界面可參考附錄一。5.3 proteusproteus 功能仿真功能仿真proteus 仿真效果最后載入 hex 文件后可以進(jìn)行模擬仿真,可以全速運行也可以使用運行按鍵單步調(diào)試運行,圖 5-1 既為 pro

40、teus 仿真的運行按鍵。圖 5-1 運行按鍵通電后 led 顯示:淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文16 圖 5-2 時鐘調(diào)節(jié)秒鐘調(diào)節(jié):圖 5-3 時鐘調(diào)節(jié) 分鐘調(diào)節(jié):圖 5-4 時鐘調(diào)節(jié)時鐘調(diào)節(jié):圖 5-5 時鐘調(diào)節(jié)星期調(diào)節(jié):第五章 proteus 軟件仿真17圖 5-6 時鐘調(diào)節(jié)日期調(diào)節(jié):圖 5-7 時鐘調(diào)節(jié)月份調(diào)節(jié):圖 5-8 時鐘調(diào)節(jié)年份調(diào)節(jié):圖 5-9 時鐘調(diào)節(jié)點擊確定鍵顯示:淮安信息職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文18圖 5-10 時鐘調(diào)節(jié)5.4 本章小結(jié)本章小結(jié)本節(jié)介紹了 proteus 軟件和 keil 軟件,闡述了如何用 proteus 結(jié)合 keil軟件仿真出電子萬年歷功能的過程并

41、給出了仿真系統(tǒng)的操作過程。最后簡要的介紹了硬件調(diào)試中的問題和解決辦法。第六章 測試與結(jié)果分析19第六章第六章 測試與結(jié)果分析測試與結(jié)果分析6.1 硬件測試硬件測試電子萬年歷的電路系統(tǒng)較大,對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯誤,則會對檢測造成很大的不便,而且電路的交線較多,對于各種鋒利的引腳要注意處理,否則會刺破帶有包皮的導(dǎo)線,則會對電路造成短路現(xiàn)象。在本成電子萬年歷的設(shè)計調(diào)試中遇到了很多的問題?;叵脒@些問題只要認(rèn)真多思考都是可以避免的,以下為主要的問題:(1)lcd 液晶顯示屏顯示部分已經(jīng)連在最小系統(tǒng)上,節(jié)省了不少時間和精力。(2)對萬年歷修改時間或日期時,有時 lcd

42、 液晶顯示屏被屏蔽掉,造成不亮現(xiàn)象。解決:根據(jù)儀器的測試,發(fā)現(xiàn)電路的驅(qū)動能力不足,最后在 ds1302 時鐘芯片的/cs、sclk、ret 端接入 5.1k 的上拉電阻后,電路的驅(qū)動能力才能滿足,即可解決不亮現(xiàn)象。6.2 軟件測試軟件測試電子萬年歷是多功能的數(shù)字型,可以看當(dāng)前日期,時間。電子萬年歷功能很多,所以對于它的程序也較為復(fù)雜,在編寫程序和調(diào)試時出現(xiàn)了相對較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一步的調(diào)試,最終完成了軟件。在軟件的調(diào)試過程中遇到的主要問題是:導(dǎo)入程序后,lcd 液晶顯示屏顯示亮度不好。解決:一遍旋轉(zhuǎn) 10k 歐的滑動變阻器,一遍觀看 lcd 顯示屏,直到看到合適的

43、亮度為止。6.3 測試結(jié)果分析與結(jié)論測試結(jié)果分析與結(jié)論在測試中遇到 lcd 液晶顯示屏為不顯示時,首先使用試測儀對電路進(jìn)行測試,觀察是否存在漏焊,虛焊,或者元件損壞,滑動變阻器沒有調(diào)好:查看編寫的程序是否正確無誤,對程序進(jìn)行認(rèn)真修改,根據(jù)硬件電路調(diào)整按鍵查看萬年歷能否達(dá)到各功能。經(jīng)過多次的反復(fù)測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設(shè)計能力與及對電路的分析能力。于此同時軟件的編程方面也得到更多的提高,編程能力得到加強,所學(xué)的知識更加熟練牢固?;窗残畔⒙殬I(yè)技術(shù)學(xué)院畢業(yè)設(shè)計論文20第七章 總結(jié)與展望21 第七章第七章 總結(jié)與展望總結(jié)與展望 7.1 總結(jié)總結(jié)至此,關(guān)于畢業(yè)設(shè)計的所有內(nèi)容

44、就介紹完了,進(jìn)行這次畢業(yè)設(shè)計一切都是從零開始,從最簡單查資料、了解各個元件的功能起步,再確定設(shè)計方案、畫流程圖、編寫程序到最后進(jìn)行仿真,這次課題設(shè)計可以說成功完成。系統(tǒng)的硬件、軟件設(shè)計合理,功能完備,運行穩(wěn)定、可靠。在整個設(shè)計過程中,學(xué)到了許多扎實的知識。通過設(shè)計提高了對單片機的認(rèn)識,進(jìn)一步熟悉和掌握單片機的結(jié)構(gòu)及工作原理。通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù),提高軟件設(shè)計、調(diào)試能力;通過這次設(shè)計熟悉以單片機核心的應(yīng)用系統(tǒng)開發(fā)的全過程,掌握硬件電路設(shè)計的基本方法和技術(shù),掌握相關(guān)電路參數(shù)的計算方法。最終較好的完成了設(shè)計,達(dá)到了預(yù)期的目的,完成最初的設(shè)想。但是由于時間和個人

45、能力的原因,整個系統(tǒng)看起來還是顯得非常的簡單,只實現(xiàn)了一些最基本的功能,還有許多不足和可以擴展的地方。例如實現(xiàn)公歷和農(nóng)歷的轉(zhuǎn)換、鬧鐘報時等,這些有待以后來彌補,還望各位老師予以指正和修改。本次設(shè)計的電子萬年歷也存在的不足的地方,有待于以后的改進(jìn)。7.2 展望展望實驗結(jié)果表明此萬年歷實現(xiàn)后具有讀取方便、顯示直觀、功能多樣、電路簡潔、等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。本課題從理論到實際應(yīng)用,用 at89s52 單片機與等一些電路的組合,成功的設(shè)計出了一個電子萬年歷。而且所設(shè)計的電子萬年歷設(shè)計也按當(dāng)初要求的能夠在 proteus 中進(jìn)行仿真,并且能夠很精確的顯示年歷??梢哉f

46、該電子萬年歷具有很高的實用價值?;窗残畔⒙殬I(yè)技術(shù)學(xué)院畢業(yè)論文22致 謝23致致 謝謝經(jīng)過二個多月的時間,畢業(yè)設(shè)計按照預(yù)期完成了。這次課程設(shè)計的制作,一切都是從零開始,從最簡單的畫流程圖起步,到課程的設(shè)計、仿真,它的圓滿完成,與我的單片機課程是離不開的。它凝聚了各位老師的心血!由于本人的知識水平有限,論文和設(shè)計中有遺漏和缺陷的地方懇請老師指正。在整個設(shè)計過程中,充分發(fā)揮人的主觀能動性,自主學(xué)習(xí),學(xué)到了許多沒學(xué)到的知識。較好的完成了設(shè)計,達(dá)到了預(yù)期的目的,完了最初的設(shè)想。首先,對電路的設(shè)計、布局要先有一個好的構(gòu)思,才顯得電路板美觀、大方。其次,程序編寫中,由于思路不清晰,會遇到很多的問題,經(jīng)過靜下心來思考,和同學(xué)討論、向老師請教理清了思路,反而更得心應(yīng)手。在此次設(shè)計中,要有一顆平常的心,不要想著走捷徑,一步一腳印,更要有有持之以恒的精神。此次課程設(shè)計中我學(xué)到了很多很多重要的東西,它使我的能力得到了全方位的提高,對于專業(yè)技能有了更深刻的了解。感謝我的導(dǎo)師馮成龍老師給了我莫大的幫助,在他悉心的指導(dǎo)和嚴(yán)格的要求下,我的畢業(yè)論文順利完成了。論文從選題到最終的完成,凝結(jié)著導(dǎo)師辛勤的汗水,他不辭勞苦的教導(dǎo)、嚴(yán)謹(jǐn)?shù)淖黠L(fēng)使我終生受

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論