單片機(jī)時(shí)鐘課程設(shè)計(jì)報(bào)告書_第1頁(yè)
單片機(jī)時(shí)鐘課程設(shè)計(jì)報(bào)告書_第2頁(yè)
單片機(jī)時(shí)鐘課程設(shè)計(jì)報(bào)告書_第3頁(yè)
單片機(jī)時(shí)鐘課程設(shè)計(jì)報(bào)告書_第4頁(yè)
單片機(jī)時(shí)鐘課程設(shè)計(jì)報(bào)告書_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課程設(shè)計(jì)作業(yè)書1 .設(shè)計(jì)目的:本設(shè)計(jì)包括確定控制任務(wù)、整體系統(tǒng)設(shè)計(jì)、硬件系統(tǒng)設(shè)計(jì)、軟件程序設(shè)計(jì)等,以使學(xué)生掌握與單片機(jī)控制相關(guān)的設(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ù)碼管進(jìn)行顯示時(shí)分秒,以24小時(shí)計(jì)時(shí)模式運(yùn)行,并能點(diǎn)提醒(短嗶聲,次數(shù)代表小時(shí)上的小時(shí)),使用鑰匙開關(guān)實(shí)現(xiàn)時(shí)間和分鐘的調(diào)整,秒表/時(shí)鐘功能轉(zhuǎn)換、省電(關(guān)閉顯示)、定時(shí)設(shè)置提醒(蜂鳴器)等

2、功能。3 .設(shè)計(jì)任務(wù)和工作量要求(包括課程設(shè)計(jì)計(jì)算說(shuō)明(論文) 、圖紙、實(shí)物樣品等):1 .根據(jù)課題要求的指標(biāo),通過(guò)查閱相關(guān)資料,確定系統(tǒng)設(shè)計(jì)方案,設(shè)計(jì)其硬件電路圖。2 .畫出電路原理圖,分析主要模塊的功能以及它們之間的數(shù)據(jù)傳輸和控制關(guān)系。3. 用Proteus軟件繪制并仿真硬件電路圖。4. 軟件設(shè)計(jì)包括流程圖、匯編語(yǔ)言或C語(yǔ)言編譯軟件、調(diào)試。課程設(shè)計(jì)作業(yè)書4 .主要參考:1.韓方。 MCS-51/96系列單片機(jī)原理與應(yīng)用(修訂版)。航空航天大學(xué)。 1994 2.潮清。單片機(jī)原理與接口技術(shù)(第3版)。航空航天大學(xué)。 2005年5 .設(shè)計(jì)成果表格及要求:一、硬件電路圖2. 軟件流程圖和程序清單3

3、. 撰寫課程設(shè)計(jì)報(bào)告。6 .工作計(jì)劃及進(jìn)展:年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ī)?cè)u(píng)估負(fù)責(zé)人審核意見:簽名:年月日目錄 TOC o 1-3 h z u HYPERLINK l _Toc390549324 1簡(jiǎn)介 PAGEREF _Toc390549324 h 1 HYPERLINK l _Toc390549325 1.1設(shè)計(jì)任務(wù)及要求 PAGEREF _Toc390549325 h 1 HYPERLINK l _Toc390549326 1.2實(shí)用價(jià)值和理

4、論意義 PAGEREF _Toc390549326 h 1 HYPERLINK l _Toc390549327 2設(shè)計(jì)思路和流程 PAGEREF _Toc390549327 h 2 HYPERLINK l _Toc390549328 2.1整體設(shè)計(jì)思路 PAGEREF _Toc390549328 h 2 HYPERLINK l _Toc390549329 2.2硬件設(shè)計(jì) PAGEREF _Toc390549329 h 2 HYPERLINK l _Toc390549330 2.3軟件設(shè)計(jì) PAGEREF _Toc390549330 h 6 HYPERLINK l _Toc390549331 3

5、調(diào)試結(jié)果與分析 PAGEREF _Toc390549331 h 9 HYPERLINK l _Toc390549332 3.1仿真調(diào)試 PAGEREF _Toc390549332 h 9 HYPERLINK l _Toc390549333 3.2硬件調(diào)試 PAGEREF _Toc390549333 h 9 HYPERLINK l _Toc390549334 4結(jié)論 PAGEREF _Toc390549334 h 10 HYPERLINK l _Toc390549335 附錄A:?jiǎn)纹瑱C(jī)時(shí)鐘圖 PAGEREF _Toc390549335 h 11 HYPERLINK l _Toc390549336

6、 附錄B :?jiǎn)纹瑱C(jī)程序源代碼 PAGEREF _Toc390549336 h 12 HYPERLINK l _Toc390549337 附錄C : PCB圖 PAGEREF _Toc390549337 h 36 HYPERLINK l _Toc390549338 參考文獻(xiàn) PAGEREF _Toc390549338 h 371簡(jiǎn)介1.1設(shè)計(jì)任務(wù)及要求設(shè)計(jì)基于89C52系列單片機(jī)控制的時(shí)鐘,實(shí)現(xiàn)以下功能:1.1.1實(shí)時(shí)顯示單片機(jī)控制六位數(shù)碼管顯示時(shí)分秒,以24小時(shí)計(jì)時(shí)方式運(yùn)行。1.1.2準(zhǔn)時(shí)報(bào)告單片機(jī)控制蜂鳴器在整點(diǎn)上短時(shí)間鳴叫,次數(shù)代表整點(diǎn)時(shí)間。1.1.3時(shí)間調(diào)整使用鑰匙開關(guān)可以進(jìn)行時(shí)分調(diào)整。

7、1.1.4秒表功能秒表/時(shí)鐘功能可以使用鑰匙開關(guān)進(jìn)行切換。1.1.5節(jié)能模式使用按鍵開關(guān)可以實(shí)現(xiàn)正常操作/節(jié)能模式(顯示關(guān)閉)轉(zhuǎn)換。1.1.6鬧鐘功能使用鑰匙開關(guān)設(shè)置鬧鈴時(shí)間和鬧鈴切換方式。1.2實(shí)用價(jià)值和理論意義1.2.1實(shí)用價(jià)值數(shù)字時(shí)鐘可長(zhǎng)時(shí)間連續(xù)、可靠、穩(wěn)定運(yùn)行;同時(shí)還具有體積小、功耗低、攜帶方便、使用方便等特點(diǎn)。同時(shí),由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,數(shù)字時(shí)鐘的精度遠(yuǎn)遠(yuǎn)超過(guò)老式時(shí)鐘。鐘表的數(shù)字化給人們的生產(chǎn)生活帶來(lái)了極大的便利,極大地?cái)U(kuò)展了鐘表原有的計(jì)時(shí)功能。數(shù)字時(shí)鐘是利用數(shù)字電路實(shí)現(xiàn)“時(shí)、分、秒”數(shù)字顯示的計(jì)時(shí)裝置。電子鐘廣泛應(yīng)用于個(gè)人家庭、車站、碼頭、辦公室等各個(gè)角

8、落,已成為人們?nèi)粘I钪胁豢扇鄙俚谋匦杵贰?.2.2理論意義通過(guò)本課程的設(shè)計(jì),您可以掌握單片機(jī)控制系統(tǒng)設(shè)計(jì)的基本理論和單片機(jī)的編程方法。熟悉單片機(jī)控制的設(shè)計(jì)思路和設(shè)計(jì)方法。2設(shè)計(jì)思路和過(guò)程2.1整體設(shè)計(jì)思路單片機(jī)時(shí)鐘的運(yùn)行流程如圖 2-1 所示。根據(jù)流程圖,機(jī)器人分為幾個(gè)部分進(jìn)行設(shè)計(jì)。圖 2-1單片機(jī)時(shí)鐘操作流程圖2.2硬件設(shè)計(jì)2.2.1微控制器最小系統(tǒng)根據(jù)設(shè)計(jì)要求,選用STC89C52RC單片機(jī)。 STC89C52是STC公司生產(chǎn)的一款低功耗、高性能CMOS 8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。 STC89C52采用經(jīng)典的MCS-51內(nèi)核,但做了很多改進(jìn),使芯片具有傳統(tǒng)51單

9、片機(jī)所不具備的功能。 STC89C52 在單芯片上具有智能 8 位 CPU 和系統(tǒng)內(nèi)可編程閃存,可為許多嵌入式控制應(yīng)用系統(tǒng)提供高度靈活和超高效的解決方案。具有以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash、512字節(jié)RAM、32位I/O線、 HYPERLINK :/baike.baidu /view/1313309.htm t _blank 看門狗定時(shí)器、4KB EEPROM、MAX810復(fù)位電路、3個(gè)16位 HYPERLINK :/baike.baidu /view/281961.htm t _blank 定時(shí)器/計(jì)數(shù)器、4個(gè)外部中斷、一個(gè)7向量4級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng)的51向量2級(jí)中斷結(jié)構(gòu)),全雙工 HY

10、PERLINK :/baike.baidu /view/1060187.htm t _blank 串口。此外,STC89C52 可以降低到 0Hz 靜態(tài)邏輯操作,并支持兩種軟件可選的省電模式。在空閑模式下,CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串行端口和中斷繼續(xù)工作。在掉電保護(hù)模式下,RAM容量被保存,振蕩器被凍結(jié),單片機(jī)的所有工作都停止,直到下一次中斷或硬件復(fù)位。最高工作頻率35MHz,6T/12T可選。STC89C52RC單片機(jī)的最小系統(tǒng)如圖2-2所示,包括電源、晶振、單片機(jī)、復(fù)位電路和上拉電阻。圖 2-2微控制器最小系統(tǒng)2.2.2按鍵電路設(shè)計(jì)STC89C52RC單片機(jī)有兩個(gè)外部

11、中斷輸入端口,外部中斷0和外部中斷1分別對(duì)應(yīng)單片機(jī)的P3.2端口和P3.3端口。本系統(tǒng)的設(shè)計(jì)思路是在按鍵按下時(shí)觸發(fā)MCU中斷,進(jìn)行實(shí)時(shí)處理。由于使用了8個(gè)按鍵,所以單片機(jī)只有兩個(gè)外部中斷輸入口,電路中使用了74LS21芯片。 74LS21 是一個(gè)四輸入雙與門。芯片、真值表如表2-1所示,按鍵電路如圖2-3所示。當(dāng)一個(gè)按鈕被按下時(shí),MCU觸發(fā)中斷,然后MCU掃描I/O口來(lái)判斷哪個(gè)按鈕被按下。相應(yīng)地處理。表2-1 74LS21真值表輸入輸出是A B C D呼呼呼大號(hào)LXXX大號(hào)XXXXX大號(hào)XXLX大號(hào)XXXL大號(hào),圖 2-3按鈕電路2.2.3數(shù)碼管電路設(shè)計(jì)LED數(shù)碼管(LED Segment D

12、isplays)是由多個(gè)發(fā)光二極管封裝在一起形成“8”字形組成的器件。零件中的引線已經(jīng)連接好,只需要畫出它們的筆劃和公共電極。數(shù)碼管實(shí)際上是由7個(gè)發(fā)光管組成的8字形,加上小數(shù)點(diǎn)為8。這些段分別用字母a、b、c、d、e、f、g、dp表示.如圖 2-4 所示。當(dāng)電壓施加到數(shù)碼管的特定部分時(shí),這些特定部分會(huì)亮起,形成我們眼睛看到的文字。例如,如果顯示“2”,則應(yīng)為 a 亮 b 亮 g 亮 e 亮 d 亮 f 不亮 c 不亮 dp 不亮。 LED數(shù)碼管分為普通高亮和超高亮,也有0.5寸和1寸等不同尺寸。小型數(shù)碼管的顯示筆劃通常由一個(gè)發(fā)光二極管組成,而大型數(shù)碼管則由兩個(gè)或多個(gè)發(fā)光二極管組成。一般單個(gè)發(fā)光

13、二極管的管壓降在1.8V左右,電流不超過(guò)30mA。發(fā)光二極管的陽(yáng)極接電源的正極,稱為共陽(yáng)極數(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ù)碼管電路2.2.4蜂鳴器電路設(shè)計(jì)由于蜂鳴器的工作電流一般較大,單片機(jī)的I/O口不能直接驅(qū)動(dòng),需要用放大電路

14、來(lái)驅(qū)動(dòng)。一般采用三極管來(lái)放大電流。蜂鳴器電路如圖 2-7 所示。圖 2-7蜂鳴器電路2.2.5電源設(shè)計(jì)該系統(tǒng)由三節(jié)額定電壓為1.5V的干電池供電。三節(jié)電池串聯(lián)后,測(cè)得電壓為4.9V。由于本系統(tǒng)的額定電壓為5V,可以勝任給系統(tǒng)供電。2.3軟件設(shè)計(jì)2.3.1單片機(jī)編程軟件Keil C51是美國(guó)Keil Software公司出品的兼容51系列的單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng)。與匯編相比,C語(yǔ)言在功能、結(jié)構(gòu)、可讀性和可維護(hù)性等方面優(yōu)勢(shì)明顯,易于學(xué)習(xí)和使用。 . Keil 提供完整的開發(fā)解決方案,包括 C 編譯器、宏程序集、鏈接器、庫(kù)管理和強(qiáng)大的仿真器調(diào)試器,它們通過(guò)集成開發(fā)環(huán)境 (uVision) 組合在一

15、起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用 C 語(yǔ)言編程,那么 Keil 幾乎是你的最佳選擇。即使你不使用C語(yǔ)言,只使用匯編語(yǔ)言進(jìn)行編程,其易用的集成環(huán)境和強(qiáng)大的軟件仿真調(diào)試工具也會(huì)讓你事半功倍。Keil uVision4 于 2009 年 2 月發(fā)布,Keil uVision4 引入了一個(gè)靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多個(gè)顯示器并在任何地方提供可視表面,并完全控制窗口位置。新的用戶界面更好地利用了屏幕空間,更有效地組織了多個(gè)窗口,為開發(fā)應(yīng)用程序提供了一個(gè)干凈、高效的環(huán)境。新版本支持更多最新的 ARM 芯片,并增加了一些其他新功能。界面如

16、圖 2-8 所示。圖 2-8 Keil uVision4 界面2.3.2單片機(jī)仿真軟件Proteus軟件是英國(guó)實(shí)驗(yàn)室中心電子公司(該軟件中國(guó)總代理為豐標(biāo)電子科技)發(fā)布的EDA工具軟件。它不僅具有其他EDA工具軟件的仿真功能,還可以仿真單片機(jī)和外圍設(shè)備。是目前比較好的模擬單片機(jī)及外圍設(shè)備的工具。雖然目前的全國(guó)推廣才剛剛開始,但受到了單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)與應(yīng)用的科技工作者的青睞。2.3.3單片機(jī)程序流程圖STC89C52RC 微控制器有兩個(gè) 16 位定時(shí)器/計(jì)數(shù)器。本系統(tǒng)使用定時(shí)器 0 產(chǎn)生第二個(gè)信號(hào)并加載初始值 15536,然后定時(shí)器溢出 50ms。每溢出 20

17、次,就會(huì)產(chǎn)生第二個(gè)信號(hào)。定時(shí)器中斷服務(wù)函數(shù)流程圖如圖2-9所示。圖 2-9時(shí)間算法流程圖3調(diào)試結(jié)果與分析3.1仿真調(diào)試在 Proteus 中連接圖 3-1 所示電路,并正確仿真并運(yùn)行編譯好的程序。經(jīng)過(guò)仿真分析,系統(tǒng)實(shí)現(xiàn)了全部設(shè)計(jì)要求。圖 3-1仿真調(diào)試圖3.2 硬件調(diào)試按照?qǐng)D 3-1 所示電路設(shè)計(jì)制作 PCB,焊接元器件,然后將程序燒寫到單片機(jī)中進(jìn)行調(diào)試。經(jīng)過(guò)調(diào)試,系統(tǒng)已經(jīng)實(shí)現(xiàn)了所有的設(shè)計(jì)要求。系統(tǒng)使用指南如表 3-1 所示。表 3-1 用戶指南鑰匙號(hào)碼功能鑰匙號(hào)碼功能1打開/關(guān)閉鬧鐘5時(shí)間增量 1/秒表開始/秒表暫停2鬧鈴時(shí)間/實(shí)時(shí)切換6小時(shí)減 1/秒表重置3秒表/實(shí)時(shí)切換7積分加14打開/

18、關(guān)閉節(jié)能模式8減 14結(jié)論經(jīng)過(guò)兩周的MCU課程設(shè)計(jì),在自己的努力和老師的幫助下,順利完成了設(shè)計(jì)任務(wù)MCU時(shí)鐘。老師給我們提供了課程設(shè)計(jì)所需的儀器、工具和元器件,然后一步步設(shè)計(jì):首先明確了設(shè)計(jì)任務(wù),設(shè)計(jì)了一個(gè)單片機(jī)時(shí)鐘,實(shí)現(xiàn)6個(gè)功能;然后,經(jīng)過(guò)分析研究,提出了整體設(shè)計(jì)思路,分為模塊設(shè)計(jì)、繪制原理圖、繪制程序流程圖、編寫單片機(jī)程序、在仿真軟件中進(jìn)行仿真。仿真無(wú)誤后,制作PCB,焊接元器件,燒寫程序,再次調(diào)試。最后,系統(tǒng)調(diào)試成功。附錄A :MCU 時(shí)鐘物理圖附錄B :?jiǎn)纹瑱C(jī)程序源代碼/*文件名:main.c作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘的主程序,首先初始化變量,I/O口

19、,外設(shè),然后單片機(jī)進(jìn)入無(wú)條件循環(huán),如果觸發(fā)中斷,則進(jìn)行實(shí)時(shí)處理。歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始/* 包含頭文件 */#include #include #include #include #include /*主程序入口參數(shù):無(wú);返回值:無(wú)*/無(wú)效主要(無(wú)效)Timer_Init(); /定時(shí)器初始化鍵盤初始化(); /密鑰初始化顯示初始化(); /數(shù)碼管顯示初始化EN_Bell = 1; /關(guān)閉蜂鳴器while(1) /無(wú)條件循環(huán)顯示_更新數(shù)據(jù)(); /數(shù)碼管顯示更新/*文件名:延遲.h作

20、者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘文件,在delay.c中聲明全局函數(shù)和全局變量歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始#ifndef _DELAY_H_ /作用:防止delay.h被重復(fù)引用#define _DELAY_H_/*uS延時(shí)函數(shù)*/extern void DelayUs(unsigned char t); /全局函數(shù)聲明/*毫秒延遲函數(shù)*/extern void DelayMs(unsigned char t); /全局函數(shù)聲明萬(wàn)一/ 不再/*文件名:delay.

21、c作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘簡(jiǎn)易延時(shí)功能歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始/* 包含頭文件 */#include #include #include #include #include /*大約2uS*/void DelayUs(無(wú)符號(hào)字符 t)而(-t);/*大約1mS*/void DelayMs(unsigned char t)而(t-)延遲我們(245);延遲我們(245);/*文件名:display.h作者:郭建新日期:05/06/2014說(shuō)明:數(shù)字時(shí)鐘

22、文件,在display.c中聲明全局函數(shù)和全局變量歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始#ifndef _DISPLAY_H_ /功能:防止display.h被重復(fù)引用#define _DISPLAY_H_位 LATCH1 = P07; /數(shù)碼管段鎖存器位 LATCH2 = P06; /數(shù)碼管位鎖存器外部位 EN_Dis,Open_Alarm; /全局變量聲明extern unsigned char EN_Play;/*數(shù)碼管顯示初始化程序*/extern void Display_Init(voi

23、d); /全局函數(shù)聲明/*數(shù)碼管顯示更新程序*/extern void Display_Updata(void); /全局函數(shù)聲明萬(wàn)一/ 不再/*文件名:display.c作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘數(shù)碼管顯示程序,通過(guò)兩個(gè)74HC573和兩個(gè)片選信號(hào),分時(shí)輸出段碼和位碼。歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始/* 包含頭文件 */#include #include #include #include #include /* 定義常量 */無(wú)符號(hào)字符碼 Table_D

24、uan10 = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/顯示段碼值09無(wú)符號(hào)字符碼 Table_Wei6 = 0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/分別對(duì)應(yīng)對(duì)應(yīng)的數(shù)碼管亮起,即位碼/*定義變量*/無(wú)符號(hào)字符 Table_Dis6 = 0 x00,0 x00,0 x00,0 x00,0 x00,0 x00;無(wú)符號(hào)字符 j,EN_Play; /數(shù)碼管位數(shù),顯示模式標(biāo)志位 EN_Dis; /節(jié)能模式標(biāo)志位 Open_Alarm; /鬧鐘開啟標(biāo)志/*數(shù)碼管顯示初始化程序入口參數(shù):無(wú);返

25、回值:無(wú)*/無(wú)效顯示初始化(無(wú)效)j = 0;s = 0;米 = 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 = 0 x00;計(jì)數(shù)鐘 = 0;/*數(shù)碼管段碼計(jì)算程序入口參數(shù):無(wú);返回值:無(wú)*/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

26、;void Display_Stopwatch(void) /秒表Table_Dis5 = s_1%10;Table_Dis4 = s_1/10;表_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;表_Dis3 = m_2%10;Table_Dis2 = m_2/10;Table_Dis1 = h_2%10;Table_Dis0 = h_2/10;/*數(shù)碼管顯示

27、更新器入口參數(shù):無(wú);返回值:無(wú)*/無(wú)效顯示更新數(shù)據(jù)(無(wú)效)如果(EN_Dis)switch(EN_Play) /顯示模式選擇案例 0 x00:Display_Actual();休息; /即時(shí)的案例 0 x01:Display_Stopwatch( );休息; /跑表案例 0 x02:Display_Alarm();休息; /鬧鐘默認(rèn)值: ;休息;對(duì)于(j = 0;j 6;j+)P2 = Table_Weij; /獲取位碼 鎖存器2=1; /位鎖存器 鎖存器2=0;如果(j = 1)|(j = 3)P2 = Table_DuanTable_Disj|0 x80; /獲取段碼別的 P2 = Tab

28、le_DuanTable_Disj; /獲取段碼 鎖存器1=1; /段鎖存器 鎖存器1=0;延遲Ms(2);別的P2 = 0 xff;鎖存器1 = 1; 鎖存器2 = 1;/*文件名:keyboard.h作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘文件,在keyboard.c中聲明全局函數(shù)和全局變量歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始#ifndef _KEYBOARD_H_ /功能:防止keyboard.h被重復(fù)引用#define _KEYBOARD_H_/*密鑰初始化例程*/外部

29、無(wú)效鍵盤初始化(無(wú)效); /全局函數(shù)聲明萬(wàn)一/ 不再/*文件名:keyboard.c作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘鍵處理功能歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始/* 包含頭文件 */#include #include #include #include #include /*按鍵初始化程序入口參數(shù):無(wú);返回值:無(wú)*/無(wú)效鍵盤初始化(無(wú)效)EA = 1;IE0 = 0; /清除外部中斷0IT0 = 1; /下降沿觸發(fā)EX0 = 1; / 外部中斷 0 使能IE1 = 0

30、; /清除外部中斷1IT1 = 1; /下降沿觸發(fā)EX1 = 1; / 外部中斷 1 使能無(wú)效 Open_Stopwatch(無(wú)效) /秒表開始或暫停工作 ET1 = ET1; /開啟定時(shí)器1中斷TR1 = TR1; /允許定時(shí)器1工作TF1 = 0; /清除定時(shí)器1溢出標(biāo)志無(wú)效 Res_Stopwatch(無(wú)效) /秒表重置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) 中斷 0延遲(15); /延遲去抖

31、動(dòng)如果(EN_Play = 0 x00) /即時(shí)的開關(guān)(P1&0 xf0)案例 0 xe0:if(h 0) h-;中斷; /減1案例 0 xb0:if(m 0) m-;中斷; /減負(fù)1默認(rèn)值: ;休息;如果(EN_Play = 0 x01) /跑表開關(guān)(P1&0 xf0)案例 0 xe0:Open_Stopwatch( );中斷; /秒表開始或暫停工作案例 0 xd0:Res_Stopwatch( );中斷; /秒表重置默認(rèn)值: ;休息;if(EN_Play = 0 x02) /鬧鐘設(shè)置開關(guān)(P1&0 xf0)案例 0 xe0:if(h_2 0) h_2-;中斷; /減1案例 0 xb0:if

32、(m_2 0) m_2-;中斷; /減負(fù)1默認(rèn)值: ;休息;IE0 = 0; /清除中斷void EN_Stopwatch(void) /秒表/實(shí)時(shí)切換如果(EN_Play = 0 x01)EN_Play = 0 x00;別的EN_Play = 0 x01;無(wú)效 EN_Alarm(無(wú)效) /鬧鐘/實(shí)時(shí)切換如果(EN_Play = 0 x02)EN_Play = 0 x00;別的EN_Play = 0 x02;無(wú)效 Sel_Alarm(無(wú)效) /鬧鐘/實(shí)時(shí)切換Open_Alarm = Open_Alarm;如果(打開_警報(bào))s_2 = 0 x01;別的s_2 = 0 x00;EN_Bell =

33、1; /關(guān)閉蜂鳴器void Int_1(void) 中斷 2延遲(15); /延遲去抖動(dòng)開關(guān)(P1&0 x0f)案例 0 x0e:EN_Dis = EN_Dis;中斷; /開啟或關(guān)閉省電模式案例 0 x0d:EN_Stopwatch( );中斷; /秒表/實(shí)時(shí)切換案例 0 x0b:EN_Alarm();中斷; /鬧鐘/實(shí)時(shí)切換案例 0 x07:Sel_Alarm();中斷; /開啟或關(guān)閉鬧鐘默認(rèn)值: ;休息;IE1 = 0; /清除中斷/*文件名:timer.h作者:郭建新日期:2014 年 5 月 6 日說(shuō)明:數(shù)字時(shí)鐘文件,在timer.c中聲明全局函數(shù)和全局變量歷史: 1. 作者:郭建新日

34、期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6 日描述:*/ 開始#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; /全局變量聲明外部無(wú)符號(hào)字符 s_1,m_1,h_1;外部無(wú)符號(hào)字符 s_2,m_2,h_2;萬(wàn)一/ 不再/*文件名:timer.c作者:郭建新日期:2014 年 5 月 6 日描述:數(shù)字時(shí)鐘定時(shí)器程序,歷史: 1. 作者:郭建新日期:2014 年 5 月 6 日描述:2. 作者:郭建新日期:2014 年 5 月 6

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論