定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第1頁(yè)
定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第2頁(yè)
定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第3頁(yè)
定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告_第4頁(yè)
定時(shí)鬧鐘設(shè)計(jì)課程設(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í)鬧鐘設(shè)計(jì)摘要: 本設(shè)計(jì)目的是利用單片機(jī)設(shè)計(jì)制作一個(gè)簡(jiǎn)易的定時(shí)鬧鈴時(shí)鐘,可以放在宿舍或教室使用,在夜晚或黑暗的場(chǎng)合也可以使用??梢栽O(shè)置現(xiàn)在的時(shí)間以及鬧鈴的時(shí)間并且顯示出來(lái),若時(shí)間到則發(fā)出一陣聲響。本次設(shè)計(jì)的定時(shí)鬧鐘在硬件方面就采用了AT89C52芯片,用6位LED數(shù)碼管進(jìn)行顯示。LED用P0口進(jìn)行驅(qū)動(dòng),采用的是動(dòng)態(tài)掃描顯示,能夠比較準(zhǔn)確顯示時(shí)時(shí)分分秒秒。通過(guò)五個(gè)功能按鍵可以實(shí)現(xiàn)對(duì)時(shí)間的修改、定時(shí)和鬧鈴終止,鬧鐘設(shè)置的時(shí)間到時(shí)蜂鳴器可以發(fā)出聲響。在軟件方面用C51編程。整個(gè)定時(shí)鬧鐘系統(tǒng)能完成時(shí)間的顯示,調(diào)時(shí)和設(shè)置鬧鐘、停止響鈴等功能,并經(jīng)過(guò)系統(tǒng)仿真后得到了正確的結(jié)果。關(guān)鍵詞:定時(shí)鬧鐘;蜂鳴器;

2、AT89C52;74HC245; 目錄第1章 緒論11.1設(shè)計(jì)目的11.2設(shè)計(jì)要求和任務(wù)11.2.1設(shè)計(jì)要求:11.2.2設(shè)計(jì)任務(wù):11.3論文主要內(nèi)容1第2章 系統(tǒng)總體設(shè)計(jì)22.1系統(tǒng)設(shè)計(jì)需求22.2總體設(shè)計(jì)方案22.3系統(tǒng)軟件32.4系統(tǒng)硬件3第3章 系統(tǒng)硬件設(shè)計(jì)43.1系統(tǒng)硬件模塊及功能43.2主控模塊43.2.1主芯片AT89C5243.2.2時(shí)鐘電路設(shè)計(jì)73.2.3 74HC245芯片73.3 LED顯示模塊93.4 按鍵模塊93.5警報(bào)模塊10第4章 系統(tǒng)軟件設(shè)計(jì)114.1系統(tǒng)軟件設(shè)計(jì)概述114.2主程序設(shè)計(jì)114.3單片機(jī)的中斷系統(tǒng)114.3.1中斷源114.3.2中斷的優(yōu)先級(jí)別

3、124.4主程序12第5章 系統(tǒng)測(cè)試135.1測(cè)試內(nèi)容135.2測(cè)試環(huán)境135.3測(cè)試步驟135.3.1測(cè)試環(huán)境的構(gòu)建135.3.2測(cè)試內(nèi)容145.4測(cè)試結(jié)果14結(jié)論15致謝16參考文獻(xiàn)17附錄18第1章 緒論1.1設(shè)計(jì)目的本次課程設(shè)計(jì)的主題是定時(shí)鬧鐘,其基礎(chǔ)部分是一個(gè)數(shù)字鐘。電路系統(tǒng)由秒信號(hào)發(fā)生器、“時(shí)、分、秒”計(jì)數(shù)器、顯示器組成。其中秒信號(hào)產(chǎn)生器是整個(gè)系統(tǒng)的時(shí)基信號(hào),它直接決定計(jì)時(shí)系統(tǒng)的精度,這里用51單片機(jī)的定時(shí)器來(lái)實(shí)現(xiàn)。利用定時(shí)器獲得每一秒的時(shí)刻,然后在程序中,我們就可以給秒進(jìn)行逐秒賦值,滿60秒則進(jìn)位為1分,滿60分則進(jìn)位為1小時(shí),滿24小時(shí)則時(shí)間重置實(shí)現(xiàn)一天24小時(shí)的循環(huán)。譯碼顯示

4、電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出狀態(tài)送到七段顯示譯碼器譯碼,通過(guò)一個(gè)六位八段數(shù)碼管顯示出來(lái)。這里利用51單片機(jī)的相關(guān)知識(shí),來(lái)實(shí)現(xiàn)電子鬧鐘的相關(guān)功能。實(shí)驗(yàn)使用了AT89C52、74HC245等芯片,通過(guò)單片機(jī)的P0、P3管腳來(lái)驅(qū)動(dòng)數(shù)碼管顯示出相應(yīng)的時(shí)刻。本文將講述AT89C52、74HC245等芯片的基本功能原理,并重點(diǎn)介紹該電子鬧鐘的設(shè)計(jì)。1.2設(shè)計(jì)要求和任務(wù)1.2.1設(shè)計(jì)要求: 使用6位七段LED顯示器來(lái)顯示現(xiàn)在的時(shí)間;顯示格式為“時(shí)時(shí)分分秒秒”;具有4個(gè)按鍵來(lái)做功能設(shè)置,可以設(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間;時(shí)間到則發(fā)出一陣聲響,可通過(guò)按鍵復(fù)位;對(duì)單片機(jī)系統(tǒng)設(shè)計(jì)的過(guò)程進(jìn)行總結(jié),認(rèn)真

5、書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告并按時(shí)上交。1.2.2設(shè)計(jì)任務(wù):利用51單片機(jī)結(jié)合七段LED顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的定時(shí)鬧鈴時(shí)鐘,可以放在宿舍或教室使用,由于用七段LED顯示器顯示數(shù)據(jù),在夜晚或黑暗的場(chǎng)合也可以使用??梢栽O(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間,若時(shí)間到則發(fā)出一陣聲響。1.3論文主要內(nèi)容論文分別敘述從硬件和軟件上實(shí)現(xiàn)該設(shè)計(jì)的過(guò)程。第2章為總體設(shè)計(jì)方案。第3章主要介紹設(shè)計(jì)實(shí)現(xiàn)需要解決的硬件問(wèn)題。依次介紹所使用的各種硬件的使用方法,并附上仿真電路圖和文字說(shuō)明。第4章從軟件的角度說(shuō)明實(shí)現(xiàn)該設(shè)計(jì)需要解決的問(wèn)題。第2章 系統(tǒng)總體設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)需求系統(tǒng)要求實(shí)現(xiàn)以下功能:1當(dāng)電源接通時(shí),系統(tǒng)能正確顯示當(dāng)前時(shí)間。2當(dāng)

6、前時(shí)間與實(shí)時(shí)時(shí)間有誤差時(shí),可以通過(guò)鍵盤(pán)調(diào)整當(dāng)前時(shí)間。3系統(tǒng)允許進(jìn)行鬧鐘設(shè)置,開(kāi)啟鬧鐘功能時(shí),當(dāng)設(shè)置的鬧鐘時(shí)間與當(dāng)前時(shí)間一致的時(shí)候,系統(tǒng)通過(guò)蜂鳴器發(fā)出警報(bào)聲并且可以通過(guò)按鍵停止。2.2總體設(shè)計(jì)方案功能組成:本次設(shè)計(jì)中的計(jì)時(shí)功能很容易實(shí)現(xiàn),難點(diǎn)在于時(shí)鐘功能和鬧鐘功能的切換和時(shí)間的設(shè)置。該電子鬧鐘設(shè)計(jì)對(duì)51單片機(jī)定時(shí)器0裝初值,使其初值對(duì)應(yīng)50ms,定時(shí)器0的中斷次數(shù)達(dá)到20次就剛好為1s,當(dāng)秒部分計(jì)數(shù)到60時(shí)置零,并向分部分進(jìn)一;當(dāng)分部分計(jì)數(shù)到60時(shí)置零,并向時(shí)部分進(jìn)一,當(dāng)時(shí)部分計(jì)數(shù)到24時(shí)置零,從而滿足時(shí)鐘的正常工作。在設(shè)計(jì)過(guò)程中,我發(fā)現(xiàn)通過(guò)4個(gè)按鍵來(lái)完成一個(gè)鬧鐘的基礎(chǔ)功能雖然可以實(shí)現(xiàn),但是用戶

7、用起來(lái)就會(huì)很麻煩,因?yàn)橛械逆I必須有多種功能和不同的觸發(fā)方式,我認(rèn)為可以增加少許按鍵來(lái)方便用戶快速了解到我們的鬧鐘是如何進(jìn)行控制的。所以本次設(shè)計(jì)設(shè)置5個(gè)鍵依次對(duì)其進(jìn)行“時(shí)間校準(zhǔn)”、“鬧鐘設(shè)置”、“秒分時(shí)切換/終止警報(bào)”、“加1按鈕”、“減1按鈕”?!懊敕謺r(shí)切換/終止報(bào)警”鍵在調(diào)時(shí)狀態(tài)中,起時(shí)分秒切換的作用,在非調(diào)試狀態(tài)下,起鬧鐘終止的作用。當(dāng)用戶按下“時(shí)間校準(zhǔn)”的按鈕后,程序會(huì)關(guān)閉T0定時(shí)器,之后時(shí)鐘停止工作,此時(shí)數(shù)碼管會(huì)顯示當(dāng)前靜止的時(shí)間,說(shuō)明已經(jīng)進(jìn)入時(shí)間校準(zhǔn)的界面了。在完成時(shí)間校準(zhǔn)后,打開(kāi)T0定時(shí)器,時(shí)鐘會(huì)在設(shè)置好的時(shí)間上繼續(xù)工作走秒。當(dāng)用戶按下“鬧鐘設(shè)置”按鈕后,會(huì)將當(dāng)前時(shí)間復(fù)制出來(lái)提供給

8、定時(shí)界面,注意此時(shí)我們的時(shí)鐘仍然在繼續(xù)工作,只是數(shù)碼管顯示的是定時(shí)模式的靜止時(shí)間。當(dāng)設(shè)置好后,此時(shí)用戶設(shè)置的時(shí)間只要沒(méi)有觸發(fā)過(guò)鬧鈴,再次按“鬧鐘設(shè)置”按鈕就能查看并修改,即鬧鐘會(huì)保存下用戶最后一次未被觸發(fā)的鬧鐘時(shí)間。當(dāng)正常工作的時(shí)鐘時(shí)刻到達(dá)了預(yù)設(shè)的鬧鈴時(shí)刻,蜂鳴器發(fā)出警報(bào)聲,屏幕會(huì)閃爍并顯示當(dāng)前時(shí)間??紤]到用戶可能已經(jīng)被提醒而不想繼續(xù)被鬧鈴聲干擾,還提供了一個(gè)能夠終止鬧鈴的功能,此功能與“時(shí)分秒切換”功能共用同一按鍵,按下后時(shí)鐘繼續(xù)正常工作,且鬧鐘功能又可以重新設(shè)置。2.3系統(tǒng)軟件本設(shè)計(jì)在Keil編程環(huán)境下,使用C語(yǔ)言進(jìn)行編程的編輯。編輯成功后,通過(guò)仿真軟件Proteus進(jìn)行仿真測(cè)試。2.4系

9、統(tǒng)硬件LED顯示屏1主控芯片:AT89C52鬧鐘提示:蜂鳴器人機(jī)交互:按鍵5晶振:12KHz1排阻:RESPACK-81電容:10nf2總線收發(fā)器:74HC2452第3章 系統(tǒng)硬件設(shè)計(jì)3.1系統(tǒng)硬件模塊及功能系統(tǒng)硬件模塊主要分為以下幾個(gè)模塊: 1主控模塊:控制其他子模塊。 2時(shí)鐘模塊:為系統(tǒng)提供實(shí)時(shí)時(shí)間。 3顯示模塊:顯示系統(tǒng)時(shí)間信息。 4按鍵模塊:用戶通過(guò)按鍵進(jìn)行人機(jī)交互,修改實(shí)時(shí)時(shí)間、設(shè)置鬧鐘時(shí)間和終止鬧鐘報(bào)警。 5鬧鐘模塊:在所設(shè)鬧鐘時(shí)間發(fā)出警報(bào)聲。3.2主控模塊3.2.1主芯片AT89C52(1).AT89C52簡(jiǎn)介AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k b

10、ytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。AT89C52有40個(gè)引腳,32個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含2個(gè)外中斷口,3個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,2 個(gè)讀寫(xiě)口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫(xiě)的 Flash存儲(chǔ)器可有效地降低開(kāi)發(fā)成本。AT8

11、9C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。AT89C52引腳圖如圖3.2.1:圖 3.2.1(2).工作原理AT89C52為8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會(huì)聚調(diào)整時(shí)的功能控制。功能包括對(duì)會(huì)聚主IC 內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會(huì)聚調(diào)整控制,會(huì)聚測(cè)試圖控制,紅外遙控信號(hào)IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1(19 腳)和XTAL2(18 腳)為振蕩器輸入輸出端口,外接12MHz 晶振。RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容

12、組成的復(fù)位電路。VCC(40 腳)和VSS(20 腳)為供電端口,分別接+5V電源的正負(fù)端。P0P3 為可編程通用I/O 腳,其功能用途由軟件定義,在本設(shè)計(jì)中,P0 端口(3239 腳)被定義為N1 功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13 腳定義為IR輸入端,10 腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS(18腳)和SCLS(19腳)端口,12 腳、27 腳及28 腳定義為握手信號(hào)功能端口,連接主板CPU 的相應(yīng)功能端,用于當(dāng)前制式的檢測(cè)及會(huì)聚調(diào)整狀態(tài)進(jìn)入的控制功能。P0 口:P0 口是一組8 位漏極開(kāi)路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí)

13、,每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門(mén)電路,對(duì)端口P0 寫(xiě)“1”時(shí),可作為高阻抗輸入端用。在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問(wèn)期間激活內(nèi)部上拉電阻。在Flash編程時(shí),P0 口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。P1 口:P1 是一個(gè)帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT8

14、9C51 不同之處是,P1.0 和P1.1 還可分別作為定時(shí)/計(jì)數(shù)器2 的外部計(jì)數(shù)輸入(P1.0/T2)和輸入(P1.1/T2EX),F(xiàn)lash 編程和程序校驗(yàn)期間,P1 接收低8 位地址。P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)端口P2 寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或16 位地?cái)?shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問(wèn)

15、8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVXRI 指令)時(shí),P2 口輸出P2鎖存器的內(nèi)容。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和一些控制信號(hào)。P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL 邏輯門(mén)電路。對(duì)P3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時(shí),被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能P3 口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電

16、平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE 脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無(wú)效。PSEN

17、:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA/VPP:外部訪問(wèn)允許。欲使CPU 僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000HFFFFH),EA 端必須保持低電平(接地)。需注意的是:如果加密位LB1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU 則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。XTAL1

18、:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。3.2.2時(shí)鐘電路設(shè)計(jì)利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2的引腳上外接定時(shí)元件,內(nèi)部振蕩器便能產(chǎn)生自激振蕩。定時(shí)元件可以采用石英晶體和電容組成的并聯(lián)諧振電路,如圖3.2.2所示。晶振可以在1.212MHZ之間任選,甚至可以達(dá)到24MHz,但是頻率越高功耗也就越大。和晶振并聯(lián)的電容C1、C2的大小對(duì)振蕩頻率有微小影響,可以起到頻率微調(diào)作用。時(shí)鐘電路如圖3.2.2:圖3.2.23.2.3 74HC245芯片電路中用74HC245芯片充當(dāng)總線收發(fā)器,作用是放大信號(hào),它具有典型的CMOS型三態(tài)緩沖門(mén)電路。由于

19、單片機(jī)或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過(guò)其負(fù)載能力,一般應(yīng)加驅(qū)動(dòng)器。引腳定義:1引腳DIR:未輸入輸出端口轉(zhuǎn)換用,當(dāng)它為高電平“1”時(shí),信號(hào)由“A”端口輸入“B”端口輸出;當(dāng)它為低電平“0”時(shí),信號(hào)由“B”端口輸入“A”端口輸出。2-9引腳: “A”端口輸入輸出端,每個(gè)端口與“B”端口對(duì)應(yīng)。11-18引腳:“B”端口輸入輸出端,每個(gè)端口與“A”端口對(duì)應(yīng)。10引腳:GUD,電源地。20引腳:VCC,電源正極。74HC245引腳圖如圖3.2.3(1) :圖3.2.3(1)仿真電路圖如圖3.2.3(2):圖3.2.3(2)3.3 LED顯示模塊本次課程設(shè)計(jì)采用了6位數(shù)

20、碼管顯示電路。在6位LED顯示時(shí),為了簡(jiǎn)化電路,降低成本,采用動(dòng)態(tài)顯示的方式,6個(gè)LED顯示器共用一個(gè)8位的I/O,6位LED數(shù)碼管的位選線分別由相應(yīng)的P2.0P2.5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個(gè)8位的I/O口控制,即P0口。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出狀態(tài)經(jīng)七段顯示譯碼器譯碼,通過(guò)6位LED七段顯示器顯示出來(lái)。到達(dá)定時(shí)電路時(shí)根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生脈沖信號(hào),然后去觸發(fā)音頻發(fā)生器實(shí)現(xiàn)鬧鈴。校時(shí)電路時(shí)用來(lái)對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整的。LED仿真電路圖如圖3.3:圖 3.33.4 按鍵模塊按鍵模塊共設(shè)置了五個(gè)按鍵,功能分別如下:(1).時(shí)間校準(zhǔn)

21、鍵“CLOCK”: 自鎖開(kāi)關(guān),按下后進(jìn)入校準(zhǔn)設(shè)置,再次按下后退出。(2).鬧鐘設(shè)置鍵“ALARM CLOCK”: 自鎖開(kāi)關(guān),按下后進(jìn)入鬧鐘設(shè)置,再次按下后退出。另外可供用戶對(duì)已經(jīng)設(shè)置的鬧鐘時(shí)間進(jìn)行查看或修改。(3). 秒分時(shí)切換/終止報(bào)警鍵“SWITCH/STOP”: 按鈕開(kāi)關(guān),在按下“CLOCK”或“ALARM CLOCK”鍵時(shí),為時(shí)分秒切換功能,默認(rèn)是“秒”,再次按下是“分”,然后是“時(shí)”之后是“秒”,以此類推。在“CLOCK”或“ALARM CLOCK”鍵未按下時(shí),為終止報(bào)警功能。(4).時(shí)間增加鍵“+”:按鈕開(kāi)關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)行加一操作。 (5).時(shí)間減少鍵“-”

22、: 按鈕開(kāi)關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)行減一操作。按鍵模塊仿真電路圖如圖3.4:圖 3.43.5警報(bào)模塊鬧鈴指示設(shè)置有聲和光兩種形式。聲音形式的關(guān)鍵元件是蜂鳴器。蜂鳴器有無(wú)源和有源兩種,前者需要輸入聲音頻率信號(hào)才能正常發(fā)聲,后者則只需外加適當(dāng)直流電源電壓即可,本次設(shè)計(jì)我們使用的是后者。鬧鐘電路是用比較器來(lái)比較計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài),如果計(jì)時(shí)系統(tǒng)和定時(shí)系統(tǒng)的輸出狀態(tài)相同,則發(fā)出一個(gè)脈沖信號(hào),再和一個(gè)高頻信號(hào)混合,送到放大電路驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,從而實(shí)現(xiàn)定時(shí)鬧響的功能。蜂鳴器仿真電路圖如圖3.5:圖 3.5第4章 系統(tǒng)軟件設(shè)計(jì)4.1系統(tǒng)軟件設(shè)計(jì)概述該部分主要分為實(shí)時(shí)時(shí)鐘模塊、LED顯示

23、模塊、鍵盤(pán)中斷模塊、鬧鐘模塊。實(shí)時(shí)時(shí)鐘部分主要包括實(shí)時(shí)時(shí)間的讀寫(xiě),時(shí)間的修改。LED顯示模塊主要包括顯示屏的初始化,顯示的命令字。鍵盤(pán)中斷模塊包括各鍵的定義和作用,按鍵的消抖,各按鍵跳轉(zhuǎn)的子程序分配。鬧鐘模塊包括鬧鐘時(shí)間的設(shè)置,以及對(duì)蜂鳴器啟動(dòng)和停止條件的設(shè)置和處理。4.2主程序設(shè)計(jì)主程序包含三個(gè)部分。一是主函數(shù)部分,負(fù)責(zé)系統(tǒng)的初始化操作;從中斷服務(wù)取得實(shí)時(shí)時(shí)間;判斷鬧鐘時(shí)間是否與實(shí)時(shí)時(shí)間相等并在相等時(shí)發(fā)出警報(bào)聲。第二部分是定時(shí)中斷部分,分兩種情況:負(fù)責(zé)處理從中斷服務(wù)獲得的時(shí)間數(shù)據(jù)并送至LED顯示緩沖顯示,或者顯示鬧鐘設(shè)置界面并顯示鬧鐘時(shí)間的設(shè)置過(guò)程。第三部分是外部中斷,主要定義5個(gè)按鍵的作用

24、,分配每一個(gè)按鍵跳轉(zhuǎn)的子程序。第三部分負(fù)責(zé)時(shí)間和日期的修改,鬧鐘時(shí)間的設(shè)置,停止蜂鳴器鳴叫的功能。4.3單片機(jī)的中斷系統(tǒng)斷系統(tǒng)在單片機(jī)應(yīng)用系統(tǒng)中起著十分重要的作用,是現(xiàn)代嵌入式控制系統(tǒng)廣泛采用的一種適時(shí)控制技術(shù),能對(duì)突發(fā)事件進(jìn)行及時(shí)處理,從而大大提高系統(tǒng)對(duì)外部事件的處理能力。正是有了中斷技術(shù),單片機(jī)才得以能夠普及。因此,中斷技術(shù)是單片機(jī)的一項(xiàng)重要技術(shù),掌握中斷技術(shù)能開(kāi)發(fā)出靈活、高效的單機(jī)片應(yīng)用系統(tǒng)。4.3.1中斷源要讓單機(jī)片停止當(dāng)前的程序去執(zhí)行其他程序,需要向它發(fā)出請(qǐng)求信號(hào),CPU接收到中斷請(qǐng)求信號(hào)后才能產(chǎn)生中斷。讓CPU產(chǎn)生中斷的信號(hào)稱為中斷源(又稱中斷請(qǐng)求源)。單片機(jī)提供5個(gè)中斷源,其中兩

25、個(gè)為外部中斷請(qǐng)求源INT0(P3.2)和INT1(P3.3),兩個(gè)片內(nèi)定時(shí)器/計(jì)數(shù)器T0和T1的溢出請(qǐng)求中斷源TF0和TF1,1個(gè)片內(nèi)串行口發(fā)送或接收中斷請(qǐng)求源T1和R1。4.3.2中斷的優(yōu)先級(jí)別單片機(jī)內(nèi)的CPU工作時(shí),如果一個(gè)中斷源向它發(fā)出中斷請(qǐng)求信號(hào),它就會(huì)產(chǎn)生中斷。但是,如果同時(shí)有兩個(gè)中斷源發(fā)出中斷請(qǐng)求信號(hào),CPU就會(huì)優(yōu)先接收級(jí)別高的中斷請(qǐng)求源,然后再接收優(yōu)先級(jí)別低的中斷請(qǐng)求。表4.3.2列出5個(gè)獨(dú)立中斷請(qǐng)求源由其硬件結(jié)構(gòu)決定的自然優(yōu)先級(jí)排列順序。中斷源自然優(yōu)先級(jí)中斷入口地址中斷編號(hào)外部中斷INT0高低0003H0定時(shí)器T0000BH1外部中斷INT10013H2定時(shí)器T1001BH3串

26、行口通信中斷R1或T10023H4表4.3.2 單片機(jī)中斷源的自然優(yōu)先級(jí)、入口地址及中斷編號(hào)對(duì)應(yīng)于單片機(jī)的5個(gè)獨(dú)立中斷源,應(yīng)有相應(yīng)的中斷服務(wù)程序。這些中斷服務(wù)程序有專門(mén)規(guī)定的存放位置,即表4.3.2的中斷入口地址。當(dāng)有了中斷請(qǐng)求后,CPU可以根據(jù)入口地址迅速找到中斷服務(wù)程序并開(kāi)始執(zhí)行,大大提高執(zhí)行效率。4.4主程序主程序見(jiàn)附錄。第5章 系統(tǒng)測(cè)試5.1測(cè)試內(nèi)容1.顯示部分2.按鍵部分5.2測(cè)試環(huán)境Proteus仿真模擬軟件。5.3測(cè)試步驟5.3.1測(cè)試環(huán)境的構(gòu)建(1)在Proteus軟件中繪制好定時(shí)鬧鐘仿真模擬電路圖。(2)將Keil編譯器生成的.hex文件載入AT89C52芯片。圖5.3.1(

27、2)載入.hex文件(3)在Proteus軟件中,點(diǎn)擊左下角的“play”按鈕啟動(dòng)定時(shí)鬧鐘。如下圖,“play”按鈕在第一個(gè)。圖5.3.1(3)仿真電路運(yùn)行控制按鈕5.3.2測(cè)試內(nèi)容詳細(xì)測(cè)試內(nèi)容如下:定時(shí)鬧鐘是否能正確顯示時(shí)間;是否能正確顯示鬧鐘設(shè)置時(shí)的界面;是否能正確顯示時(shí)間調(diào)整時(shí)的界面。(1).顯示時(shí)間點(diǎn)擊“play”鍵之后,時(shí)鐘系統(tǒng)開(kāi)始走時(shí),如圖5.5.2(1):圖5.3.2(1)經(jīng)測(cè)試,顯示結(jié)果達(dá)到預(yù)期要求。(2).時(shí)間調(diào)整測(cè)試如果用戶發(fā)現(xiàn)時(shí)間運(yùn)行不對(duì),要對(duì)時(shí)間進(jìn)行修改和調(diào)整,就需要進(jìn)入時(shí)間修改的界面。預(yù)期可以對(duì)時(shí)、分、秒進(jìn)行調(diào)整和修改。系統(tǒng)能正確顯示時(shí)間修改的界面。用戶可以完成時(shí)間的

28、修改。經(jīng)測(cè)試,該部分運(yùn)行正常。(3).鬧鐘設(shè)置測(cè)試在系統(tǒng)能正確顯示時(shí)間之后,用戶若想設(shè)置鬧鐘,可以通過(guò)按鍵完成鬧鐘時(shí)間的設(shè)置。設(shè)置時(shí)間到后蜂鳴器報(bào)警,按下“STOP”鍵后警報(bào)停止經(jīng)測(cè)試,該部分能正常運(yùn)行。結(jié)論:通過(guò)以上對(duì)仿真項(xiàng)目的全面測(cè)試,可知仿真部分運(yùn)行正常。5.4測(cè)試結(jié)果通過(guò)以上測(cè)試,證明本設(shè)計(jì)基本實(shí)現(xiàn)系統(tǒng)所有要求,即能夠正確顯示時(shí)間信息,能夠?qū)Ξ?dāng)前時(shí)間進(jìn)行調(diào)整和修改,并且能夠設(shè)定鬧鐘并在所設(shè)置的鬧鐘時(shí)間發(fā)出警報(bào)聲,通過(guò)按鍵可以停止警報(bào)。結(jié)論該系統(tǒng)采用單機(jī)片AT89C52作為核心芯片,結(jié)合一些其他外圍設(shè)備,一起構(gòu)成了一款能夠顯示時(shí)間并且能夠?qū)ζ溥M(jìn)行修改和設(shè)置定時(shí)鬧鐘的定時(shí)鬧鐘系統(tǒng)。該系統(tǒng)采

29、用數(shù)碼管顯示屏,能夠清晰顯示時(shí)間信息,并且能夠友好的引導(dǎo)用戶進(jìn)行時(shí)間的修改以及鬧鐘的設(shè)置??梢酝ㄟ^(guò)各個(gè)寄存地址對(duì)時(shí)間進(jìn)行讀寫(xiě)操作,即讀取時(shí)間和修改時(shí)間。利用蜂鳴器為用戶提供鬧鈴功能,能夠在設(shè)定時(shí)間發(fā)出警報(bào)聲提醒用戶。采用按鍵較少的獨(dú)立式鍵盤(pán)供人機(jī)交互,操作簡(jiǎn)單方便。可以通過(guò)鍵盤(pán)修改時(shí)間,也可以設(shè)置鬧鈴時(shí)間和修改鬧鈴時(shí)間,另外,在鬧鈴時(shí)間與系統(tǒng)時(shí)間一致,蜂鳴器鳴叫時(shí),可以通過(guò)按鍵中斷警報(bào)聲??傊摱〞r(shí)鬧鐘系統(tǒng)完成了市場(chǎng)上一般鬧鐘應(yīng)有的功能,能夠顯示時(shí)間和設(shè)置鬧鐘,可以給用戶提供時(shí)間信息。該設(shè)計(jì)也存在一些缺點(diǎn),就是實(shí)際生產(chǎn)時(shí)投入資金會(huì)比市場(chǎng)上一般鬧鐘價(jià)格昂貴,如果進(jìn)行包裝,價(jià)格還會(huì)上升一些。另外

30、,外觀不如市場(chǎng)銷售的鬧鐘美觀。致謝衷心感謝雷俊紅老師的指導(dǎo)。參考文獻(xiàn)1 李強(qiáng),51系列單片機(jī)應(yīng)用軟件編程技術(shù)M.北京:北京航空航天大學(xué)出版社,2009.4: 134-138.2 薛慧芳.MCS-51單機(jī)片串行口的一口多用J.南京化工大學(xué)學(xué)報(bào)(自然科學(xué)版),1998,S1:84-86.3 王東鋒,王會(huì)良,董冠強(qiáng).單機(jī)片C語(yǔ)言應(yīng)用100例M.北京:電子工業(yè)出版社,2009.3:218-219,148-152.4 樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)(第2版)M.北京:北京航空航天大學(xué)出版社,2012.1:285-289.附錄:系統(tǒng)電路圖如下:系統(tǒng)電路圖系統(tǒng)程序如下:#include sbit btn

31、Time = P10; sbit btnClock = P11;sbit btnSwitch = P12;sbit btnUp = P13;sbit btnDown = P14;sbit pin1 = P20; sbit pin2 = P21;sbit pin3 = P22;sbit pin4 = P23;sbit pin5 = P24;sbit pin6 = P25;sbit pinBuz = P26;unsigned char timer = 0,sec,min,hour,count = 0,s = 60,m = 60,h = 24,flag = 0;unsigned char code

32、numbers = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delayMs(unsigned int k) unsigned int i,j; for(i = k;i0;i-) for(j = 110;j0;j-);void timeChange()sec+;if(sec = 60)sec = 0;min+;if(min = 60) min = 0; hour+; if(hour = 24) hour = 0;void showTime(unsigned char zs,unsigned char zm, unsigned

33、char zh) pin1 = 1; P0 = numberszh/10; delayMs(5); pin1 = 0; pin2 = 1; P0 = numberszh%10&0x7f; delayMs(5); pin2 = 0; pin3 = 1; P0 = numberszm/10; delayMs(5); pin3 = 0; pin4 = 1; P0 = numberszm%10&0x7f; delayMs(5); pin4 = 0; pin5 = 1; P0 = numberszs/10; delayMs(5); pin5 = 0; pin6 = 1; P0 = numberszs%1

34、0; delayMs(5); pin6 = 0;void setTime()unsigned char st,mt,ht;if(btnTime = 0)delayMs(10);if(btnTime = 0)st = sec,mt = min,ht = hour;TR0 = 0; while(btnTime = 0)showTime(st,mt,ht); if(btnSwitch = 0)delayMs(10);if(btnSwitch = 0)while(!btnSwitch);count+;if(count = 3) count = 0;if(btnUp = 0)delayMs(10);if

35、(btnUp = 0)while(!btnUp);switch(count)case 0:st+;if(st = 60)st = 0;break;case 1:mt+;if(mt = 60)mt = 0;break;case 2:ht+;if(ht = 24)ht = 0;break; default:; if(btnDown = 0)delayMs(10);if(btnDown = 0) while(!btnDown); switch(count) case 0:if(st0)st-; else st = 0;break; case 1:if(mt0)mt-; else mt = 0;break; case 2:if(ht0)ht-; else ht = 0;break; default

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論