版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、西南石油大學(xué)單片機課程設(shè)計學(xué)院: 電氣信息學(xué)院 專業(yè)年級: 通信工程2013級 姓名: 王昕鈴 學(xué)號: 201307050204 課題:基于單片機的定時鬧鐘設(shè)計 指導(dǎo)老師: 鄧魁 日期: 2016 年 6月 30日前 言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)事情不是很重要的時候,這種遺忘無傷大雅。但是,一旦重要事情,一時的耽誤可能釀成大
2、禍。例如,許多火災(zāi)都是由于人們一時忘記了關(guān)閉煤氣或是忘記充電時間。所以有必要制作一個定時系統(tǒng)。隨時提醒這些容易忘記時間的人。 而鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、定時啟閉電路、定時開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等等。所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴大其應(yīng)用,有著非常現(xiàn)實的意義。隨著生活水平的提高,人們越來越追求人性化的事物。傳統(tǒng)的時鐘已不能滿足人們的需求。而現(xiàn)代的時鐘不僅需要模擬電路技術(shù)和數(shù)字電路技術(shù)而且更需要單片機技術(shù),增加數(shù)字鐘的功能。利用軟
3、件編程盡量做到硬件電路簡單穩(wěn)定,減小電磁干擾和其他環(huán)境干擾,減小因元器件精度不夠引起的誤差,但是數(shù)字鐘還是可以改進(jìn)和提高如選用更精密的元器件。但與機械式時鐘相比已經(jīng)具有更高的準(zhǔn)確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。數(shù)字鐘通過數(shù)字電路實現(xiàn)時、分、秒。數(shù)字顯示的計時裝置,廣泛用于個人家庭、車站、碼頭辦公室等公共場所成為人們?nèi)粘I钪胁豢缮俚谋匦杵?。由于?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表。多功能數(shù)字鐘的應(yīng)用非常普遍。由單片機作為數(shù)字鐘的核心控制器,通過它的時鐘信號進(jìn)行實現(xiàn)計時功能,將其時間數(shù)據(jù)經(jīng)單片機輸出,利用顯示器顯示出來
4、。通過鍵盤可以進(jìn)行校時、定時等功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管來顯示技術(shù)。 本系統(tǒng)利用單片機實現(xiàn)具有計時、校時等功能的數(shù)字時鐘,是以單片機AT89C51為核心元件同時采用LED數(shù)碼管顯示器動態(tài)顯示“時”、“分”、“秒”的現(xiàn)代計時裝置。另外具有校時功能,秒表功能,和定時器功能,利用單片機實現(xiàn)的數(shù)字時鐘具有編程靈活,便于功能的擴充等優(yōu)點。摘 要單片機自20世紀(jì)70年代問世以來,以其極高的性能價格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機是各單片機中最為典型和最有代表性的一種。本設(shè)計以AT89C51芯片為核心,輔以必要的外圍電路,設(shè)計了一個結(jié)構(gòu)簡單,功能齊全的電子時鐘,
5、它由5V直流電源供電。在硬件方面,除了CPU外,使用八個七段LED數(shù)碼管來進(jìn)行顯示,LED采用的是動態(tài)掃描顯示,使用74LS245芯片進(jìn)行驅(qū)動。通過LED能夠較為準(zhǔn)確地顯示時、分、秒。四個簡單的按鍵實現(xiàn)對時間的調(diào)整。軟件方面采用C語言編程。整個電子鐘系統(tǒng)能完成時間的顯示、調(diào)時、校時和三組定時鬧鐘的功能。選用單片機最小系統(tǒng)應(yīng)用程序,添加比較程序、時間調(diào)整程序及蜂鳴程序,通過時間比較程序觸發(fā)蜂鳴,實現(xiàn)鬧鐘功能,完成設(shè)計所需求的軟件環(huán)境。介紹并使用Keil單片機模擬調(diào)試軟件,測試程序的可行性并用Proteus進(jìn)行仿真。關(guān)鍵詞:單片機,定時器,中斷,鬧鐘,LED目 錄第1章 方案的選擇和論證11.1
6、單片機型號的選擇11.2 按鍵的選擇11.3 顯示器的選擇11.4 計時部分的選擇11.5 發(fā)音部分的設(shè)計21.6 顯示器驅(qū)動電路21.7 電源的選擇2第2章 數(shù)字電子鐘的設(shè)計原理和方法32.1 設(shè)計原理32.2 硬件電路的設(shè)計32.2.1 AT89C51單片機簡介32.2.2 鍵盤電路的設(shè)計32.2.3 段碼驅(qū)動電路42.2.4 蜂鳴器驅(qū)動電路42.3 軟件部分的設(shè)計52.3.1 主程序部分的設(shè)計52.3.2 中斷定時器的設(shè)置52.3.3 鬧鐘子函數(shù)62.3.4 計時函數(shù)72.3.5 鍵盤掃描函數(shù)82.3.6 時間和鬧鐘的設(shè)置8第3章 實驗結(jié)果10總 結(jié)11致 謝12參考文獻(xiàn)13附 錄14第
7、1章 方案的選擇和論證1.1 單片機型號的選擇通過對多種單片機性能的分析,最終認(rèn)為AT89C51是最理想的電子時鐘開發(fā)芯片。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器,器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,而且它與MCS-51兼容,且具有4K字節(jié)可編程序存儲器和1000次擦寫循環(huán),數(shù)據(jù)保留時間為10年,是最好的選擇。1.2 按鍵的選擇方案一:44矩陣式鍵盤。如果選擇此方案,那么在修改時鐘或
8、設(shè)置鬧鈴時間時就可以直接從鍵盤輸入,方便、快捷,但程序較為復(fù)雜。 方案二:獨立式按鍵。如果設(shè)置過多按鍵,將會占用較多I/O口,而且會給布線帶來不便,因此,此方案適用于按鍵較少的情況。如果選擇此方案,由于按鍵較少,在修改時間或設(shè)置鬧鈴時間時就不能直接輸入,只能通過加或減完成,稍為麻煩一些,但其程序簡單。 由于并不需要經(jīng)常修改時間和設(shè)置鬧鈴時間,而且方案二的程序簡單,按鍵少、成本低,因此,選擇方案二。1.3 顯示器的選擇方案一:液晶顯示器。如果選擇此方案,將會降低系統(tǒng)的功耗,這樣就可以用電池供電,便于攜帶。但液晶顯示器的驅(qū)動電路復(fù)雜,使用起來有一定的難度。 方案二:用數(shù)碼管作為顯示器。數(shù)碼管的驅(qū)動
9、電路簡單,使用方便,如果選擇了此方案,那么在夜間看時間的時候就不需要有光源,非常方便。其缺點是功耗較大。由于數(shù)碼管使用起來較為方便,在夜間看時間也很方便,因此我選擇了方案二。1.4 計時部分的選擇如果使用時鐘芯片,系統(tǒng)就不怕掉電且時間精確。但這種芯片比較貴,況且,設(shè)計本系統(tǒng)主要是為了學(xué)習(xí)單片機程序的編寫和調(diào)試以及設(shè)計硬件電路的一些方法,因此采用軟件的方法來計時而沒有采用價格較高的時鐘芯片。1.5 發(fā)音部分的設(shè)計通過三極管放大后驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。1.6 顯示器驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多
10、地使用分立元件,采用了一片74LS245來驅(qū)動段碼,用P3口作位碼驅(qū)動。1.7 電源的選擇如果是用電池供電,就比較方便攜帶,但是本系統(tǒng),采用了數(shù)碼管作為顯示器,功耗較大,需要經(jīng)常更換電池。況且,本系統(tǒng)的體積較大,即使使用電池供電也不能隨身攜帶,因此,用電池供電不大合適,所以用5V外部穩(wěn)壓電源來供電。第2章 數(shù)字電子鐘的設(shè)計原理和方法2.1 設(shè)計原理 系統(tǒng)原理圖圖2-1 系統(tǒng)原理圖2.2 硬件電路的設(shè)計2.2.1 AT89C51單片機簡介AT89C51是一款單片封裝的微控制器,適合于許多要求高集成度、低成本的場合??梢詽M足多方面的性能要求。AT89C51采用了高性能的處理器結(jié)構(gòu),指令執(zhí)行時間只需
11、2到4個時鐘周期。6倍于標(biāo)準(zhǔn)51單片機器件。AT89C51集成了許多系統(tǒng)級的功能,這樣可大大減少元件的數(shù)目和電路板面積并降低系統(tǒng)的成本。AT89C51單片機內(nèi)部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲器、并行I/O接口、定時器和串行I/O接口。圖2-2 AT89C51單片機2.2.2 鍵盤電路的設(shè)計鍵盤采用4個獨立按鍵配以4個上拉電阻實現(xiàn)對時鐘和鬧鐘的設(shè)定及修改。 圖2-3 獨立按鍵 圖2-4 鍵盤輸入電路2.2.3 段碼驅(qū)動電路由于通過數(shù)碼管公共及的電流較大且避免過多地使用分立元件,采用了一片74LS245來驅(qū)動段碼,用P3口作位碼驅(qū)動。圖2-
12、5 段碼驅(qū)動器74LS2452.2.4 蜂鳴器驅(qū)動電路發(fā)音部分是通過三極管放大驅(qū)動蜂鳴器工作,再通過軟件這時產(chǎn)生等時時間方波驅(qū)動蜂鳴器發(fā)出間斷嘀聲,這樣就可以省去硬件振蕩電路,降低成本。圖2-6 蜂鳴器驅(qū)動電路2.3 軟件部分的設(shè)計2.3.1 主程序部分的設(shè)計程序部分主要采用了程序結(jié)構(gòu)的模塊化設(shè)計,避免了一些函數(shù)的不必要的重復(fù)書寫,使程序變得單間易懂。程序在執(zhí)行時,主程序要須通過調(diào)用子函數(shù)就可完成相應(yīng)的功能 。主程序流程圖如下圖2-7。圖2-7 主程序流程圖2.3.2 中斷定時器的設(shè)置數(shù)字電子鐘設(shè)計中主要使用定時器T0中斷ET0,利用ET0中斷進(jìn)行計時時間的自增,從而實現(xiàn)計時功能。AT89C5
13、1有兩個通用定時/計數(shù)器。兩者均可配置為定時器或事件計數(shù)器。另外增加了定時器T0/T1,溢出時T0/T1腳自動翻轉(zhuǎn)的功能選項。 用作“定時器”功能時,每經(jīng)過一個機器周期,寄存器值加1。 用作“計數(shù)器”功能時,寄存器在對應(yīng)的外部輸入管腳T0/T1上每發(fā)生一次1到0的跳變時加1。使用該功能時,外部輸入每個機器周期被采樣一次。 圖2-8 定時器工作原理1設(shè)計中采用了中斷方式1作為定時中斷,其定時計數(shù)初值的設(shè)置可由以下公式計算得到,中斷服務(wù)流程圖如下圖2-9。X:計數(shù)初值 t:定時時間 :機器周期 1圖2-9 中斷服務(wù)流程圖2.3.3 鬧鐘子函數(shù)鬧鐘時間的判別主要是通過設(shè)定時間與實時時間對逐位對比確定
14、是否進(jìn)行鬧鈴。其工作流程圖如下圖2-10。圖2-10 鬧鈴判斷流程圖2.3.4 計時函數(shù)計時函數(shù)部分,主要是通過單片機定時中斷來計時,每產(chǎn)生一次中斷標(biāo)志位flag加1,當(dāng)flag加滿20次為1秒,然后把flag清0把秒存儲單元加1。然后再依次判斷分、時。其流程圖如下圖2-11。圖2-11 計時流程圖2.3.5 鍵盤掃描函數(shù)這些函數(shù)主要是判斷是否有按鍵按下,并根據(jù)相應(yīng)按鍵按下的情況調(diào)用相關(guān)函數(shù)執(zhí)行,其相關(guān)流程圖如下圖2-12。圖2-12 鍵盤掃描流程圖2.3.6 時間和鬧鐘的設(shè)置此部分主要是通過判斷cnt在不同值時通過調(diào)用加1、減1子函數(shù)對時間和鬧鐘的時、分、秒進(jìn)行設(shè)置。在鬧鐘設(shè)置時,判斷按鍵S
15、4按下情況后,進(jìn)行鬧鐘的開啟與關(guān)閉,相關(guān)流程圖如下圖2-13。圖2-13 時間/鬧鐘設(shè)置流程圖第3章 實驗結(jié)果此電子鬧鐘設(shè)計是利用Proteus仿真軟件進(jìn)行仿真,基本上實現(xiàn)了課程設(shè)計要求實現(xiàn)的功能。硬件部分設(shè)置了的三個按鍵S1、S2、S3、S4。當(dāng)按鍵S1第一次按下時,停止計時進(jìn)入鬧鐘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)
16、行時間和鬧鈴時間的時、分、秒進(jìn)行加減設(shè)置;當(dāng)按鍵S1第十三次按下時恢復(fù)到時間顯示功能。當(dāng)顯示的時間和定時設(shè)置的時間一致時,蜂鳴器發(fā)出等時間斷蜂鳴聲,鬧鈴時間設(shè)置為60秒。在各個鬧鐘設(shè)置階段,如果有S4按下,則相應(yīng)鬧鐘功能關(guān)閉或開啟;如在鬧鈴時有S4按下則提前停止鬧鈴。圖2-14 運行仿真圖總 結(jié)通過自己的不懈努力,我終于完成了畢業(yè)設(shè)計任務(wù)書上的任務(wù)要求。功能上基本達(dá)標(biāo):時鐘的顯示,調(diào)時功能、校時功能、鬧鈴功能、鬧鐘設(shè)置功能。其精確度完全可以滿足日常生活顯示時間的需要;調(diào)時功能,方便快捷;校時功能保證了時鐘準(zhǔn)確和可靠性,鬧鐘響鈴還有擴展成音樂鬧鐘的余地。硬件設(shè)施合乎要求,軟件設(shè)計可以配合硬件實現(xiàn)
17、要求的功能。但是由于時間比較短,前期設(shè)計出現(xiàn)部分不足:如位選閃爍功能不能實現(xiàn)、鬧鐘的開啟與關(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)盡量考慮
18、到人的因素,增強時鐘的實用性和操作性,為使用者提供切實的方便,營造一種舒適的生活氛圍。所以,在設(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í)理論有些東西是很難理解的,更談不上掌握。從這
19、次的課程設(shè)計中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實際,把我們所學(xué)的理論知識用到實際當(dāng)中,學(xué)習(xí)單機片機更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計中的最大收獲。致 謝經(jīng)過一周的實習(xí)調(diào)查收集數(shù)據(jù)資料、整理材料、寫作論文,我終于可以順利的完成論文了。 首先要感謝我的指導(dǎo)老師鄧?yán)蠋煟敢艺撐牡膶懽鞯姆较蚝图軜?gòu),并對本文初稿進(jìn)行仔細(xì)批閱,指正出其中不當(dāng)之處,使我有了思考的方向,他的循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪,他的嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng),將一直是我工作、學(xué)習(xí)中的榜樣。通過此次的論文,我學(xué)到了很多知識,在論文的寫作過程中,我不僅收集到了
20、論文所需的資料數(shù)據(jù),而且學(xué)到了很多書本上沒有的知識。并且由原先的被動的接受知識轉(zhuǎn)換為主動的尋求知識,我想這可以說是學(xué)習(xí)方法上的一個很大的突破。 在論文的寫作過程中也學(xué)到了做任何事情所要有的態(tài)度和心態(tài),首先做學(xué)問要一絲不茍,對于發(fā)展過程中出現(xiàn)的任何問題和偏差都不要輕視,要通過正確的途徑去解決,在做事情的過程中要有耐心和毅力,不要一遇到困難就打退堂鼓,只要堅持下去就可以找到思路去解決問題的??傊舜握撐牡膶懽鬟^程,我收獲了很多。再次感謝我的大學(xué)和所有幫助過我并給我鼓勵的老師和同學(xué),謝謝你們! 2016年6月 參考文獻(xiàn)1李全利、 遲榮強,單片機原理及接口技術(shù)M,北京:高等教育出版社,20042凌玉
21、華,單片機原理及應(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é)出版社,1998 8張靖武、周靈彬,單片機系統(tǒng)的Proteus設(shè)計與仿真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個數(shù)值uchar shi=12
23、,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ù) 校時 鬧1 鬧2 鬧3uint flag2;/ 蜂鳴 void delay(uchar i) / 延時函數(shù),用于動態(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; /定時時間為:50ms(65536-50000)/256 TL0=0x0b0; /(65536-50000)%256 ET0=1; /打開定時器 EA=1; /開總中斷 TR0=1; /啟動定時器 void display() / 顯示子函數(shù),用于顯示時間數(shù)值 uchar i,j; if(cnt!=10|wss=0) table10=miao%10; /分離秒的個位與十位 table11=miao/10; else table10=table11=11;if(cnt!=11|wss=0) table13=fen%10; /分離分的個位與
25、十位 table14=fen/10; else table13=table14=11;if(cnt!=12|wss=0) table16=shi%10; /分離時的個位與十位 table17=shi/10; else table16=table17=11; table12=table15=10; j=0x7f; for(i=0;i=7;i+) /從秒到時的掃描 P3=j; P0=tabletable1i; /顯示數(shù)值 delay(10); j=_cror_(j,1); /循環(huán)右移 void display1() / 顯示子函數(shù),用于顯示定時1時間 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ù),用于顯示定時2時間 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ù),用于顯示定時3時間數(shù)值 uchar i,j; if(alm3=0) if(cnt!=7|wss
29、=0) table40=miao3%10; /分離秒的個位與十位 table41=miao3/10; else table40=table41=11;if(cnt!=8|wss=0) table43=fen3%10; /分離分的個位與十位 table44=fen3/10;else table43=table44=11;if(cnt!=9|wss=0) table46=shi3%10; /分離時的個位與十位 table47=shi3/10;else table46=table47=11; else table40=table41=table43=table44=table46=table47=1
30、0; table42= table45=10; j=0x7f; /從秒到時的掃描 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()/ 鍵盤掃描子函數(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東建筑安全員C證考試題庫
- 2025年云南省安全員-B證(項目經(jīng)理)考試題庫
- 【課件】搜索引擎營銷的部分問題探討
- DB14T-紅地球葡萄主要病蟲害綜合防控技術(shù)規(guī)程編制說明
- 單位人力資源管理制度集合大全十篇
- 單位管理制度展示大全人員管理十篇
- 2024年土地登記代理人題庫附參考答案(鞏固)
- 2025年社會服務(wù)行業(yè)尋找彈性與韌性中的結(jié)構(gòu)機會
- 單位管理制度展示大合集人員管理十篇
- 比高矮比長短課件
- 箱變遷移工程施工方案
- 北師大版九年級數(shù)學(xué)下冊《圓的對稱性》評課稿
- 《遙感原理與應(yīng)用》期末考試試卷附答案
- 物流無人機垂直起降場選址與建設(shè)規(guī)范(征求意見稿)
- 工程分包管理制度
- 2023年湖南成人學(xué)位英語考試真題
- GB/T 9452-2023熱處理爐有效加熱區(qū)測定方法
- 肺炎支原體肺炎診治專家共識
- 藥物化學(xué)(第七版)(全套課件1364P)
- 能源中國(上海電力大學(xué))超星爾雅學(xué)習(xí)通網(wǎng)課章節(jié)測試答案
- 采購計劃流程圖
評論
0/150
提交評論