版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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é)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。所以有必要制作一個(gè)定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?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í)的意義。隨著生活水平的提高,人們?cè)絹?lái)越追求人性化的事物。傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。而現(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機(jī)技術(shù),增加數(shù)字鐘的功能。利用軟件編程盡量做到硬件電路簡(jiǎn)單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有
3、更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過(guò)數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒。數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場(chǎng)所成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機(jī)作為數(shù)字鐘的核心控制器,通過(guò)它的時(shí)鐘信號(hào)進(jìn)行實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來(lái)。通過(guò)鍵盤可以進(jìn)行校時(shí)、定時(shí)等功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管來(lái)顯示技術(shù)。 本系統(tǒng)利用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī) AT89C51為核心元件同時(shí)采用 LED 數(shù)碼管顯示器
4、動(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 課題的來(lái)源 .11.2 課題研究的目的和意義 .11.3 應(yīng)解決的主要問(wèn)題及達(dá)到的技術(shù)要求.1第第 2 2 章章 方案的選擇和論證方案的選擇和論證 .2 22.1 單片機(jī)型號(hào)的選擇 .22.2 按鍵的選擇 .22.3 顯示器的選擇 .22.4 計(jì)時(shí)部分的選擇 .22.5 發(fā)音部分的設(shè)計(jì) .3
5、2.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ī)簡(jiǎn)介.43.2.2 鍵盤電路的設(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 4 章章 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果 .1111總總 結(jié)結(jié) .12
6、12致致 謝謝 .1313參考文獻(xiàn)參考文獻(xiàn) .1414附附 錄錄 .1515摘摘 要要單片機(jī)自 20 世紀(jì) 70 年代問(wèn)世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而 51 單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本設(shè)計(jì)以 AT89C51 芯片為核心,輔以必要的外圍電路,設(shè)計(jì)了一個(gè)結(jié)構(gòu)簡(jiǎn)單,功能齊全的電子時(shí)鐘,它由 5V 直流電源供電。在硬件方面,除了 CPU 外,使用八個(gè)七段 LED 數(shù)碼管來(lái)進(jìn)行顯示,LED 采用的是動(dòng)態(tài)掃描顯示,使用 74LS245 芯片進(jìn)行驅(qū)動(dòng)。通過(guò) LED 能夠較為準(zhǔn)確地顯示時(shí)、分、秒。四個(gè)簡(jiǎn)單的按鍵實(shí)現(xiàn)對(duì)時(shí)間的調(diào)整。軟件方面采用 C
7、 語(yǔ)言編程。整個(gè)電子鐘系統(tǒng)能完成時(shí)間的顯示、調(diào)時(shí)、校時(shí)和三組定時(shí)鬧鐘的功能。選用單片機(jī)最小系統(tǒng)應(yīng)用程序,添加比較程序、時(shí)間調(diào)整程序及蜂鳴程序,通過(guò)時(shí)間比較程序觸發(fā)蜂鳴,實(shí)現(xiàn)鬧鐘功能,完成設(shè)計(jì)所需求的軟件環(huán)境。介紹并使用Keil 單片機(jī)模擬調(diào)試軟件,測(cè)試程序的可行性并用 Proteus 進(jìn)行仿真。關(guān)鍵詞:關(guān)鍵詞:?jiǎn)纹瑱C(jī),定時(shí)器,中斷,鬧鐘,LEDABSTRACTBecause of its extremely high performance-price ratio, the single-chip computer (SCC) has been paid great attention to
8、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, adopting AT89C51 chip as the core part with some necessary peripheral circuits, is a simple ele
9、ctronic 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 by 74SL245 chip. The LEDS can accurately indicate hour 、 minute and second. Four buttons can
10、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 function. Choose the smallest SCM system applications,add Comparison procedures, time to adj
11、ust 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 the use of SCM software simulation debugging, testing the feasibility and proteus by simulatio
12、n.Keyword: single slice machine,in fixed time machine,break off,alarm clock,LED0第第 1 章章 課題的背景課題的背景1.1 課題的來(lái)源課題的來(lái)源隨著生活水平的提高,人們?cè)絹?lái)越追求人性化的事物,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求?,F(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)而且需要數(shù)字電路技術(shù)和單片機(jī)技術(shù),增加時(shí)鐘的功能。數(shù)字電子鐘可利用軟件編程盡量做到硬件電路簡(jiǎn)單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差;盡管如此數(shù)字鐘還是可以改進(jìn)和提高,比如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,
13、且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到了廣泛的使用。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é)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說(shuō)總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時(shí)間。忘記了要做的事情,當(dāng)事情不是很重要的時(shí)候,這種遺忘無(wú)傷大雅。但是,一旦重要事情,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間等造成的。而鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的
14、方便。數(shù)字鐘是通過(guò)數(shù)字電路實(shí)現(xiàn)時(shí),分,秒數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車站、碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過(guò)老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?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)解決的主要問(wèn)題及達(dá)到的技術(shù)要求應(yīng)解決的主要問(wèn)題及達(dá)到的技術(shù)要求本設(shè)
15、計(jì)應(yīng)解決的主要問(wèn)題有兩大方面,即硬件電路設(shè)計(jì)和軟件設(shè)計(jì)兩大方面。其中硬件電路部分又可分為四個(gè)模塊:鍵盤模塊、顯示模塊、計(jì)時(shí)模塊和發(fā)聲模塊。硬件電路部分致力于低成本、低功耗和易實(shí)現(xiàn)性。軟件部分則應(yīng)做到代碼的精簡(jiǎn)、準(zhǔn)確、易讀懂。最后通過(guò)硬軟件的結(jié)合實(shí)現(xiàn)數(shù)字鐘的精確計(jì)時(shí)、校時(shí)、三組鬧鐘設(shè)置和定時(shí)報(bào)警功能。1第第 2 章章 方案的選擇和方案的選擇和論證論證2.1 單片機(jī)型號(hào)的選擇單片機(jī)型號(hào)的選擇通過(guò)對(duì)多種單片機(jī)性能的分析,最終認(rèn)為 AT89C51 是最理想的電子時(shí)鐘開發(fā)芯片。AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能 CMOS8 位微處理器,器件采用 ATMEL 高
16、密度非易失存儲(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 按鍵的選擇按鍵的選擇方案一:44 矩陣式鍵盤。如果選擇此方案,那么在修改時(shí)鐘或設(shè)置鬧鈴時(shí)間時(shí)就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨(dú)立式按鍵。如果設(shè)置過(guò)多按鍵,將會(huì)占用較多 I/O 口,而且會(huì)給布線帶來(lái)不便,因此,此方案適用于按鍵較少的情況。如果選擇
17、此方案,由于按鍵較少,在修改時(shí)間或設(shè)置鬧鈴時(shí)間時(shí)就不能直接輸入,只能通過(guò)加或減完成,稍為麻煩一些,但其程序簡(jiǎn)單。 由于并不需要經(jīng)常修改時(shí)間和設(shè)置鬧鈴時(shí)間,而且方案二的程序簡(jiǎn)單,按鍵少、成本低,因此,選擇方案二。2.3 顯示器的選擇顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會(huì)降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動(dòng)電路復(fù)雜,使用起來(lái)有一定的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動(dòng)電路簡(jiǎn)單,使用方便,如果選擇了此方案,那么在夜間看時(shí)間的時(shí)候就不需要有光源,非常方便。其缺點(diǎn)是功耗較大。由于數(shù)碼管使用起來(lái)較為方便,在夜間看時(shí)間也很方便,因此我選擇了方案二。2.
18、4 計(jì)時(shí)部分的計(jì)時(shí)部分的選擇選擇如果使用時(shí)鐘芯片,系統(tǒng)就不怕掉電且時(shí)間精確。但這種芯片比較貴,況且,設(shè)計(jì)本系統(tǒng)主要是為了學(xué)習(xí)單片機(jī)程序的編寫和調(diào)試以及設(shè)計(jì)硬件電路的一些方法,因此采用軟件的方法來(lái)計(jì)時(shí)而沒(méi)有采用價(jià)格較高的時(shí)鐘芯片。22.5 發(fā)音部分的設(shè)計(jì)發(fā)音部分的設(shè)計(jì)通過(guò)三極管放大后驅(qū)動(dòng)蜂鳴器工作,再通過(guò)軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。2.6 顯示器驅(qū)動(dòng)電路顯示器驅(qū)動(dòng)電路由于通過(guò)數(shù)碼管公共及的電流較大且避免過(guò)多地使用分立元件,采用了一片74LS245 來(lái)驅(qū)動(dòng)段碼,用 P3 口作位碼驅(qū)動(dòng)。2.7 電源的選擇電源的選擇如果是用電池供電,就比較方便
19、攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用 5V 外部穩(wěn)壓電源來(lái)供電。3第第 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ī)簡(jiǎn)介單片機(jī)簡(jiǎn)介AT89C51 是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場(chǎng)合。可以滿足多方面的性能要求。AT89C51 采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需 2 到 4 個(gè)時(shí)鐘周期。6 倍于標(biāo)準(zhǔn)
20、 51 單片機(jī)器件。AT89C51 集成了許多系統(tǒng)級(jí)的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51 單片機(jī)內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi) Flash 存儲(chǔ)器、并行 I/O 接口、定時(shí)器和串行 I/O 接口。圖 3-2 AT89C51 單片機(jī)4 3.2.2 鍵盤電路的設(shè)計(jì)鍵盤電路的設(shè)計(jì) 鍵盤采用 4 個(gè)獨(dú)立按鍵配以 4 個(gè)上拉電阻實(shí)現(xiàn)對(duì)時(shí)鐘和鬧鐘的設(shè)定及修改。 圖 3-3 獨(dú)立按鍵 圖 3-4 鍵盤輸入電路3.2.3 段碼驅(qū)動(dòng)電路段碼驅(qū)動(dòng)電路由于通過(guò)數(shù)碼管公共及的電流較大且避免過(guò)多地使用分立元件,采用了一片74LS24
21、5 來(lái)驅(qū)動(dòng)段碼,用 P3 口作位碼驅(qū)動(dòng)。圖 3-5 段碼驅(qū)動(dòng)器 74LS2453.2.4 蜂鳴器驅(qū)動(dòng)電路蜂鳴器驅(qū)動(dòng)電路發(fā)音部分是通過(guò)三極管放大驅(qū)動(dòng)蜂鳴器工作,再通過(guò)軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖 3-6 蜂鳴器驅(qū)動(dòng)電路53.3 軟件部分的設(shè)計(jì)軟件部分的設(shè)計(jì)3.3.1 主程序部分的設(shè)計(jì)主程序部分的設(shè)計(jì)程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計(jì),避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時(shí),主程序要須通過(guò)調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖 3-7。圖 3-7 主程序流程圖3.3.2 中斷定時(shí)器的設(shè)置中斷定時(shí)
22、器的設(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)過(guò)一個(gè)機(jī)器周期,寄存器值加 1。 用作“計(jì)數(shù)器”功能時(shí),寄存器在對(duì)應(yīng)的外部輸入管腳 T0/T1 上每發(fā)生一次 1 到 0 的跳變時(shí)加 1。使用該功能時(shí),外部輸入每個(gè)機(jī)器周期被采樣一次。 圖 3-8 定時(shí)器工作原理16設(shè)計(jì)中采用了中斷方式 1 作為定時(shí)中斷,其定時(shí)計(jì)數(shù)初值的設(shè)置可由以下公式計(jì)算得到,中斷服務(wù)流程
23、圖如下圖 3-9。X:計(jì)數(shù)初值 t:定時(shí)時(shí)間 :機(jī)器周期 1cyT圖 3-9 中斷服務(wù)流程圖3.3.3 鬧鐘子函數(shù)鬧鐘子函數(shù)鬧鐘時(shí)間的判別主要是通過(guò)設(shè)定時(shí)間與實(shí)時(shí)時(shí)間對(duì)逐位對(duì)比確定是否進(jìn)行鬧鈴。其工作流程圖如下圖 3-10。圖 3-10 鬧鈴判斷流程圖cyTtX16273.3.4 計(jì)時(shí)函數(shù)計(jì)時(shí)函數(shù)計(jì)時(shí)函數(shù)部分,主要是通過(guò)單片機(jī)定時(shí)中斷來(lái)計(jì)時(shí),復(fù)產(chǎn)生一次中斷標(biāo)志位 flag加 1,當(dāng) flag 加滿 20 次為 1 秒,然后把 flag 清 0 把秒存儲(chǔ)單元加 1。然后再依次判斷分、時(shí)。其流程圖如下圖 3-11。圖 3-11 計(jì)時(shí)流程圖83.3.4 鍵盤掃描函數(shù)鍵盤掃描函數(shù)這些函數(shù)主要是判斷是否
24、有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行,其相關(guān)流程圖如下圖 3-12。圖 3-12 鍵盤掃描流程圖3.3.5 時(shí)間和鬧鐘的設(shè)置時(shí)間和鬧鐘的設(shè)置此部分主要是通過(guò)判斷 cnt 在不同值時(shí)通過(guò)調(diào)用加 1、減 1 子函數(shù)對(duì)時(shí)間和鬧鐘的時(shí)、分、秒進(jìn)行設(shè)置。在鬧鐘設(shè)置時(shí),判斷按鍵 S4 按下情況我,進(jìn)行鬧鐘的開啟與關(guān)閉,相關(guān)流程圖如下圖 3-13。圖 3-13 時(shí)間/鬧鐘設(shè)置流程圖9第第 4 章章 實(shí)驗(yàn)結(jié)果實(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)
25、入鬧鐘 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í)間斷蜂鳴聲,鬧鈴時(shí)間設(shè)置為 60 秒。在各個(gè)鬧鐘設(shè)置階段,如果有 S4 按下,則相應(yīng)鬧鐘功能關(guān)閉或開
26、啟;如在鬧鈴時(shí)有 S4 按下則提前停止鬧鈴。另外,鬧鈴電路有音樂(lè)鬧鐘的擴(kuò)展的功能(可以將蜂鳴器換成揚(yáng)聲器再加一段音樂(lè)程序即可實(shí)現(xiàn))。因時(shí)間有限,擴(kuò)展功能還未能及時(shí)實(shí)現(xiàn),比如音樂(lè)鬧鈴。圖 3-14 運(yùn)行仿真圖10總總 結(jié)結(jié)通過(guò)自己的不懈努力,我終于完成了畢業(yè)設(shè)計(jì)任務(wù)書上的任務(wù)要求。功能上基本達(dá)標(biāo):時(shí)鐘的顯示,調(diào)時(shí)功能、校時(shí)功能、鬧鈴功能、鬧鐘設(shè)功能。其精確度完全可以滿足日常生活顯示時(shí)間的需要;調(diào)時(shí)功能,方便快捷;校時(shí)功能保證了時(shí)鐘準(zhǔn)確和可靠性,鬧鐘響鈴還有擴(kuò)展成音樂(lè)鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計(jì)可以配合硬件實(shí)現(xiàn)要求的功能。但是由于時(shí)間比較短,前期設(shè)計(jì)出現(xiàn)部分不足:如位選閃爍功能不能實(shí)現(xiàn)、
27、鬧鐘的開啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計(jì)時(shí)相應(yīng)功能部分還不完善造成。不過(guò)經(jīng)仔細(xì)思考和程序的完善,最終將軟件設(shè)計(jì)改進(jìn),并完全可以很好實(shí)現(xiàn)所有要求的功能??梢娂夹g(shù)在不斷進(jìn)步,機(jī)械式時(shí)鐘已經(jīng)被淘汰,取而代之的是具有高度準(zhǔn)確性和直觀性且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命等優(yōu)點(diǎn)的數(shù)字時(shí)鐘。數(shù)字時(shí)鐘更具人性化,更能提高人們的生活質(zhì)量,更受人們歡迎。 無(wú)可否認(rèn)機(jī)械時(shí)代已經(jīng)過(guò)去,電子時(shí)代已經(jīng)到來(lái)。做為新時(shí)代的我們,更應(yīng)該提高自身能力,適應(yīng)新時(shí)代的發(fā)展。知識(shí)來(lái)自實(shí)踐,多去生活中探詢所需要的。對(duì)于上述所提到的研究課題,我們應(yīng)盡量考慮到人的因素,增強(qiáng)時(shí)鐘的實(shí)用性和操作性,為使用者提供切實(shí)的方便,營(yíng)造一種舒適的生
28、活氛圍。所以,在設(shè)計(jì)的時(shí)候,應(yīng)該從多方面、多角度去考慮問(wèn)題,而且應(yīng)該進(jìn)一步提高時(shí)鐘的質(zhì)量。另外,在本次設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)很多的問(wèn)題,雖然以前沒(méi)有做過(guò)這樣的設(shè)計(jì)但通過(guò)這次設(shè)計(jì)我學(xué)會(huì)了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過(guò)幾次程序,但我覺的寫好一個(gè)程序并不是一件簡(jiǎn)單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡(jiǎn)單,但到編程的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識(shí)或低級(jí)錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計(jì)中,我們真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所
29、學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過(guò)程中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。11致致 謝謝經(jīng)過(guò)幾個(gè)月的實(shí)習(xí)調(diào)查收集數(shù)據(jù)資料、整理材料、寫作論文,我終于可以順利的完成論文了。 首先要感謝我的指導(dǎo)老師陳老師,他指引我論文的寫作的方向和架構(gòu),并對(duì)本文初稿進(jìn)行仔細(xì)批閱,指正出其中不當(dāng)之處,使我有了思考的方向,他的循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪,他的嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng),將一直是我工作、學(xué)習(xí)中的榜樣。通過(guò)此次的論文,我學(xué)到了很多知識(shí),在論文的寫作過(guò)程中,我不僅收集到了論文所需的資料數(shù)據(jù),而且學(xué)到了很多書本上沒(méi)有的知識(shí)。并且由原先的被動(dòng)
30、的接受知識(shí)轉(zhuǎn)換為主動(dòng)的尋求知識(shí),我想這可以說(shuō)是學(xué)習(xí)方法上的一個(gè)很大的突破。 在論文的寫作過(guò)程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問(wèn)要一絲不茍,對(duì)于發(fā)展過(guò)程中出現(xiàn)的任何問(wèn)題和偏差都不要輕視,要通過(guò)正確的途徑去解決,在做事情的過(guò)程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問(wèn)題的??傊?,此次論文的寫作過(guò)程,我收獲了很多,為大學(xué)四年劃上了一個(gè)完美的句號(hào),也為將來(lái)的人生之路做一個(gè)很好的鋪墊。 再次感謝我的大學(xué)和所有幫助過(guò)我并給我鼓勵(lì)的老師和同學(xué),謝謝你們! 2010 年 6 月 12參參考文獻(xiàn)考文獻(xiàn)1李全利、 遲榮強(qiáng),單片機(jī)原理及接口技術(shù)M,北京:高等教育出
31、版社,20042凌玉華,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M,長(zhǎng)沙:中南大學(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,北京:北京航空航天大學(xué)出版社,20049張道德,單片機(jī)接口技術(shù)(C51 版)M,北京:中國(guó)水利水電出版
32、社,200710王為青、程國(guó)鋼,單片機(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.200013附 錄相關(guān)的程序代碼:相關(guān)的程序代碼:/*頭文件*#include #include/*宏定義*#define uchar unsigned
33、 char #define uint unsigned int/*位聲明*sbit key1=P10; sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit fmq=P21;/*數(shù)碼管顯示的數(shù)值*uchar code table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,/ 0 1 2 3 4 5 0 x82,0 xf8,0 x80,0 x90,0 xbf,0 x0ff; / 6 7 8 9 - 滅 /*函數(shù)聲明*void jia(); void jian(); /*數(shù)組定義,數(shù)組內(nèi)含有 8 個(gè)數(shù)值*uchar table1
34、8,table28,table38,table48;/*時(shí)間顯示初始值*uchar shi=12,fen=0,miao=0; /*定義全局變量*uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;uchar shi4,fen4,miao4;14uchar 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
35、=i;x0;x-) for(y=120;y0;y-); /*初始化函數(shù)*void init() TMOD=0 x01; /工作方式 1 TH0=0 x3c; /定時(shí)時(shí)間為:50ms(65536-50000)/256 TL0=0 x0b0; /(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=ta
36、ble11=11;if(cnt!=11|wss=0) table13=fen%10; /分離分的個(gè)位與十位 table14=fen/10; 15else table13=table14=11;if(cnt!=12|wss=0) table16=shi%10; /分離時(shí)的個(gè)位與十位 table17=shi/10; else table16=table17=11; table12=table15=10; j=0 x7f; for(i=0;i=7;i+) /從秒到時(shí)的掃描 P3=j; P0=tabletable1i; /顯示數(shù)值 delay(10); j=_cror_(j,1); /循環(huán)右移 /*顯
37、示子函數(shù),用于顯示定時(shí) 1 時(shí)間*void display1() uchar i,j; if(alm1=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; else16 table23=table24=11; if(cnt!=3|wss=0) table26=shi1%10; table27=shi1/10; else table26=table27=11; else
38、table20=table21=table23=table24=table26=table27=10; table22= table25=10; j=0 x7f; 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|
39、wss=0) table33=fen2%10; table34=fen2/10;17 else table33=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=0 x7f; for(i=0;i=7;i+) P3=j; P0=tabletable3i;delay(10); j=_cror_(j,1); /*顯示子函
40、數(shù),用于顯示定時(shí) 3 時(shí)間數(shù)值*/void display3() uchar i,j; if(alm3=0) if(cnt!=7|wss=0) table40=miao3%10; /分離秒的個(gè)位與十位 table41=miao3/10; else table40=table41=11;if(cnt!=8|wss=0)18 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 tabl
41、e46=table47=11; else table40=table41=table43=table44=table46=table47=10; table42= table45=10; j=0 x7f; /從秒到時(shí)的掃描 for(i=0;i=20) /判斷是否到一秒 wss=wss; flag=0; /到了,則標(biāo)志位清零 if(cnt1!=0) miao4+; /秒加 1 if( miao459) /判斷秒是否到 60s miao4=0; /到了,則清零19 fen4+; /分加 1 if(fen459) /以下含義同上 fen4=0; shi4+; if(shi423) shi4=0; e
42、lse miao+; /秒加 1 if( miao59) /判斷秒是否到 60s miao=0; /到了,則清零 fen+; /分加 1 if(fen59) /以下含義同上 fen=0; shi+; if(shi23) 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)20 display2(); if(cnt=7|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11
43、|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|cnt=3) display1(); if(cnt=4|cnt=5|cnt=6) display2(); if(cnt=7|cn
44、t=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13)21 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(ke
45、y4=0) /判斷 key4 是否按下 while(!key4) /防止掉 if(cnt=1|cnt=2|cnt=3) alm1=alm1; display1(); if(cnt=4|cnt=5|cnt=6) alm2=alm2; display2(); if(cnt=7|cnt=8|cnt=9) alm3=alm3; display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13)22 display(); /*加 1 子函數(shù)*void jia() if(cnt=1) /判斷 key1 按下的次數(shù)是否為 1 miao1+; /是,則秒加 1 if(miao1
46、59) /判斷秒是否大于 60,是,則秒清零 miao1=0; if(cnt=2) /以下含意同上 fen1+; if(fen159) fen1=0; if(cnt=3) shi1+; if(shi123) shi1=0; if(cnt=4) miao2+; if(miao259) miao2=0; if(cnt=5) fen2+; if(fen259) fen2=0; if(cnt=6)23 shi2+; if(shi223) shi2=0; if(cnt=7) miao3+; if(miao359) miao3=0; if(cnt=8) fen3+; if(fen359) fen3=0; if(cnt=9) shi3+; if(shi323) shi3=0; if(cnt=10) miao+; if(miao59) miao=0;cnt
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2170-2024激光光束分析儀校準(zhǔn)規(guī)范
- 2024年度云南省高校教師資格證之高等教育心理學(xué)綜合檢測(cè)試卷B卷含答案
- 河南省南陽(yáng)市2024-2025學(xué)年高二上學(xué)期10月月考數(shù)學(xué)試題(含答案)
- 云南省昆明市東川區(qū)第二中學(xué)2024-2025學(xué)年八年級(jí)上學(xué)期期中檢測(cè)語(yǔ)文卷(含答案)
- 贛南師范大學(xué)《實(shí)變函數(shù)與泛函分析》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《證據(jù)法》2023-2024學(xué)年第一學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《幼兒行為觀察分析》2022-2023學(xué)年第一學(xué)期期末試卷
- 阜陽(yáng)師范大學(xué)《圖形創(chuàng)意》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《數(shù)學(xué)分析(Ⅰ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《企業(yè)年金與員工福利》2023-2024學(xué)年第一學(xué)期期末試卷
- 外科學(xué)課件-門脈高壓癥
- 部編版小學(xué)六年級(jí)下冊(cè)群文閱讀含試卷(帶答案)
- 中國(guó)城市中英文對(duì)照
- 《值機(jī)與行李運(yùn)輸》教學(xué)課件項(xiàng)目六特殊行李運(yùn)輸
- 《道路工程》word版
- Oracle數(shù)據(jù)庫(kù)Sql語(yǔ)句詳解大全課件
- 氣管插管護(hù)理ppt課件(PPT 55頁(yè))
- 平行四邊形的面積說(shuō)課稿-完整版PPT課件
- 江蘇譯林小學(xué)年英語(yǔ)單詞匯總格式規(guī)范帶音標(biāo)
- 方艙電磁屏蔽處理工藝
- 他律比自律更重要
評(píng)論
0/150
提交評(píng)論