【電氣設(shè)計(jì)自動(dòng)化論文】火車站廣場數(shù)字鐘顯示系統(tǒng)設(shè)計(jì)
【電氣設(shè)計(jì)自動(dòng)化論文】火車站廣場數(shù)字鐘顯示系統(tǒng)設(shè)計(jì),電氣設(shè)計(jì),自動(dòng)化,論文,火車站,廣場,數(shù)字,顯示,系統(tǒng),設(shè)計(jì)
本科畢業(yè)論文(設(shè)計(jì))手冊(2015 屆) 火車站廣場的數(shù)字電子鐘設(shè)計(jì) 學(xué) 院 電子信息工程學(xué)院 專 業(yè) 電氣工程及其自動(dòng)化 姓 名 指導(dǎo)教師 職 稱 講師 等 級(jí) 博士 學(xué)號(hào):1目 錄本科畢業(yè)論文(設(shè)計(jì))開題報(bào)告……………………………1本科畢業(yè)論文(設(shè)計(jì))中期報(bào)告……………………………2本科畢業(yè)論文(設(shè)計(jì))指導(dǎo)記錄……………………………32本 科 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 開 題 報(bào) 告學(xué) 號(hào) 1108441048 姓 名 指 導(dǎo) 教 師題目 火 車 站 廣 場 的 數(shù) 字 電 子 鐘 設(shè) 計(jì)課題內(nèi)容:1:研究背景隨著技術(shù)的快速發(fā)展通道,從觀看太陽來判斷時(shí)間到擺鐘再到現(xiàn)在的數(shù)字電子鐘,是人類的智慧的不斷創(chuàng)新和突破。數(shù)字電子鐘可以顯示年、月、日、時(shí)、分和秒,而且還有閏年補(bǔ)償?shù)裙δ?,而且該時(shí)鐘芯片的壽命較長,誤差相對(duì)較小。使用直觀的數(shù)字顯示,可以顯示年、月、日、時(shí)、分、秒和溫度等信息,它還具有一個(gè)時(shí)間校準(zhǔn)功能。數(shù)字電子時(shí)鐘的電路采用的是單片機(jī)AT89S52 ,具有耗能低的優(yōu)點(diǎn),可以在3V的低電壓下工作。這個(gè)日歷具有方便閱讀、顯示直觀、功能多樣、電路簡單、成本低等諸多優(yōu)勢,在發(fā)展迅速的信息時(shí)代,具有很好的市場前景和研究價(jià)值。2:國內(nèi)外研究現(xiàn)狀電子技術(shù)是 20 世紀(jì)第十九年代末的一種新技術(shù),從上世紀(jì)二十年代開始發(fā)展最迅速,得到了廣泛的應(yīng)用,電子技術(shù)的發(fā)展已經(jīng)成為了科學(xué)發(fā)展的一個(gè)重要的標(biāo)志。電子技術(shù)的功能多樣化,體積小,低功耗等特點(diǎn),促進(jìn)社會(huì)生產(chǎn)力的發(fā)展。郭沫若先生曾把時(shí)間比喻成生命以及速度和力量,可見時(shí)間對(duì)于我們來說是非常之寶貴的,在我們的日常工作,學(xué)習(xí)當(dāng)中時(shí)間觀越來越重要。在信息技術(shù)高速發(fā)達(dá)的二十一世紀(jì),時(shí)間對(duì)于我們來說似乎消費(fèi)的特別快,時(shí)間在工作中,學(xué)習(xí)中,上下班的路上不知不覺的就消逝了, 工業(yè)生產(chǎn),每一步都有嚴(yán)格的時(shí)間限制,要做到技術(shù)精確,時(shí)間是重中之重。準(zhǔn)確理解和實(shí)時(shí)知道時(shí)間,是我們學(xué)習(xí),工作,生活中不可缺少的組成部分。機(jī)械的鐘表雖然也可以告知人們時(shí)間和顯示日期,但是由于其機(jī)械結(jié)構(gòu),功率和尺寸的限制,相比于性能更好的數(shù)字電子鐘而言是注定要被淘汰的。電子時(shí)鐘通常被應(yīng)用于電子電路,計(jì)時(shí)裝置,也廣泛應(yīng)用于家庭,戶外廣場,公交站和火車站。由于數(shù)字集成電路和石英晶體振蕩被廣泛應(yīng)用數(shù)字電路,使得數(shù)字鐘的精度更加準(zhǔn)確,給人們的生產(chǎn)和生活帶來了極大的方便。如 scheduleautomatic 自動(dòng)報(bào)警系統(tǒng),定時(shí)打鈴,燈爐定時(shí)開關(guān),電源設(shè)備,甚至所有的時(shí)間自動(dòng)啟用設(shè)備的基礎(chǔ)都是數(shù)字鐘表。因此,更先進(jìn)的電子數(shù)字鐘的設(shè)計(jì),其市場的前景費(fèi)長的廣闊。實(shí)時(shí)溫度顯示系統(tǒng)的技術(shù)已經(jīng)成熟,如在室溫下顯示,空調(diào)遠(yuǎn)程控制顯示溫度,熱水器。如果我們能準(zhǔn)確顯示電子時(shí)鐘以及其它電子設(shè)備的實(shí)時(shí)溫度,無疑將會(huì)對(duì)我們的生活地阿萊極大的幫助,可以讓我們了解周圍的環(huán)境和必要的措施的變化。3:研究目的與意義3電子這項(xiàng)新興技術(shù)是在十九世紀(jì)初開始發(fā)展起來的,發(fā)展最為迅速的時(shí)期是在二十世紀(jì)初期,如今已成為了科學(xué)技術(shù)發(fā)展的一個(gè)重要的標(biāo)志。在它的推廣下現(xiàn)代電子產(chǎn)品正在以前所未有的速度朝著功能多樣化,功耗最低化的方向發(fā)揮發(fā)展。電子技術(shù)的發(fā)展,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展。在信息技術(shù)高度發(fā)達(dá)的二十一世紀(jì),機(jī)械手表,雖然它也可以告知市民時(shí)間,也可以定時(shí),顯示日歷。然而,由于其機(jī)械結(jié)構(gòu),功率和體積都沒有辦法與電子時(shí)鐘進(jìn)行比較,從而其發(fā)展必然會(huì)受到限制。當(dāng)電子電路,定時(shí)裝置,秒數(shù)字顯示被應(yīng)用于電子時(shí)鐘后,促進(jìn)了電子時(shí)鐘被廣泛廣泛用于個(gè)人家庭,戶外廣場,公交站和火車站,同時(shí)也大大擴(kuò)大了原來的手表報(bào)時(shí)功能。如定時(shí)自動(dòng)報(bào)警,定時(shí)廣播,自動(dòng)啟動(dòng)和關(guān)閉的照明工具,定時(shí)開關(guān)箱,以及其他各種定時(shí)自動(dòng)設(shè)備,所有這些的基礎(chǔ)都是數(shù)字時(shí)鐘的應(yīng)用。隨著社會(huì)的進(jìn)步,人們越來越多地轉(zhuǎn)向產(chǎn)品功能多樣化。你還可以將溫度實(shí)時(shí)顯示應(yīng)用于電子鐘以準(zhǔn)確的顯示環(huán)境溫度,那么將給生活,工作和工業(yè)生產(chǎn)帶來了極大的方便,同時(shí)也讓我們明白的變化,根據(jù)環(huán)境溫度的實(shí)時(shí)性采取相應(yīng)的措施。這次畢業(yè)設(shè)計(jì)的實(shí)物操作,通過把理論與實(shí)踐的融合在一起,使我進(jìn)一步加深了對(duì)單片機(jī)的結(jié)構(gòu)的理解,編程的能力也得到了提高。在實(shí)踐過程中學(xué)習(xí)到新的知識(shí),也遇到過一些問題,經(jīng)過老師的指導(dǎo)和同學(xué)的幫助,問題也被一一解決。同時(shí),希望我們的勞動(dòng)的結(jié)晶能夠?qū)ψx者有一定的幫助,并能從中得到一些啟發(fā)。課題關(guān)鍵問題及難點(diǎn):4在此課題設(shè)計(jì)的過程中,我們需要對(duì)系統(tǒng)進(jìn)行調(diào)試,通電后觀察系統(tǒng)是否能正常運(yùn)行,如果不能,則根據(jù)原理圖對(duì)電路進(jìn)行分模塊檢測,看是否存在不正常焊接問題,如果焊接不存在問題,則再進(jìn)一步檢測下一環(huán)節(jié),直到找出問題并解決問題。單個(gè)芯片的編譯目標(biāo)代碼,可連接到該開始調(diào)試硬件電路的5V 電壓源。如果結(jié)果不符合設(shè)計(jì)要求,再次檢查是否正確連接電路,硬件電路的調(diào)試工作的連接點(diǎn),或檢查代碼程序符合硬件電路設(shè)計(jì),如果它是錯(cuò)的,使相應(yīng)的修改,編譯,則調(diào)試硬件電路。直到調(diào)試正確的結(jié)果重復(fù)此過程。如圖顯示的分別是時(shí)期、溫度和時(shí)間。擬采取的方式、方法及計(jì)劃進(jìn)程安排:通電后觀察系統(tǒng)是否能正常運(yùn)行,如果不能,則根據(jù)原理圖對(duì)電路進(jìn)行分模塊檢測,看是否存在不正常焊接問題,如果焊接不存在問題,則再進(jìn)一步檢測下一環(huán)節(jié),直到找出問題并解決問題。單個(gè)芯片的編譯目標(biāo)代碼,可連接到該開始調(diào)試硬件電路的5V電壓源。如果結(jié)果不符合設(shè)計(jì)要求,再次檢查是否正確連接電路,硬件電路的調(diào)試工作的連接點(diǎn),或檢查代碼程序符合硬件電路設(shè)計(jì),如果它是錯(cuò)的,使相應(yīng)的修改,編譯,則調(diào)試硬件電路。直到調(diào)試正確的結(jié)果重復(fù)此過程。如圖顯示的分別是時(shí)期、溫度和時(shí)間。5參考文獻(xiàn):[1]陳明熒. 8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教程[M].北京:清華大學(xué)出版社[2]蘇平.單片機(jī)的原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2006:1-113.[3]王忠民.微型計(jì)算機(jī)原理[M].西安:西安科技大學(xué)出版社,2003:15-55.[4]何立民.單片機(jī)高級(jí)教程[M].北京:北京航空航天大學(xué)出版社,2003年[5]紀(jì)宗南.單片機(jī)外圍器件使用手冊[M].北京:北京航空航天大學(xué)出版社,622-655.[6]周雪.模擬電子技術(shù) [M]西安: 西安電子科技大學(xué)出版社,2005:81-95.[7]左金生.電子與模擬電子技術(shù)[M].北京:電子工業(yè)出版社,2004:105-131.[8]尹勇.單片機(jī)開發(fā)環(huán)境 μVision2的開發(fā)指南[M]. 北京:北京航空航天大學(xué)出版社,2004:173-199.[9]馬忠梅,籍順心等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社, 2001年[10]新編單片機(jī)原理與應(yīng)用(第二版).西安電子科技大學(xué)出版社,2007.2[11]張萌.單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例[M]. 北京:清華大學(xué)出版社,2007.7[12]樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M]. 北京:北京航空航天大學(xué)出版社,2007.7[13]朱思榮. 51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷、星期的轉(zhuǎn)換[Z].當(dāng)當(dāng)電子網(wǎng)[14]李廣弟. 單片機(jī)原理及應(yīng)用[M] 北京航空航天大學(xué)出版社,2004年[15]王越明.電子萬年歷的設(shè)計(jì)[J].黑龍江科技信息,2004年指導(dǎo)教師意見:教師簽名: 年 月 日指導(dǎo)小組(教研室)意見:組長簽名: 年 月 日6本 科 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 中 期 報(bào) 告(學(xué)生填寫)學(xué) 號(hào) 1108441048 姓 名 指 導(dǎo) 教 師題目 火 車 站 廣 場 的 數(shù) 字 電 子 鐘 設(shè) 計(jì)7(簡述開題以來工作進(jìn)展和成效、存在的問題、下一步計(jì)劃與安排)在整個(gè)設(shè)計(jì)過程中,硬件系統(tǒng)主要由AT89S52單片機(jī)、DS1302接口電路、DS18B20接口電路、鬧鐘系統(tǒng)以及顯示系統(tǒng)組成;軟件通過各種渠道的信息手段,主要的設(shè)計(jì)由公歷數(shù)據(jù)讀取程序、公歷農(nóng)歷轉(zhuǎn)程序、溫度采集程序,數(shù)字顯示程序和鬧鐘程序組成;調(diào)試系統(tǒng)主要是通過AT89S52的開發(fā)板,再經(jīng)Keil公司,STC的手段,為自己建了一個(gè)小的外圍電路實(shí)現(xiàn);再由分步調(diào)試將陽歷的日期及時(shí)間顯示出來,以及實(shí)時(shí)的溫度。此電子鐘具有顯示直觀、功能多樣、電路簡單、成本低廉的優(yōu)點(diǎn),因此發(fā)展前景非常廣闊。整個(gè)設(shè)計(jì)過程中學(xué)到了很多新的知識(shí),知道了電路的焊接雖然不是什么大問題,但在整個(gè)作品中也具有相當(dāng)重要的地位。電路工程師一個(gè)心細(xì)的活并不能著急,這樣才能布局清晰、美觀大方。在本設(shè)計(jì)中,讓我明白了做什么事情都不能投機(jī)取巧,要一步一個(gè)腳印,這樣才能把事情做好。能學(xué)習(xí)到新的知識(shí)這永遠(yuǎn)是最重要的??傊舜萎厴I(yè)設(shè)計(jì)的過程,使我的能力得到了全方位的提高,當(dāng)然此次的設(shè)計(jì)尚有很多需要改進(jìn)的地方,這也是我不斷學(xué)習(xí)新知識(shí)的動(dòng)力。指導(dǎo)教師意見:教師簽名:月 日指導(dǎo)小組(教研室)意見:組長簽名:月 日本科畢業(yè)論文(設(shè)計(jì))指導(dǎo)記錄(指導(dǎo)教師、學(xué)生共同填寫)學(xué) 號(hào) 1108441048 姓 名 指 導(dǎo) 教 師8題目 火 車 站 廣 場 的 數(shù) 字 電 子 鐘 設(shè) 計(jì)第一次 時(shí)間:2014.11.5 地點(diǎn):電子實(shí)驗(yàn)室 指導(dǎo)內(nèi)容:通知畢業(yè)設(shè)計(jì)第二次 時(shí)間:2014.11.19 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:指導(dǎo)選擇畢業(yè)設(shè)計(jì)的題目第三次 時(shí)間:2014.12.10 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:布置任務(wù)第四次 時(shí)間: 2015.1.7 地點(diǎn):電子實(shí)驗(yàn)室 指導(dǎo)內(nèi)容:開題報(bào)告第五次 時(shí)間: 2015.3.11 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:進(jìn)度檢查第六次 時(shí)間: 2015.3.25 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:中期檢查第七次 時(shí)間: 2015.4.15 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:預(yù)答辯第八次 時(shí)間: 20154.22 地點(diǎn):電子實(shí)驗(yàn)室指導(dǎo)內(nèi)容:指導(dǎo)答辯學(xué)生簽名: 教師簽名: 本科畢業(yè)論文(設(shè)計(jì))(2015 屆)火車站廣場數(shù)字鐘顯示系統(tǒng)設(shè)計(jì)院 系 電子信息工程學(xué)院 專 業(yè) 電氣工程及其自動(dòng)化 姓 名 指導(dǎo)教師 講師 助教 年 5 月學(xué)號(hào):1108441048I摘 要本文介紹了一種基于 AT89S52 單片機(jī)的硬件架構(gòu)的多功能電子日歷的硬件和軟件的設(shè)計(jì)方法。該電子鐘設(shè)計(jì)主要是由數(shù)據(jù)顯示模塊、溫度采集模塊、時(shí)間處理模塊和調(diào)整設(shè)置模塊四個(gè)模塊組成。AT89S52 單片機(jī)被用來作為控制器,以串行時(shí)鐘芯片 DS1302 來記錄日歷和時(shí)間,也可以對(duì)年、月、日、小時(shí)、分鐘和秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)裙δ?。溫度芯?DS18B20 被用來采集溫度數(shù)據(jù),電子鐘采用直觀的數(shù)字顯示,數(shù)字顯示模塊被用來顯示數(shù)據(jù),可以在數(shù)據(jù)顯示上同時(shí)顯示年、月、日、時(shí)、分、秒,還具有一個(gè)時(shí)間校準(zhǔn)功能。這種日歷具有讀取方便、顯示直觀、多功能、電路簡單、成本低廉等諸多優(yōu)點(diǎn),具有廣闊的市場前景。關(guān)鍵字:萬年歷 溫度計(jì) 數(shù)碼管顯示IIAbstractThis paper introduces the design of multi-function electronic calendarAT89S52 microcontroller hardware, software and hardware based on.The design of the data display module, the temperature acquisition module, processing module and setting module, four modules. And the serial clock calendar chip DS1302 calendar and time controller of AT89S52 system, it can be the date and time, minutes and seconds, also has a leap year compensation function. DS18B20 chip temperatureacquisition, display data display of the object, the use of digital calendar,digital liquid crystal display module, can be carried out, at the same timeevery year, month, day, hour, minute, second Sunday,, and timealignment function. The calendar is easy to read, intuitive display, flexible,simple circuit, low cost and other advantages, has broad market prospects.Key words:Perpetual Calendar thermometer displayIII目 錄摘 要 IABSTRACT.II目 錄 III1 緒論 11.1 研究背景 11.2 國內(nèi)外研究現(xiàn)狀 11.3 研究意義和目的 12 系統(tǒng)總體設(shè)計(jì) 22.1 設(shè)計(jì)要求 22.2 系統(tǒng)設(shè)計(jì)方案 23 系統(tǒng)硬件設(shè)計(jì) 33.1 時(shí)鐘芯片 DS1302 的性能簡介及接口電路設(shè)計(jì) 33.2 溫度芯片 DS18B20 接口設(shè)計(jì)與性能分析 .43.3 數(shù)碼管顯示 .53.4 按鍵設(shè)計(jì) .53.5 復(fù)位電路的設(shè)計(jì) .64 系統(tǒng)軟件設(shè)計(jì) .74.1 軟件功能概述 .74.2 主程序流程圖的設(shè)計(jì) .85 聯(lián)調(diào)與測試 95.1 調(diào)試過程 .95.2 硬件調(diào)試 .95.3 軟件調(diào)試 10IV結(jié)論 .11致謝 .12參考文獻(xiàn) .13附錄 A:系統(tǒng)的原理圖 .14附錄 B:系統(tǒng)的 PCB 圖 .15附錄 C:系統(tǒng)的源程序 .1611 緒論1.1 研究背景隨著技術(shù)的快速發(fā)展通道,從觀看太陽來判斷時(shí)間到擺鐘再到現(xiàn)在的數(shù)字電子鐘,是人類的智慧的不斷創(chuàng)新和突破。數(shù)字電子鐘可以顯示年、月、日、時(shí)、分和秒,而且還有閏年補(bǔ)償?shù)裙δ?,而且該時(shí)鐘芯片的壽命較長,誤差相對(duì)較小。使用直觀的數(shù)字顯示,可以顯示年、月、日、時(shí)、分、秒和溫度等信息,它還具有一個(gè)時(shí)間校準(zhǔn)功能。數(shù)字電子時(shí)鐘的電路采用的是單片機(jī)AT89S52,具有耗能低的優(yōu)點(diǎn),可以在 3V的低電壓下工作。這個(gè)日歷具有方便閱讀、顯示直觀、功能多樣、電路簡單、成本低等諸多優(yōu)勢,在發(fā)展迅速的信息時(shí)代,具有很好的市場前景和研究價(jià)值。1.2 國內(nèi)外研究現(xiàn)狀電子技術(shù)是 20 世紀(jì)第十九年代末的一種新技術(shù),從上世紀(jì)二十年代開始發(fā)展最迅速,得到了廣泛的應(yīng)用,電子技術(shù)的發(fā)展已經(jīng)成為了科學(xué)發(fā)展的一個(gè)重要的標(biāo)志。電子技術(shù)的功能多樣化,體積小,低功耗等特點(diǎn),促進(jìn)社會(huì)生產(chǎn)力的發(fā)展。郭沫若先生曾把時(shí)間比喻成生命以及速度和力量,可見時(shí)間對(duì)于我們來說是非常之寶貴的,在我們的日常工作,學(xué)習(xí)當(dāng)中時(shí)間觀越來越重要。在信息技術(shù)高速發(fā)達(dá)的二十一世紀(jì),時(shí)間對(duì)于我們來說似乎消費(fèi)的特別快,時(shí)間在工作中,學(xué)習(xí)中,上下班的路上不知不覺的就消逝了, 工業(yè)生產(chǎn),每一步都有嚴(yán)格的時(shí)間限制,要做到技術(shù)精確,時(shí)間是重中之重。準(zhǔn)確理解和實(shí)時(shí)知道時(shí)間,是我們學(xué)習(xí),工作,生活中不可缺少的組成部分。機(jī)械的鐘表雖然也可以告知人們時(shí)間和顯示日期,但是由于其機(jī)械結(jié)構(gòu),功率和尺寸的限制,相比于性能更好的數(shù)字電子鐘而言是注定要被淘汰的。電子時(shí)鐘通常被應(yīng)用于電子電路,計(jì)時(shí)裝置,也廣泛應(yīng)用于家庭,戶外廣場,公交站和火車站。由于數(shù)字集成電路和石英晶體振蕩被廣泛應(yīng)用數(shù)字電路,使得數(shù)字鐘的精度更加準(zhǔn)確,給人們的生產(chǎn)和生活帶來了極大的方便。如 scheduleautomatic 自動(dòng)報(bào)警系統(tǒng),定時(shí)打鈴,燈爐定時(shí)開關(guān),電源設(shè)備,甚至所有的時(shí)間自動(dòng)啟用設(shè)備的基礎(chǔ)都是數(shù)字鐘表。因此,更先進(jìn)的電子數(shù)字鐘的設(shè)計(jì),其市場的前景費(fèi)長的廣闊。實(shí)時(shí)溫度顯示系統(tǒng)的技術(shù)已經(jīng)成熟,如在室溫下顯示,空調(diào)遠(yuǎn)程控制顯示溫度,熱水器。如果我們能準(zhǔn)確顯示電子時(shí)鐘以及其它電子設(shè)備的實(shí)時(shí)溫度,無疑將會(huì)對(duì)我們的生活地阿萊極大的幫助,可以讓我們了解周圍的環(huán)境和必要的措施的變化。1.3 研究目的與意義電子這項(xiàng)新興技術(shù)是在十九世紀(jì)初開始發(fā)展起來的,發(fā)展最為迅速的時(shí)期是在二十世紀(jì)初期,如今已成為了科學(xué)技術(shù)發(fā)展的一個(gè)重要的標(biāo)志。在它的推廣下現(xiàn)代電子產(chǎn)品正在以前所未有的速度朝著功能多樣化,功耗最低化的方向發(fā)揮發(fā)展。電子技術(shù)的發(fā)展,2有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展。在信息技術(shù)高度發(fā)達(dá)的二十一世紀(jì),機(jī)械手表,雖然它也可以告知市民時(shí)間,也可以定時(shí),顯示日歷。然而,由于其機(jī)械結(jié)構(gòu),功率和體積都沒有辦法與電子時(shí)鐘進(jìn)行比較,從而其發(fā)展必然會(huì)受到限制。當(dāng)電子電路,定時(shí)裝置,秒數(shù)字顯示被應(yīng)用于電子時(shí)鐘后,促進(jìn)了電子時(shí)鐘被廣泛廣泛用于個(gè)人家庭,戶外廣場,公交站和火車站,同時(shí)也大大擴(kuò)大了原來的手表報(bào)時(shí)功能。如定時(shí)自動(dòng)報(bào)警,定時(shí)廣播,自動(dòng)啟動(dòng)和關(guān)閉的照明工具,定時(shí)開關(guān)箱,以及其他各種定時(shí)自動(dòng)設(shè)備,所有這些的基礎(chǔ)都是數(shù)字時(shí)鐘的應(yīng)用。隨著社會(huì)的進(jìn)步,人們越來越多地轉(zhuǎn)向產(chǎn)品功能多樣化。你還可以將溫度實(shí)時(shí)顯示應(yīng)用于電子鐘以準(zhǔn)確的顯示環(huán)境溫度,那么將給生活,工作和工業(yè)生產(chǎn)帶來了極大的方便,同時(shí)也讓我們明白的變化,根據(jù)環(huán)境溫度的實(shí)時(shí)性采取相應(yīng)的措施。這次畢業(yè)設(shè)計(jì)的實(shí)物操作,通過把理論與實(shí)踐的融合在一起,使我進(jìn)一步加深了對(duì)單片機(jī)的結(jié)構(gòu)的理解,編程的能力也得到了提高。在實(shí)踐過程中學(xué)習(xí)到新的知識(shí),也遇到過一些問題,經(jīng)過老師的指導(dǎo)和同學(xué)的幫助,問題也被一一解決。同時(shí),希望我們的勞動(dòng)的結(jié)晶能夠?qū)ψx者有一定的幫助,并能從中得到一些啟發(fā)。2 系統(tǒng)總體設(shè)計(jì)2.1 設(shè)計(jì)要求系統(tǒng)的總體設(shè)計(jì)要求是利用四個(gè)模塊以及時(shí)鐘芯片來實(shí)現(xiàn)數(shù)據(jù)的顯示、實(shí)時(shí)環(huán)境溫度的數(shù)據(jù)采集、時(shí)間的處理和調(diào)整的功能。時(shí)鐘芯片可以記錄日歷并顯示日歷和時(shí)間,也可以對(duì)年、月、日、小時(shí)、分鐘和秒進(jìn)行計(jì)時(shí),而且還有閏年補(bǔ)償?shù)榷喾N功能,還具有時(shí)間校準(zhǔn)功能??紤]到該設(shè)計(jì)的實(shí)際應(yīng)用環(huán)境,應(yīng)該使該電子鐘顯示比較直觀、讀取相對(duì)方便、功能多樣化、價(jià)格也比較低廉、具有良好的實(shí)用性、普及起來比較方便。 2.2 系統(tǒng)設(shè)計(jì)方案數(shù)字電子鐘總體設(shè)計(jì)方案應(yīng)該在系統(tǒng)功能可以實(shí)現(xiàn)的前提下,充分考慮該電子鐘系統(tǒng)使用的環(huán)境,所選的結(jié)構(gòu)要簡單使用、易于實(shí)現(xiàn),器件的選用著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本。綜合考慮,系統(tǒng)硬件設(shè)計(jì)框圖如圖 1 所示:3圖 1 硬件電路框圖3 系統(tǒng)硬件設(shè)計(jì)3.1 時(shí)鐘芯片 DS1302 的性能簡介及接口電路設(shè)計(jì)3.1.1 時(shí)鐘芯片 DS1302 的性能簡介時(shí)鐘芯片DS1302是通過與微控制器的連接來實(shí)現(xiàn)其功能的,微控制器能夠提供包括秒、分、實(shí)時(shí)信息、日、月、年等信息,并且可以實(shí)現(xiàn)閏年天數(shù)的自動(dòng)調(diào)整功能,它也具有用于主電源和備用電源的雙電源引腳,在主電源被關(guān)閉的狀態(tài)下,也能維持該時(shí)鐘連續(xù)運(yùn)行,此外,它還可以提供31個(gè)字節(jié)的緩沖高速RAM中的數(shù)據(jù)。3.1.2 時(shí)鐘芯片 DS1302 接口電路設(shè)計(jì)DS1302時(shí)鐘芯片的工作原理是選擇VCC1 和VCC2 兩個(gè)當(dāng)中的較大者來供給時(shí)鐘芯片的用電需要。時(shí)鐘芯片的的接口電路如圖2所示:AT89S52電 源 模 塊溫 度 模 塊獨(dú) 立 按 鍵 時(shí) 鐘 模 塊顯 示 模 塊鬧 鐘 模 塊4圖2 DS1302的接口電路3.2 溫度芯片 DS18B20 接口設(shè)計(jì)與性能分析3.2.1 溫度芯片的性能簡介DS18B20溫度傳感器是最新智能溫度傳感器,與一般的熱電阻有的區(qū)別在于測得的實(shí)時(shí)溫度可以被直接讀取出來,可以通過簡單的編程實(shí)現(xiàn)數(shù)字讀取。應(yīng)用“一線總線”傳輸現(xiàn)場的實(shí)時(shí)溫度,提高了抗干擾性。該芯片可以被應(yīng)用于相對(duì)比較惡劣的環(huán)境中,而且具有功耗低、所需電壓范圍低、分辨率高等特點(diǎn)。因此是很好的選擇。3.2.2 溫度芯片的接口電路的設(shè)計(jì)該系統(tǒng)采用數(shù)字溫度傳感器DS18B20,具有精度高,操作簡單的電路連接特性,這種傳感器需要進(jìn)行數(shù)據(jù)傳輸,與DS18B20 DQ P3.7口連接只有一個(gè)數(shù)據(jù)線。其接口電路如圖3所示:5圖3 溫度傳感器的接口電路3.3 數(shù)碼管顯示模塊該數(shù)字電子鐘設(shè)計(jì)采用的顯示模塊是八段數(shù)碼管顯示模塊,所謂八段數(shù)碼管就是指數(shù)碼管里面有八個(gè)曉得 LED 發(fā)光二極管,LED 亮滅被用來顯示不同的字形。數(shù)碼管的類型有兩種,他們分別是共陽極和共陰極。其中共陰極的發(fā)光原理是將八個(gè) LED 的陰極連在一起并接地,然后給八個(gè) LED 其中一個(gè)的另一端輸入高電平,它便能被點(diǎn)亮。顯而易見,共陽極的點(diǎn)亮原理是將八個(gè) LED 的陽極連在一起,然后給八個(gè) LED 其中一個(gè)的另一端輸入高電平,它便能夠被點(diǎn)亮。綜上所述,數(shù)碼管顯示模塊及其接口電路如圖 4 所示:圖 4 數(shù)碼管顯示3.4 按鍵模塊設(shè)計(jì)該系統(tǒng)使用五個(gè)按鈕,其中一個(gè)被用于手動(dòng)復(fù)位,其他的被用于獨(dú)立按鈕,查詢相6對(duì)比較簡單,占用CPU資源低,四個(gè)獨(dú)立的按鈕,分別與單片機(jī)的P3.4、P3.5、P3.6、P3.7接口連接。按鍵電路如圖5 所示:圖 5 按鍵電路3.5 復(fù)位電路的設(shè)計(jì)當(dāng)單片機(jī)的復(fù)位引腳出現(xiàn)兩個(gè)以上的高電平周期時(shí),復(fù)位操作即可被完成。如果復(fù)位RST持續(xù)處于高電平的狀態(tài),那么程序?qū)o法被執(zhí)行。所以單片機(jī)復(fù)位后要脫離復(fù)位狀態(tài)。在實(shí)際的應(yīng)用中,考慮到電源的穩(wěn)定時(shí)間不同、參數(shù)會(huì)發(fā)生漂移、以及晶振穩(wěn)定時(shí)間和其他因素的影響,單片機(jī)必須有足夠的裕度。根據(jù)該設(shè)計(jì)的要求,復(fù)位操作的基本形式有上電復(fù)位和手動(dòng)復(fù)位兩種。對(duì)上電復(fù)位操作中,復(fù)位會(huì)在接通電源后完成。 AT89S52單片機(jī)上電復(fù)位本質(zhì)上是一個(gè)上電延時(shí)復(fù)位。在單偏激初始上電后,第一個(gè)工作的是復(fù)位電路。復(fù)位電路把單片機(jī)鎖定在復(fù)位狀態(tài),并且保持一個(gè)延遲,讓電壓擁有一個(gè)達(dá)到穩(wěn)定的時(shí)間,當(dāng)電壓穩(wěn)定后,再插入一個(gè)延遲,給時(shí)鐘振蕩器一個(gè)達(dá)到穩(wěn)定的時(shí)間; 在單片機(jī)進(jìn)入運(yùn)行狀態(tài)之前,還要至少推遲兩個(gè)機(jī)器周期的延遲。這種設(shè)計(jì)的復(fù)位電路采用了電且開關(guān),通電后,因?yàn)殡娙荼3殖潆姞顟B(tài)使電路處于高電平。當(dāng)微控制器正在運(yùn)行之中,按下復(fù)位按鈕還使得RST高電平一段時(shí)間,實(shí)現(xiàn)了開關(guān)的復(fù)位操作。綜上所訴選用電容值為10μF和電阻值為4.7K 的的電容。復(fù)位電路如圖6所示:7圖6 復(fù)位電路4 系統(tǒng)軟件設(shè)計(jì)4.1 軟件功能概述自動(dòng)控制系統(tǒng)的一個(gè)重要的組成部分就是軟件功能,它的功能的完善程度直接影響了一個(gè)系統(tǒng)是否能夠最大化的發(fā)揮作用,在一個(gè)系統(tǒng)確定下來硬件以后,軟件的指導(dǎo)和系統(tǒng)的嚴(yán)密監(jiān)控是硬件能夠?qū)崿F(xiàn)穩(wěn)定工作的關(guān)鍵,同時(shí),優(yōu)異的軟件對(duì)系統(tǒng)后期的升級(jí)優(yōu)化有相當(dāng)大的幫助。數(shù)字電子鐘的功能是在程序控制下實(shí)現(xiàn)的。軟件設(shè)計(jì)和系統(tǒng)相對(duì)應(yīng)的硬件設(shè)計(jì),根據(jù)其在程序的總體功能中實(shí)現(xiàn)功能的不同將它們分為幾個(gè)不同的模塊,用于設(shè)計(jì)、編程以及調(diào)試,最終被主程序連接起來實(shí)現(xiàn)整體功能。這是一個(gè)很好的方案,增強(qiáng)了程序的可移植性。公歷計(jì)算程序、溫度測量程序以及鍵掃描輸入等被應(yīng)用于該系統(tǒng)的軟件部分。當(dāng)程序開始運(yùn)行時(shí)最先要做的是初始化,各單片機(jī)的引腳初始化狀態(tài)是根據(jù)程序的初始化命令而進(jìn)行的,初始化完成后進(jìn)行溫度的測量與數(shù)據(jù)收集,然后運(yùn)行公歷計(jì)算程序,獲得日歷時(shí)間和日期信息,然后運(yùn)行程序鍵掃描,檢測有沒有按下按鈕,如果沒有按鈕被按下,則按節(jié)日計(jì)算程序得到的公歷日期信息來計(jì)算節(jié)日,如果按下一個(gè)按鈕,則將按鍵修改后的更新的關(guān)鍵變量遞送給節(jié)日計(jì)算程序從而計(jì)算出節(jié)日。顯示程序?qū)⒃谟?jì)算完成后將得到的公歷信息、溫度數(shù)據(jù)、節(jié)日信息送給對(duì)應(yīng)的數(shù)碼管將其顯示出來。84.2 主程序流程圖的設(shè)計(jì)數(shù)字電子鐘系統(tǒng)的總體設(shè)計(jì)要求是利用四個(gè)模塊以及時(shí)鐘芯片來實(shí)現(xiàn)數(shù)據(jù)的顯示、實(shí)時(shí)環(huán)境溫度的數(shù)據(jù)采集、時(shí)間的處理和調(diào)整的功能。所以數(shù)字電子鐘的主程序流程圖如圖7所示:開始返回D S 1 3 0 2 初始化設(shè)置 D S 3 0 2讀取年 、 月 、 日 、星期 、 時(shí) 、 分 、 秒將讀取的數(shù)據(jù)處理后送數(shù)碼管顯示圖7 主程序流程圖4.2.1 DS1302 讀寫程序設(shè)計(jì)該系統(tǒng)對(duì)時(shí)間的讀取主要是通過對(duì)時(shí)鐘芯片 DS1302 的操作來實(shí)現(xiàn)的,在硬件設(shè)計(jì)上的時(shí)鐘芯片連接到控制器時(shí)需要三線,即 SCLK( 7),I / O(6),RST(5),具體連接圖查看系統(tǒng)的硬件設(shè)計(jì)原理圖。當(dāng)時(shí)鐘芯片與處理器的數(shù)據(jù)交換的時(shí)候,首先是一個(gè)命令字節(jié)由處理器向電路發(fā)出,最高位的命令字節(jié)必須是邏輯 1,如果是邏輯 0,則命令字節(jié)禁止被發(fā)出;當(dāng) D6 等于 0 時(shí),時(shí)鐘數(shù)據(jù)被指定,當(dāng) D6 等于 1 時(shí),RAM 數(shù)據(jù)被指定 ; D5?D1 特殊寄存器指定的輸入或輸出; 最低位 D0 為邏輯 0 時(shí),指定寫操作為輸入,當(dāng) D0 為邏輯 1 時(shí),指定讀操作為輸出 。94.2.2 溫度程序的設(shè)計(jì)初始化、讀和寫是單總線上最基本的三種操作,所有其他操作都是由這三種基本操作的組合來完成的,初始化被用于設(shè)備在總線上的狀態(tài)復(fù)位,寫被用于主節(jié)點(diǎn)向總線上傳入一位數(shù)據(jù),讀被用于總線上數(shù)據(jù)的讀取。在這三種類型的操作,寫操作是單向的,初始化和讀操作是雙向的。5 聯(lián)調(diào)與測試5.1 調(diào)試過程對(duì)于一個(gè)自控系統(tǒng)而言,調(diào)試一般需要進(jìn)行硬件調(diào)試和軟件調(diào)試,在一定的分析與設(shè)計(jì)的基礎(chǔ)上,可以一邊進(jìn)行硬件制作,一邊進(jìn)行相應(yīng)的調(diào)試,這樣對(duì)問題的及時(shí)分析和解決有很大幫助,不容易出現(xiàn)太多問題積累的現(xiàn)象,不至于后期出現(xiàn)一個(gè)問題導(dǎo)致整個(gè)設(shè)計(jì)全部需要被檢查,甚至出現(xiàn)設(shè)計(jì)需要重新開始的問題,所以做好前期的硬件調(diào)試工作,可以避免在調(diào)試這一環(huán)節(jié)浪費(fèi)大量時(shí)間。而在軟件編寫過程中,最好是分模塊編寫,在硬件調(diào)試成功的基礎(chǔ)上,就可以做系統(tǒng)整體的調(diào)試,而本設(shè)計(jì)成功的關(guān)鍵就是運(yùn)用了聯(lián)機(jī)調(diào)試。5.2 硬件調(diào)試系統(tǒng)通電后觀察系統(tǒng)是否能正常運(yùn)行,如果不能,則根據(jù)原理圖對(duì)電路進(jìn)行分模塊檢測,看是否存在不正常焊接問題,如果焊接不存在問題,則再進(jìn)一步檢測下一環(huán)節(jié),直到找出問題并解決問題。單個(gè)芯片的編譯目標(biāo)代碼,可連接到該開始調(diào)試硬件電路的5V電壓源。如果結(jié)果不符合設(shè)計(jì)要求,再次檢查是否正確連接電路,硬件電路的調(diào)試工作的連接點(diǎn),或檢查代碼程序符合硬件電路設(shè)計(jì),如果它是錯(cuò)的,使相應(yīng)的修改,編譯,則調(diào)試硬件電路。直到調(diào)試正確的結(jié)果重復(fù)此過程。如圖顯示的分別是時(shí)期、溫度和時(shí)間。105.3 軟件調(diào)試(1)上的計(jì)算機(jī)程序調(diào)試軟件的 Keil,程序調(diào)試運(yùn)行時(shí),如果顯示為 0 的錯(cuò)誤(S),0 個(gè)警告(S)證明代碼是正確的。(2)在負(fù)載 Proteus 軟件繪制電路中的程序代碼的示意圖,以 AT89S52 單芯片中,進(jìn)行模擬。如果發(fā)生錯(cuò)誤,調(diào)試,然后相應(yīng)地修改仿真,調(diào)試直到正確的結(jié)果后查看錯(cuò)誤。11結(jié)論在整個(gè)設(shè)計(jì)過程中,硬件系統(tǒng)主要由AT89S52單片機(jī)、DS1302接口電路、DS18B20接口電路、鬧鐘系統(tǒng)以及顯示系統(tǒng)組成;軟件通過各種渠道的信息手段,主要的設(shè)計(jì)由公歷數(shù)據(jù)讀取程序、公歷農(nóng)歷轉(zhuǎn)程序、溫度采集程序,數(shù)字顯示程序和鬧鐘程序組成;調(diào)試系統(tǒng)主要是通過AT89S52的開發(fā)板,再經(jīng)Keil公司,STC的手段,為自己建了一個(gè)小的外圍電路實(shí)現(xiàn);再由分步調(diào)試將陽歷的日期及時(shí)間顯示出來,以及實(shí)時(shí)的溫度。此電子鐘具有顯示直觀、功能多樣、電路簡單、成本低廉的優(yōu)點(diǎn),因此發(fā)展前景非常廣闊。整個(gè)設(shè)計(jì)過程中學(xué)到了很多新的知識(shí),知道了電路的焊接雖然不是什么大問題,但在整個(gè)作品中也具有相當(dāng)重要的地位。電路工程師一個(gè)心細(xì)的活并不能著急,這樣才能布局清晰、美觀大方。在本設(shè)計(jì)中,讓我明白了做什么事情都不能投機(jī)取巧,要一步一個(gè)腳印,這樣才能把事情做好。能學(xué)習(xí)到新的知識(shí)這永遠(yuǎn)是最重要的??傊舜萎厴I(yè)設(shè)計(jì)的過程,使我的能力得到了全方位的提高,當(dāng)然此次的設(shè)計(jì)尚有很多需要改進(jìn)的地方,這也是我不斷學(xué)習(xí)新知識(shí)的動(dòng)力。12致謝能夠順利完成此次畢業(yè)設(shè)計(jì),首先我要感謝我的知道老師劉棟材老師,還有同樣給予很大幫助的王俊杰老師,是他們的悉心指導(dǎo)和嚴(yán)格要求,才讓我圓滿完成了任務(wù)。謹(jǐn)向?qū)熀退袔椭^我的老師致以崇高的敬意和衷心的感謝。也感謝我的家人,朋友和所有宿舍的室友,他們給我創(chuàng)造一個(gè)良好的學(xué)習(xí)環(huán)境,在學(xué)習(xí)和生活中給予了我莫大的支持和幫助。我會(huì)一直督促自己更加努力,不辜負(fù)老師、親戚、朋友對(duì)我的期望。特別感謝我的第一個(gè)畢業(yè)設(shè)計(jì)導(dǎo)師王俊杰老師,從論文的選題到設(shè)計(jì)到最終定稿,每一步都有老師辛勤的汗水。研究細(xì)致,勤奮和不懈的工作態(tài)度,扎實(shí)勤勉的他也會(huì)一直激勵(lì)著我努力學(xué)習(xí),推動(dòng)我前進(jìn),這將是我終身受益。同時(shí)也為所有教師表達(dá)我深深的謝意!正是他們的教導(dǎo)豐富了我的知識(shí)面、拓展了我的視野,謝謝你們的知道,這將是我一生的財(cái)富,謝謝你們!作者:李鵬飛2015 年 5 月 日13參考文獻(xiàn)[1]陳明熒. 8051 單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教程[M].北京:清華大學(xué)出版社[2]蘇平. 單片機(jī)的原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2006:1-113.[3]王忠民.微型計(jì)算機(jī)原理[M].西安:西安科技大學(xué)出版社,2003:15-55.[4]何立民.單片機(jī)高級(jí)教程[M].北京:北京航空航天大學(xué)出版社,2003年[5]紀(jì)宗南.單片機(jī)外圍器件使用手冊[M].北京:北京航空航天大學(xué)出版社,622-655.[6]周雪.模擬電子技術(shù) [M]西安: 西安電子科技大學(xué)出版社,2005:81-95.[7]左金生.電子與模擬電子技術(shù)[M].北京:電子工業(yè)出版社,2004:105-131.[8]新編單片機(jī)原理與應(yīng)用(第二版).西安電子科技大學(xué)出版社,2007.2[9]張萌.單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例[M]. 北京:清華大學(xué)出版社,2007.7[10]王越明.電子萬年歷的設(shè)計(jì)[J].黑龍江科技信息,2004 年[11] Richard Blanchard, James Harden. Mosfets control more power in the same-sized package .Electronic Design, 1982, 12 :107~114[12] Daniel E. Geer, Jr. (Editor), Mary Ann Davidson, Marc Donner, Lynda McGhie, and Adam Shostack.[13] Menozzi G.Eurimus approved 19 projects for total amount of Euro 89 million.MSTnews.2000.514附錄 A:系統(tǒng)原理圖15附錄 B:系統(tǒng) PCB 圖16附錄 C:系統(tǒng)源程序#include //調(diào)用單片機(jī)頭文件#define uchar unsigned char //無符號(hào)字符型 宏定義 變量范圍0~255#define uint unsigned int //無符號(hào)整型 宏定義 變量范圍0~65535#include “ds1302.h“//數(shù)碼管段選定義 0 1 2 3 4 5 6 7 8 9uchar code smg_du[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa,0x20,0x28,0x30,0x25,0xe4,0x23,0x64,0x74,0xff}; //斷碼//數(shù)碼管位選定義uchar code smg_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//數(shù)碼管位選定義uchar dis_smg[8] = {0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa};uchar smg_i = 8; //顯示數(shù)碼管的個(gè)位數(shù)bit flag_200ms ;bit flag_100ms ;bit flag_500ms; //500ms標(biāo)志位sbit beep = P3^7; //蜂鳴器定義bit flag_beep_en;uint clock_value; //用作鬧鐘用的uchar flag_s = 0x03;//控制數(shù)碼管閃爍的變量sbit dq = P3^1; //18b20 IO口的定義uint temperature ; //溫度變量uchar flag_nl; //農(nóng)歷 陽歷顯示標(biāo)志位uchar menu_1,menu_2,menu_i;sbit dat0 = B^0;sbit dat1 = B^1;sbit dat2 = B^2;sbit dat3 = B^3;sbit dat4 = B^4;sbit dat5 = B^5;sbit dat6 = B^6;sbit dat7 = B^7; //控制數(shù)碼管閃爍的函數(shù)void smg_s(uchar dat){B = dat;if(dat0 == 1)dis_smg[0] = 0xff;17if(dat1 == 1)dis_smg[1] = 0xff;if(dat2 == 1)dis_smg[2] = 0xff;if(dat3 == 1)dis_smg[3] = 0xff;if(dat4 == 1)dis_smg[4] = 0xff;if(dat5 == 1)dis_smg[5] = 0xff;if(dat6 == 1)dis_smg[6] = 0xff;if(dat7 == 1)dis_smg[7] = 0xff;}/***********************延時(shí)函數(shù)************************/void delay_uint(uint q){while(q--);}/***********************1ms延時(shí)函數(shù)*****************************/void delay_1ms(uint q){uint i,j;for(i=0;i 0) //1dis_smg[1] = smg_du[10]; //Adis_smg[2] = smg_du[2]; //2dis_smg[3] = smg_du[10]; //Adis_smg[4] = smg_du[3]; //3dis_smg[5] = smg_du[10]; //Adis_smg[6] = smg_du[4]; //4dis_smg[7] = smg_du[10]; //Asmg_i = 8;}elsesmg_s(flag_s);}if((menu_1 == 1) if(flag_500ms == 1){dis_smg[0] = smg_du[miao % 16]; //顯示秒dis_smg[1] = smg_du[miao / 16]; //dis_smg[2] = 0x7f; dis_smg[3] = smg_du[fen % 16]; //顯示分dis_smg[4] = smg_du[fen / 16]; //dis_smg[5] = 0x7f; dis_smg[6] = smg_du[shi % 16]; //顯示秒dis_smg[7] = smg_du[shi / 16]; //}elsesmg_s(flag_s);}if((menu_1 == 2) if(flag_500ms == 1){dis_smg[0] = smg_du[ri % 16]; //顯示日dis_smg[1] = smg_du[ri / 16]; //dis_smg[2] = 0x7f; dis_smg[3] = smg_du[yue % 16]; //顯示月dis_smg[4] = smg_du[yue / 16]; //dis_smg[5] = 0x7f; dis_smg[6] = smg_du[nian % 16]; //顯示年dis_smg[7] = smg_du[nian / 16]; //}elsesmg_s(flag_s);}if((menu_1 == 3) if(flag_500ms == 1){dis_smg[0] = smg_du[week % 16]; //顯示星期 dis_smg[1] = smg_du[week / 16]; //dis_smg[2] = 0x7f; if(open1 == 1) //開鬧鐘{dis_smg[3] = 0xb0; //OPENdis_smg[4] = 0x64; dis_smg[5] = 0x70; dis_smg[6] = 0xa0; }else {dis_smg[3] = 0x74; //OFFdis_smg[4] = 0x74; dis_smg[5] = 0xa0; dis_smg[6] = 0xFF; 21}dis_smg[7] = 0xff; }elsesmg_s(flag_s);}if((menu_1 == 4) if(flag_500ms == 1){dis_smg[0] = 0xff; //dis_smg[1] = 0xff; //dis_smg[2] = smg_du[fen1 % 16]; //顯示分dis_smg[3] = smg_du[fen1 / 16]; //dis_smg[4] = 0x7f; dis_smg[5] = smg_du[shi1 % 16]; //顯示秒dis_smg[6] = smg_du[shi1 / 16]; //dis_smg[7] = 0xff; }elsesmg_s(flag_s);}}/*************鬧鐘報(bào)警函數(shù)***************/void clock_dis(){static uchar mm,value;if(flag_100ms == 1) //100ms執(zhí)行一次{flag_100ms = 0;if(open1 == 1) //如果鬧鐘打開{if((miao == 0) //有報(bào)警 打開蜂鳴器響的標(biāo)志位}if(flag_beep_en == 1) //鬧鐘以被打開{clock_value++;if(clock_value 30){beep = 1; //蜂鳴器停1秒if(clock_value 40){clock_value = 0;}}// 1 分鐘后自動(dòng)關(guān)閉鬧鐘value ++;if(value = 10){value = 0;mm++;if(mm = 60){mm = 0;flag_beep_en = 0;beep = 1;}}}}}}/*************定時(shí)器0初始化程序***************/void time_init() {23EA = 1; //開總中斷TMOD = 0X01; //定時(shí)器0、工作方式1ET0 = 1; //開定時(shí)器0中斷 TR0 = 1; //允許定時(shí)器0定時(shí)}/***********************18b20初始化函數(shù)*****************************/void init_18b20(){bit q;dq = 1; //把總線拿高delay_uint(1); //15usdq = 0; //給復(fù)位脈沖delay_uint(80); //750usdq = 1; //把總線拿高 等待delay_uint(10); //110usq = dq; //讀取18b20初始化信號(hào)delay_uint(20); //200usdq = 1; //把總線拿高 釋放總線}/*************寫18b20內(nèi)的數(shù)據(jù)***************/void write_18b20(uchar dat){uchar i;for(i=0;i= 1;}}/*************讀取18b20內(nèi)的數(shù)據(jù)***************/uchar read_18b20(){uchar i,value;24for(i=0;i= 1; //讀數(shù)據(jù)是低位開始dq = 1; //釋放總線if(dq == 1) //開始讀寫數(shù)據(jù) value |= 0x80;delay_uint(5); //60us 讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間}return value; //返回?cái)?shù)據(jù)}/*************讀取溫度的值 讀出來的是小數(shù)***************/uint read_temp(){uint value;uchar low; //在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序init_18b20(); //初始化18b20write_18b20(0xcc); //跳過64位ROMwrite_18b20(0x44); //啟動(dòng)一次溫度轉(zhuǎn)換命令delay_uint(50); //500usinit_18b20(); //初始化18b20write_18b20(0xcc); //跳過64位ROMwrite_18b20(0xbe); //發(fā)出讀取暫存器命令EA = 0;low = read_18b20(); //讀溫度低字節(jié)value = read_18b20(); //讀溫度高字節(jié)EA = 1;value = 8; //把溫度的高位左移8位value |= low; //把讀出的溫度低位放到value的低八位中value *= 0.625; //轉(zhuǎn)換到溫度值 小數(shù)return value; //返回讀出的溫度 帶小數(shù)}/*************時(shí)鐘顯示***************/void init_1602_ds1302(){25static uchar value;smg_i = 8;value ++;if(value = 5*2) //2秒{dis_smg[0] = smg_du[miao % 16]; //顯示秒dis_smg[1] = smg_du[miao / 16]; //dis_smg[2] = 0x7f; dis_smg[3] = smg_du[fen % 16]; //顯示分dis_smg[4] = smg_du[fen / 16]; //dis_smg[5] = 0x7f; dis_smg[6] = smg_du[shi % 16]; //顯示秒dis_smg[7] = smg_du[shi / 16]; //}else if(value = 5*4) //2秒{dis_smg[0] = smg_du[ri % 16]; //顯示日 dis_smg[1] = smg_du[ri / 16]; //dis_smg[2] = 0x7f; dis_smg[3] = smg_du[yue % 16]; //顯示月dis_smg[4] = smg_du[yue / 16]; //dis_smg[5] = 0x7f; dis_smg[6] = smg_du[nian % 16]; //顯示年dis_smg[7] = smg_du[nian / 16]; //}else if(value = 5*6) //2秒{dis_smg[0] = smg_du[week % 16]; //顯示星期dis_smg[1] = smg_du[week / 16]; //dis_smg[2] = 0xff; dis_smg[3] = smg_du[12]; dis_smg[4] = smg_du[temperature % 10] ; //dis_smg[5] = smg_du[temperature / 10 % 10] dis_smg[6] = smg_du[temperature / 100 % 10]; dis_smg[7] = 0xff; }
收藏