版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 任 務(wù) 書1設(shè)計(jì)目的:本設(shè)計(jì)包括確定控制任務(wù)、系統(tǒng)總體方案設(shè)計(jì)、硬件系統(tǒng)設(shè)計(jì)、軟件程序的設(shè)計(jì)等,以便使學(xué)生掌握有關(guān)單片機(jī)控制的設(shè)計(jì)思想和設(shè)計(jì)方法。為學(xué)生今后從事單片機(jī)控制系統(tǒng)開發(fā)工作打下基礎(chǔ)。學(xué)習(xí)proteus仿真軟件實(shí)現(xiàn)電路的仿真。2設(shè)計(jì)內(nèi)容和要求(包括原始數(shù)據(jù)、技術(shù)參數(shù)、條件、設(shè)計(jì)要求等): 本課程設(shè)計(jì)的基本要求是使學(xué)生全面掌握單片機(jī)控制系統(tǒng)設(shè)計(jì)的基本理論,熟悉掌握單片機(jī)的編程方法,用89c52系列單片機(jī)及六位數(shù)碼管顯示時(shí)、分、秒,以24小時(shí)計(jì)時(shí)方式運(yùn)行,能整點(diǎn)提醒(短蜂鳴,次數(shù)代表整點(diǎn)時(shí)間),使用按鍵開關(guān)可以實(shí)現(xiàn)時(shí)分調(diào)整、秒表/時(shí)鐘功能轉(zhuǎn)換、省電(關(guān)閉顯示)、定時(shí)設(shè)定提醒
2、(蜂鳴器)等功能。3設(shè)計(jì)工作任務(wù)及工作量的要求包括課程設(shè)計(jì)計(jì)算說明書(論文)、圖紙、實(shí)物樣品等:1根據(jù)題目要求的指標(biāo),通過查閱有關(guān)資料,確定系統(tǒng)設(shè)計(jì)方案,并設(shè)計(jì)其硬件電路圖。2畫出電路原理圖,分析主要模塊的功能及他們之間的數(shù)據(jù)傳輸和控制關(guān)系。3. 用proteus軟件繪制硬件電路圖并仿真。4. 軟件設(shè)計(jì)包括流程圖、用匯編語言或c語言對(duì)軟件進(jìn)行編譯,并能通過調(diào)試。 課 程 設(shè) 計(jì) 任 務(wù) 書4主要參考文獻(xiàn):1.孫涵芳.mcs-51/96系列 單片機(jī)原理及應(yīng)用(修訂版).北京航空航天大學(xué)出版社.1994 2.李朝青.單片機(jī)原理及接口技術(shù)(第3版).北京航空航天大學(xué)出版社.20055設(shè)計(jì)成果形式及要
3、求:1. 硬件電路圖2. 軟件流程圖和程序清單3. 編寫課程設(shè)計(jì)報(bào)告。6工作計(jì)劃及進(jìn)度:2014 6月2日 6月5日 查找資料,確定方案6月 6日 6月 8 日 設(shè)計(jì)硬件電路,繪制電路原理圖6月 9 日 6月11日 軟件設(shè)計(jì),并調(diào)試通過6月12日6月13日 編寫課程設(shè)計(jì)報(bào)告,答辯或成績(jī)考核負(fù)責(zé)人審查意見: 簽字: 年 月 日目錄1 引言11.1 設(shè)計(jì)任務(wù)與要求11.2實(shí)用價(jià)值與理論意義12 設(shè)計(jì)思路與過程22.1 總體設(shè)計(jì)思路22.2 硬件設(shè)計(jì)22.3 軟件設(shè)計(jì)63 調(diào)試結(jié)果與分析93.1 仿真調(diào)試93.2 硬件調(diào)試94 結(jié)論10附錄a:?jiǎn)纹瑱C(jī)時(shí)鐘實(shí)物圖11附錄b:?jiǎn)纹瑱C(jī)程序源碼12附錄c:p
4、cb圖36參考文獻(xiàn)37中北大學(xué)單片機(jī)課程設(shè)計(jì)說明書1 引言1.1 設(shè)計(jì)任務(wù)與要求設(shè)計(jì)一個(gè)基于89c52系列單片機(jī)控制的時(shí)鐘,實(shí)現(xiàn)以下功能:1.1.1 顯示實(shí)時(shí)單片機(jī)控制六位數(shù)碼管顯示時(shí)、分、秒,以24小時(shí)計(jì)時(shí)方式運(yùn)行。1.1.2 整點(diǎn)報(bào)時(shí)單片機(jī)控制蜂鳴器在整點(diǎn)短蜂鳴,次數(shù)代表整點(diǎn)時(shí)間。1.1.3 時(shí)間調(diào)整使用按鍵開關(guān)可以實(shí)現(xiàn)時(shí)分調(diào)整。1.1.4 秒表功能使用按鍵開關(guān)可以實(shí)現(xiàn)秒表/時(shí)鐘功能轉(zhuǎn)換。1.1.5 節(jié)能模式使用按鍵開關(guān)可以實(shí)現(xiàn)正常工作/節(jié)能模式(關(guān)閉顯示)轉(zhuǎn)換。1.1.6鬧鐘功能使用按鍵開關(guān)可以設(shè)定鬧鐘時(shí)間已經(jīng)鬧鐘開關(guān)模式。1.2實(shí)用價(jià)值與理論意義1.2.1 實(shí)用價(jià)值數(shù)字鐘能長(zhǎng)期、連續(xù)、
5、可靠、穩(wěn)定地下作;同時(shí)還具有體積小,功耗低等特點(diǎn),便于攜帶,使用方便。同時(shí)由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度遠(yuǎn)遠(yuǎn)超過老式鐘表.鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能,數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)“時(shí)、分、秒”數(shù)字顯示的計(jì)時(shí)裝置。使得電子時(shí)鐘廣泛應(yīng)用于個(gè)人家庭、車站、碼頭、辦公室等場(chǎng)所的各個(gè)角落,已成為人們?nèi)粘I捴胁豢扇鄙俚谋匦杵贰?.2.2 理論意義通過本課程設(shè)計(jì),可以掌握單片機(jī)控制系統(tǒng)設(shè)計(jì)的基本理論以及單片機(jī)的編程方法。熟悉掌握有關(guān)單片機(jī)控制的設(shè)計(jì)思想和設(shè)計(jì)方法。2 設(shè)計(jì)思路與過程2.1 總體設(shè)計(jì)思路單片機(jī)時(shí)鐘運(yùn)行流程如
6、圖2-1所示,根據(jù)該流程圖,把機(jī)器人劃分成幾部分分別進(jìn)行設(shè)計(jì)。圖2-1單片機(jī)時(shí)鐘運(yùn)行流程圖2.2 硬件設(shè)計(jì)2.2.1 單片機(jī)最小系統(tǒng)根據(jù)設(shè)計(jì)要求,選用stc89c52rc單片機(jī)。stc89c52是stc公司生產(chǎn)的一種低功耗、高性能cmos8位微控制器,具有8k在系統(tǒng)可編程flash存儲(chǔ)器。stc89c52使用經(jīng)典的mcs-51內(nèi)核,但做了很多的改進(jìn)使得芯片具有傳統(tǒng)51單片機(jī)不具備的功能。在單芯片上,擁有靈巧的8位cpu和在系統(tǒng)可編程flash,使得stc89c52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能:8k字節(jié)flash,512字節(jié)ram,32 位i/o 口線
7、,看門狗定時(shí)器,內(nèi)置4kb eeprom,max810復(fù)位電路,3個(gè)16 位定時(shí)器/計(jì)數(shù)器,4個(gè)外部中斷,一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)51的5向量2級(jí)中斷結(jié)構(gòu)),全雙工串行口。另外 stc89c52 可降至0hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。最高運(yùn)作頻率35mhz,6t/12t可選。stc89c52rc單片機(jī)最小系統(tǒng)如圖2-2所示,包括電源、晶振、單片機(jī)、復(fù)位電路和上拉電阻。圖2-2單片機(jī)最小系統(tǒng)2.2.
8、2 按鍵電路設(shè)計(jì)stc89c52rc單片機(jī)擁有兩個(gè)外部中斷輸入端口,外部中斷0和外部中斷1分別對(duì)應(yīng)單片機(jī)的p3.2口和p3.3口。本系統(tǒng)的設(shè)計(jì)思路是按鍵按下時(shí)觸發(fā)單片機(jī)中斷,進(jìn)行實(shí)時(shí)處理,由于用到了八個(gè)按鍵,單片機(jī)只擁有兩個(gè)外部中斷輸入端口,電路中使用了一片74ls21芯片,74ls21是四輸入雙與門芯片,真值表如表2-1所示,按鍵電路如圖2-3所示,當(dāng)有按鍵按下時(shí),觸發(fā)單片機(jī)中斷,然后單片機(jī)掃描i/o口,判斷是哪個(gè)按鍵按下,進(jìn)行相應(yīng)的處理。表2-1 74ls21真值表inputoutputya b c d h h h hl l x x x l x l x xl x x l xl x x x
9、ll,圖2-3按鍵電路2.2.3 數(shù)碼管電路設(shè)計(jì)led數(shù)碼管(led segment displays)是由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來表示。如圖2-4所示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。led數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個(gè)發(fā)光
10、二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8v左右,電流不超過30ma。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用led數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f。本系統(tǒng)采用了一塊四位八段和一塊二位八段共陰數(shù)碼管,采用74hc573分時(shí)輸出位碼和段碼,驅(qū)動(dòng)能力最大35ma,可以勝任驅(qū)動(dòng)數(shù)碼管。74hc573真值表如圖2-5所示。數(shù)碼管電路如圖2-6所示。圖2-4 數(shù)碼管 圖2-5 74hc573真值表 圖2-6 數(shù)碼管電
11、路2.2.4 蜂鳴器電路設(shè)計(jì)由于蜂鳴器的工作電流一般比較大,以至于單片機(jī)的i/o口是無法直接驅(qū)動(dòng)的,所以要利用放大電路來驅(qū)動(dòng),一般使用三極管來放大電流就可以了。蜂鳴器電路如圖2-7所示。圖2-7 蜂鳴器電路2.2.5 電源設(shè)計(jì)系統(tǒng)采用3節(jié)額定電壓是1.5v的干電池供電,3節(jié)電池串聯(lián)后,實(shí)測(cè)電壓4.9v,由于本系統(tǒng)的額定電壓是5v,所以可以勝任為本系統(tǒng)供電。2.3 軟件設(shè)計(jì)2.3.1 單片機(jī)編程軟件keil c51是美國keil software公司出品的51系列兼容單片機(jī)c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。keil提供了包括c編
12、譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uvision)將這些部分組合在一起。運(yùn)行keil軟件需要win98、nt、win2000、winxp等操作系統(tǒng)。如果你使用c語言編程,那么keil幾乎就是你的不二之選,即使不使用c語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。2009年2月發(fā)布keil uvision4,keil uvision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺(tái)監(jiān)視器,并提供了視覺上的表面對(duì)窗口位置的完全控制的任何地方。新的用戶界面可以更好地利用屏幕空間和更有效地組織多個(gè)窗口
13、,提供一個(gè)整潔,高效的環(huán)境來開發(fā)應(yīng)用程序。新版本支持更多最新的arm芯片,還添加了一些其他新功能。界面如圖2-8所示。圖2-8 keil uvision4界面2.3.2 單片機(jī)仿真軟件proteus軟件是英國lab center electronics公司出版的eda工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它eda工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。2.3.3 單片機(jī)程序流程圖stc89c52rc單片機(jī)擁有
14、兩個(gè)16位定時(shí)/計(jì)數(shù)器,本系統(tǒng)用定時(shí)器0產(chǎn)生秒信號(hào),裝入初值15536,則定時(shí)器溢出時(shí)為50ms,每溢出20次,產(chǎn)生一個(gè)秒信號(hào),定時(shí)器中斷服務(wù)函數(shù)流程圖如圖2-9所示。圖2-9 時(shí)間算法流程圖3 調(diào)試結(jié)果與分析3.1 仿真調(diào)試在proteus中連接如圖3-1所示電路,把編譯正確的程序進(jìn)行仿真運(yùn)行,經(jīng)過仿真分析,系統(tǒng)實(shí)現(xiàn)了全部的設(shè)計(jì)要求。圖3-1 仿真調(diào)試圖3.2 硬件調(diào)試按照如圖3-1所示電路設(shè)計(jì)并制作pcb,焊接元器件,然后把程序燒寫進(jìn)單片機(jī)里,進(jìn)行調(diào)試,經(jīng)過調(diào)試,系統(tǒng)實(shí)現(xiàn)了全部的設(shè)計(jì)要求。系統(tǒng)使用指南如表3-1所示。表3-1 使用指南按鍵編號(hào)功能按鍵編號(hào)功能1打開/關(guān)閉鬧鐘5時(shí)加1/秒表開
15、始/秒表暫停2鬧鐘時(shí)間/實(shí)時(shí)切換6時(shí)減1/秒表復(fù)位3秒表/實(shí)時(shí)切換7分加14開啟/關(guān)閉節(jié)能模式8分減1 4 結(jié)論 經(jīng)過兩周的單片機(jī)課程設(shè)計(jì),在自己的努力和老師的幫助下,成功完成了設(shè)計(jì)任務(wù)單片機(jī)時(shí)鐘。老師為我們提供了課程設(shè)計(jì)所需的儀器、工具和元器件,然后自己一步一步進(jìn)行設(shè)計(jì):首先,弄清楚了設(shè)計(jì)任務(wù),設(shè)計(jì)一個(gè)單片機(jī)時(shí)鐘,實(shí)現(xiàn)6個(gè)功能;然后,經(jīng)過分析研究,提出了總體設(shè)計(jì)思路,分模塊進(jìn)行設(shè)計(jì),繪制原理圖,畫出程序流程圖,編寫單片機(jī)程序,在仿真軟件里進(jìn)行仿真。仿真正確后,制作pcb,焊接元器件,燒寫程序,再次進(jìn)行調(diào)試。最后,系統(tǒng)調(diào)試成功。附錄a:?jiǎn)纹瑱C(jī)時(shí)鐘實(shí)物圖附錄b:?jiǎn)纹瑱C(jī)程序源碼/*file nam
16、e :main.cauthor :guojianxindate :05/06/2014description :數(shù)字鐘主程序,首先初始化變量、i/o口、外設(shè), 然后單片機(jī)進(jìn)入無條件循環(huán),若中斷觸發(fā),則進(jìn)行實(shí)時(shí)處理。history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :05/06/2014 description :*/ start/*包含頭文件*/#include #include #include #include #include /*主程序入口參數(shù):無;返回值:
17、無*/void main(void)timer_init( );/定時(shí)器初始化keyboard_init( );/按鍵初始化display_init( );/數(shù)碼管顯示初始化en_bell = 1;/關(guān)閉蜂鳴器while(1)/無條件循環(huán)display_updata( );/數(shù)碼管顯示更新/*file name :delay.hauthor :guojianxindate :05/06/2014description :數(shù)字鐘頭文件,申明delay.c中的全局函數(shù)、全局變量history : 1. author :guojianxin date :05/06/2014 description
18、: 2. author :guojianxin date :05/06/2014 description :*/ start#ifndef _delay_h_ /作用:防止delay.h被重復(fù)引用#define _delay_h_/*us延時(shí)函數(shù)*/extern void delayus(unsigned char t); /全局函數(shù)申明/*ms延時(shí)函數(shù)*/extern void delayms(unsigned char t); /全局函數(shù)申明#endif/ no more/*file name :delay.cauthor :guojianxindate :05/06/2014descri
19、ption :數(shù)字鐘簡(jiǎn)單延時(shí)函數(shù)history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :05/06/2014 description :*/ start/*包含頭文件*/#include #include #include #include #include /*大致延時(shí)2us*/void delayus(unsigned char t) while(-t);/*大致延時(shí)1ms*/void delayms(unsigned char t) while(t-) delay
20、us(245);delayus(245);/*file name :display.hauthor :guojianxindate :05/06/2014description :數(shù)字鐘頭文件,申明display.c中的全局函數(shù)、全局變量history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :05/06/2014 description :*/ start#ifndef _display_h_ /作用:防止display.h被重復(fù)引用#define _display_h
21、_sbit latch1 = p07;/數(shù)碼管段鎖存sbit latch2 = p06;/數(shù)碼管位鎖存extern bit en_dis,open_alarm;/全局變量申明extern unsigned char en_play;/*數(shù)碼管顯示初始化程序*/extern void display_init(void);/全局函數(shù)申明/*數(shù)碼管顯示更新程序*/extern void display_updata(void);/全局函數(shù)申明#endif/ no more/*file name :display.cauthor :guojianxindate :05/06/2014descript
22、ion :數(shù)字鐘數(shù)碼管顯示程序,通過兩個(gè)74hc573和兩個(gè)片選信號(hào), 分時(shí)輸出段碼和位碼。history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :05/06/2014 description :*/ start/*包含頭文件*/#include #include #include #include #include /*定義常量*/unsigned char code table_duan10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
23、0x07,0x7f,0x6f;/顯示段碼值09unsigned char code table_wei6 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼/*定義變量*/unsigned char table_dis6 = 0x00,0x00,0x00,0x00,0x00,0x00;unsigned char j,en_play;/數(shù)碼管位計(jì)數(shù)、顯示模式標(biāo)志bit en_dis;/節(jié)能模式標(biāo)志bit open_alarm;/鬧鐘打開標(biāo)志/*數(shù)碼管顯示初始化程序入口參數(shù):無;返回值:無*/void display_init(void)j = 0;
24、s = 0;m = 0;h = 0;s_1 = 0;m_1 = 0;h_1 = 0;s_2 = 0;m_2 = 0;h_2 = 0;open_alarm = 0;en_dis = 1;en_play = 0x00;count_bell = 0;/*數(shù)碼管段碼計(jì)算程序入口參數(shù):無;返回值:無*/void display_actual(void) /實(shí)時(shí)table_dis5 = s%10;table_dis4 = s/10;table_dis3 = m%10;table_dis2 = m/10;table_dis1 = h%10;table_dis0 = h/10;void display_sto
25、pwatch(void) /秒表table_dis5 = s_1%10;table_dis4 = s_1/10;table_dis3 = m_1%10;table_dis2 = m_1/10;table_dis1 = h_1%10;table_dis0 = h_1/10;void display_alarm(void) /鬧鐘table_dis5 = s_2%10;table_dis4 = s_2/10;table_dis3 = m_2%10;table_dis2 = m_2/10;table_dis1 = h_2%10;table_dis0 = h_2/10;/*數(shù)碼管顯示更新程序入口參數(shù):
26、無;返回值:無*/void display_updata(void)if(en_dis)switch(en_play)/顯示模式選擇case 0x00:display_actual( );break;/實(shí)時(shí)case 0x01:display_stopwatch( );break;/秒表case 0x02:display_alarm( );break;/鬧鐘default:;break;for(j = 0;j 6;j+)p2 = table_weij; /取位碼 latch2=1; /位鎖存 latch2=0;if(j = 1)|(j = 3)p2 = table_duantable_disj|
27、0x80; /取段碼else p2 = table_duantable_disj; /取段碼 latch1=1; /段鎖存 latch1=0;delayms(2);elsep2 = 0xff;latch1 = 1; latch2 = 1;/*file name :keyboard.hauthor :guojianxindate :05/06/2014description :數(shù)字鐘頭文件,申明keyboard.c中的全局函數(shù)、全局變量history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojian
28、xin date :05/06/2014 description :*/ start#ifndef _keyboard_h_ /作用:防止keyboard.h被重復(fù)引用#define _keyboard_h_/*按鍵初始化程序*/extern void keyboard_init(void);/全局函數(shù)申明#endif/ no more/*file name :keyboard.cauthor :guojianxindate :05/06/2014description :數(shù)字鐘按鍵處理函數(shù) history : 1. author :guojianxin date :05/06/2014 de
29、scription : 2. author :guojianxin date :05/06/2014 description :*/ start/*包含頭文件*/#include #include #include #include #include /*按鍵初始化程序入口參數(shù):無;返回值:無*/void keyboard_init(void)ea = 1;ie0 = 0;/外部中斷0清零it0 = 1;/下降沿觸發(fā)ex0 = 1;/外部中斷0允許ie1 = 0;/外部中斷1清零it1 = 1;/下降沿觸發(fā)ex1 = 1;/外部中斷1允許void open_stopwatch(void) /秒
30、表開始或暫停工作 et1 = et1;/開定時(shí)器1中斷tr1 = tr1;/允許定時(shí)器1工作tf1 = 0;/定時(shí)器1溢出標(biāo)志清零void res_stopwatch(void) /秒表復(fù)位et1 = 0;/關(guān)定時(shí)器1中斷tr1 = 0;/禁止定時(shí)器1工作tf1 = 0;/定時(shí)器1溢出標(biāo)志清零s_1 = 0;m_1 = 0;h_1 = 0;/*外部中斷0中斷服務(wù)程序*/void int_0(void) interrupt 0delayms(15);/延時(shí)去抖if(en_play = 0x00) /實(shí)時(shí)switch(p1&0xf0)case 0xe0:if(h 0)h-;break;/時(shí)減1ca
31、se 0xb0:if(m 0)m-;break;/分減1default:;break;if(en_play = 0x01) /秒表switch(p1&0xf0)case 0xe0:open_stopwatch( );break;/秒表開始或暫停工作case 0xd0:res_stopwatch( );break;/秒表復(fù)位default:;break;if(en_play = 0x02)/鬧鐘設(shè)定switch(p1&0xf0)case 0xe0:if(h_2 0)h_2-;break;/時(shí)減1case 0xb0:if(m_2 0)m_2-;break;/分減1default:;break;ie
32、0 = 0;/中斷清零void en_stopwatch(void)/秒表/實(shí)時(shí)切換if(en_play = 0x01)en_play = 0x00;elseen_play = 0x01;void en_alarm(void) /鬧鐘/實(shí)時(shí)切換if(en_play = 0x02)en_play = 0x00;elseen_play = 0x02;void sel_alarm(void) /鬧鐘/實(shí)時(shí)切換open_alarm = open_alarm;if(open_alarm)s_2 = 0x01;elses_2 = 0x00;en_bell = 1;/關(guān)閉蜂鳴器void int_1(void
33、) interrupt 2delayms(15);/延時(shí)去抖switch(p1&0x0f)case 0x0e:en_dis = en_dis;break;/打開或關(guān)閉節(jié)能模式case 0x0d:en_stopwatch( );break;/秒表/實(shí)時(shí)切換case 0x0b:en_alarm( );break;/鬧鐘/實(shí)時(shí)切換case 0x07:sel_alarm( );break;/打開或關(guān)閉鬧鐘default:;break;ie1 = 0;/中斷清零/*file name :timer.hauthor :guojianxindate :05/06/2014description :數(shù)字鐘頭文
34、件,申明timer.c中的全局函數(shù)、全局變量history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :05/06/2014 description :*/ start#ifndef _timer_h_ /作用:防止timer.h被重復(fù)引用#define _timer_h_sbit en_bell = p35;/蜂鳴器控制端口/*定時(shí)器初始化程序*/extern void timer_init(void);/全局函數(shù)申明extern unsigned char s,m,h,count_bell;/全局變量申明extern unsigned char s_1,m_1,h_1;extern unsigned char s_2,m_2,h_2;#endif/ no more/*file name :timer.cauthor :guojianxindate :05/06/2014description :數(shù)字鐘定時(shí)器程序,history : 1. author :guojianxin date :05/06/2014 description : 2. author :guojianxin date :0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024工交企業(yè)流動(dòng)資借款合同范本
- 2024至2030年油墨專用砂面粉項(xiàng)目投資價(jià)值分析報(bào)告
- 2024至2030年中國防盜門配件數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024年磺胺脒片項(xiàng)目可行性研究報(bào)告
- 2024至2030年中國高檔禮品筆行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國酚線磷行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國軟連接磁耦合攪拌器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024融資租賃合同范本模板
- 2024個(gè)人車輛抵押借款合同模板
- 2024個(gè)人抵押借款合同書
- ?;诽胤N作業(yè)人員安全操作高溫液體操作要點(diǎn)
- 二級(jí)公立醫(yī)院績(jī)效考核三級(jí)手術(shù)目錄(2020版)
- 《我健康我快樂》心理健康
- 急診科的現(xiàn)狀與發(fā)展趨勢(shì)
- 肝性腦病的護(hù)理個(gè)案課件
- 2024年四川航空股份有限公司招聘筆試參考題庫含答案解析
- 2021中國靜脈血栓栓塞癥防治抗凝藥物的選用與藥學(xué)監(jiān)護(hù)指南(2021版)解讀
- 讀后續(xù)寫個(gè)人成長(zhǎng)類+My+mother's+gift+講義 高考英語作文復(fù)習(xí)專項(xiàng)
- 【高中語文】《念奴嬌+赤壁懷古》課件+統(tǒng)編版+必修上冊(cè)
- 浙江省寧波市慈溪市掌起初級(jí)中學(xué)2023-2024學(xué)年八年級(jí)上學(xué)期期中科學(xué)試卷
- 鋼結(jié)構(gòu)主體驗(yàn)收記錄
評(píng)論
0/150
提交評(píng)論