電子萬年歷的設(shè)計(jì) 畢業(yè)論文_第1頁
電子萬年歷的設(shè)計(jì) 畢業(yè)論文_第2頁
電子萬年歷的設(shè)計(jì) 畢業(yè)論文_第3頁
電子萬年歷的設(shè)計(jì) 畢業(yè)論文_第4頁
電子萬年歷的設(shè)計(jì) 畢業(yè)論文_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

密級: 公開 科科 學(xué)學(xué)技技術(shù)術(shù)學(xué)學(xué)院院 SCIENCE & TECHNOLOGY COLLEGE OF NANCHANG UNIVERSITY 學(xué)學(xué) 士士 學(xué)學(xué) 位位 論論 文文 THESIS OF BACHELOR (2008 2012 年) 題 目 電子萬年歷的設(shè)計(jì) 學(xué) 科 部: 信息學(xué)科部 專 業(yè): 電子信息工程 班 級: 08 電子 1 班 學(xué) 號: 7020987650 學(xué)生姓名: 陳志平 指導(dǎo)教師: 胡斐 起訖日期: 2011.11.212012.5.28 南昌大學(xué) 科學(xué)技術(shù)學(xué)院 學(xué)士學(xué)位論文原創(chuàng)性申明 本人鄭重申明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究 成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已 經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中 以明確方式表明。本人完全意識到本申明的法律后果由本人承擔(dān)。 作者簽名: 日期: 學(xué)位論文版權(quán)使用授權(quán)書 本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并 向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人 授權(quán)南昌大學(xué)可以將本論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用 影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。 保 密 ,在 年解密后適用本授權(quán)書。 本學(xué)位論文屬于 不保密 。 (請?jiān)谝陨舷鄳?yīng)方框內(nèi)打“” ) 作者簽名: 日期: 導(dǎo)師簽名: 日期: 目 錄 摘要:.I Abstract.II 第一章 緒論 .1 1.1 選題的依據(jù)及意義 .1 1.2 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢 .1 1.3 本課題研究內(nèi)容 .2 第二章 電子萬年歷的方案與論證 .3 2.1 設(shè)計(jì)要求 .3 2.2 整體方案的論證 .3 2.3 器件的選擇 .3 2.3.1 單片機(jī)芯片的選擇方案和論證 .3 2.3.2 顯示模塊選擇方案和論證 .4 2.3.3 時鐘芯片的選擇方案和論證 .4 2.4 電路設(shè)計(jì)最終方案確定 .4 第三章 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn) .5 3.1 電子萬年歷的系統(tǒng)設(shè)計(jì) .5 3.2 最小系統(tǒng)設(shè)計(jì). .5 3.2.1 時鐘電路 .5 3.2.2 復(fù)位電路 .5 3.3 顯示電路 .6 3.4 按鍵電路 .7 3.4.1 鍵盤接口介紹 .7 3.4.2 按鍵電路設(shè)計(jì) .7 第四章 軟件設(shè)計(jì) .8 4.1 主程序流程圖 .8 4.2 時間調(diào)整程序設(shè)計(jì) .8 4.3 陽歷程序的設(shè)計(jì) .9 4.4 陰歷程序設(shè)計(jì) .10 第五章 系統(tǒng)調(diào)試與仿真 .13 5.1 軟件調(diào)試 .13 5.2 仿真 .13 5.3 硬件調(diào)試 .14 5.4 測試結(jié)論 .15 結(jié) 論 .16 致 謝 .17 參考文獻(xiàn)(References) .18 附錄一:硬件電路仿真圖 .18 附錄二:電子萬年歷原理圖 .20 附錄三:硬件電路 PCB 圖.21 附錄四:實(shí)物圖 .22 附錄五:元件清單 .23 電子萬年歷的設(shè)計(jì)電子萬年歷的設(shè)計(jì) 專業(yè): 電子信息工程 學(xué)號:7020987650 學(xué)生姓名:陳志平 指導(dǎo)老師:胡斐 摘要摘要:單片機(jī)應(yīng)用技術(shù)飛速發(fā)展,縱觀我們現(xiàn)在生活的各個領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上 各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實(shí)時控制和數(shù)據(jù)處理, 以及我們生活中廣泛使用的各種智能 IC 卡、電子寵物等,這些都離不開單片機(jī)。單片機(jī)是集 CPU ,RAM ,ROM ,定時,計(jì)數(shù)和多種接口于一體的微控制器。它體積小,成本低,功能強(qiáng),廣泛 應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動化上。而 51 系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。 這次畢業(yè)設(shè)計(jì)通過對它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬件的能力。 本文通過對一個基于單片機(jī)的能實(shí)現(xiàn)萬年歷功能電子時鐘的設(shè)計(jì),從而達(dá)到學(xué)習(xí)、了解單片 機(jī)相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由主控制器 AT89C51、時鐘電路 DS1302、顯示電路、按鍵電路、 和復(fù)位電路等部分構(gòu)成,能實(shí)現(xiàn)時鐘日歷顯示的功能,能進(jìn)行時、分、秒的顯示。 關(guān)鍵詞關(guān)鍵詞:單片機(jī);農(nóng)歷查詢;萬年歷 The design of electronic calendar Abstract: The rapid development of microcomputer application technology, throughout all areas of life we are now, Navigation device from the missile to the plane of the instrument control, From the computer network communications and data transmission to the industrial automation process control and real-time data processing. And we live in a variety of widely used smart IC card and electronic pets, which are inseparable from the microcontroller. Microcontroller is a CPU, RAM, ROM timing, counting and multiple interfaces in one of the micro-controller, its small size, low cost, powerful, widely used in smart industries and industrial automation. The 51 series of microcontrollers is the most typical and most representative of ones. This graduation project through to study it and application to achieve the study, design development software and hardware capabilities. In this article design a microcontroller-based electronic clock calendar function to achieve the design to achieve the learning, understanding of SCM-related instruction in all aspects of the application. System from the main controller AT89C51, clock circuit DS1302, display circuit, key circuit, and reset the circuit and other parts, it can achieve the clock calendar display function and can be display the hours minutes and seconds. Keywords: Monolithic single-chip lunar calendar demand perpetual calendars 第一章 緒論 1.1 選題的依據(jù)及意義 單片機(jī)應(yīng)用技術(shù)迅速發(fā)展,在我們生活的各個領(lǐng)域,無論工業(yè)發(fā)展中還是現(xiàn)實(shí)生活中都離不 開它,它是集 CPU,RAM,ROM,定時,計(jì)數(shù)和多接口于一體的微控制器。它體積小,成本低,功能 強(qiáng)大,廣泛應(yīng)用于只能產(chǎn)業(yè)和工業(yè)自動化上。51 系列單片機(jī)是各種單片機(jī)中最具典型和最有代 表性的一種。通過這次畢業(yè)設(shè)計(jì)可以讓我提升學(xué)習(xí),設(shè)計(jì),開發(fā)軟硬件的能力。 電子萬年歷的設(shè)計(jì)就是建立在單片機(jī)的基礎(chǔ)上,它是應(yīng)用非常廣泛的日常計(jì)時工具,而且顯 示清晰直觀,走時準(zhǔn)確,可以進(jìn)行夜視。數(shù)字顯示的日歷鐘已經(jīng)越來越流行,特別是在家庭居室, 辦公室,車站和廣場等使用,壁掛式 LED 數(shù)碼顯示的日歷鐘逐漸受到人們的歡迎。1 隨著科學(xué)技術(shù)的快速發(fā)展,時間的流逝,從擺鐘到現(xiàn)在的電子鐘,人類不斷的研究,不斷創(chuàng) 新紀(jì)錄。美國 DALLAS 公司推出的具有涓流電流充電能的低功耗實(shí)時時鐘電路 DS1302.它可以對 年,月,日,周,時,分,秒進(jìn)行計(jì)時,還具有閏年補(bǔ)償?shù)榷喾N功能,而且 DS1302 的使用壽命 長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年,月,日,周,時,分, 秒和溫度等信息,還具有時間校準(zhǔn)等功能。該電路采用 AT89C52 單片機(jī)作為核心,功能小,能在 3V 的低壓工作,電壓可選用 35V 電壓供電。2 綜上所述此萬年歷具有讀取方便,顯示直觀,功能多樣,電路簡潔,成本低廉等諸多優(yōu)點(diǎn), 符合電子儀器儀表的發(fā)展趨勢,具有管擴(kuò)大市場前景,值得我們進(jìn)入深入的研究和了解。 意義: (1)通過設(shè)計(jì)提高對單片機(jī)的認(rèn)識,進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理。 (2)通過設(shè)計(jì)、制作提高焊接、布局、電路檢查能力; (3)通過實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù),提高軟件設(shè)計(jì)、 調(diào)試能力; (4)通過完成一個實(shí)際電子產(chǎn)品從電路設(shè)計(jì)、程序開發(fā)、系統(tǒng)調(diào)試的完整過程,熟悉以單 片機(jī)核心的應(yīng)用系統(tǒng)開發(fā)的全過程,掌握硬件電路設(shè)計(jì)的基本方法和技術(shù),掌握相關(guān)電路參數(shù)的 計(jì)算方法。 通過此畢業(yè)課題的設(shè)計(jì),加深對理論知識的理解,學(xué)會將學(xué)習(xí)的理論知識在實(shí)際中運(yùn)用,培 養(yǎng)動手能力和解決實(shí)際問題的能力,為今后從事相關(guān)工作打下基礎(chǔ)。 1.2 國內(nèi)外研究現(xiàn)狀及發(fā)展趨勢 隨著科學(xué)技術(shù)的發(fā)展,以前的年歷已發(fā)展成現(xiàn)在的電子萬年歷,他一開始是采用數(shù)字電路實(shí) 現(xiàn)的,電路復(fù)雜,精確度差,每天都需要調(diào)時,由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣 泛應(yīng)用,使得它的電路越來越簡單,精確度越來越高,現(xiàn)在的電子萬年歷一般都是集成芯片和軟 件結(jié)合實(shí)現(xiàn),電路簡單,制作方法簡便,給人們生產(chǎn)生活帶來了極大的便利,它已成為我們生活 中不可缺少的家居用品。3 二十一世紀(jì)的今天,最具有代表性的計(jì)時產(chǎn)品就是電子萬年歷,它是近代世界鐘表業(yè)界的第 三次革命。前兩次革命是擺和擺輪游絲的發(fā)明,以及石英晶體振蕩器的應(yīng)用,第三次革命就是單 片機(jī)數(shù)碼計(jì)時技術(shù)的應(yīng)用(電子萬年歷) ,使得從原來傳統(tǒng)指針計(jì)時的方式發(fā)展為人們?nèi)粘8鼮?熟悉的夜光數(shù)字顯示方式,直觀明了,并增加了全自動日期,星期,溫度以及其他日常附屬信息 的顯示功能,它更符合消費(fèi)者的生活需求!因此,電子萬年歷的出現(xiàn)帶來了鐘表計(jì)時業(yè)界跨越性 的進(jìn)步。 電子萬年歷的發(fā)展趨勢將會朝著功能多,讀取操作簡單,顯示更加直觀,電路更加簡潔,成 本越來越低,滿足大部分人的要求。隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片 有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一就是將 CPU 和外圍芯片,如程序存儲器,數(shù)據(jù)存儲器, 并行,串行 I/O 口,定時/計(jì)數(shù)器,中斷控制器及其他控制器件集成在一個芯片中,支撐單片計(jì) 算機(jī)。而近年來推出的一些高檔單片機(jī)還包括有許多特殊功能的單元,如 A/D,D/A 轉(zhuǎn)換器,調(diào)制 解調(diào)器,鎖相環(huán),浮點(diǎn)運(yùn)算單元等。因此只要外加一些擴(kuò)展電路及必要的通道接口就可以構(gòu)成各 種計(jì)算機(jī)應(yīng)用系統(tǒng),如數(shù)據(jù)采集系統(tǒng),自動測試系統(tǒng)等。4 1.3 本課題研究內(nèi)容 設(shè)計(jì)一個基于單片機(jī)多功能的電子萬年歷。單片機(jī)最為本設(shè)計(jì)的核心,實(shí)現(xiàn)時鐘日歷的顯示: 用 1602 顯示月、日、星期、時、分、秒,用 DS1302 作為該設(shè)計(jì)的實(shí)時時鐘芯片。 第二章 電子萬年歷的方案與論證 2.1 設(shè)計(jì)要求 (1)具有年、月、日、星期、時、分、秒等功能; (2)具備年、月、日、星期、時、分、秒校準(zhǔn)功能; (3)校準(zhǔn)時具有閃爍功能。 2.2 整體方案的論證 本萬年歷設(shè)計(jì)可以采用兩種方法 方案一:在 FPGA 芯片上,通過配置 NIOS 軟核處理器和相關(guān)接口模塊,實(shí)現(xiàn)了嵌入式系統(tǒng)的硬 件結(jié)構(gòu)。系統(tǒng)用液晶模塊顯示萬年歷等漢字字符,用 8 個七段數(shù)碼管顯示電子鐘的日期和時間,并 可通過按鍵對其進(jìn)行調(diào)整。具有高集成度、設(shè)計(jì)靈活和可移植性較好等特點(diǎn)。但是此種方案的需 要的成本高,作為設(shè)計(jì)研究不予采取。 方案二:采用 89C51 芯片作為硬件核心,采用 Flash ROM,內(nèi)部具有 4KB ROM 存儲空間,能 于 3V 的超低壓工作,而且與 MCS-51 系列單片機(jī)完全兼容,但是孕育電路設(shè)計(jì)中時由于不具備 ISP 在線編程技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰?程序時,對芯片的多次拔插會對芯片造成一定的損壞。顯示電路還可以采用液晶 LCD1602 來實(shí)現(xiàn)。 液晶顯示器具有微功耗、體積小、 顯示內(nèi)容豐富、超薄輕巧等諸多優(yōu)點(diǎn),在本題的制作中,用 液晶來實(shí)現(xiàn)數(shù)字信息的顯示是比較合適的一種選擇。采用 DS1302 時鐘芯片實(shí)現(xiàn)時鐘,DS1302 芯 片是一種高性能的時鐘芯片,可自動對秒、分、時、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù), 而且精度高,工作電壓 2.5V5.5V 范圍內(nèi),2.5V 時耗電小于 300mA。 所以方案二對于我們學(xué) 生作為畢業(yè)設(shè)計(jì)最為合適,且作品的精度高,成本低,易于制作研究。 2.3 器件的選擇 2.3.1 單片機(jī)芯片的選擇方案和論證 方案一:采用 89C51 芯片作為硬件核心,采用 Flash ROM,內(nèi)部具有 4KB ROM 存儲空間,能 于 3V 的超低壓工作,而且與 MCS-51 系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時由于不具備 ISP 在線編程技術(shù), 當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰?程序時,對芯片的多次拔插會對芯片造成一定的損壞。 方案二:采用 AT89S52,片內(nèi) ROM 全都采用 Flash ROM;能以 3V 的超底壓工作;同時也與 MCS-51 系列單片機(jī)完全兼容,該芯片內(nèi)部存儲器為 8KB ROM 存儲空間,同樣具有 89C51 的功能, 且具有在線編程可擦除技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ?需要燒入程序時,不需要對芯片多次拔插,所以不會對芯片造成損壞。 所以選擇采用 AT89S52 作為主控制系統(tǒng)。 2.3.2 顯示模塊選擇方案和論證 方案一:采用 LED 數(shù)碼管動態(tài)掃描,雖然 LED 數(shù)碼管價格適中,對于顯示數(shù)字也比較合適,然 而需要顯示多位數(shù)字和字母時,編程就會變得很復(fù)雜,而且占用的單片機(jī)口線多。 方案二:采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示 文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價格也相對較高,所以也不用此種作為顯示。 方案三:可以通過數(shù)碼管來顯示時鐘的日歷、時間、溫度,使用數(shù)碼管的優(yōu)點(diǎn)是直觀清楚, 適合用在光線較暗的地方,但是數(shù)碼管的功耗大,顯示單一,并且在電路制作上布線復(fù)雜,難度 較高。顯示電路還可以采用液晶 1602 來實(shí)現(xiàn)。液晶顯示器具有微功耗、體積小、 顯示內(nèi)容豐富、 超薄輕巧等諸多優(yōu)點(diǎn),在本題的制作中,用液晶來實(shí)現(xiàn)數(shù)字信息的顯示是比較合適的一種選擇。 所以采用 1602 液晶顯示屏作為顯示。 2.3.3 時鐘芯片的選擇方案和論證 方案一:直接采用單片機(jī)定時計(jì)數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、 秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時間誤差較大。 方案二:采用 DS1302 時鐘芯片實(shí)現(xiàn)時鐘,DS1302 芯片是一種高性能的時鐘芯片,可自動對 秒、分、時、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的 RAM 做為數(shù)據(jù)暫存 區(qū),工作電壓 2.5V5.5V 范圍內(nèi),2.5V 時耗電小于 300mA. 所以采用 DS1302 提供時鐘。 2.4 電路設(shè)計(jì)最終方案確定 綜上所述我們最終決定采用單片機(jī) AT89C52 作為時鐘的主控制部分,LCD1602 作為顯示部分, 時鐘信號采用芯片通過設(shè)置 4 個按鍵來實(shí)現(xiàn)時間的調(diào)整,鬧鐘的開關(guān)。這五個主要部分基本上就 實(shí)現(xiàn)了集日歷、時間、星期、溫度、鬧鐘于一體的多功能萬年歷。精確度高,顯示直觀,輕巧的 優(yōu)越性具有很高的使用價值。 第三章 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn) 3.1 電子萬年歷的系統(tǒng)設(shè)計(jì) 圖 3-1 電子萬年歷的系統(tǒng)設(shè)計(jì) 模塊說明: DS1302 時鐘模塊可以輸出其當(dāng)前日期及時間; 鍵盤輸入電路可以調(diào)整日期,時間及整體的轉(zhuǎn)換; 顯示電路則顯示當(dāng)前的系統(tǒng)運(yùn)行情況。 3.2 最小系統(tǒng)設(shè)計(jì). 單片機(jī)要正常運(yùn)行,必須具備一定的硬件條件,其中最主要的就是三個基本條件:(1)電 源正常(2)時鐘正常;(3)復(fù)位正常。AT89S51 的引腳如圖 3-2 所示。 3.2.1 時鐘電路 時鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時鐘頻率為基準(zhǔn),有條不絮的一拍一 拍地工作。因此,時鐘頻率直接影響單片機(jī)的速度,時鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn) 定性。常用的時鐘有兩種方式:一種是內(nèi)部時鐘方式,另一種為外部時鐘方式。本文用的是內(nèi)部 時鐘方式。 AT89S52 單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸 入端為芯片引腳 XTAL1,輸出端為引腳 XTAL2。這兩個引腳跨接石英晶體振蕩器和微調(diào)電容,就 構(gòu)成一個穩(wěn)定的自激振蕩器。5 3.2.2 復(fù)位電路 為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須采用復(fù)位的方式,復(fù)位后可使 CPU 及系 統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的, 在正常運(yùn)行情況下,只要 RST 引腳上出現(xiàn)兩個機(jī)器周期時間以上的高電平,即可引起系統(tǒng)復(fù)位, 但如果 RST 引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端 口寄存器置為 FFH,堆棧指針 SP 置為 07H,其余的寄存器全部清 0,內(nèi)部 RAM 的狀態(tài)不受復(fù)位的 影響,在系統(tǒng)上電時 RAM 的內(nèi)容是不定的。復(fù)位操作有兩種情況,即上電復(fù)位和手動(開關(guān))復(fù)位。 本系統(tǒng)采用上電復(fù)位方式。上電復(fù)位電路中的電阻 R 取為 1K,C 取為 10PF。6 圖 3-2 單片機(jī)最小系統(tǒng) 3.3 顯示電路 液晶顯示器的接口有兩種:一種是總線式接口電路方式;另一種是非總線接口電路方式???線式接口方式是把液晶顯示器看做外部的數(shù)據(jù)存儲器,訪問液晶顯示器就像訪問數(shù)據(jù)存儲器的一 個單元一樣,采用這種方式能充分發(fā)揮單片機(jī)的總線讀寫功能,便于升級和擴(kuò)展。而非總線方式 是直接利用 IO 口進(jìn)行讀寫較靈活,不便于升級。這里采用總線式接口方式。接口時要注意顯示 器的功能信號 E 是高電平有效,所以要取反。這里使用的液晶顯示器為 LCD1602 為字符點(diǎn)陣式液 晶顯示器??梢燥@示 162 字符,而要顯示日期字符 23 個,可以滿足要求。 圖 3-3 顯示電路 LCD1602 引腳說明: 1 腳:Vss 接地; 2 腳:Vdd 電源正極; 3 腳:V0 偏置電源; 4 腳:RS 控制輸入是數(shù)據(jù)或是命令; 5 腳:RW 控制讀寫端口; 6 腳:E 使能端; 7-14 腳: 數(shù)據(jù) IO 口 3.4 按鍵電路 3.4.1 鍵盤接口介紹 獨(dú)立式鍵盤: 獨(dú)立式鍵盤是指直接用 I/O 口線構(gòu)成單個按鍵電路,每個按鍵占用一條 I/O 口線,當(dāng)某個鍵 閉合時,相應(yīng)的 I/O 口線變?yōu)榈碗娖?,?dāng) CPU 查詢到為低電平的 I/O 口線時,就可以判別出與 其對應(yīng)的鍵處于釋放狀態(tài)。 行列式鍵盤: 依次使列線 P1.4P1.7 中的一根輸出為低電平,則只有與之對應(yīng)的鍵按下時,才能使 行線 為低電平,此時其他列線都輸出高電平,與它們對應(yīng)的鍵按下,不能使行線電平變低, 所以就 實(shí)現(xiàn)了行線的時分復(fù)用。 3.4.2 按鍵電路設(shè)計(jì) 按鍵電路的功能主要是把時間和日期設(shè)置到當(dāng)前的時間,可以在系統(tǒng)運(yùn)行中進(jìn)行。用 4 個獨(dú) 立式按鍵完成,分別接到單片機(jī) P1 口的高 4 位。第 1 個按鈕表示是否進(jìn)行設(shè)置,按下時表示設(shè) 置,并且每按一次,在顯示器上分別在年、月、日等日期時間上跳轉(zhuǎn),表示對相應(yīng)的項(xiàng)進(jìn)行更改; 第 2 個按鈕按下表示對第 1 個按鈕選中的項(xiàng)進(jìn)行加 1 操作;第 3 個按鈕按下表示進(jìn)行減 1 操作; 第 4 個按鈕按下表示停止設(shè)置。只有在第 1 個按鈕按時才可進(jìn)行加減操作。其電路如圖 3-4 所示。 其中電容的作用是消除按鍵的抖動,也可用雙穩(wěn)態(tài)觸發(fā)器去除按鍵時的抖動,同時為了提高可靠 性,硬件去抖動的同時,還可以用軟件去抖動的方法。 7 圖 3-4 按鍵電路 第四章 軟件設(shè)計(jì) 本設(shè)計(jì)的軟件程序包括主程序、計(jì)算陽歷程序流程圖、計(jì)算陰歷序流程圖、萬年歷設(shè)置功能 子程序等。 4.1 主程序流程圖 圖 4-1 主程序流程圖 程序啟動載入默認(rèn)預(yù)定時間及日期數(shù)值,數(shù)據(jù)轉(zhuǎn)入顯示屏幕顯示,時鐘芯片啟動,程序依年 月日判別進(jìn)行時間增加,進(jìn)入鍵盤掃描死循環(huán),在鍵盤有輸入值時即做出調(diào)時,轉(zhuǎn)農(nóng)歷顯示等操 作,顯示主程序流程圖如圖 4-1 所示。 4.2 時間調(diào)整程序設(shè)計(jì) 調(diào)整時間用三個調(diào)整按鈕,一個作為移位、控制用,一個作為加用,一個作為退出調(diào)整用。 分別定義為控制按鈕、加按鈕、退出按鈕。在調(diào)整時間過程中,要調(diào)整的位與別的位應(yīng)該有區(qū)別, 所以增加了閃爍功能,即調(diào)整的位一直在閃爍,直到調(diào)整下一位。閃爍原理就是,讓要調(diào)整的一 位每隔一定的時間熄滅一次,例如間隔時間為 50ms。利用定時器計(jì)時,當(dāng)達(dá)到 50ms 溢出時,就 送給該位熄滅符,在下一次溢出時,再送正常顯示的值,不斷交替,直到調(diào)整該位結(jié)束。此時送 正常顯示值給該位,再進(jìn)入下一位調(diào)整閃爍程序。時間調(diào)整程序流程圖如圖 4-2 所示。 圖 4-2 時間調(diào)整程序流程圖 4.3 陽歷程序的設(shè)計(jì) 因?yàn)槭褂昧藭r鐘芯片 DS1302,陽歷程序只需從 DS1302 各寄存器中讀出年、周、月、日、小 時、分、秒等數(shù)據(jù),再處理即可。在首次對 DS1302 進(jìn)行操作之前,必須對它進(jìn)行初始化,然后 從 DS1302 中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖 4-3 所示。 圖 4-3 陽歷程序流程圖 4.4 陰歷程序設(shè)計(jì) 陰歷程序的實(shí)現(xiàn)是要靠陽歷日期來推算的。要根據(jù)陽歷來推算陰歷日期,首先要設(shè)計(jì)算法。 推算方法是,根據(jù)陽歷當(dāng)前日期在一年中的天數(shù)來計(jì)算陰歷日期。陽歷一個月不是 30 天就是 31 天(2 月除外,閏年 2 月為 29 天,平年 2 月為 28 天) 。陰歷一年有 12 個月或 13 個月(含閏月) , 一個月為 30 天或 29 天。如果把一個只有 29 天的月稱為小月,用 1 為標(biāo)志,把 30 天的月稱為大 月,用 0 為標(biāo)志,那么 12 位二進(jìn)制就能表示一年 12 個月的大小。如果有閏月,則把閏月的月份 作為一個字節(jié)的高 4 位,低 4 位表示閏月大小,大月為 0,小月為 1,這樣一個字節(jié)就包括了所 有閏月的信息。陰歷春節(jié)和陽歷元旦相差的天數(shù)也用一個字節(jié)表示??偣灿?4 字節(jié)就可以存儲一 年中任何一天陽歷和陰歷的對應(yīng)關(guān)系的有關(guān)數(shù)據(jù)。8 例如 2004 年的陰歷和陽歷對應(yīng)關(guān)系如表 4-4 所示。 表 4-4 2004 年的陰歷和陽歷對應(yīng)關(guān)系表 月份123456789101112閏 2 月 大小小大大大小大小大小大小大小 二進(jìn)制1000101010101 天數(shù) 293030302930293029302930 十六進(jìn)制425221 2004 年的春節(jié)和元旦差 21 天,這樣 2004 年的信息表示為:21,42H,52H,21H。其中表示 12 個月大小信息的字節(jié),第 4 位和第 7 位不用,第 1 個字節(jié)為十進(jìn)制,其它的都為十六進(jìn)制。 按此方法,50 年的陽歷和陰歷對應(yīng)關(guān)系表總共使用 200 字節(jié)。 有了算法和數(shù)據(jù)以后,就可以設(shè)計(jì)軟件了。先要根據(jù)當(dāng)前陽歷的日期,算出陽歷為該年中的 第幾天。圖 4-5 為計(jì)算陽歷中任何一天在該年中為第幾天的程序流程圖。 圖 4-5 計(jì)算陽歷天數(shù)程序流程圖 計(jì)算出當(dāng)前陽歷日期為該年中的第幾天后,再減去陽歷該年春節(jié)和元旦的日差,如果夠減, 則相減的結(jié)果就是陰歷在該年中的總第幾天了。根據(jù)該數(shù)據(jù)就可以推算出具體的當(dāng)前陰歷日期; 如果不夠減,則表示當(dāng)前陰歷年為陽歷年的前一年。這種情況下,根據(jù)實(shí)際,當(dāng)前陰歷日期會處 于陰歷 11 月或 12 月,此時春節(jié)和元旦的日差減去前面計(jì)算出的當(dāng)前陽歷日期在陽歷年為第幾天 的數(shù)據(jù),其結(jié)果表示當(dāng)前陰歷日期離春節(jié)的天數(shù)。計(jì)算出的陽歷天數(shù)為該年的第幾天,存放在寄 存器 R2 和 R3 中。計(jì)算出天數(shù)后,如果大于#FFH,則把#FFH 存放在 R2 中,余值存放在 R3 中。 也就是說在用寄存器 R2 和 R3 表示的天數(shù)信息中,R2 充當(dāng)主寄存器,數(shù)據(jù)先存滿 R2,再存 R3。 在整個轉(zhuǎn)換程序中,這里面的數(shù)據(jù)不能被覆蓋。9 計(jì)算出陽歷總天數(shù)后,就可以根據(jù)它來推算陰歷日期。推算方法是,先用總天數(shù)減去春節(jié)和 元旦的日差,如果結(jié)果為 1,則該天正好是春節(jié)(因?yàn)榇汗?jié)在元旦之后,在計(jì)算春節(jié)和元旦的日 差時,假設(shè)元旦為 0 天,春節(jié)為 n 天,則日差為 n。而前面計(jì)算的陽歷總天數(shù)是該天在該年中的 第幾天,是以元旦為 1 而得到的,與計(jì)算春節(jié)和元旦日差的這樣方法相比,其數(shù)值少了 1,所以 要在原來本應(yīng)該以 0 作為該天就是春節(jié)的依據(jù)的基礎(chǔ)上加 1,所以以 1 作為該天是春節(jié)的標(biāo)志) ; 如果結(jié)果小于 1,則陰歷應(yīng)該是陽歷的前一年;如果結(jié)果大于 1,說明陽歷和陰歷為同一年。再 根據(jù)查表所得的該年的陰歷的閏年和大小月的信息,就可以推算出該天的陰歷日期了。圖 4-6 為 由總天數(shù)推算出陰歷日期的程序流程圖。10 圖 4-6 推算陰歷日期的程序流程圖 第五章 系統(tǒng)調(diào)試與仿真 5.1 軟件調(diào)試 打開程序調(diào)試軟件 Keil,在里面新建一個工程,命名,接著新建文件,編寫相應(yīng)程序。編譯、 連接。但若在該過程中,看見程序有錯誤,就根據(jù)相應(yīng)的提示來修改,直到能夠正確編譯為止。 能夠正常編譯的程序說明沒有什么問題了,此時我們在點(diǎn)擊相關(guān)欄目,讓它生成我們在硬件 仿真時所需要的.HEX 文件。到此步,我們的軟件調(diào)試就完成了。 數(shù)字鐘得功能雖然比較較少,但是程序也較為復(fù)雜,特別對于初學(xué)者的我來說更是如此,所 以在編寫程序和調(diào)試時出現(xiàn)了相對較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一步的 完成,最終解決了軟件。在軟件的調(diào)試過程中主要遇到的問題如下: 1、燒入程序后,液晶屏能顯示,也能走鐘,但時間明顯跳動很快,時間不正確 解決:通過檢查延時子程序以及循環(huán)累計(jì)秒、分、時子程序,發(fā)現(xiàn)將 50ms 延時子程序循環(huán) 20 次得到的秒鐘數(shù)錯誤當(dāng)作了分鐘數(shù)計(jì)時,從而使時間出現(xiàn)錯誤。將程序進(jìn)行修改,增加 R0 作 為 50ms 的 20 次循環(huán)計(jì)數(shù)器得到秒,從而把 R2 的計(jì)數(shù)修改為 60 次(即得到了分鐘數(shù)) ,從而解 決了該問題。 2、修改時間、日期時農(nóng)歷沒有自動對應(yīng)上 解決:把不相關(guān)的程序暫時屏蔽,地農(nóng)歷的子程序獨(dú)立調(diào)試,發(fā)現(xiàn)在調(diào)用農(nóng)歷自動更新時, 對十進(jìn)制和十六進(jìn)制處理不好造成錯亂。最后把相應(yīng)的十進(jìn)制進(jìn)行修改,使得可以與十六進(jìn)制對 應(yīng),最后解決了此問題。 5.2 仿真 1、打開 keil,輸入所編寫的源程序并對程序進(jìn)行編譯,在軟件的幫助下檢查其中的錯誤并 進(jìn)行反復(fù)修改,知道編譯正確后運(yùn)行,確保沒有錯誤以后對正確的源程序進(jìn)行保存,保存時給其 命名,以便將來載入程序時容易找到。 2、打開 PROTEUS 軟件,繪制單片機(jī)電子萬年歷具體運(yùn)行電路圖。 3、檢查所畫電路運(yùn)行圖,確保沒有錯誤以后,在 PROTEUS 下對原理圖進(jìn)行加載 keil 下的源 程序。 加載完成后,單擊電路圖框下的開始按鈕,進(jìn)行仿真,觀察 LED 數(shù)碼管現(xiàn)實(shí)情況,此時 LED 數(shù)碼管開始顯示數(shù)字。調(diào)節(jié)開關(guān)進(jìn)行時間的調(diào)節(jié)。當(dāng)秒的顯示間隔快與或慢與實(shí)際間隔時,調(diào)節(jié) 石英晶體震蕩器的頻率 15 參數(shù),從而使秒的間隔達(dá)到標(biāo)準(zhǔn)。然后檢查電路其它問題,并對其的 各參數(shù)進(jìn)行調(diào)整,使之正確。 通過在 Keil 下對源程序的編譯,改正了其中的很多錯誤,運(yùn)行之后生成 HEX 文件。然后按 原理圖選擇正確合理的電氣元件,畫出正確而且美觀的電路圖,加載源程序運(yùn)行,順利實(shí)現(xiàn)了電 子萬年歷年月日時分秒以及星期和陰歷日期的輸出。 Proteus 仿真結(jié)果如圖 5-1 所示 圖 5-1 系統(tǒng)仿真 Proteus 仿真圖 按鍵功能自左而右依次為:確定修改項(xiàng)鍵、選擇修改項(xiàng)鍵、增大鍵、減小鍵、顯示陰歷鍵。 圖 5-2 按鍵功能仿真圖 按下確定修改項(xiàng)鍵表示確定修改,然后點(diǎn)擊選擇修改項(xiàng)鍵符號開始閃動,符號閃動的年、月、 日、時、分、星期等各點(diǎn)的右側(cè)表示可以修改該數(shù)值。按增大鍵表示數(shù)字為加,按減小鍵表示數(shù) 字為減。按下顯示陰歷鍵顯示陽歷所對應(yīng)的陰歷日期。 5.3 硬件調(diào)試 該數(shù)字鐘的電路系統(tǒng)較大,對于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的 錯誤,則會對檢測造成大的不便,而且電路的交線交多,對于各種鋒利的引腳要注意處理,否則 會刺破帶有封皮的導(dǎo)線,使電路造成短路現(xiàn)象,另外,買來的元器件要先進(jìn)行檢測,如果有壞的 器件要進(jìn)行更換,還有就是要注意元器件的正確放置與安裝以及布線的合理,便于成品電路的檢 測與維護(hù)。11 在本數(shù)字鐘的設(shè)計(jì)調(diào)試中遇到了很多的問題,回想這些問題,其實(shí)只要認(rèn)真思考很多功能都 是可以避免的,以下為主要的問題: (1)檢測 AT89C52 運(yùn)行是否正常,第一次硬件檢測的時候,AT89C52 不工作,經(jīng)檢查發(fā)現(xiàn) 電源電路和晶體振蕩器沒接好。再次檢測時 89C52 仍不工作,檢測后發(fā)現(xiàn)復(fù)位開關(guān)已壞,RST 復(fù) 位引腳一直處于高電平,經(jīng)去掉開關(guān)后 89C52 工作。 (2)液晶屏顯示不正常,還有亮度不夠,首先使用試測儀對電路進(jìn)行測試,觀察是否存在 漏焊,虛焊,或者元件損壞。 (3)液晶屏管顯示不正常,還有亮度不夠,首先使用試測儀對電路進(jìn)行測試,觀察電路是 否存在短路現(xiàn)象。若硬件無誤后再查看燒寫的程序是否正確無誤,對程序進(jìn)行認(rèn)真修改。 5.4 測試結(jié)論 經(jīng)過多次的反復(fù)測試與分析,可以對電路的原理及功能更加熟悉,同時提高了設(shè)計(jì)同時提高 了設(shè)計(jì)能力以及對電路的分析能力。同時在軟件的編程方面得到更高的提高,對編程能力達(dá)到加 強(qiáng)。同時對所學(xué)的知識得到很大的提高與鞏固。對于初學(xué)者來說,更是大有益處,能把理論聯(lián)系 實(shí)際運(yùn)用,學(xué)到更多的知識,真正將這門課程所包含的知識用于實(shí)際生活中的具體創(chuàng)造和設(shè)計(jì)中。 結(jié) 論 多功能萬年歷是能同時顯示日歷、星期、時間、溫度的電子時鐘。這次的畢業(yè)設(shè)計(jì)從選題上 也花了很多時間,板也做了一塊又一塊,在做的過程中還是出現(xiàn)了很多常見的錯誤,比如在畫原 理圖的時候,連線連錯,網(wǎng)絡(luò)標(biāo)號不對應(yīng),電源和地接反,這些都是很小的錯誤,但是小錯誤也 能成大錯,導(dǎo)致最后做出來的板不能實(shí)現(xiàn)預(yù)期的功能。另外就是對一些芯片的運(yùn)用不熟悉,導(dǎo)致 顯示亂碼也是很正常的,比如時鐘芯片 DS1302 的數(shù)據(jù)端口和信號端口必須接上拉電阻后再接電 源端,否則芯片不能正常工作,軟件無法正常運(yùn)行,整個系統(tǒng)也將癱瘓無法正常顯示。還有液晶 顯示器的電源端也要接個電位器,一是方便調(diào)節(jié)明暗度,二是防止電流過大,燒壞顯示屏,這些 都是很基本的知識,但必須要熟記和掌握,以致才能運(yùn)用的更加熟練。 另外對于這次的畢業(yè)設(shè)計(jì),感覺自己的能力又得到了

溫馨提示

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

評論

0/150

提交評論