帶鬧鐘的電子鐘(單片機(jī))_第1頁
帶鬧鐘的電子鐘(單片機(jī))_第2頁
帶鬧鐘的電子鐘(單片機(jī))_第3頁
帶鬧鐘的電子鐘(單片機(jī))_第4頁
帶鬧鐘的電子鐘(單片機(jī))_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 課課 程程 設(shè)設(shè) 計(jì)計(jì) 帶鬧鐘的電子鐘系系 別別 :計(jì)算機(jī)科學(xué)與技術(shù)系專專業(yè)業(yè)(班班級級):計(jì)算機(jī)科學(xué)與技術(shù) 2011 級本班作作者者(學(xué)學(xué)號(hào)號(hào)) :汪靜(51102012011)指指導(dǎo)導(dǎo)教教師師:張自軍完完成成日日期期: 2013 年 12 月 05 日二一二年 12 月 28 日前前 言言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)事

2、情不是很重要的時(shí)候,這種遺忘無傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。所以有必要制作一個(gè)定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(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í)鐘不

3、僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機(jī)技術(shù),增加數(shù)字鐘的功能。利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒。數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場所成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰S捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機(jī)作為數(shù)字鐘的核心控制器,

4、通過它的時(shí)鐘信號(hào)進(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í)” 、 “分” 、 “秒”的現(xiàn)代計(jì)時(shí)裝置。另外具有校時(shí)功能,秒表功能,和定時(shí)器功能,利用單片機(jī)實(shí)現(xiàn)的數(shù)字時(shí)鐘具有編程靈活,便于功能的擴(kuò)充等優(yōu)點(diǎn)。目目 錄錄前前 言言 .1 1摘摘 要要 .I IABSTRACTABSTRACT .IIII第第 1 1 章章 課題的背景課題的背景 .1 11.1 課題的

5、來源 .11.2 課題研究的目的和意義 .11.3 應(yīng)解決的主要問題及達(dá)到的技術(shù)要求.1第第 2 2 章章 方案的選擇和論證方案的選擇和論證 .2 22.1 單片機(jī)型號(hào)的選擇 .22.2 按鍵的選擇 .22.3 顯示器的選擇 .22.4 計(jì)時(shí)部分的選擇 .22.5 發(fā)音部分的設(shè)計(jì) .32.6 顯示器驅(qū)動(dòng)電路 .32.7 電源的選擇 .3第第 3 3 章章 數(shù)字電子鐘的設(shè)計(jì)原理和方法數(shù)字電子鐘的設(shè)計(jì)原理和方法 .4 43.1 設(shè)計(jì)原理 .43.2 硬件電路的設(shè)計(jì) .43.2.1 AT89C51 單片機(jī)簡介.43.2.2 鍵盤電路的設(shè)計(jì) .43.2.3 段碼驅(qū)動(dòng)電路 .53.2.4 蜂鳴器驅(qū)動(dòng)電路

6、 .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 4 章章 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果 .1111總總 結(jié)結(jié) .1212致致 謝謝 .1313參考文獻(xiàn)參考文獻(xiàn) .1414附附 錄錄 .15150摘摘 要要單片機(jī)自 20 世紀(jì) 70 年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而 51 單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本設(shè)計(jì)以 AT89C51 芯片為核心,輔以必要的外圍電路,設(shè)計(jì)了

7、一個(gè)結(jié)構(gòu)簡單,功能齊全的電子時(shí)鐘,它由 5V 直流電源供電。在硬件方面,除了 CPU 外,使用六個(gè)四段、兩個(gè)兩段、一個(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í)鬧鐘并附帶上調(diào)節(jié)溫度的功能。選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時(shí)間調(diào)整程序及蜂鳴程序,通過時(shí)間比較程序觸發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計(jì)所需求的軟件環(huán)境。介紹并使用Keil 單片機(jī)模擬調(diào)試軟件,測試程序的可行性并用 Pr

8、oteus 進(jìn)行仿真。關(guān)鍵詞:關(guān)鍵詞:單片機(jī),定時(shí)器,中斷,鬧鐘,LED1第第 1 章章 課題的背景課題的背景1.1 課題的來源課題的來源隨著生活水平的提高,人們越來越追求人性化的事物,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。現(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)而且需要數(shù)字電路技術(shù)和單片機(jī)技術(shù),增加時(shí)鐘的功能。數(shù)字電子鐘可利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差;盡管如此數(shù)字鐘還是可以改進(jìn)和提高,比如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。1.2 課題研究的目的和意義課

9、題研究的目的和意義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í)間等造成的。而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便。數(shù)字鐘是通過數(shù)字電路實(shí)現(xiàn)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼

10、頭辦公室等公共場所,成為人們?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ù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。1.3 應(yīng)解決的主要問題及達(dá)到的技術(shù)要求應(yīng)解決的主要問題及達(dá)到的技術(shù)要求本設(shè)計(jì)應(yīng)解決的主要問題有兩大方面,即硬件電路設(shè)計(jì)和軟件設(shè)計(jì)兩大方面。其中硬件電路部分又可分

11、為四個(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 章章 方案的選擇和方案的選擇和論證論證2.1 單片機(jī)型號(hào)的選擇單片機(jī)型號(hào)的選擇通過對多種單片機(jī)性能的分析,最終認(rèn)為 AT89C51 是最理想的電子時(shí)鐘開發(fā)芯片。AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能 CMOS8 位微處理器,器件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容。由于將

12、多功能 8 位 CPU 和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL 的 AT89C51 是一種高效微控制器,而且它與 MCS-51 兼容,且具有 4K 字節(jié)可編程序存儲(chǔ)器和 1000 次擦寫循環(huán),數(shù)據(jù)保留時(shí)間為 10 年,是最好的選擇。2.2 按鍵的選擇按鍵的選擇方案一:44 矩陣式鍵盤。如果選擇此方案,那么在修改時(shí)鐘或設(shè)置鬧鈴時(shí)間時(shí)就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨(dú)立式按鍵。如果設(shè)置過多按鍵,將會(huì)占用較多 I/O 口,而且會(huì)給布線帶來不便,因此,此方案適用于按鍵較少的情況。如果選擇此方案,由于按鍵較少,在修改時(shí)間或設(shè)置鬧鈴時(shí)間時(shí)就不能直接輸入,只能通過加或減完成,稍

13、為麻煩一些,但其程序簡單。 由于并不需要經(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í)部分的計(jì)時(shí)部分的選擇選擇如果使用時(shí)鐘芯片,系統(tǒng)就不怕掉電且時(shí)間精確。但這種芯片

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

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

16、數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51 單片機(jī)內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi) Flash 存儲(chǔ)器、并行 I/O 接口、定時(shí)器和串行 I/O 接口。圖 3-2 AT89C51 單片機(jī)晶振按鍵AT89C51段碼驅(qū)動(dòng)位碼驅(qū)動(dòng)控制器蜂鳴器數(shù)碼管53.2.2 鍵盤電路的設(shè)計(jì)鍵盤電路的設(shè)計(jì)鍵盤采用 4 個(gè)獨(dú)立按鍵配以 4 個(gè)上拉電阻實(shí)現(xiàn)對時(shí)鐘和鬧鐘的設(shè)定及修改。 圖 3-3 獨(dú)立按鍵 圖 3-4 鍵盤輸入電路3.2.3 段碼驅(qū)動(dòng)電路段碼驅(qū)動(dòng)電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245 來驅(qū)動(dòng)段碼,用 P3 口

17、作位碼驅(qū)動(dòng)。圖 3-5 段碼驅(qū)動(dòng)器 74LS2453.2.4 蜂鳴器驅(qū)動(dòng)電路蜂鳴器驅(qū)動(dòng)電路發(fā)音部分是通過三極管放大驅(qū)動(dòng)蜂鳴器工作,再通過軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖 3-6 蜂鳴器驅(qū)動(dòng)電路63.3 軟件部分的設(shè)計(jì)軟件部分的設(shè)計(jì)3.3.1 主程序部分的設(shè)計(jì)主程序部分的設(shè)計(jì)程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計(jì),避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時(shí),主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖 3-7。 圖 3-7 主程序流程圖3.3.2 中斷定時(shí)器的設(shè)置中斷定時(shí)器的設(shè)置數(shù)字電子鐘設(shè)計(jì)中主

18、要使用定時(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 上每發(fā)生一次 1 到 0 的跳變時(shí)加 1。使用該功能時(shí),外部輸入每個(gè)機(jī)器周期被采樣一次。 圖 3-8 定時(shí)器工作原理1設(shè)計(jì)中采用了中斷方式 1 作為定時(shí)中斷,其定時(shí)計(jì)數(shù)初值的設(shè)置可由以下公式計(jì)cyTtX162開始初始化設(shè)置 鬧鈴判斷 顯示時(shí)

19、間 鍵盤掃描7算得到,中斷服務(wù)流程圖如下圖 3-9。X:計(jì)數(shù)初值 t:定時(shí)時(shí)間 :機(jī)器周期 1cyT 圖 3-9 中斷服務(wù)流程圖3.3.3 鬧鐘子函數(shù)鬧鐘子函數(shù)鬧鐘時(shí)間的判別主要是通過設(shè)定時(shí)間與實(shí)時(shí)時(shí)間對逐位對比確定是否進(jìn)行鬧鈴。其工作流程圖如下圖 3-10。圖 3-10 鬧鈴判斷流程圖3.3.4 計(jì)時(shí)函數(shù)計(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í)。其流程圖如下圖 3-11。T0 中斷鬧鈴時(shí)間到? 鬧鈴 顯示時(shí)間 按鍵掃描重裝計(jì)數(shù)器 中斷返

20、回8圖 3-11 計(jì)時(shí)流程圖3.3.4 鍵盤掃描函數(shù)鍵盤掃描函數(shù)這些函數(shù)主要是判斷是否有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行,其相關(guān)流程圖如下圖 3-12。圖 3-12 鍵盤掃描流程圖3.3.5 時(shí)間和鬧鐘的設(shè)置時(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。9圖 3-13 時(shí)間/鬧鐘設(shè)置流程圖10第第 4 章章 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果此電子鬧鐘設(shè)計(jì)是利用 Proteus 仿真軟件進(jìn)行仿真,基本上實(shí)現(xiàn)了課程設(shè)計(jì)要求實(shí)現(xiàn)的功能

21、。硬件部分設(shè)置了的三個(gè)按鍵 S1、S2、S3、S4。當(dāng)按鍵 S1 第一次按下時(shí),停止計(jì)時(shí)進(jìn)入鬧鐘 1 的秒設(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í)間斷蜂鳴聲

22、,鬧鈴時(shí)間設(shè)置為 60 秒。在各個(gè)鬧鐘設(shè)置階段,如果有 S4 按下,則相應(yīng)鬧鐘功能關(guān)閉或開啟;如在鬧鈴時(shí)有 S4 按下則提前停止鬧鈴。另外,鬧鈴電路有音樂鬧鐘的擴(kuò)展的功能(可以將蜂鳴器換成揚(yáng)聲器再加一段音樂程序即可實(shí)現(xiàn))。因時(shí)間有限,擴(kuò)展功能還未能及時(shí)實(shí)現(xiàn),比如音樂鬧鈴。圖 3-14 運(yùn)行仿真圖11總總 結(jié)結(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ì)可以

23、配合硬件實(shí)現(xiàn)要求的功能。但是由于時(shí)間比較短,前期設(shè)計(jì)出現(xiàn)部分不足:如位選閃爍功能不能實(shí)現(xiàn)、鬧鐘的開啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計(jì)時(shí)相應(yīng)功能部分還不完善造成。不過經(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í)來自實(shí)踐,多去生活中探詢所需要的。對于上述所提到的研究課題,我

24、們應(yīng)盡量考慮到人的因素,增強(qiáng)時(shí)鐘的實(shí)用性和操作性,為使用者提供切實(shí)的方便,營造一種舒適的生活氛圍。所以,在設(shè)計(jì)的時(shí)候,應(yīng)該從多方面、多角度去考慮問題,而且應(yīng)該進(jìn)一步提高時(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ì)微的知識(shí)或低級錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不

25、上掌握。從這次的課程設(shè)計(jì)中,我們真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。12致致 謝謝經(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í),在論文的寫作

26、過程中,我不僅收集到了論文所需的資料數(shù)據(jù),而且學(xué)到了很多書本上沒有的知識(shí)。并且由原先的被動(dòng)的接受知識(shí)轉(zhuǎn)換為主動(dòng)的尋求知識(shí),我想這可以說是學(xué)習(xí)方法上的一個(gè)很大的突破。 在論文的寫作過程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問要一絲不茍,對于發(fā)展過程中出現(xiàn)的任何問題和偏差都不要輕視,要通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問題的??傊?,此次論文的寫作過程,我收獲了很多,為大學(xué)四年劃上了一個(gè)完美的句號(hào),也為將來的人生之路做一個(gè)很好的鋪墊。 再次感謝我的大學(xué)和所有幫助過我并給我鼓勵(lì)的老師和同學(xué),謝謝你們! 2010 年

27、 6 月 13參參考文獻(xiàn)考文獻(xiàn)1李全利、 遲榮強(qiáng),單片機(jī)原理及接口技術(shù)M,北京:高等教育出版社,20042凌玉華,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M,長沙:中南大學(xué)出版社,20063張毅剛,MCS-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,北京:北京航

28、空航天大學(xué)出版社,20049張道德,單片機(jī)接口技術(shù)(C51 版)M,北京:中國水利水電出版社,200710王為青、程國鋼,單片機(jī) Keil CX51 應(yīng)用開發(fā)技術(shù)M,北京:人民郵電出版社,200711張靖武、周靈彬,單片機(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.200014附 錄相關(guān)的程序代碼:相關(guān)的程序代碼:#inclu

29、de #define uint unsigned int #define uchar unsigned char#define v_s 10#define u_s 49996 /經(jīng)校準(zhǔn)后的 50MS 初值;計(jì)算方法如下: sbit wx5=P21; sbit wx6=P20; sbit wx7=P22; sbit LVSE =P35; /綠色運(yùn)行燈 sbit HONGSE =P36; /紅色停止燈 sbit HUANGSE=P37; /黃色調(diào)鬧鐘燈 sbit DQ=P30; uint temp, temp1,temp2, xs; uchar d8; /設(shè)置顯示變量暫存區(qū)/*延時(shí)程序*/ voi

30、d delay1(unsigned int m) unsigned int i,j; for(i=m;i0;i-) for(j=110;j0;j-); void delay2(unsigned int m) 15 while(m-); void Init_DS18B20() unsigned char x=0; DQ = 1; /DQ 復(fù)位 ds18b20 通信端口 delay2(8); /稍做延時(shí) DQ = 0; /單片機(jī)將 DQ 拉低 delay2(80); /精確延時(shí)大于 480us DQ = 1; /拉高總線 delay2(4); x=DQ; /稍做延時(shí)后 如果 x=0 則初始化成功

31、x=1 則初始化失敗 delay2(20); uchar ReadOneChar() unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 高電平拉成低電平時(shí)讀周期開始 dat=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0 x80; / delay2(4); return(dat); /*ds18b20 寫一個(gè)字節(jié)*/ void WriteOneChar(unsigned char dat)16 unsigned char i=0; for (i=8; i0; i-) DQ = 0; /從高電

32、平拉至低電平時(shí),寫周期的開始 DQ = dat&0 x01; /數(shù)據(jù)的最低位先寫入 delay2(5); /60us 到 120us 延時(shí) DQ = 1; dat=1; /從最低位到最高位傳入 /*讀取 ds18b20 當(dāng)前溫度*/void ReadTemperature() unsigned char a=0; unsigned b=0; unsigned t=0; Init_DS18B20(); WriteOneChar(0 xCC); / 跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0 x44); / 啟動(dòng)溫度轉(zhuǎn)換 delay2(10); / this message is

33、very important Init_DS18B20(); WriteOneChar(0 xCC); /跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0 xBE); /讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就是溫度 delay2(10); a=ReadOneChar(); /讀取溫度值低位 b=ReadOneChar(); /讀取溫度值高位 temp1=b4; /低 8 位中的高 4 位值加上高 8 位中后三位數(shù)的值 temp1 室溫整數(shù)值17 temp2=a&0 x0f; /小數(shù)的值 temp=(b*256+a)4); /當(dāng)前采集溫度值除 16 得實(shí)際溫度值 void

34、wenduxianshi() /溫度顯示 d5=temp/10; d6=temp%10; d7=13; sbit beep=P10; /鬧鈴音輸出端sbit N1=P17; /調(diào)整項(xiàng)選擇sbit N2=P14; /定鬧啟動(dòng)sbit N3=P16; /加 1 調(diào)整sbit N4=P15; /減 1 調(diào)整uint i,j; /延時(shí)函數(shù)用變量uchar z=0,r=0; /按鍵計(jì)數(shù)變量uchar s,a,u,us,ms,hs,HD,LD,TD; /過渡變量uchar T,b; /加、減鍵值返回變量uchar minute,hour,m_m,h_h; /時(shí)間變量uchar count,second=0

35、,n_m=0,n_h=0,q=0; /標(biāo)志變量/*不顯示小數(shù)點(diǎn)的 0-9 顯示段碼+黑屏碼*/低電平有效uchar SEG714= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xbf,0 xff,0 x3f,0 xc6;uchar Wei8=0 x80,0 x40,0 x20,0 x10,0 x08,0 x04,0 x02,0 x01;void delay(uchar p) 18for(i=0;ip;i+)for(j=0;j4)r=0; while(!N1); void Alarm_R() if (N2=0)/選擇

36、鍵 delay(20); if(N2=0) z+; if(z1) z=0; while(!N2); 19 uchar Adjustment(b,T) if(N3 = 0) delay(20); if(N3 = 0) /如果按動(dòng)上調(diào)鍵 T+; /數(shù)字加 if(b=1)if(T59) T=0;/分鐘設(shè)定 if(b=0)if(T23) T=0;/小時(shí)設(shè)定 while(!N3); if(N4 = 0) delay(20); if(N4 = 0) /如果按動(dòng)下調(diào)鍵 T-; /數(shù)字減 if(b=1)if(T0) T=59; /分鐘設(shè)定 if(b=0)if(T0)T=23; /小時(shí)設(shè)定 while(!N4)

37、; return(T);void Display() for(a=0;a0&hour12)h_h=hour%12;m_m=minute;d0=h_h/10;d1=h_h%10;d3=m_m/10;d4=m_m%10;Display();void Normal_t()TR0=1;LVSE=0; HONGSE=1;HUANGSE=1; if(s=0)d2=0 x0a; /中間位 g 段橫杠閃動(dòng)顯示為正常走時(shí)狀態(tài)else d2=0 x0b;zhuan_h();void hh_s(void)TR0=0;LVSE=1; HONGSE=0;HUANGSE=1; second=0;hour=Adjustment(0,hour);d0=hour/10;d1=hour%10;d2=0 x0c;21d3=10;d4=10;Display();void mm_s(void)TR0=0;LVSE=1; HONGSE=0; HUANGSE=1; second=0;minute=Adjustment(1,minute);d0=10;d1=10;d2=0 x0c;d3= minute/

溫馨提示

  • 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

提交評論