基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_說明_第1頁(yè)
基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_說明_第2頁(yè)
基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_說明_第3頁(yè)
基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_說明_第4頁(yè)
基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)本科畢業(yè)設(shè)計(jì)_說明_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. . . . 本科畢業(yè)設(shè)計(jì)基于單片機(jī)的多功能數(shù)字鐘1指導(dǎo)教師 學(xué)院名稱工院 專業(yè)名稱電程論文提交日期 論文答辯日期2日61 / 68摘 要在21世紀(jì)社會(huì)的迅猛發(fā)展浪潮下,電子信息技術(shù)也有了快速的推廣和應(yīng)用。在日常工作生活的快節(jié)奏下,時(shí)間占有著至關(guān)重要的位置。也許人們不太在意,在各種各樣的日常生活以與各類社會(huì)活動(dòng)中,大家無時(shí)無刻地都在留意著時(shí)間的變化。時(shí)間與人們的生活息息相關(guān),而時(shí)間的計(jì)算方法發(fā)展至今已經(jīng)演變成時(shí)鐘和表。本文所闡述的數(shù)字鐘有多種功能,不僅能夠準(zhǔn)確的顯示時(shí)間年月日、時(shí)分秒,還有對(duì)環(huán)境溫度進(jìn)行測(cè)量,鬧鐘設(shè)置,秒表計(jì)時(shí),電子鐘, MP3播放等功能。相比于機(jī)械時(shí)鐘,因?yàn)閿?shù)字鐘所采用的是

2、數(shù)字電路技術(shù)來實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí),有著更高的準(zhǔn)確性和穩(wěn)定性,而數(shù)字鐘的結(jié)構(gòu)與裝置也更加科學(xué)與方便化。本文主要介紹了基于單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì),硬件電路包含時(shí)鐘模塊、溫度檢測(cè)模塊、液晶顯示模塊、按鍵模塊、電源模塊,聲音模塊和復(fù)位電路,軟件設(shè)計(jì)包含鬧鐘設(shè)計(jì)、秒表計(jì)時(shí)、電子書閱覽、MP3播放等。本設(shè)計(jì)的數(shù)字鐘有:時(shí)間顯示年月日、時(shí)分秒,鬧鐘,秒表計(jì)時(shí),電子書,MP3等功能。單片機(jī)與多功能數(shù)字鐘的結(jié)合,不僅使得時(shí)間的測(cè)量更加準(zhǔn)確穩(wěn)定,對(duì)環(huán)境測(cè)試的溫度也更加簡(jiǎn)單、方便、靈活,為我們的日常生活提供了更優(yōu)質(zhì)與方便的服務(wù)。因此,單片機(jī)不僅有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子

3、產(chǎn)品性能進(jìn)一步提高。關(guān)鍵詞:?jiǎn)纹瑱C(jī)數(shù)字鐘溫度傳感器Multi-function Digital Clock Based On MCUCai Bingnan(College of Engineering, South China Agricultural University, Guangzhou 510642, China)Abstract:The rapid development in the twenty-first Century social tide, electronic information technology has been rapid promotion and ap

4、plication. In their daily work life fast rhythm, time occupies a crucial position. Maybe people don't care too much, in a variety of daily life and all kinds of social activities, we every hour and moment are watching the change of time. The time of our lives, and the calculation method of time

5、has evolved into a clock and watch. Digital clock is described in this paper has a variety of functions, not only can display the date when the minutes and seconds time, accurate, and measurement of environmental temperature, alarm clock, stopwatch, electronic clock, MP3 player and other functions.

6、Compared to the mechanical clock, because the digital clock is used in the digital circuit technology to realize, when, seconds, has a higher accuracy and stability, and the structure and device of digital clock is more scientific and convenient.This paper mainly introduces the design of multi-funct

7、ion digital clock based on MCU, the hardware circuit consists of the clock module, temperature detecting module, liquid crystal display module, keyboard module, power module, voice module and a reset circuit, software design including alarm clock, stopwatch design, electronic book reading, MP3 playe

8、r etc. The design of the digital clock: time date display, minutes and seconds, alarm clock, stopwatch, e-books, MP3 etc. Combined with the MCU and the multi-function digital clock, not only makes the measurement more accurate and stable time, environmental testing temperature is more simple, conven

9、ient, flexible, provides better quality and convenience to our daily life. Therefore, the single chip not only promoted the development of social productive forces and the improvement of social information-based degree, simultaneously also makes the modern electronic products to further improve the

10、performance.Key words:SCMdigital clock the temperature sensor目 錄1 前言11.1 課題的研究背景11.2 課題的開發(fā)目的12系統(tǒng)方案分析與選擇論證22.1系統(tǒng)方案設(shè)計(jì)22.1.1主控芯片方案22.1.2 顯示模塊方案22.1.3 鍵盤模塊方案22.1.4 溫度模塊方案22.2 系統(tǒng)最終方案33硬件電路設(shè)計(jì)33.1 單片機(jī)最小系統(tǒng)33.2 DS1302時(shí)鐘模塊的設(shè)計(jì)43.3 LCD1602顯示模塊的設(shè)計(jì)53.4 DS18B20溫度模塊的設(shè)計(jì)73.5 聲音模塊和按鍵控制模塊的設(shè)計(jì)74 程序設(shè)計(jì)84.1 時(shí)間調(diào)整程序設(shè)計(jì)94.2 鬧鐘處

11、理程序設(shè)計(jì)104.3 秒表計(jì)時(shí)程序設(shè)計(jì)104.4 音樂播放程序設(shè)計(jì)104.5 電子書程序設(shè)計(jì)125調(diào)試與調(diào)試結(jié)果125.1 硬件調(diào)試125.2 調(diào)試結(jié)果136 結(jié)論13參考文獻(xiàn)14附錄A電路原理圖15附錄B設(shè)計(jì)程序16致62華南農(nóng)業(yè)大學(xué)本科生畢業(yè)設(shè)計(jì)成績(jī)?cè)u(píng)定表1 前言1.1 課題的研究背景在這個(gè)快節(jié)奏的年代,時(shí)間就是效益,就是金錢,因此準(zhǔn)確的掌握時(shí)間和分配時(shí)間對(duì)人們來說至關(guān)重要。隨著單片機(jī)技術(shù)的飛速發(fā)展,在其推動(dòng)下,現(xiàn)代的電子產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,人們對(duì)時(shí)間計(jì)量的精度要求越來越高,應(yīng)用越來越廣。怎樣讓時(shí)鐘更好、更方便、更精確的顯示時(shí)間,這就要求人們不斷設(shè)計(jì)研發(fā)出新型的時(shí)鐘。所以一個(gè)能

12、夠進(jìn)行報(bào)時(shí)以與有其他多種用途的數(shù)字鐘是對(duì)人們的生活工作是非常具有現(xiàn)實(shí)意義的。相比于傳統(tǒng)的時(shí)鐘,數(shù)字鐘在性能和準(zhǔn)確度方面的優(yōu)勢(shì)使得很多普通的時(shí)鐘已經(jīng)不能滿足人們?cè)谀承┓矫娴男枨罅恕?shù)字鐘的優(yōu)勢(shì)在于準(zhǔn)確度高,因?yàn)樗捎玫氖菙?shù)字電路來實(shí)現(xiàn)對(duì)時(shí)、分、秒的設(shè)計(jì),因此傳統(tǒng)的時(shí)鐘正面臨著淘汰的局面。由于多功能數(shù)字鐘的功能齊全,科學(xué)方便,它被廣泛的應(yīng)用在社會(huì)的各個(gè)地方。不管是在公司,娛樂場(chǎng)所,辦公室以與個(gè)人家庭等等,數(shù)字鐘的存在已經(jīng)成為了人類日常生活的一部分。數(shù)字鐘是一種數(shù)字電路,由于采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校。數(shù)字鐘用集成電路計(jì)時(shí),譯碼代替機(jī)械式傳動(dòng),用LCD顯示器代

13、替指針進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有顯示時(shí)、分、秒時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。數(shù)字鐘不管在性能還是在款式樣式上都遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)的鐘表,給人們的生活帶來了極大的便利。因此,對(duì)多功能數(shù)字鐘進(jìn)行研究有著非常現(xiàn)實(shí)的意義。1.2 課題的開發(fā)目的多功能數(shù)字鐘的基本功能就是時(shí)鐘顯示時(shí)分秒,年月日,鬧鐘,溫度的采集和報(bào)警,另外還擴(kuò)展了以下幾種功能:秒表計(jì)時(shí)、電子書和MP3播放。本設(shè)計(jì)的目的是為了更加切合人們的生活實(shí)際情況,以STC89C52單片機(jī)作為數(shù)字鐘的核心控制器,通過DS1302時(shí)鐘芯片進(jìn)行時(shí)、分、秒來實(shí)現(xiàn)計(jì)時(shí)校對(duì)功能,采用DS18B20對(duì)室環(huán)境進(jìn)行溫度測(cè)量,將數(shù)據(jù)通過

14、單片機(jī)輸出,利用LCD1602液晶屏顯示出來。并且通過軟件編寫,可以實(shí)現(xiàn)秒表計(jì)時(shí)、電子書閱覽和MP3播放等功能。并且通過按鍵可以進(jìn)行手動(dòng)時(shí)間定時(shí)、校時(shí)鬧鈴設(shè)定。本設(shè)計(jì)相比傳統(tǒng)時(shí)鐘,不僅測(cè)量精確到高,工作穩(wěn)定,而且功能多也便于日后擴(kuò)展,在日常生活中具有很高的使用價(jià)值。2系統(tǒng)方案分析與選擇論證2.1系統(tǒng)方案設(shè)計(jì)2.1.1主控芯片方案方案一:采用STC89C52單片機(jī)作為主控芯片。STC89C52部具有Flash ROM,存達(dá)8KB,512字節(jié)數(shù)據(jù)存儲(chǔ)空間,帶有2K字節(jié)的EEPROM存儲(chǔ)空間,又與MCS-51兼容,而且此芯片價(jià)格便宜、易于操作、低功耗且性能穩(wěn)定。方案二:采用AT89S52單片機(jī)作為主

15、控芯片。AT89S52部具有8K字節(jié)程序存儲(chǔ)空間,256字節(jié)的數(shù)據(jù)存儲(chǔ)空間,沒有EEPROM存儲(chǔ)空間,也與MCS-51系列單片機(jī)完全兼容,具有在線編程可擦除技術(shù)。經(jīng)過兩種方案的比較,雖然STC89C52相對(duì)AT89S52均滿足設(shè)計(jì)要求,但是前者價(jià)格更加便宜,而且抗干擾能力強(qiáng),穩(wěn)定性高,價(jià)格實(shí)惠。因此,選擇方案一。2.1.2 顯示模塊方案方案一:采用LCD液晶顯示屏。液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,顯示多樣,清晰可見,燈光柔和,可調(diào)圍大,且價(jià)格適中。方案二:采用LED數(shù)碼管動(dòng)態(tài)掃描。LED數(shù)碼管價(jià)格便宜,對(duì)于顯示數(shù)字最合適,但功耗較大,占用體積大,且顯示容量不夠。經(jīng)過兩種方案的比較,選

16、擇方案一。2.1.3 鍵盤模塊方案方案一:采用獨(dú)立式按鍵。獨(dú)立式按鍵易于控制,編寫程序簡(jiǎn)單,容易理解,但I(xiàn)/O口占用較多。方案二:采用陣列式按鍵。陣列式按鍵編程困難,按鍵過多,減少了I/O口的使用。經(jīng)過兩種方案比較,選擇方案一。2.1.4 溫度模塊方案方案一:采用DS18B20溫度芯片。DS18B20芯片只需要一個(gè)元件,成本低,電路簡(jiǎn)單,適合日常生活使用。方案二:采用AD590溫度芯片。AD590芯片需要模擬轉(zhuǎn)數(shù)字電路,成本高,電路繁多,不適合本設(shè)計(jì)。經(jīng)過兩種方案比較,選擇方案一。2.2 系統(tǒng)最終方案綜上各方案所述,本設(shè)計(jì)電路最終選用STC89C52作為主控系統(tǒng)來控制時(shí)鐘的準(zhǔn)時(shí)運(yùn)轉(zhuǎn),采用獨(dú)立式

17、按鍵控制系統(tǒng)實(shí)現(xiàn)的所有功能,采用DS1302作為時(shí)鐘芯片,采用DS18B20作為溫度傳感器,選用LCD1602動(dòng)態(tài)掃描來顯示時(shí)間等。由以上選擇方案,設(shè)計(jì)出如圖1的系統(tǒng)框圖。按鍵控制模塊DS1302時(shí)鐘模塊STC89C52LCD1602顯示模塊聲音模塊(喇叭)DS18B20溫度模塊電源模塊復(fù)位電路圖1 系統(tǒng)框圖如圖1所示,系統(tǒng)的整個(gè)控制流程是:經(jīng)過程序編程,向DS1302中寫入一個(gè)初值,如寫入2013-3-27 23:56:58 WED,便從此開始計(jì)時(shí)。另外通過DS18B20溫度傳感器通過檢測(cè)環(huán)境溫度在LCD上顯示出來。通過按鍵模塊,可以進(jìn)入時(shí)間調(diào)整界面對(duì)時(shí)間進(jìn)行加減調(diào)整和移位調(diào)整,也可以進(jìn)入擴(kuò)

18、展功能界面,比如進(jìn)入秒表計(jì)時(shí)界面,可以通過按鍵來進(jìn)行開始、暫停和重置計(jì)時(shí);進(jìn)入鬧鐘設(shè)置界面,通過設(shè)置時(shí)間來實(shí)現(xiàn)鬧鐘鈴響和鬧鐘開關(guān)的功能;最后還有電子書閱覽界面和音樂播放界面。3硬件電路設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng)MCS-52單片機(jī)的最小系統(tǒng)是由STC89C52RC單片機(jī)、復(fù)位電路和晶振電路組成。復(fù)位是單片機(jī)的一個(gè)很重要的操作方式。但是,單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能產(chǎn)生復(fù)位信號(hào)。上電自動(dòng)復(fù)位是通過外部復(fù)位電路在加電瞬間對(duì)電容的充電來實(shí)現(xiàn)的(王衛(wèi)星,2009)。如圖2所示,在RST復(fù)位引腳接一個(gè)10微法的電容到電源VCC,然后電容另一端接一個(gè)10K的電阻再把電阻接地,單

19、片機(jī)復(fù)位端高電平有效,上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。晶振電路由兩個(gè)33pF的電容和一個(gè)12MHZ晶體振蕩器構(gòu)成,晶體振蕩器兩端分別接入單片機(jī)的XTAL1、XTAL2引腳。圖2 最小系統(tǒng)電路圖3.2 DS1302時(shí)鐘模塊的設(shè)計(jì)DS1302是一種高性能、低功耗的實(shí)時(shí)時(shí)鐘芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信。當(dāng)需要一次性傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)時(shí),可以采用突發(fā)方式進(jìn)行傳送。如圖3所示為DS1302的電路原理圖,其中Vcc1為后備電源,Vcc2為主電源。本設(shè)計(jì)通過把Vcc1和鋰電池相

20、接,在主電源關(guān)閉的情況下,也能保持時(shí)鐘在后方繼續(xù)運(yùn)行,使得時(shí)鐘能在斷電恢復(fù)后所顯示的時(shí)間正常。其中X1和X2是振蕩源,外接32.768kHz晶振。是復(fù)位/片選線,高電平有效,所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK始終是輸入端。圖3 DS1302電路原理圖3.3 LCD1602顯示模塊的設(shè)計(jì)由于1602字符型液晶顯示器具有微功耗、體積小、顯示容豐富、超薄輕巧等特性,所以本設(shè)計(jì)用單片機(jī)載入程序用以控制它來進(jìn)行時(shí)鐘顯示。1602字符型液晶是一種專門用來顯示字母、數(shù)字

21、、符號(hào)等的點(diǎn)陣型液晶模塊,因?yàn)?602識(shí)別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量值。如圖4所示電路原理圖,STC89C52的P0-P7端口分別與LCD1602的D0-D7端口相連接,VSS端口與VDD端口分別接地與接5V電源,LCD的控制端口R/W為讀寫信號(hào)線,高電平(1)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作;端口RS為寄存器選擇,高電平(1)時(shí)選擇數(shù)據(jù)寄存器、低電平(0)時(shí)選擇指令寄存器;端口E為使能端,高電平(1)時(shí)讀取信息,負(fù)跳變時(shí)執(zhí)行指令。R/W、RS、E端口分別與單片機(jī)的 P2.0、P2.1、P2.2端口相連,由于單片機(jī)P0端口部沒有

22、上拉電阻,所以當(dāng)其作為輸出端口時(shí),必須外加上拉電阻,即如圖所示10x8的排阻。圖4 LCD1602電路原理圖3.4 DS18B20溫度模塊的設(shè)計(jì)如圖5所示電路原理圖,DS18B20數(shù)字溫度計(jì)提供9位(二進(jìn)制)溫度讀數(shù),指示器件的溫度。信息經(jīng)過單線接口送入DS18B20或從DS18B20送出。DS18B20的測(cè)量圍為-55+125,固有測(cè)溫誤差0.5,可在1s(典型值)把溫度變換成數(shù)字,它的工作電源為:35V/DC,可選擇寄生工作方式,是一種先進(jìn)的單總線數(shù)據(jù)通信方式。它的一個(gè)工作周期可分為兩個(gè)部分,即溫度檢測(cè)盒數(shù)據(jù)處理。如下圖DS18B20的DQ引腳為數(shù)字輸入/輸出端,與STC89C52的P3.

23、3端口相連接,GND引腳接地,在外部電源供電方式下,DS18B20工作電源由VDD引腳接入,提供5V電源。此時(shí)I/O口線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證測(cè)量精度。圖5 DS18B20電路原理圖3.5 聲音模塊和按鍵控制模塊的設(shè)計(jì)如圖6所示為聲音模塊和按鍵控制模塊的電路原理圖,聲音模塊比較簡(jiǎn)單,只用普通的小喇叭與1K的電阻相連,然后與STC89C52單片機(jī)相連接,由單片機(jī)進(jìn)行控制。從圖中可以看出單片機(jī)P1.3口接喇叭的正極,喇叭的負(fù)極直接接地。由圖可見,按鍵模塊總共用到了7個(gè)按鍵,分別與單片機(jī)的P1.4,P1.5.P1.6,P1.7和P3.0,P3.1,P3.2端口相連,按鍵的另

24、一端均接地。各按鍵的功能如下:如圖中的設(shè)置按鍵,點(diǎn)擊之后進(jìn)入時(shí)間調(diào)整界面,點(diǎn)擊上調(diào)按鍵和下調(diào)按鍵顧名思義可以對(duì)時(shí)間進(jìn)行上下調(diào)整,再次點(diǎn)擊設(shè)置按鍵,可以進(jìn)行移位調(diào)整,直至調(diào)整完年份,再次點(diǎn)擊設(shè)置按鍵跳出時(shí)間調(diào)整;點(diǎn)擊鬧鐘按鍵,進(jìn)入鬧鐘設(shè)置界面,再次點(diǎn)擊鬧鐘設(shè)置按鍵進(jìn)行移位,可以設(shè)置鬧鐘時(shí)間并設(shè)定開關(guān),調(diào)整完畢后點(diǎn)擊設(shè)置按鍵跳出鬧鐘設(shè)置;點(diǎn)擊秒表按鍵,進(jìn)入秒表計(jì)時(shí)界面,點(diǎn)擊上調(diào)按鍵開始計(jì)時(shí),點(diǎn)擊下調(diào)按鍵暫停計(jì)時(shí),再次點(diǎn)擊上調(diào)按鍵繼續(xù)計(jì)時(shí),最后點(diǎn)擊秒表按鍵退出秒表計(jì)時(shí)。點(diǎn)擊電子書按鍵,進(jìn)入電子書閱覽界面,點(diǎn)擊上調(diào)按鍵向上翻頁(yè),點(diǎn)擊下調(diào)按鍵向下翻頁(yè),最后點(diǎn)擊電子書按鍵退出電子書閱覽界面。點(diǎn)擊音樂播放按

25、鍵,進(jìn)入音樂播放界面,再次點(diǎn)擊音樂播放按鍵開始播放音樂,點(diǎn)擊上調(diào)按鍵停止播放,再次點(diǎn)擊音樂播放按鍵切換到下一首歌曲開始播放,最后再次點(diǎn)擊音樂播放按鍵退出音樂播放界面。圖6 聲音模塊和按鍵控制模塊電路原理圖4 程序設(shè)計(jì)本設(shè)計(jì)的程序設(shè)計(jì)流程主要包括以下幾個(gè)部分:1、時(shí)間調(diào)整程序設(shè)計(jì)流程,2、鬧鐘處理程序設(shè)計(jì)流程,3、秒表計(jì)時(shí)程序設(shè)計(jì)流程,4、音樂播放程序設(shè)計(jì)流程,5、電子書閱覽程序設(shè)計(jì)流程。每個(gè)程序?qū)?yīng)獨(dú)立的按鍵,其中設(shè)置按鍵對(duì)應(yīng)的I/O口為P1.5,上調(diào)按鍵對(duì)應(yīng)的I/O口為1.6,下調(diào)按鍵對(duì)應(yīng)的I/O口為P1.7,鬧鐘按鍵對(duì)應(yīng)的I/O為P3.0,秒表按鍵對(duì)應(yīng)的I/O口為P3.1,音樂播放按鍵對(duì)應(yīng)

26、的I/O為P1.4,電子書閱覽按鍵對(duì)應(yīng)的I/O為P3.2。使用按鍵掃描功能進(jìn)入相應(yīng)的子函數(shù),根據(jù)標(biāo)志位在LCD上顯示不同的界面。下面會(huì)對(duì)每個(gè)程序設(shè)計(jì)流程有著明了的解析并附有該程序設(shè)計(jì)流程圖。4.1 時(shí)間調(diào)整程序設(shè)計(jì)時(shí)間調(diào)整的主要程序流程為:首先點(diǎn)擊設(shè)置按鍵,點(diǎn)擊之后會(huì)進(jìn)入時(shí)間調(diào)整界面,再次點(diǎn)擊設(shè)置按鍵,可以進(jìn)行移位調(diào)整,依次能夠調(diào)整秒、分、時(shí),星期,日、月、年。上調(diào)按鍵和下調(diào)按鍵顧名思義可以對(duì)時(shí)間進(jìn)行上下調(diào)整,當(dāng)調(diào)整完所有時(shí)間后,點(diǎn)擊設(shè)置按鍵移位到年份,再次點(diǎn)擊設(shè)置按鍵能夠保存所調(diào)整的時(shí)間并且跳出時(shí)間調(diào)整界面。圖7為時(shí)間調(diào)整程序流程圖。按下上調(diào)按鍵或下調(diào)按鍵,更改數(shù)據(jù)設(shè)置按鍵按下,選擇調(diào)整的對(duì)

27、象開始結(jié)束按下上調(diào)按鍵或下調(diào)按鍵,更改數(shù)據(jù)最后按下設(shè)置按鍵,保存參數(shù)圖7 時(shí)間調(diào)整程序流程圖4.2 鬧鐘處理程序設(shè)計(jì)鬧鐘處理的主要程序流程為:首先點(diǎn)擊鬧鐘設(shè)置按鍵,進(jìn)入鬧鐘設(shè)置界面,可以設(shè)置鬧鐘的開關(guān)狀態(tài)和鬧鐘時(shí)間。取當(dāng)前時(shí)間與鬧鐘時(shí)間比較,當(dāng)兩者一致并且鬧鐘處于開啟狀態(tài)時(shí),鬧鐘響起,按任意鍵取消鬧鐘鈴響。另外,還能從程序上對(duì)鬧鐘的鬧鈴時(shí)間進(jìn)行調(diào)整。圖8為鬧鐘處理程序流程圖。取當(dāng)前時(shí)間取鬧鐘時(shí)間開始結(jié)束兩者比較結(jié)果相等鬧鐘響起YN圖8 鬧鐘處理程序流程圖4.3 秒表計(jì)時(shí)程序設(shè)計(jì)秒表計(jì)時(shí)的主要程序流程為:首先點(diǎn)擊秒表計(jì)時(shí)按鍵,進(jìn)入秒表顯示的界面。秒表計(jì)時(shí)采用的是定時(shí)器計(jì)時(shí),使用定時(shí)器0,每一百毫

28、秒產(chǎn)生一次中斷。進(jìn)入秒表計(jì)時(shí)畫面后,點(diǎn)擊上調(diào)按鍵開始計(jì)時(shí),點(diǎn)擊下調(diào)按鍵暫停計(jì)時(shí),再次點(diǎn)擊上調(diào)按鍵繼續(xù)計(jì)時(shí),最后點(diǎn)擊秒表按鍵退出秒表計(jì)時(shí)。圖9為秒表計(jì)時(shí)程序流程圖。4.4 音樂播放程序設(shè)計(jì)音樂播放按鍵的主要程序流程為:首先點(diǎn)擊音樂播放按鍵,進(jìn)入音樂播放界面,其中播放的音樂數(shù)據(jù)存放在單片機(jī)的ROM里。再次點(diǎn)擊音樂播放按鍵開始播放音樂,點(diǎn)擊上調(diào)按鍵停止播放,再次點(diǎn)擊音樂播放按鍵切換到下一首歌曲開始播放,最后點(diǎn)擊音樂播放按鍵退出音樂播放界面。圖10為音樂播放程序流程圖。按下上調(diào)按鍵,開始計(jì)時(shí)秒表按鍵按下開始結(jié)束按下下調(diào)按鍵,暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)YN秒表按鍵按下圖9 秒表計(jì)時(shí)程序流程圖雙擊音樂播放按鍵,音樂

29、播放開始結(jié)束按下上調(diào)按鍵,暫停播放有歌曲播放YN按下音樂播放按鍵,播放下一首圖10 音樂播放程序流程圖4.5 電子書程序設(shè)計(jì)電子書閱覽的主要程序:首先進(jìn)入電子書閱覽界面的顯示,電子書閱覽的容存在單片機(jī)的ROM里。點(diǎn)擊電子書按鍵,進(jìn)入閱覽界面,點(diǎn)擊上調(diào)按鍵向上翻頁(yè),點(diǎn)擊下調(diào)按鍵向下翻頁(yè),最后點(diǎn)擊電子書按鍵退出閱覽界面。圖11為電子書閱覽程序流程圖。雙擊下調(diào)按鍵,向下翻頁(yè)電子書閱覽按鍵按下開始結(jié)束雙擊上調(diào)按鍵,向上翻頁(yè)電子書閱覽按鍵按下圖11 電子書閱覽流程圖5調(diào)試與調(diào)試結(jié)果5.1 硬件調(diào)試在沒通電之前,先用萬用表檢查線路的正確性,并核對(duì)元器件的型號(hào)、規(guī)格是否符合要求。首要檢查的電源的正負(fù)極有沒有

30、接反以與電源之間有沒有短路,各電源之間需要共VCC并且所有的地線需要共地。然后再檢查各個(gè)模塊的線路是否有短路、斷路的情況出現(xiàn),另外晶體振蕩器和電容應(yīng)盡可能靠近單片機(jī)芯片安裝,以減少寄生電容,更好是保證振蕩器穩(wěn)定和可靠地工作。經(jīng)過仔細(xì)全面的排查,本設(shè)計(jì)確保了電路的正確的焊接,能為接下來的通電調(diào)試提供很大的方便。接上+5V電源后,分別測(cè)量各點(diǎn)電位是否正常,特別要注意的是DS18B20溫度傳感器的接法,否則容易損壞芯片,造成測(cè)量誤差或者無法測(cè)量的結(jié)果。在斷電的情況下,除單片機(jī)以外,用仿真插頭將所連接電路與單片機(jī)仿真器的仿真接口相連,為軟件調(diào)試做好準(zhǔn)備。在硬件調(diào)試的過程中,發(fā)現(xiàn)了很多問題,比如電源線沒

31、有焊好,導(dǎo)致供電不穩(wěn)定;LCD1602插槽接觸不良,導(dǎo)致液晶顯示不太穩(wěn)定;有些需要共地的地方?jīng)]有共地,部分線路存在短路斷路的情況,造成了調(diào)試的失敗;另外DS18B20溫度傳感器也接反了,使得測(cè)量錯(cuò)誤、芯片發(fā)熱,差點(diǎn)損壞了芯片。5.2 調(diào)試結(jié)果首先調(diào)試出液晶顯示,方便觀看其他各項(xiàng)調(diào)試結(jié)果。調(diào)試過程發(fā)現(xiàn)虛焊和短路情況,排除此類情況,并調(diào)節(jié)背光電壓后液晶顯示正常。其次調(diào)試溫度測(cè)量模塊,保證DS18B20供電正常,然后調(diào)試保證DS1302供電正常,最后開始調(diào)試各按鍵模塊的功能。經(jīng)過調(diào)試,發(fā)現(xiàn)各個(gè)按鍵的功能均能夠?qū)崿F(xiàn),并且在LCD1602液晶顯示屏中顯示出來,喇叭也工作正常,均實(shí)現(xiàn)了設(shè)計(jì)所要求的功能,調(diào)

32、試完畢。6 結(jié)論本次畢業(yè)設(shè)計(jì)收獲良多,完成了畢業(yè)設(shè)計(jì)的要求,利用DS1302時(shí)鐘芯片實(shí)現(xiàn)了時(shí)間顯示時(shí)、分、秒,年、月、日與星期的基本功能,并且能夠進(jìn)行時(shí)間調(diào)整。另外還外加了一些擴(kuò)展功能,比如:鬧鐘設(shè)計(jì),能夠進(jìn)行鬧鐘提醒;秒表計(jì)時(shí),能夠方便的應(yīng)用于日常生活;電子書閱覽,能夠消磨空閑時(shí)間;MP3播放,能夠播放一下旋律。本設(shè)計(jì)雖然完成了基本功能,且有擴(kuò)展,但是還有許多可以完善的地方。如可以增加語(yǔ)音報(bào)時(shí),用于定點(diǎn)報(bào)時(shí),更加方便人們對(duì)時(shí)間的掌握;如可以增加紅外遙控,用于遠(yuǎn)程調(diào)控?cái)?shù)字鐘,更加方便于日常生活。參 考 文 獻(xiàn)王衛(wèi)星. 單片機(jī)原理與應(yīng)用開發(fā)技術(shù)M. :中國(guó)水利水電, 2009:23-25.朱鳴華

33、、旭麟等. C語(yǔ)言程序設(shè)計(jì)教程. :機(jī)械工業(yè), 2007:34-212.邵蘭. 簡(jiǎn)易數(shù)字鐘電路設(shè)計(jì)基本思路J. 職業(yè)技術(shù), 2007(6):118-119.淑. 數(shù)字電子鐘的設(shè)計(jì)J. 大學(xué)學(xué)報(bào),2004(4):36-39.附 錄附錄A 電路原理圖附錄B 設(shè)計(jì)程序#include <reg52.h>#include "intrins.h"#include "music_code.h"#define uchar unsigned char#define uint unsigned int#define SYSTEM_OSC 12000000#de

34、fine SOUND_SPACE 4/5 uchar code tabe1="20 - -" /液晶一直顯示的字符uchar code tabe2=" : : "uchar code tabe3="Alarm set:"uchar code tabe4="Stopwatch:"uchar code tabe5="Read book: "uchar code tabe6="Listen music: "uchar code tabe7="Song 1: "u

35、char code str="Never frown,even when you are sad,because you never know who is falling in love with your smile! To the world you may be one person,but to one person you may be the world "uint code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; uchar code SignTab7 = 0,2,4,5,7,

36、9,11 ; uchar code LengthTab7= 1,2,4,8,16,32,64 ;uchar Sound_Temp_TH0,Sound_Temp_TL0;uchar Sound_Temp_TH1,Sound_Temp_TL1;uchar miao,fen,shi,nian,yue,ri,week,wd_flag,wendu_shi,wendu_ge,wendu_shu,variate,alarm_shi,alarm_fen,alarm_miao,miaobiao_shi,miaobiao_fen,miaobiao_miao;uchar flag=1,count=0,flag_up

37、=0,flag_down=0,flag_alarm=0,alarm_on,alarm_count=0,done=0,miaobiao_count=0,second,msecond,book_count=0,sum,i,music_count=0;uint wendu;uchar watch_flag,music_flag,bee,song_flag,songsum;/定義IOsbit DQ = P33; /ds18b20溫度傳送數(shù)據(jù)IO口sbit ds1302_rst = P12; /1302復(fù)位sbit ds1302_io = P11; /數(shù)據(jù)輸入輸出sbit ds1302_sclk= P1

38、0; /串行時(shí)鐘sbit alarm_out = P13;/蜂鳴器口sbit lcd1602_rs = P20;/ 1602命令、數(shù)據(jù)選擇sbit lcd1602_rw = P21; / 1602寫sbit lcd1602_e = P22;/ 1602使能sbit set = P15;/選擇按鍵sbit up = P16;/加sbit down = P17;/減sbit nao = P30;/鬧鐘功能按鍵sbit led = P26;/led背光sbit miaobiao = P31;/秒表功能按鍵sbit book = P32;/電子書功能按鍵sbit music = P14;/音樂功能按鍵

39、sbit ACC0=ACC0;sbit ACC7=ACC7;void init();/中斷初始化設(shè)置void page(uchar);/書頁(yè)設(shè)置void playsong();void Play(uchar *Sound,uchar Signature,uchar Octachord,uint Speed);/延時(shí)void delay(uchar x)uchar y,z;for(z=x;z>0;z-)for(y=110;y>0;y-);void delay1()_nop_();_nop_();ds18b20_delay(uchar xus) /延時(shí)xuswhile(xus-);/*

40、ds18b20*/void ds18b20_init() /DS18B20初始化uchar x=0; DQ=1;ds18b20_delay(8);DQ=0;ds18b20_delay(80);DQ=1;ds18b20_delay(14);x=DQ;ds18b20_delay(20);void write_onechar(uchar dat) /寫一字節(jié)uchar i;for(i=8;i>0;i-)DQ=0;if(dat&0x01=0x01)DQ=1;elseDQ=0;ds18b20_delay(5);DQ=1;ds18b20_delay(1);dat>>=1;ucha

41、r read_onechar()/讀一字節(jié)uchar value=0,i;for(i=8;i>0;i-)value>>=1;DQ=0;ds18b20_delay(1);DQ=1;if(DQ=1)value|=0x80;elsevalue&=0x7f;ds18b20_delay(4);return value;uint read_wendu() /DS18B20讀溫度 uchar a=0,b=0;uint wen=0x0000;ds18b20_init();/初始化write_onechar(0xcc);/ 跳過讀序號(hào)列號(hào)的操作write_onechar(0x44);/

42、 啟動(dòng)溫度轉(zhuǎn)換ds18b20_delay(150);ds18b20_init();/初始化write_onechar(0xcc);/跳過讀序號(hào)列號(hào)的操作write_onechar(0xbe);/讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度ds18b20_delay(150);b=read_onechar();/讀取溫度值低位a=read_onechar();/讀取溫度值高位wen=a;wen=(wen<<8)|b;return wen;/*ds1302*/void write_byte(uchar dat) /寫一字節(jié)uchar k;ACC=dat; for(k=8;k&g

43、t;0;k-) ds1302_io=ACC0;ds1302_sclk=0; /拉低sclkds1302_sclk=1; /拉高sclkACC>>=1;uchar read_byte() uchar k; for(k=8;k>0;k-) ACC7=ds1302_io;ds1302_sclk=1; /拉高sclkds1302_sclk=0; /拉低sclkACC>>=1;return ACC; void ds1302_write(uchar add,uchar date)ds1302_rst=0;ds1302_sclk=0; /在rst沒拉高之前先把sclk置0ds1

44、302_rst=1;write_byte(add);write_byte(date);ds1302_sclk=1; ds1302_rst=0;uchar ds1302_read(uchar add)uchar temp;ds1302_rst=0;ds1302_sclk=0; /在rst沒拉高之前先把sclk置0ds1302_rst=1;write_byte(add);temp=read_byte();ds1302_sclk=1; ds1302_rst=0;return temp;void ds1302_init() /ds1302初始化 ds1302_rst=0;ds1302_sclk=1;

45、ds1302_write(0x8e,0x00);/寫允許ds1302_write(0x80,0x58);ds1302_write(0x82,0x56);ds1302_write(0x84,0x23);ds1302_write(0x86,0x27);ds1302_write(0x88,0x03);ds1302_write(0x8a,0x03);ds1302_write(0x8c,0x13);ds1302_write(0x8e,0x80);/寫保護(hù) /*lcd1602*/void lcd_write_(uchar ) /命令字寫入lcd單元中 lcd1602_rw=0; delay1(); lcd

46、1602_rs=0; / RW=1,RS=0,寫LCD命令字 delay1(); P0=; /將com中的命令字寫入LCD數(shù)據(jù)口 delay1(); lcd1602_e=1; /E端時(shí)序 delay1(); lcd1602_e=0; delay1(); lcd1602_rw=1; delay(5);void lcd_write_date(uchar date) /數(shù)據(jù)寫入lcd單元中 lcd1602_rw=0; delay1(); lcd1602_rs=1; / RW=0,RS=1,寫LCD命令字 delay1(); lcd1602_e=1; / E端時(shí)序 delay1(); P0=date;

47、 / 將dat中的顯示數(shù)據(jù)寫入LCD數(shù)據(jù)口 delay1(); lcd1602_e=0; delay1(); lcd1602_rw=1; delay(5);void lcd1602_init() /LCD初始化函數(shù)uchar lcdnum;P3=0xdf;lcd_write_(0x38);lcd_write_(0x0c);lcd_write_(0x06);lcd_write_(0x01);lcd_write_(0x80);for(lcdnum=0;lcdnum<8;lcdnum+) /寫第一行數(shù)據(jù) lcd_write_date(tabe1lcdnum);delay(2);lcd_writ

48、e_(0x80+0x40); /寫入第二行數(shù)據(jù) for(lcdnum=0;lcdnum<13;lcdnum+)lcd_write_date(tabe2lcdnum);delay(2);/*顯示部分*/void write_time1(uchar add,uchar date) /日期送顯示uchar shi,ge;shi=date/10;ge=date%10;lcd_write_(0x80+add);lcd_write_date(0x30+shi);lcd_write_date(0x30+ge);void write_time2(uchar add,uchar date) /時(shí)間送顯示u

49、char shi,ge;shi=date/10;ge=date%10;lcd_write_(0x80+0x40+add);lcd_write_date(0x30+shi);lcd_write_date(0x30+ge);uchar bcd_decimal(uchar bcd) /bcd轉(zhuǎn)換十進(jìn)制uchar decimal;decimal=bcd>>4;decimal=decimal*10+(bcd&=0x0f);return decimal; void wendu_decimal(uint dat) /溫度轉(zhuǎn)換后送顯示float temp;if (dat>0x07D0

50、)/負(fù)溫度dat=(dat)+1; wd_flag=-3; temp=dat*0.625; elsetemp=dat*0.625; /dat*0.0625*10wd_flag=-30;wendu_shi=temp/100; /取十位 temp除不用定義類型wendu_ge =(uint)temp)%100/10; /取個(gè)位 temp求模要定義類型,為16位,故定義uintwendu_shu=(uint)temp)%100%10; /取小數(shù)lcd_write_(0x80+0x40+10); /送顯示lcd_write_date(0x30+wd_flag);lcd_write_date(0x30+wendu_shi);lcd_write_date(0x30+wendu_ge);lcd_write_date(0x2e); lcd_write_date

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論