版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西南石油大學(xué)單片機(jī)課程設(shè)計(jì)學(xué)院: 電氣信息學(xué)院 專(zhuān)業(yè)年級(jí): 通信工程2013級(jí) 姓名: 王昕鈴 學(xué)號(hào): 201307050204 課題:基于單片機(jī)的定時(shí)鬧鐘設(shè)計(jì) 指導(dǎo)老師: 鄧魁 日期: 2016 年 6月 30日前 言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í)的耽誤可能釀成大
2、禍。例如,許多火災(zāi)都是由于人們一時(shí)忘記了關(guān)閉煤氣或是忘記充電時(shí)間。所以有必要制作一個(gè)定時(shí)系統(tǒng)。隨時(shí)提醒這些容易忘記時(shí)間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。隨著生活水平的提高,人們?cè)絹?lái)越追求人性化的事物。傳統(tǒng)的時(shí)鐘已不能滿(mǎn)足人們的需求。而現(xiàn)代的時(shí)鐘不僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機(jī)技術(shù),增加數(shù)字鐘的功能。利用軟
3、件編程盡量做到硬件電路簡(jiǎn)單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機(jī)械式時(shí)鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無(wú)機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過(guò)數(shù)字電路實(shí)現(xiàn)時(shí)、分、秒。數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭、車(chē)站、碼頭辦公室等公共場(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)
4、。通過(guò)鍵盤(pán)可以進(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ù)碼管顯示器動(dòng)態(tài)顯示“時(shí)”、“分”、“秒”的現(xiàn)代計(jì)時(shí)裝置。另外具有校時(shí)功能,秒表功能,和定時(shí)器功能,利用單片機(jī)實(shí)現(xiàn)的數(shù)字時(shí)鐘具有編程靈活,便于功能的擴(kuò)充等優(yōu)點(diǎn)。摘 要單片機(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í)鐘,
5、它由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語(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)鍵詞:?jiǎn)纹瑱C(jī),定時(shí)器,中斷,鬧鐘,LED目 錄第1章 方案的選擇和論證11.1
6、單片機(jī)型號(hào)的選擇11.2 按鍵的選擇11.3 顯示器的選擇11.4 計(jì)時(shí)部分的選擇11.5 發(fā)音部分的設(shè)計(jì)21.6 顯示器驅(qū)動(dòng)電路21.7 電源的選擇2第2章 數(shù)字電子鐘的設(shè)計(jì)原理和方法32.1 設(shè)計(jì)原理32.2 硬件電路的設(shè)計(jì)32.2.1 AT89C51單片機(jī)簡(jiǎn)介32.2.2 鍵盤(pán)電路的設(shè)計(jì)32.2.3 段碼驅(qū)動(dòng)電路42.2.4 蜂鳴器驅(qū)動(dòng)電路42.3 軟件部分的設(shè)計(jì)52.3.1 主程序部分的設(shè)計(jì)52.3.2 中斷定時(shí)器的設(shè)置52.3.3 鬧鐘子函數(shù)62.3.4 計(jì)時(shí)函數(shù)72.3.5 鍵盤(pán)掃描函數(shù)82.3.6 時(shí)間和鬧鐘的設(shè)置8第3章 實(shí)驗(yàn)結(jié)果10總 結(jié)11致 謝12參考文獻(xiàn)13附 錄14第
7、1章 方案的選擇和論證1.1 單片機(jī)型號(hào)的選擇通過(guò)對(duì)多種單片機(jī)性能的分析,最終認(rèn)為AT89C51是最理想的電子時(shí)鐘開(kāi)發(fā)芯片。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲(chǔ)器和1000次擦寫(xiě)循環(huán),數(shù)據(jù)保留時(shí)間為10年,是最好的選擇。1.2 按鍵的選擇方案一:44矩陣式鍵盤(pán)。如果選擇此方案,那么在修改時(shí)鐘或
8、設(shè)置鬧鈴時(shí)間時(shí)就可以直接從鍵盤(pán)輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨(dú)立式按鍵。如果設(shè)置過(guò)多按鍵,將會(huì)占用較多I/O口,而且會(huì)給布線(xiàn)帶來(lái)不便,因此,此方案適用于按鍵較少的情況。如果選擇此方案,由于按鍵較少,在修改時(shí)間或設(shè)置鬧鈴時(shí)間時(shí)就不能直接輸入,只能通過(guò)加或減完成,稍為麻煩一些,但其程序簡(jiǎn)單。 由于并不需要經(jīng)常修改時(shí)間和設(shè)置鬧鈴時(shí)間,而且方案二的程序簡(jiǎn)單,按鍵少、成本低,因此,選擇方案二。1.3 顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會(huì)降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動(dòng)電路復(fù)雜,使用起來(lái)有一定的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動(dòng)
9、電路簡(jiǎn)單,使用方便,如果選擇了此方案,那么在夜間看時(shí)間的時(shí)候就不需要有光源,非常方便。其缺點(diǎn)是功耗較大。由于數(shù)碼管使用起來(lái)較為方便,在夜間看時(shí)間也很方便,因此我選擇了方案二。1.4 計(jì)時(shí)部分的選擇如果使用時(shí)鐘芯片,系統(tǒng)就不怕掉電且時(shí)間精確。但這種芯片比較貴,況且,設(shè)計(jì)本系統(tǒng)主要是為了學(xué)習(xí)單片機(jī)程序的編寫(xiě)和調(diào)試以及設(shè)計(jì)硬件電路的一些方法,因此采用軟件的方法來(lái)計(jì)時(shí)而沒(méi)有采用價(jià)格較高的時(shí)鐘芯片。1.5 發(fā)音部分的設(shè)計(jì)通過(guò)三極管放大后驅(qū)動(dòng)蜂鳴器工作,再通過(guò)軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。1.6 顯示器驅(qū)動(dòng)電路由于通過(guò)數(shù)碼管公共及的電流較大且避免過(guò)多
10、地使用分立元件,采用了一片74LS245來(lái)驅(qū)動(dòng)段碼,用P3口作位碼驅(qū)動(dòng)。1.7 電源的選擇如果是用電池供電,就比較方便攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用5V外部穩(wěn)壓電源來(lái)供電。第2章 數(shù)字電子鐘的設(shè)計(jì)原理和方法2.1 設(shè)計(jì)原理 系統(tǒng)原理圖圖2-1 系統(tǒng)原理圖2.2 硬件電路的設(shè)計(jì)2.2.1 AT89C51單片機(jī)簡(jiǎn)介AT89C51是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場(chǎng)合??梢詽M(mǎn)足多方面的性能要求。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時(shí)間只需
11、2到4個(gè)時(shí)鐘周期。6倍于標(biāo)準(zhǔn)51單片機(jī)器件。AT89C51集成了許多系統(tǒng)級(jí)的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51單片機(jī)內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線(xiàn)控制部件、中斷控制部件、片內(nèi)Flash存儲(chǔ)器、并行I/O接口、定時(shí)器和串行I/O接口。圖2-2 AT89C51單片機(jī)2.2.2 鍵盤(pán)電路的設(shè)計(jì)鍵盤(pán)采用4個(gè)獨(dú)立按鍵配以4個(gè)上拉電阻實(shí)現(xiàn)對(duì)時(shí)鐘和鬧鐘的設(shè)定及修改。 圖2-3 獨(dú)立按鍵 圖2-4 鍵盤(pán)輸入電路2.2.3 段碼驅(qū)動(dòng)電路由于通過(guò)數(shù)碼管公共及的電流較大且避免過(guò)多地使用分立元件,采用了一片74LS245來(lái)驅(qū)動(dòng)段碼,用P3口作位碼驅(qū)動(dòng)。圖2-
12、5 段碼驅(qū)動(dòng)器74LS2452.2.4 蜂鳴器驅(qū)動(dòng)電路發(fā)音部分是通過(guò)三極管放大驅(qū)動(dòng)蜂鳴器工作,再通過(guò)軟件這時(shí)產(chǎn)生等時(shí)時(shí)間方波驅(qū)動(dòng)蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖2-6 蜂鳴器驅(qū)動(dòng)電路2.3 軟件部分的設(shè)計(jì)2.3.1 主程序部分的設(shè)計(jì)程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計(jì),避免了一些函數(shù)的不必要的重復(fù)書(shū)寫(xiě),使程序變得單間易懂。程序在執(zhí)行時(shí),主程序要須通過(guò)調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖2-7。圖2-7 主程序流程圖2.3.2 中斷定時(shí)器的設(shè)置數(shù)字電子鐘設(shè)計(jì)中主要使用定時(shí)器T0中斷ET0,利用ET0中斷進(jìn)行計(jì)時(shí)時(shí)間的自增,從而實(shí)現(xiàn)計(jì)時(shí)功能。AT89C5
13、1有兩個(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ī)器周期被采樣一次。 圖2-8 定時(shí)器工作原理1設(shè)計(jì)中采用了中斷方式1作為定時(shí)中斷,其定時(shí)計(jì)數(shù)初值的設(shè)置可由以下公式計(jì)算得到,中斷服務(wù)流程圖如下圖2-9。X:計(jì)數(shù)初值 t:定時(shí)時(shí)間 :機(jī)器周期 1圖2-9 中斷服務(wù)流程圖2.3.3 鬧鐘子函數(shù)鬧鐘時(shí)間的判別主要是通過(guò)設(shè)定時(shí)間與實(shí)時(shí)時(shí)間對(duì)逐位對(duì)比確定
14、是否進(jìn)行鬧鈴。其工作流程圖如下圖2-10。圖2-10 鬧鈴判斷流程圖2.3.4 計(jì)時(shí)函數(shù)計(jì)時(shí)函數(shù)部分,主要是通過(guò)單片機(jī)定時(shí)中斷來(lái)計(jì)時(shí),每產(chǎn)生一次中斷標(biāo)志位flag加1,當(dāng)flag加滿(mǎn)20次為1秒,然后把flag清0把秒存儲(chǔ)單元加1。然后再依次判斷分、時(shí)。其流程圖如下圖2-11。圖2-11 計(jì)時(shí)流程圖2.3.5 鍵盤(pán)掃描函數(shù)這些函數(shù)主要是判斷是否有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行,其相關(guān)流程圖如下圖2-12。圖2-12 鍵盤(pán)掃描流程圖2.3.6 時(shí)間和鬧鐘的設(shè)置此部分主要是通過(guò)判斷cnt在不同值時(shí)通過(guò)調(diào)用加1、減1子函數(shù)對(duì)時(shí)間和鬧鐘的時(shí)、分、秒進(jìn)行設(shè)置。在鬧鐘設(shè)置時(shí),判斷按鍵S
15、4按下情況后,進(jìn)行鬧鐘的開(kāi)啟與關(guān)閉,相關(guān)流程圖如下圖2-13。圖2-13 時(shí)間/鬧鐘設(shè)置流程圖第3章 實(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的秒設(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)
16、行時(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)閉或開(kāi)啟;如在鬧鈴時(shí)有S4按下則提前停止鬧鈴。圖2-14 運(yùn)行仿真圖總 結(jié)通過(guò)自己的不懈努力,我終于完成了畢業(yè)設(shè)計(jì)任務(wù)書(shū)上的任務(wù)要求。功能上基本達(dá)標(biāo):時(shí)鐘的顯示,調(diào)時(shí)功能、校時(shí)功能、鬧鈴功能、鬧鐘設(shè)置功能。其精確度完全可以滿(mǎn)足日常生活顯示時(shí)間的需要;調(diào)時(shí)功能,方便快捷;校時(shí)功能保證了時(shí)鐘準(zhǔn)確和可靠性,鬧鐘響鈴還有擴(kuò)展成音樂(lè)鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計(jì)可以配合硬件實(shí)現(xiàn)
17、要求的功能。但是由于時(shí)間比較短,前期設(shè)計(jì)出現(xiàn)部分不足:如位選閃爍功能不能實(shí)現(xiàn)、鬧鐘的開(kāi)啟與關(guān)閉、間斷蜂鳴聲等。這些只是軟件設(shè)計(jì)時(shí)相應(yīng)功能部分還不完善造成。不過(guò)經(jīng)仔細(xì)思考和程序的完善,最終將軟件設(shè)計(jì)改進(jìn),并完全可以很好實(shí)現(xiàn)所有要求的功能。可見(jiàn)技術(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í)踐,多去生活中探詢(xún)所需要的。對(duì)于上述所提到的研究課題,我們應(yīng)盡量考慮
18、到人的因素,增強(qiáng)時(shí)鐘的實(shí)用性和操作性,為使用者提供切實(shí)的方便,營(yíng)造一種舒適的生活氛圍。所以,在設(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ì),需要有很巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)的寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事,比如寫(xiě)一個(gè)程序看其功能很少認(rèn)為編寫(xiě)程序簡(jiǎn)單,但到編程的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識(shí)或低級(jí)錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這
19、次的課程設(shè)計(jì)中,我們真真正正的意識(shí)到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過(guò)程中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。致 謝經(jīng)過(guò)一周的實(shí)習(xí)調(diào)查收集數(shù)據(jù)資料、整理材料、寫(xiě)作論文,我終于可以順利的完成論文了。 首先要感謝我的指導(dǎo)老師鄧?yán)蠋?,他指引我論文的?xiě)作的方向和架構(gòu),并對(duì)本文初稿進(jìn)行仔細(xì)批閱,指正出其中不當(dāng)之處,使我有了思考的方向,他的循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪,他的嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng),將一直是我工作、學(xué)習(xí)中的榜樣。通過(guò)此次的論文,我學(xué)到了很多知識(shí),在論文的寫(xiě)作過(guò)程中,我不僅收集到了
20、論文所需的資料數(shù)據(jù),而且學(xué)到了很多書(shū)本上沒(méi)有的知識(shí)。并且由原先的被動(dòng)的接受知識(shí)轉(zhuǎn)換為主動(dòng)的尋求知識(shí),我想這可以說(shuō)是學(xué)習(xí)方法上的一個(gè)很大的突破。 在論文的寫(xiě)作過(guò)程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問(wèn)要一絲不茍,對(duì)于發(fā)展過(guò)程中出現(xiàn)的任何問(wèn)題和偏差都不要輕視,要通過(guò)正確的途徑去解決,在做事情的過(guò)程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅(jiān)持下去就可以找到思路去解決問(wèn)題的??傊?,此次論文的寫(xiě)作過(guò)程,我收獲了很多。再次感謝我的大學(xué)和所有幫助過(guò)我并給我鼓勵(lì)的老師和同學(xué),謝謝你們! 2016年6月 參考文獻(xiàn)1李全利、 遲榮強(qiáng),單片機(jī)原理及接口技術(shù)M,北京:高等教育出版社,20042凌玉
21、華,單片機(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é)出版社,1998 8張靖武、周靈彬,單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真M,北京:電子工業(yè)出版社,2007附 錄相關(guān)的程序代碼:#include /頭文件 #include#define uchar unsi
22、gned char /宏定義#define uint unsigned intsbit key1=P10; /位聲明 sbit key2=P11;sbit key3=P12;sbit key4=P13;sbit fmq=P21;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90,0xbf,0x0ff; /數(shù)碼管顯示的數(shù)值void jia(); /函數(shù)聲明 void jian(); uchar table18,table28,table38,table48; /數(shù)組定義,數(shù)組內(nèi)含有8個(gè)數(shù)值uchar shi=12
23、,fen=0,miao=0; /時(shí)間顯示初始值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;/ 蜂鳴 void delay(uchar i) / 延時(shí)函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 uchar x,y; for(x=i;x0;x-) for(y=120;y0;y-); void init() / 初始化函數(shù)
24、 TMOD=0x01; /工作方式1 TH0=0x3c; /定時(shí)時(shí)間為:50ms(65536-50000)/256 TL0=0x0b0; /(65536-50000)%256 ET0=1; /打開(kāi)定時(shí)器 EA=1; /開(kāi)總中斷 TR0=1; /啟動(dòng)定時(shí)器 void display() / 顯示子函數(shù),用于顯示時(shí)間數(shù)值 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è)位與
25、十位 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)右移 void display1() / 顯示子函數(shù),用于顯示定時(shí)1時(shí)間 uchar i,j; if(alm1=0) i
26、f(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; table2
27、2= table25=10; j=0x7f; for(i=0;i=7;i+) P3=j; P0=tabletable2i;delay(10); j=_cror_(j,1); void display2()/ 顯示子函數(shù),用于顯示定時(shí)2時(shí)間 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=table34=
28、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); void display3() / 顯示子函數(shù),用于顯示定時(shí)3時(shí)間數(shù)值 uchar i,j; if(alm3=0) if(cnt!=7|wss
29、=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=table46=table47=1
30、0; table42= table45=10; j=0x7f; /從秒到時(shí)的掃描 for(i=0;i=20) /判斷是否到一秒 wss=wss; flag=0; /到了,則標(biāo)志位清零 if(cnt1!=0) miao4+; /秒加1 if( miao459) /判斷秒是否到60s miao4=0; /到了,則清零 fen4+; /分加1 if(fen459) /以下含義同上 fen4=0; shi4+; if(shi423) shi4=0; else miao+; /秒加1 if( miao59) /判斷秒是否到60s miao=0; /到了,則清零 fen+; /分加1 if(fen59)
31、/以下含義同上 fen=0; shi+; if(shi23) shi=0; void key_scan()/ 鍵盤(pán)掃描子函數(shù) if(key1=0) while(!key1) /防止掉顯 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(); cnt+; /記下按鍵key1按下的次數(shù) if(cnt=10&cnt1=0) miao4=miao; fen4=
32、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|cnt=8|cnt=9) display3(); if(cnt=0|cnt=10|cnt=11|cnt=12|cnt=13) display(); jia(); if(key3=0) /
33、判斷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=alm1; display1(); if(cnt=4|cnt=5|c
34、nt=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) display(); void jia() / 加1子函數(shù) if(cnt=1) /判斷key1按下的次數(shù)是否為1 miao1+; /是,則秒加1 if(miao159) /判斷秒是否大于60,是,則秒清零 miao1=0; if(cnt=2) /以下含意同上 fen1+; if(fen159) fen1=0; if(cnt=3) shi1+; if(shi123) shi1
35、=0; if(cnt=4) miao2+; if(miao259) miao2=0; if(cnt=5) fen2+; if(fen259) fen2=0; if(cnt=6) 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;cnt1+; if(cnt=11) fen+; if(fen59) fen=0;cnt1+; if(cnt=12) shi+; if(shi23) shi=0;cnt1+; void jian() / 減1子函數(shù) if(cnt=1)/判斷key1按下的次數(shù)是否為1,是則秒減1 miao1-; if(miao1=255)/判斷秒是否減到255,是,則秒置59 miao1=59; if(cnt=2)/以下含意同上 fen1-; if(fen1=255) fen1=59; if(cnt=3) shi1-; if(shi1=255) shi1=23; if(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子設(shè)備交易合同案例
- 悔過(guò)自責(zé)重建信任
- 珍愛(ài)和平和諧相處
- 香蕉采購(gòu)合同示例
- 版企業(yè)借款合同模式
- 地毯招標(biāo)廢標(biāo)原因文件
- 建筑施工土方填筑招標(biāo)
- 戶(hù)外垃圾桶設(shè)計(jì)招標(biāo)
- 電子招投標(biāo)操作技巧
- 大樓租賃合同書(shū)
- GB/T 24977-2024衛(wèi)浴家具通用技術(shù)條件
- 小學(xué)四年級(jí)上冊(cè)道德與法治期末測(cè)試卷(完整版)
- 2024年長(zhǎng)沙電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- ICP備案網(wǎng)站建設(shè)方案書(shū)
- 中外文化比較專(zhuān)題智慧樹(shù)知到期末考試答案2024年
- 裝修設(shè)計(jì)招標(biāo)評(píng)標(biāo)辦法
- 初中英語(yǔ)翻譯專(zhuān)題訓(xùn)練100題含答案
- 基于機(jī)器學(xué)習(xí)的查詢(xún)優(yōu)化
- 2024屆浙江省義烏市稠州中學(xué)數(shù)學(xué)八年級(jí)下冊(cè)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)試題含解析
- 葡萄酒鑒賞智慧樹(shù)知到期末考試答案2024年
- 防化兵知識(shí)課件
評(píng)論
0/150
提交評(píng)論