基于51單片機(jī)電子鬧鐘的畢業(yè)設(shè)計(jì)_第1頁
基于51單片機(jī)電子鬧鐘的畢業(yè)設(shè)計(jì)_第2頁
基于51單片機(jī)電子鬧鐘的畢業(yè)設(shè)計(jì)_第3頁
基于51單片機(jī)電子鬧鐘的畢業(yè)設(shè)計(jì)_第4頁
基于51單片機(jī)電子鬧鐘的畢業(yè)設(shè)計(jì)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、前 言20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展。在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高。同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。所以有必要制作一個(gè)定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定

2、時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。隨著生活水平的提高,人們越來越追求人性化的事物。傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。而現(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機(jī)技術(shù),增加數(shù)字鐘的功能。利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的

3、使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒。數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場所成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機(jī)作為數(shù)字鐘的核心控制器,通過它的時(shí)鐘信號進(jìn)行實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行校時(shí)、定時(shí)等功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管來顯示技術(shù)。 本系統(tǒng)利用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī)AT89C51為核心元件同時(shí)采用LED數(shù)碼管顯示器動(dòng)態(tài)顯示“時(shí)

4、”、“分”、“秒”的現(xiàn)代計(jì)時(shí)裝置。另外具有校時(shí)功能,秒表功能,和定時(shí)器功能,利用單片機(jī)實(shí)現(xiàn)的數(shù)字時(shí)鐘具有編程靈活,便于功能的擴(kuò)充等優(yōu)點(diǎn)。目 錄前 言1摘 要IABSTRACTII第1章 課題的背景11.1 課題的來源11.2 課題研究的目的和意義11.3應(yīng)解決的主要問題及達(dá)到的技術(shù)要求1第2章 方案的選擇和論證22.1 單片機(jī)型號的選擇22.2 按鍵的選擇22.3 顯示器的選擇22.4 計(jì)時(shí)部分的選擇22.5 發(fā)音部分的設(shè)計(jì)32.6 顯示器驅(qū)動(dòng)電路32.7 電源的選擇3第3章 數(shù)字電子鐘的設(shè)計(jì)原理和方法43.1 設(shè)計(jì)原理43.2 硬件電路的設(shè)計(jì)43.2.1 AT89C51單片機(jī)簡介43.2.2

5、 鍵盤電路的設(shè)計(jì)43.2.3 段碼驅(qū)動(dòng)電路53.2.4 蜂鳴器驅(qū)動(dòng)電路53.3 軟件部分的設(shè)計(jì)63.3.1 主程序部分的設(shè)計(jì)63.3.2 中斷定時(shí)器的設(shè)置63.3.3 鬧鐘子函數(shù)73.3.4 計(jì)時(shí)函數(shù)73.3.4 鍵盤掃描函數(shù)93.3.5 時(shí)間和鬧鐘的設(shè)置9第4章 實(shí)驗(yàn)結(jié)果11總 結(jié)12致 謝13參考文獻(xiàn)14附 錄15摘 要單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本設(shè)計(jì)以AT89C51芯片為核心,輔以必要的外圍電路,設(shè)計(jì)了一個(gè)結(jié)構(gòu)簡單,功能齊全的電子時(shí)鐘,它由5V直流電源供電。在硬件方

6、面,除了CPU外,使用八個(gè)七段LED數(shù)碼管來進(jìn)行顯示,LED采用的是動(dòng)態(tài)掃描顯示,使用74LS245芯片進(jìn)行驅(qū)動(dòng)。通過LED能夠較為準(zhǔn)確地顯示時(shí)、分、秒。四個(gè)簡單的按鍵實(shí)現(xiàn)對時(shí)間的調(diào)整。軟件方面采用C語言編程。整個(gè)電子鐘系統(tǒng)能完成時(shí)間的顯示、調(diào)時(shí)、校時(shí)和三組定時(shí)鬧鐘的功能。選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時(shí)間調(diào)整程序及蜂鳴程序,通過時(shí)間比較程序觸發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計(jì)所需求的軟件環(huán)境。介紹并使用Keil單片機(jī)模擬調(diào)試軟件,測試程序的可行性并用Proteus進(jìn)行仿真。關(guān)鍵詞:單片機(jī),定時(shí)器,中斷,鬧鐘,LEDABSTRACTBecause of its extremely hi

7、gh performance-price ratio, the single-chip computer (SCC) has been paid great attention to ever since it came out in 1970s of 20th Century, and has gained an extensive applicable field and fast development. Among all kinds of SCCS, 51 SCC is the most typical and representative one. This design, ado

8、pting AT89C51 chip as the core part with some necessary peripheral circuits, is a simple electronic clock which uses 5V DC as the power supply. In hardware aspect, besides the CPU, eight seven-segment LED digi-tubes are used for display, which work in a dynamically scanning display mode and driven b

9、y 74SL245 chip. The LEDS can accurately indicate hour 、 minute and second. Four buttons can be used to adjust the time. While in the software aspect, the programming language is C language. The whole electronic clock system has functions of time display, adjustment 、timing and three groups of alarm

10、function. Choose the smallest SCM system applications,add Comparison procedures, time to adjust procedures and faint buzzing procedures, Through relatively faint buzzing trigger procedures to achieve alarm clock function, Completed the design needs of the software environment. Keil introduced and th

11、e use of SCM software simulation debugging, testing the feasibility and proteus by simulation.Keyword: single slice machine,in fixed time machine,break off,alarm clock,LED第1章 課題的背景1.1 課題的來源隨著生活水平的提高,人們越來越追求人性化的事物,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求?,F(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)而且需要數(shù)字電路技術(shù)和單片機(jī)技術(shù),增加時(shí)鐘的功能。數(shù)字電子鐘可利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾

12、和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差;盡管如此數(shù)字鐘還是可以改進(jìn)和提高,比如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。1.2 課題研究的目的和意義20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一

13、時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間等造成的。而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。數(shù)字鐘是通過數(shù)字電路實(shí)現(xiàn)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰S捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能,諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烤箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等。所有這些,都是以鐘表數(shù)字化為基

14、礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。1.3應(yīng)解決的主要問題及達(dá)到的技術(shù)要求本設(shè)計(jì)應(yīng)解決的主要問題有兩大方面,即硬件電路設(shè)計(jì)和軟件設(shè)計(jì)兩大方面。其中硬件電路部分又可分為四個(gè)模塊:鍵盤模塊、顯示模塊、計(jì)時(shí)模塊和發(fā)聲模塊。硬件電路部分致力于低成本、低功耗和易實(shí)現(xiàn)性。軟件部分則應(yīng)做到代碼的精簡、準(zhǔn)確、易讀懂。最后通過硬軟件的結(jié)合實(shí)現(xiàn)數(shù)字鐘的精確計(jì)時(shí)、校時(shí)、三組鬧鐘設(shè)置和定時(shí)報(bào)警功能。第2章 方案的選擇和論證2.1 單片機(jī)型號的選擇通過對多種單片機(jī)性能的分析,最終認(rèn)為AT89C51是最理想的電子時(shí)鐘開發(fā)芯片。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CM

15、OS8位微處理器,器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲(chǔ)器和1000次擦寫循環(huán),數(shù)據(jù)保留時(shí)間為10年,是最好的選擇。2.2 按鍵的選擇方案一:4×4矩陣式鍵盤。如果選擇此方案,那么在修改時(shí)鐘或設(shè)置鬧鈴時(shí)間時(shí)就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨(dú)立式按鍵。如果設(shè)置過多按鍵,將會(huì)占用較多I/O口,而且會(huì)給布線帶來不便,因此,此方案適用于按鍵較少的情況。如果選

16、擇此方案,由于按鍵較少,在修改時(shí)間或設(shè)置鬧鈴時(shí)間時(shí)就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。 由于并不需要經(jīng)常修改時(shí)間和設(shè)置鬧鈴時(shí)間,而且方案二的程序簡單,按鍵少、成本低,因此,選擇方案二。2.3 顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會(huì)降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動(dòng)電路復(fù)雜,使用起來有一定的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動(dòng)電路簡單,使用方便,如果選擇了此方案,那么在夜間看時(shí)間的時(shí)候就不需要有光源,非常方便。其缺點(diǎn)是功耗較大。由于數(shù)碼管使用起來較為方便,在夜間看時(shí)間也很方便,因此我選擇了方案二。2.4 計(jì)時(shí)部

17、分的選擇如果使用時(shí)鐘芯片,系統(tǒng)就不怕掉電且時(shí)間精確。但這種芯片比較貴,況且,設(shè)計(jì)本系統(tǒng)主要是為了學(xué)習(xí)單片機(jī)程序的編寫和調(diào)試以及設(shè)計(jì)硬件電路的一些方法,因此采用軟件的方法來計(jì)時(shí)而沒有采用價(jià)格較高的時(shí)鐘芯片。2.5 發(fā)音部分的設(shè)計(jì)通過三極管放大后驅(qū)動(dòng)蜂鳴器工作,再通過軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。2.6 顯示器驅(qū)動(dòng)電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245來驅(qū)動(dòng)段碼,用P3口作位碼驅(qū)動(dòng)。2.7 電源的選擇如果是用電池供電,就比較方便攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。

18、況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用5V外部穩(wěn)壓電源來供電。第3章 數(shù)字電子鐘的設(shè)計(jì)原理和方法3.1 設(shè)計(jì)原理 系統(tǒng)原理圖圖3-1 系統(tǒng)原理圖3.2 硬件電路的設(shè)計(jì) AT89C51單片機(jī)簡介AT89C51是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合。可以滿足多方面的性能要求。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需2到4個(gè)時(shí)鐘周期。6倍于標(biāo)準(zhǔn)51單片機(jī)器件。AT89C51集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51單片機(jī)內(nèi)部主要有以下部件:8031CPU、振蕩電

19、路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲(chǔ)器、并行I/O接口、定時(shí)器和串行I/O接口。圖3-2 AT89C51單片機(jī) 鍵盤電路的設(shè)計(jì)鍵盤采用4個(gè)獨(dú)立按鍵配以4個(gè)上拉電阻實(shí)現(xiàn)對時(shí)鐘和鬧鐘的設(shè)定及修改。 圖3-3 獨(dú)立按鍵 圖3-4 鍵盤輸入電路 段碼驅(qū)動(dòng)電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245來驅(qū)動(dòng)段碼,用P3口作位碼驅(qū)動(dòng)。圖3-5 段碼驅(qū)動(dòng)器74LS245 蜂鳴器驅(qū)動(dòng)電路發(fā)音部分是通過三極管放大驅(qū)動(dòng)蜂鳴器工作,再通過軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖3-6 蜂鳴器驅(qū)動(dòng)電路3.3 軟件部分的

20、設(shè)計(jì) 主程序部分的設(shè)計(jì)程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計(jì),避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時(shí),主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖3-7。圖3-7 主程序流程圖 中斷定時(shí)器的設(shè)置數(shù)字電子鐘設(shè)計(jì)中主要使用定時(shí)器T0中斷ET0,利用ET0中斷進(jìn)行計(jì)時(shí)時(shí)間的自增,從而實(shí)現(xiàn)計(jì)時(shí)功能。AT89C51有兩個(gè)通用定時(shí)/計(jì)數(shù)器。兩者均可配置為定時(shí)器或事件計(jì)數(shù)器。另外增加了定時(shí)器T0/T1,溢出時(shí)T0/T1腳自動(dòng)翻轉(zhuǎn)的功能選項(xiàng)。 用作“定時(shí)器”功能時(shí),每經(jīng)過一個(gè)機(jī)器周期,寄存器值加1。 用作“計(jì)數(shù)器”功能時(shí),寄存器在對應(yīng)的外部輸入管腳T0/T1上每

21、發(fā)生一次1到0的跳變時(shí)加1。使用該功能時(shí),外部輸入每個(gè)機(jī)器周期被采樣一次。 圖3-8 定時(shí)器工作原理1設(shè)計(jì)中采用了中斷方式1作為定時(shí)中斷,其定時(shí)計(jì)數(shù)初值的設(shè)置可由以下公式計(jì)算得到,中斷服務(wù)流程圖如下圖3-9。X:計(jì)數(shù)初值 t:定時(shí)時(shí)間 :機(jī)器周期 1圖3-9 中斷服務(wù)流程圖 鬧鐘子函數(shù)鬧鐘時(shí)間的判別主要是通過設(shè)定時(shí)間與實(shí)時(shí)時(shí)間對逐位對比確定是否進(jìn)行鬧鈴。其工作流程圖如下圖3-10。圖3-10 鬧鈴判斷流程圖 計(jì)時(shí)函數(shù)計(jì)時(shí)函數(shù)部分,主要是通過單片機(jī)定時(shí)中斷來計(jì)時(shí),復(fù)產(chǎn)生一次中斷標(biāo)志位flag加1,當(dāng)flag加滿20次為1秒,然后把flag清0把秒存儲(chǔ)單元加1。然后再依次判斷分、時(shí)。其流程圖如下圖

22、3-11。圖3-11 計(jì)時(shí)流程圖 鍵盤掃描函數(shù)這些函數(shù)主要是判斷是否有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行,其相關(guān)流程圖如下圖3-12。圖3-12 鍵盤掃描流程圖 時(shí)間和鬧鐘的設(shè)置此部分主要是通過判斷cnt在不同值時(shí)通過調(diào)用加1、減1子函數(shù)對時(shí)間和鬧鐘的時(shí)、分、秒進(jìn)行設(shè)置。在鬧鐘設(shè)置時(shí),判斷按鍵S4按下情況我,進(jìn)行鬧鐘的開啟與關(guān)閉,相關(guān)流程圖如下圖3-13。圖3-13 時(shí)間/鬧鐘設(shè)置流程圖第4章 實(shí)驗(yàn)結(jié)果此電子鬧鐘設(shè)計(jì)是利用Proteus仿真軟件進(jìn)行仿真,基本上實(shí)現(xiàn)了課程設(shè)計(jì)要求實(shí)現(xiàn)的功能。硬件部分設(shè)置了的三個(gè)按鍵S1、S2、S3、S4。當(dāng)按鍵S1第一次按下時(shí),停止計(jì)時(shí)進(jìn)入鬧鐘1

23、的秒設(shè)置,當(dāng)按鍵S1第二、第三次按下時(shí),分別進(jìn)入鬧鐘1的分設(shè)置和時(shí)設(shè)置,當(dāng)按S1第四 、第五、第六次按下時(shí)分別進(jìn)入鬧鐘2的秒、分、時(shí)設(shè)置,當(dāng)按S1第七 、第八、第九次按下時(shí)分別進(jìn)入鬧鐘3的秒、分、時(shí)設(shè)置,當(dāng)按S1第十 、第二一、第十二次按下時(shí)分別進(jìn)入時(shí)間的秒、分、時(shí)設(shè)置,在S1按下的各階段,可用按鍵S2、S3進(jìn)行時(shí)間和鬧鈴時(shí)間的時(shí)、分、秒進(jìn)行加減設(shè)置;當(dāng)按鍵S1第十三次按下時(shí)恢復(fù)到時(shí)間顯示功能。當(dāng)顯示的時(shí)間和定時(shí)設(shè)置的時(shí)間一致時(shí),蜂鳴器發(fā)出等時(shí)間斷蜂鳴聲,鬧鈴時(shí)間設(shè)置為60秒。在各個(gè)鬧鐘設(shè)置階段,如果有S4按下,則相應(yīng)鬧鐘功能關(guān)閉或開啟;如在鬧鈴時(shí)有S4按下則提前停止鬧鈴。另外,鬧鈴電路有音樂

24、鬧鐘的擴(kuò)展的功能(可以將蜂鳴器換成揚(yáng)聲器再加一段音樂程序即可實(shí)現(xiàn))。因時(shí)間有限,擴(kuò)展功能還未能及時(shí)實(shí)現(xiàn),比如音樂鬧鈴。圖3-14 運(yùn)行仿真圖總 結(jié)通過自己的不懈努力,我終于完成了畢業(yè)設(shè)計(jì)任務(wù)書上的任務(wù)要求。功能上基本達(dá)標(biāo):時(shí)鐘的顯示,調(diào)時(shí)功能、校時(shí)功能、鬧鈴功能、鬧鐘設(shè)功能。其精確度完全可以滿足日常生活顯示時(shí)間的需要;調(diào)時(shí)功能,方便快捷;校時(shí)功能保證了時(shí)鐘準(zhǔn)確和可靠性,鬧鐘響鈴還有擴(kuò)展成音樂鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計(jì)可以配合硬件實(shí)現(xiàn)要求的功能。但是由于時(shí)間比較短,前期設(shè)計(jì)出現(xiàn)部分不足:如位選閃爍功能不能實(shí)現(xiàn)、鬧鐘的開啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計(jì)時(shí)相應(yīng)功能部分還不完善造成

25、。不過經(jīng)仔細(xì)思考和程序的完善,最終將軟件設(shè)計(jì)改進(jìn),并完全可以很好實(shí)現(xiàn)所有要求的功能??梢娂夹g(shù)在不斷進(jìn)步,機(jī)械式時(shí)鐘已經(jīng)被淘汰,取而代之的是具有高度準(zhǔn)確性和直觀性且無機(jī)械裝置,具有更長的使用壽命等優(yōu)點(diǎn)的數(shù)字時(shí)鐘。數(shù)字時(shí)鐘更具人性化,更能提高人們的生活質(zhì)量,更受人們歡迎。 無可否認(rèn)機(jī)械時(shí)代已經(jīng)過去,電子時(shí)代已經(jīng)到來。做為新時(shí)代的我們,更應(yīng)該提高自身能力,適應(yīng)新時(shí)代的發(fā)展。知識來自實(shí)踐,多去生活中探詢所需要的。對于上述所提到的研究課題,我們應(yīng)盡量考慮到人的因素,增強(qiáng)時(shí)鐘的實(shí)用性和操作性,為使用者提供切實(shí)的方便,營造一種舒適的生活氛圍。所以,在設(shè)計(jì)的時(shí)候,應(yīng)該從多方面、多角度去考慮問題,而且應(yīng)該進(jìn)一步

26、提高時(shí)鐘的質(zhì)量。另外,在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計(jì)但通過這次設(shè)計(jì)我學(xué)會(huì)了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡單,但到編程的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識或低級錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計(jì)中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過程

27、中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。致 謝經(jīng)過幾個(gè)月的實(shí)習(xí)調(diào)查收集數(shù)據(jù)資料、整理材料、寫作論文,我終于可以順利的完成論文了。 首先要感謝我的指導(dǎo)老師陳老師,他指引我論文的寫作的方向和架構(gòu),并對本文初稿進(jìn)行仔細(xì)批閱,指正出其中不當(dāng)之處,使我有了思考的方向,他的循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪,他的嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng),將一直是我工作、學(xué)習(xí)中的榜樣。通過此次的論文,我學(xué)到了很多知識,在論文的寫作過程中,我不僅收集到了論文所需的資料數(shù)據(jù),而且學(xué)到了很多書本上沒有的知識。并且由原先的被動(dòng)的接受知識轉(zhuǎn)換為主動(dòng)的尋求知識,我想這可以說是學(xué)習(xí)方法上的一個(gè)很大的突破。 在論文

28、的寫作過程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問要一絲不茍,對于發(fā)展過程中出現(xiàn)的任何問題和偏差都不要輕視,要通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問題的??傊?,此次論文的寫作過程,我收獲了很多,為大學(xué)四年劃上了一個(gè)完美的句號,也為將來的人生之路做一個(gè)很好的鋪墊。 再次感謝我的大學(xué)和所有幫助過我并給我鼓勵(lì)的老師和同學(xué),謝謝你們! 2010年6月 參考文獻(xiàn)1李全利、 遲榮強(qiáng),單片機(jī)原理及接口技術(shù)M,北京:高等教育出版社,20042凌玉華,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M,長沙:中南大學(xué)出版社,20063張毅剛,MCS-

29、51單片機(jī)應(yīng)用設(shè)計(jì)M,哈爾賓:哈爾賓工業(yè)大學(xué)出版社,1997 4胡漢才,單片機(jī)原理及應(yīng)用M,北京:清華大學(xué)出版社,20045何立明,單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M,北京:北京航空航天大學(xué)出版社,19906王榮良,計(jì)算機(jī)接口技術(shù)M,北京:電子工業(yè)出版社,20037陳光東,單片機(jī)微型計(jì)算機(jī)原理與接口技術(shù)M,武漢:華中理工大學(xué)出版社,19988王幸之、鐘愛琴、王雷、王閃,AT89系列單片機(jī)原理與接口技術(shù)M,北京:北京航空航天大學(xué)出版社,20049張道德,單片機(jī)接口技術(shù)(C51版)M,北京:中國水利水電出版社,200710王為青、程國鋼,單片機(jī)Keil CX51應(yīng)用開發(fā)技術(shù)M,北京:人民郵電出版社,200711

30、張靖武、周靈彬,單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真M,北京:電子工業(yè)出版社,200712ATMEL. 8-bit Microcontroller with 4K Bytes Flash AT89C51.200013ATMEL.8-bit Microcontroller with 32K Bytes Flash AT89C51RC.2000附 錄相關(guān)的程序代碼:/*頭文件*#include<reg51.h> #include<intrins.h>/*宏定義*#define uchar unsigned char #define uint unsigned int/*位聲

31、明*sbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit fmq=P21;/*數(shù)碼管顯示的數(shù)值*uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,/ 0 1 2 3 4 5 0x82,0xf8,0x80,0x90,0xbf,0x0ff; / 6 7 8 9 - 滅 /*函數(shù)聲明*void jia(); void jian(); /*數(shù)組定義,數(shù)組內(nèi)含有8個(gè)數(shù)值*uchar table18,table28,table38,table48;/*時(shí)間顯示初始值*uchar shi=12,

32、fen=0,miao=0; /*定義全局變量*uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;uchar shi4,fen4,miao4;uchar flag, flag1, wss, cnt, cnt1, alm1, alm2, alm3;/ 1秒 等時(shí) 位閃 次數(shù) 校時(shí) 鬧1 鬧2 鬧3uint flag2;/ 蜂鳴 /*延時(shí)函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管*void delay(uchar i) uchar x,y; for(x=i;x>0;x-) for(y=120;y>0;y-); /*初始化函數(shù)*void init()

33、 TMOD=0x01; /工作方式1 TH0=0x3c; /定時(shí)時(shí)間為:50ms(65536-50000)/256 TL0=0x0b0; /(65536-50000)%256 ET0=1; /打開定時(shí)器 EA=1; /開總中斷 TR0=1; /啟動(dòng)定時(shí)器 /*顯示子函數(shù),用于顯示時(shí)間數(shù)值*void display() uchar i,j; if(cnt!=10|wss=0) table10=miao%10; /分離秒的個(gè)位與十位 table11=miao/10; else table10=table11=11;if(cnt!=11|wss=0) table13=fen%10; /分離分的個(gè)位與

34、十位 table14=fen/10; else table13=table14=11;if(cnt!=12|wss=0) table16=shi%10; /分離時(shí)的個(gè)位與十位 table17=shi/10; else table16=table17=11; table12=table15=10; j=0x7f; for(i=0;i<=7;i+) /從秒到時(shí)的掃描 P3=j; P0=tabletable1i; /顯示數(shù)值 delay(10); j=_cror_(j,1); /循環(huán)右移 /*顯示子函數(shù),用于顯示定時(shí)1時(shí)間*void display1() uchar i,j; if(alm1=

35、0) if(cnt!=1|wss=0) table20=miao1%10; /以下含義同上 table21=miao1/10; else table20=table21=11; if(cnt!=2|wss=0) table23=fen1%10; table24=fen1/10; else table23=table24=11; if(cnt!=3|wss=0) table26=shi1%10; table27=shi1/10; else table26=table27=11; else table20=table21=table23=table24=table26=table27=10; ta

36、ble22= table25=10; j=0x7f; for(i=0;i<=7;i+) P3=j; P0=tabletable2i;delay(10); j=_cror_(j,1); /*顯示子函數(shù),用于顯示定時(shí)2時(shí)間*void display2() uchar i,j; if(alm2=0) if(cnt!=4|wss=0) table30=miao2%10; /以下含義同上 table31=miao2/10; else table30=table31=11; if(cnt!=5|wss=0) table33=fen2%10; table34=fen2/10; else table33

37、=table34=11;if(cnt!=6|wss=0) table36=shi2%10; table37=shi2/10; else table36=table37=11; else table30=table31=table33=table34=table36=table37=10; table32= table35=10; j=0x7f; for(i=0;i<=7;i+) P3=j; P0=tabletable3i;delay(10); j=_cror_(j,1); /*顯示子函數(shù),用于顯示定時(shí)3時(shí)間數(shù)值*/void display3() uchar i,j; if(alm3=0)

38、 if(cnt!=7|wss=0) table40=miao3%10; /分離秒的個(gè)位與十位 table41=miao3/10; else table40=table41=11;if(cnt!=8|wss=0) table43=fen3%10; /分離分的個(gè)位與十位 table44=fen3/10;else table43=table44=11;if(cnt!=9|wss=0) table46=shi3%10; /分離時(shí)的個(gè)位與十位 table47=shi3/10;else table46=table47=11; else table40=table41=table43=table44=tab

39、le46=table47=10; table42= table45=10; j=0x7f; /從秒到時(shí)的掃描 for(i=0;i<=7;i+) P3=j; P0=tabletable4i; /顯示數(shù)值delay(10); j=_cror_(j,1); /循環(huán)右移 /*時(shí)間子函數(shù) */void shijian() if(flag>=20) /判斷是否到一秒 wss=wss; flag=0; /到了,則標(biāo)志位清零 if(cnt1!=0) miao4+; /秒加1 if( miao4>59) /判斷秒是否到60s miao4=0; /到了,則清零 fen4+; /分加1 if(fe

40、n4>59) /以下含義同上 fen4=0; shi4+; if(shi4>23) shi4=0; else miao+; /秒加1 if( miao>59) /判斷秒是否到60s miao=0; /到了,則清零 fen+; /分加1 if(fen>59) /以下含義同上 fen=0; shi+; if(shi>23) shi=0; /*鍵盤掃描子函數(shù)*/void key_scan() if(key1=0) while(!key1) /防止掉顯 if(cnt=1|cnt=2|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) disp

41、lay2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); cnt+; /記下按鍵key1按下的次數(shù) if(cnt=10&&cnt1=0) miao4=miao; fen4=fen;shi4=shi;cnt1+;if(cnt=13) cnt=0; if(cnt1=1) miao=miao4; fen=fen4; shi=shi4; cnt1=0; if(key2=0) /判斷key2是否按下 while(!key2) /防止掉顯 if(cnt=1|cnt=2

42、|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); jia(); if(key3=0) /判斷key3是否按下 while(!key3) /防止掉顯 if(cnt=1|cnt=2|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); jian(); /調(diào)用減1子函數(shù) if(key4=0) /判斷key4是否按下 while(!key4) /防止掉 if(cnt=1|cnt=2|cnt=3) alm1=a

溫馨提示

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

評論

0/150

提交評論