




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、前前 言言20 世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展。在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高。同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時忘記了關(guān)閉煤氣或是忘記充電時間。所以有必要制作一個定時系統(tǒng)。隨時提醒這些容易忘記時間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。
2、諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、定時啟閉電路、定時開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。隨著生活水平的提高,人們越來越追求人性化的事物。傳統(tǒng)的時鐘已不能滿足人們的需求。而現(xiàn)代的時鐘不僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機技術(shù),增加數(shù)字鐘的功能。利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機械式時鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有
3、更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過數(shù)字電路實現(xiàn)時、分、秒。數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭辦公室等公共場所成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰S捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機作為數(shù)字鐘的核心控制器,通過它的時鐘信號進(jìn)行實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來。通過鍵盤可以進(jìn)行校時、定時等功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管來顯示技術(shù)。 本系統(tǒng)利用單片機實現(xiàn)具有計時、校時等功能的數(shù)字時鐘,是以單片機 AT89C51為核心元件同時采用 LED 數(shù)碼管顯示器
4、動態(tài)顯示“時” 、 “分” 、 “秒”的現(xiàn)代計時裝置。另外具有校時功能,秒表功能,和定時器功能,利用單片機實現(xiàn)的數(shù)字時鐘具有編程靈活,便于功能的擴充等優(yōu)點。目目 錄錄前前 言言 .1 1摘摘 要要 .I IABSTRACTABSTRACT .IIII第第 1 1 章章 課題的背景課題的背景 .1 11.1 課題的來源 .11.2 課題研究的目的和意義 .11.3 應(yīng)解決的主要問題及達(dá)到的技術(shù)要求.1第第 2 2 章章 方案的選擇和論證方案的選擇和論證 .2 22.1 單片機型號的選擇 .22.2 按鍵的選擇 .22.3 顯示器的選擇 .22.4 計時部分的選擇 .22.5 發(fā)音部分的設(shè)計 .3
5、2.6 顯示器驅(qū)動電路 .32.7 電源的選擇 .3第第 3 3 章章 數(shù)字電子鐘的設(shè)計原理和方法數(shù)字電子鐘的設(shè)計原理和方法 .4 43.1 設(shè)計原理 .43.2 硬件電路的設(shè)計 .43.2.1 AT89C51 單片機簡介.43.2.2 鍵盤電路的設(shè)計 .43.2.3 段碼驅(qū)動電路 .53.2.4 蜂鳴器驅(qū)動電路 .53.3 軟件部分的設(shè)計 .63.3.1 主程序部分的設(shè)計 .63.3.2 中斷定時器的設(shè)置 .63.3.3 鬧鐘子函數(shù) .73.3.4 計時函數(shù) .73.3.4 鍵盤掃描函數(shù) .93.3.5 時間和鬧鐘的設(shè)置 .9第第 4 4 章章 實驗結(jié)果實驗結(jié)果 .1111總總 結(jié)結(jié) .12
6、12致致 謝謝 .1313參考文獻(xiàn)參考文獻(xiàn) .1414附附 錄錄 .1515摘摘 要要單片機自 20 世紀(jì) 70 年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而 51 單片機是各單片機中最為典型和最有代表性的一種。本設(shè)計以 AT89C51 芯片為核心,輔以必要的外圍電路,設(shè)計了一個結(jié)構(gòu)簡單,功能齊全的電子時鐘,它由 5V 直流電源供電。在硬件方面,除了 CPU 外,使用八個七段 LED 數(shù)碼管來進(jìn)行顯示,LED 采用的是動態(tài)掃描顯示,使用 74LS245 芯片進(jìn)行驅(qū)動。通過 LED 能夠較為準(zhǔn)確地顯示時、分、秒。四個簡單的按鍵實現(xiàn)對時間的調(diào)整。軟件方面采用 C
7、 語言編程。整個電子鐘系統(tǒng)能完成時間的顯示、調(diào)時、校時和三組定時鬧鐘的功能。選用單片機最小系統(tǒng)應(yīng)用程序,添加比較程序、時間調(diào)整程序及蜂鳴程序,通過時間比較程序觸發(fā)蜂鳴,實現(xiàn)鬧鐘功能,完成設(shè)計所需求的軟件環(huán)境。介紹并使用Keil 單片機模擬調(diào)試軟件,測試程序的可行性并用 Proteus 進(jìn)行仿真。關(guān)鍵詞:關(guān)鍵詞:單片機,定時器,中斷,鬧鐘,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 課題的來源課題的來源隨著生活水平的提高,人們越來越追求人性化的事物,傳統(tǒng)的時鐘已不能滿足人們的需求?,F(xiàn)代的時鐘不僅需要模擬電路技術(shù)而且需要數(shù)字電路技術(shù)和單片機技術(shù),增加時鐘的功能。數(shù)字電子鐘可利用軟件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差;盡管如此數(shù)字鐘還是可以改進(jìn)和提高,比如選用更精密的元器件。但與機械式時鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,
13、且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。1.2 課題研究的目的和意義課題研究的目的和意義20 世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,有力地推動了社會生產(chǎn)力的發(fā)展和社會信息化程度的提高,同時也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 時間對人們來說總是那么寶貴,工作的忙碌性和繁雜性容易使人忘記當(dāng)前的時間。忘記了要做的事情,當(dāng)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們一時忘記了關(guān)閉煤氣或是忘記充電時間等造成的。而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的
14、方便。數(shù)字鐘是通過數(shù)字電路實現(xiàn)時,分,秒數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能,諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烤箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴大其應(yīng)用,有著非常現(xiàn)實的意義。1.3 應(yīng)解決的主要問題及達(dá)到的技術(shù)要求應(yīng)解決的主要問題及達(dá)到的技術(shù)要求本設(shè)
15、計應(yīng)解決的主要問題有兩大方面,即硬件電路設(shè)計和軟件設(shè)計兩大方面。其中硬件電路部分又可分為四個模塊:鍵盤模塊、顯示模塊、計時模塊和發(fā)聲模塊。硬件電路部分致力于低成本、低功耗和易實現(xiàn)性。軟件部分則應(yīng)做到代碼的精簡、準(zhǔn)確、易讀懂。最后通過硬軟件的結(jié)合實現(xiàn)數(shù)字鐘的精確計時、校時、三組鬧鐘設(shè)置和定時報警功能。1第第 2 章章 方案的選擇和方案的選擇和論證論證2.1 單片機型號的選擇單片機型號的選擇通過對多種單片機性能的分析,最終認(rèn)為 AT89C51 是最理想的電子時鐘開發(fā)芯片。AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能 CMOS8 位微處理器,器件采用 ATMEL 高
16、密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍存儲器組合在單個芯片中,ATMEL 的 AT89C51 是一種高效微控制器,而且它與 MCS-51 兼容,且具有 4K 字節(jié)可編程序存儲器和 1000 次擦寫循環(huán),數(shù)據(jù)保留時間為 10 年,是最好的選擇。2.2 按鍵的選擇按鍵的選擇方案一:44 矩陣式鍵盤。如果選擇此方案,那么在修改時鐘或設(shè)置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨立式按鍵。如果設(shè)置過多按鍵,將會占用較多 I/O 口,而且會給布線帶來不便,因此,此方案適用于按鍵較少的情況。如果選擇
17、此方案,由于按鍵較少,在修改時間或設(shè)置鬧鈴時間時就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。 由于并不需要經(jīng)常修改時間和設(shè)置鬧鈴時間,而且方案二的程序簡單,按鍵少、成本低,因此,選擇方案二。2.3 顯示器的選擇顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動電路復(fù)雜,使用起來有一定的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。由于數(shù)碼管使用起來較為方便,在夜間看時間也很方便,因此我選擇了方案二。2.
18、4 計時部分的計時部分的選擇選擇如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確。但這種芯片比較貴,況且,設(shè)計本系統(tǒng)主要是為了學(xué)習(xí)單片機程序的編寫和調(diào)試以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時而沒有采用價格較高的時鐘芯片。22.5 發(fā)音部分的設(shè)計發(fā)音部分的設(shè)計通過三極管放大后驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。2.6 顯示器驅(qū)動電路顯示器驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245 來驅(qū)動段碼,用 P3 口作位碼驅(qū)動。2.7 電源的選擇電源的選擇如果是用電池供電,就比較方便
19、攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用 5V 外部穩(wěn)壓電源來供電。3第第 3 章章 數(shù)字電子鐘的設(shè)計原理和方法數(shù)字電子鐘的設(shè)計原理和方法3.1 設(shè)計原理設(shè)計原理 系統(tǒng)原理圖圖 3-1 系統(tǒng)原理圖3.2 硬件電路的設(shè)計硬件電路的設(shè)計3.2.1 AT89C51 單片機簡介單片機簡介AT89C51 是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合??梢詽M足多方面的性能要求。AT89C51 采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需 2 到 4 個時鐘周期。6 倍于標(biāo)準(zhǔn)
20、 51 單片機器件。AT89C51 集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51 單片機內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi) Flash 存儲器、并行 I/O 接口、定時器和串行 I/O 接口。圖 3-2 AT89C51 單片機4 3.2.2 鍵盤電路的設(shè)計鍵盤電路的設(shè)計 鍵盤采用 4 個獨立按鍵配以 4 個上拉電阻實現(xiàn)對時鐘和鬧鐘的設(shè)定及修改。 圖 3-3 獨立按鍵 圖 3-4 鍵盤輸入電路3.2.3 段碼驅(qū)動電路段碼驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS24
21、5 來驅(qū)動段碼,用 P3 口作位碼驅(qū)動。圖 3-5 段碼驅(qū)動器 74LS2453.2.4 蜂鳴器驅(qū)動電路蜂鳴器驅(qū)動電路發(fā)音部分是通過三極管放大驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖 3-6 蜂鳴器驅(qū)動電路53.3 軟件部分的設(shè)計軟件部分的設(shè)計3.3.1 主程序部分的設(shè)計主程序部分的設(shè)計程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計,避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時,主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖 3-7。圖 3-7 主程序流程圖3.3.2 中斷定時器的設(shè)置中斷定時
22、器的設(shè)置數(shù)字電子鐘設(shè)計中主要使用定時器 T0 中斷 ET0,利用 ET0 中斷進(jìn)行計時時間的自增,從而實現(xiàn)計時功能。AT89C51 有兩個通用定時/計數(shù)器。兩者均可配置為定時器或事件計數(shù)器。另外增加了定時器 T0/T1,溢出時 T0/T1 腳自動翻轉(zhuǎn)的功能選項。 用作“定時器”功能時,每經(jīng)過一個機器周期,寄存器值加 1。 用作“計數(shù)器”功能時,寄存器在對應(yīng)的外部輸入管腳 T0/T1 上每發(fā)生一次 1 到 0 的跳變時加 1。使用該功能時,外部輸入每個機器周期被采樣一次。 圖 3-8 定時器工作原理16設(shè)計中采用了中斷方式 1 作為定時中斷,其定時計數(shù)初值的設(shè)置可由以下公式計算得到,中斷服務(wù)流程
23、圖如下圖 3-9。X:計數(shù)初值 t:定時時間 :機器周期 1cyT圖 3-9 中斷服務(wù)流程圖3.3.3 鬧鐘子函數(shù)鬧鐘子函數(shù)鬧鐘時間的判別主要是通過設(shè)定時間與實時時間對逐位對比確定是否進(jìn)行鬧鈴。其工作流程圖如下圖 3-10。圖 3-10 鬧鈴判斷流程圖cyTtX16273.3.4 計時函數(shù)計時函數(shù)計時函數(shù)部分,主要是通過單片機定時中斷來計時,復(fù)產(chǎn)生一次中斷標(biāo)志位 flag加 1,當(dāng) flag 加滿 20 次為 1 秒,然后把 flag 清 0 把秒存儲單元加 1。然后再依次判斷分、時。其流程圖如下圖 3-11。圖 3-11 計時流程圖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è)置此部分主要是通過判斷 cnt 在不同值時通過調(diào)用加 1、減 1 子函數(shù)對時間和鬧鐘的時、分、秒進(jìn)行設(shè)置。在鬧鐘設(shè)置時,判斷按鍵 S4 按下情況我,進(jìn)行鬧鐘的開啟與關(guān)閉,相關(guān)流程圖如下圖 3-13。圖 3-13 時間/鬧鐘設(shè)置流程圖9第第 4 章章 實驗結(jié)果實驗結(jié)果此電子鬧鐘設(shè)計是利用 Proteus 仿真軟件進(jìn)行仿真,基本上實現(xiàn)了課程設(shè)計要求實現(xiàn)的功能。硬件部分設(shè)置了的三個按鍵 S1、S2、S3、S4。當(dāng)按鍵 S1 第一次按下時,停止計時進(jìn)
25、入鬧鐘 1 的秒設(shè)置,當(dāng)按鍵 S1 第二、第三次按下時,分別進(jìn)入鬧鐘 1 的分設(shè)置和時設(shè)置,當(dāng)按 S1 第四 、第五、第六次按下時分別進(jìn)入鬧鐘 2 的秒、分、時設(shè)置,當(dāng)按 S1 第七 、第八、第九次按下時分別進(jìn)入鬧鐘 3 的秒、分、時設(shè)置,當(dāng)按 S1 第十 、第二一、第十二次按下時分別進(jìn)入時間的秒、分、時設(shè)置,在 S1 按下的各階段,可用按鍵 S2、S3 進(jìn)行時間和鬧鈴時間的時、分、秒進(jìn)行加減設(shè)置;當(dāng)按鍵 S1 第十三次按下時恢復(fù)到時間顯示功能。當(dāng)顯示的時間和定時設(shè)置的時間一致時,蜂鳴器發(fā)出等時間斷蜂鳴聲,鬧鈴時間設(shè)置為 60 秒。在各個鬧鐘設(shè)置階段,如果有 S4 按下,則相應(yīng)鬧鐘功能關(guān)閉或開
26、啟;如在鬧鈴時有 S4 按下則提前停止鬧鈴。另外,鬧鈴電路有音樂鬧鐘的擴展的功能(可以將蜂鳴器換成揚聲器再加一段音樂程序即可實現(xiàn))。因時間有限,擴展功能還未能及時實現(xiàn),比如音樂鬧鈴。圖 3-14 運行仿真圖10總總 結(jié)結(jié)通過自己的不懈努力,我終于完成了畢業(yè)設(shè)計任務(wù)書上的任務(wù)要求。功能上基本達(dá)標(biāo):時鐘的顯示,調(diào)時功能、校時功能、鬧鈴功能、鬧鐘設(shè)功能。其精確度完全可以滿足日常生活顯示時間的需要;調(diào)時功能,方便快捷;校時功能保證了時鐘準(zhǔn)確和可靠性,鬧鐘響鈴還有擴展成音樂鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計可以配合硬件實現(xiàn)要求的功能。但是由于時間比較短,前期設(shè)計出現(xiàn)部分不足:如位選閃爍功能不能實現(xiàn)、
27、鬧鐘的開啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計時相應(yīng)功能部分還不完善造成。不過經(jīng)仔細(xì)思考和程序的完善,最終將軟件設(shè)計改進(jìn),并完全可以很好實現(xiàn)所有要求的功能??梢娂夹g(shù)在不斷進(jìn)步,機械式時鐘已經(jīng)被淘汰,取而代之的是具有高度準(zhǔn)確性和直觀性且無機械裝置,具有更長的使用壽命等優(yōu)點的數(shù)字時鐘。數(shù)字時鐘更具人性化,更能提高人們的生活質(zhì)量,更受人們歡迎。 無可否認(rèn)機械時代已經(jīng)過去,電子時代已經(jīng)到來。做為新時代的我們,更應(yīng)該提高自身能力,適應(yīng)新時代的發(fā)展。知識來自實踐,多去生活中探詢所需要的。對于上述所提到的研究課題,我們應(yīng)盡量考慮到人的因素,增強時鐘的實用性和操作性,為使用者提供切實的方便,營造一種舒適的生
28、活氛圍。所以,在設(shè)計的時候,應(yīng)該從多方面、多角度去考慮問題,而且應(yīng)該進(jìn)一步提高時鐘的質(zhì)量。另外,在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計但通過這次設(shè)計我學(xué)會了很多東西,單片機課程設(shè)計重點就在于軟件算法的設(shè)計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,比如寫一個程序看其功能很少認(rèn)為編寫程序簡單,但到編程的時候才發(fā)現(xiàn)一些細(xì)微的知識或低級錯誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所
29、學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計中的最大收獲。11致致 謝謝經(jīng)過幾個月的實習(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é)到了很多書本上沒有的知識。并且由原先的被動
30、的接受知識轉(zhuǎn)換為主動的尋求知識,我想這可以說是學(xué)習(xí)方法上的一個很大的突破。 在論文的寫作過程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問要一絲不茍,對于發(fā)展過程中出現(xiàn)的任何問題和偏差都不要輕視,要通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅持下去就可以找到思路去解決問題的。總之,此次論文的寫作過程,我收獲了很多,為大學(xué)四年劃上了一個完美的句號,也為將來的人生之路做一個很好的鋪墊。 再次感謝我的大學(xué)和所有幫助過我并給我鼓勵的老師和同學(xué),謝謝你們! 2010 年 6 月 12參參考文獻(xiàn)考文獻(xiàn)1李全利、 遲榮強,單片機原理及接口技術(shù)M,北京:高等教育出
31、版社,20042凌玉華,單片機原理及應(yīng)用系統(tǒng)設(shè)計M,長沙:中南大學(xué)出版社,20063張毅剛,MCS-51 單片機應(yīng)用設(shè)計M,哈爾賓:哈爾賓工業(yè)大學(xué)出版社,1997 4胡漢才,單片機原理及應(yīng)用M,北京:清華大學(xué)出版社,20045何立明,單片機應(yīng)用系統(tǒng)設(shè)計M,北京:北京航空航天大學(xué)出版社,19906王榮良,計算機接口技術(shù)M,北京:電子工業(yè)出版社,20037陳光東,單片機微型計算機原理與接口技術(shù)M,武漢:華中理工大學(xué)出版社,19988王幸之、鐘愛琴、王雷、王閃,AT89 系列單片機原理與接口技術(shù)M,北京:北京航空航天大學(xué)出版社,20049張道德,單片機接口技術(shù)(C51 版)M,北京:中國水利水電出版
32、社,200710王為青、程國鋼,單片機 Keil CX51 應(yīng)用開發(fā)技術(shù)M,北京:人民郵電出版社,200711張靖武、周靈彬,單片機系統(tǒng)的 Proteus 設(shè)計與仿真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 個數(shù)值*uchar table1
34、8,table28,table38,table48;/*時間顯示初始值*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ù) 校時 鬧 1 鬧 2 鬧 3uint flag2;/ 蜂鳴 /*延時函數(shù),用于動態(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; /定時時間為:50ms(65536-50000)/256 TL0=0 x0b0; /(65536-50000)%256 ET0=1; /打開定時器 EA=1; /開總中斷 TR0=1; /啟動定時器 /*顯示子函數(shù),用于顯示時間數(shù)值*void display() uchar i,j; if(cnt!=10|wss=0) table10=miao%10; /分離秒的個位與十位 table11=miao/10; else table10=ta
36、ble11=11;if(cnt!=11|wss=0) table13=fen%10; /分離分的個位與十位 table14=fen/10; 15else table13=table14=11;if(cnt!=12|wss=0) table16=shi%10; /分離時的個位與十位 table17=shi/10; else table16=table17=11; table12=table15=10; j=0 x7f; for(i=0;i=7;i+) /從秒到時的掃描 P3=j; P0=tabletable1i; /顯示數(shù)值 delay(10); j=_cror_(j,1); /循環(huán)右移 /*顯
37、示子函數(shù),用于顯示定時 1 時間*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ù),用于顯示定時 2 時間*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ù),用于顯示定時 3 時間數(shù)值*/void display3() uchar i,j; if(alm3=0) if(cnt!=7|wss=0) table40=miao3%10; /分離秒的個位與十位 table41=miao3/10; else table40=table41=11;if(cnt!=8|wss=0)18 table43=fen3%10; /分離分的個位與十位 table44=fen3/10;else table43=table44=11;if(cnt!=9|wss=0) table46=shi3%10; /分離時的個位與十位 table47=shi3/10;else tabl
41、e46=table47=11; else table40=table41=table43=table44=table46=table47=10; table42= table45=10; j=0 x7f; /從秒到時的掃描 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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)培訓(xùn)課件制作app
- 車輛運輸與道路通行證代理合同
- 生態(tài)農(nóng)業(yè)園場地承包與綠色產(chǎn)品開發(fā)合同
- 科技園區(qū)場地租賃印花稅繳納合同
- 餐飲企業(yè)廚房承包與綠色環(huán)保食材采購協(xié)議
- 餐飲企業(yè)員工社會保險與福利待遇合同
- 飼料設(shè)備建設(shè)方案模板
- 應(yīng)急配送設(shè)計方案
- 房屋買賣合同及附屬設(shè)施移交及使用及維護服務(wù)協(xié)議
- 美院雕塑考試題及答案
- 廣東省江門市普通高中2025屆物理高一下期末綜合測試試題含解析
- 九師聯(lián)盟2024-2025學(xué)年高二下學(xué)期7月期末質(zhì)量檢測政治試題(含答案)
- 人教版八年級物理上冊《1.1長度和時間的測量》同步練習(xí)題及答案
- 安全生產(chǎn)執(zhí)法培訓(xùn)課件
- 絕緣漆項目可行性研究報告立項報告模板
- 焊工證復(fù)審考試題及答案
- 喘息性支氣管肺炎的護理查房
- 新型電極材料成本控制-洞察及研究
- 2025年高考英語試卷(全國Ⅰ卷)(空白卷)
- 工程測量考試試題及答案
- 粵菜餐廳運營方案
評論
0/150
提交評論