定時鬧鐘設(shè)計課程設(shè)計報告_第1頁
定時鬧鐘設(shè)計課程設(shè)計報告_第2頁
定時鬧鐘設(shè)計課程設(shè)計報告_第3頁
定時鬧鐘設(shè)計課程設(shè)計報告_第4頁
定時鬧鐘設(shè)計課程設(shè)計報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

..定時鬧鐘設(shè)計摘要:本設(shè)計目的是利用單片機(jī)設(shè)計制作一個簡易的定時鬧鈴時鐘,可以放在宿舍或教室使用,在夜晚或黑暗的場合也可以使用??梢栽O(shè)置現(xiàn)在的時間以及鬧鈴的時間并且顯示出來,假設(shè)時間到那么發(fā)出一陣聲響。本次設(shè)計的定時鬧鐘在硬件方面就采用了AT89C52芯片,用6位LED數(shù)碼管進(jìn)展顯示。LED用P0口進(jìn)展驅(qū)動,采用的是動態(tài)掃描顯示,能夠比擬準(zhǔn)確顯示時時—分分—秒秒。通過五個功能按鍵可以實現(xiàn)對時間的修改、定時和鬧鈴終止,鬧鐘設(shè)置的時間到時蜂鳴器可以發(fā)出聲響。在軟件方面用C51編程。整個定時鬧鐘系統(tǒng)能完成時間的顯示,調(diào)時和設(shè)置鬧鐘、停頓響鈴等功能,并經(jīng)過系統(tǒng)仿真后得到了正確的結(jié)果。關(guān)鍵詞:定時鬧鐘;蜂鳴器;AT89C52;74HC245;..目錄TOC\o"1-3"\h\u第1章緒論11.1設(shè)計目的11.2設(shè)計要求和任務(wù)1設(shè)計要求:1設(shè)計任務(wù):11.3論文主要容1第2章系統(tǒng)總體設(shè)計22.1系統(tǒng)設(shè)計需求22.2總體設(shè)計方案22.3系統(tǒng)軟件32.4系統(tǒng)硬件3第3章系統(tǒng)硬件設(shè)計43.1系統(tǒng)硬件模塊及功能43.2主控模塊4主芯片AT89C52 4時鐘電路設(shè)計73.2.374HC245芯片73.3LED顯示模塊93.4按鍵模塊93.5警報模塊10第4章系統(tǒng)軟件設(shè)計114.1系統(tǒng)軟件設(shè)計概述114.2主程序設(shè)計114.3單片機(jī)的中斷系統(tǒng)11中斷源11中斷的優(yōu)先級別124.4主程序12第5章系統(tǒng)測試135.1測試容135.2測試環(huán)境135.3測試步驟13測試環(huán)境的構(gòu)建13測試容145.4測試結(jié)果14..結(jié)論15致16參考文獻(xiàn)17附錄18..第1章緒論1.1設(shè)計目的本次課程設(shè)計的主題是定時鬧鐘,其根底局部是一個數(shù)字鐘。電路系統(tǒng)由秒信號發(fā)生器、"時、分、秒〞計數(shù)器、顯示器組成。其中秒信號產(chǎn)生器是整個系統(tǒng)的時基信號,它直接決定計時系統(tǒng)的精度,這里用51單片機(jī)的定時器來實現(xiàn)。利用定時器獲得每一秒的時刻,然后在程序中,我們就可以給秒進(jìn)展逐秒賦值,滿60秒那么進(jìn)位為1分,滿60分那么進(jìn)位為1小時,滿24小時那么時間重置實現(xiàn)一天24小時的循環(huán)。譯碼顯示電路將"時〞、"分〞、"秒〞計數(shù)器的輸出狀態(tài)送到七段顯示譯碼器譯碼,通過一個六位八段數(shù)碼管顯示出來。這里利用51單片機(jī)的相關(guān)知識,來實現(xiàn)電子鬧鐘的相關(guān)功能。實驗使用了AT89C52、74HC245等芯片,通過單片機(jī)的P0、P3管腳來驅(qū)動數(shù)碼管顯示出相應(yīng)的時刻。本文將講述AT89C52、74HC245等芯片的根本功能原理,并重點介紹該電子鬧鐘的設(shè)計。1.2設(shè)計要求和任務(wù)設(shè)計要求:使用6位七段LED顯示器來顯示現(xiàn)在的時間;顯示格式為"時時分分秒秒〞;具有4個按鍵來做功能設(shè)置,可以設(shè)置現(xiàn)在的時間及顯示鬧鈴設(shè)置時間;時間到那么發(fā)出一陣聲響,可通過按鍵復(fù)位;對單片機(jī)系統(tǒng)設(shè)計的過程進(jìn)展總結(jié),認(rèn)真書寫課程設(shè)計報告并按時上交。設(shè)計任務(wù):利用51單片機(jī)結(jié)合七段LED顯示器設(shè)計一個簡易的定時鬧鈴時鐘,可以放在宿舍或教室使用,由于用七段LED顯示器顯示數(shù)據(jù),在夜晚或黑暗的場合也可以使用??梢栽O(shè)置現(xiàn)在的時間及顯示鬧鈴設(shè)置時間,假設(shè)時間到那么發(fā)出一陣聲響。1.3論文主要容論文分別表達(dá)從硬件和軟件上實現(xiàn)該設(shè)計的過程。第2章為總體設(shè)計方案。第3章主要介紹設(shè)計實現(xiàn)需要解決的硬件問題。依次介紹所使用的各種硬件的使用方法,并附上仿真電路圖和文字說明。第4章從軟件的角度說明實現(xiàn)該設(shè)計需要解決的問題。第2章系統(tǒng)總體設(shè)計2.1系統(tǒng)設(shè)計需求系統(tǒng)要現(xiàn)以下功能:1.當(dāng)電源接通時,系統(tǒng)能正確顯示當(dāng)前時間。2.當(dāng)前時間與實時時間有誤差時,可以通過鍵盤調(diào)整當(dāng)前時間。3.系統(tǒng)允許進(jìn)展鬧鐘設(shè)置,開啟鬧鐘功能時,當(dāng)設(shè)置的鬧鐘時間與當(dāng)前時間一致的時候,系統(tǒng)通過蜂鳴器發(fā)出警報聲并且可以通過按鍵停頓。2.2總體設(shè)計方案功能組成:本次設(shè)計中的計時功能很容易實現(xiàn),難點在于時鐘功能和鬧鐘功能的切換和時間的設(shè)置。該電子鬧鐘設(shè)計對51單片機(jī)定時器0裝初值,使其初值對應(yīng)50ms,定時器0的中斷次數(shù)到達(dá)20次就剛好為1s,當(dāng)秒局部計數(shù)到60時置零,并向分局部進(jìn)一;當(dāng)分局部計數(shù)到60時置零,并向時局部進(jìn)一,當(dāng)時局部計數(shù)到24時置零,從而滿足時鐘的正常工作。在設(shè)計過程中,我發(fā)現(xiàn)通過4個按鍵來完成一個鬧鐘的根底功能雖然可以實現(xiàn),但是用戶用起來就會很麻煩,因為有的鍵必須有多種功能和不同的觸發(fā)方式,我認(rèn)為可以增加少許按鍵來方便用戶快速了解到我們的鬧鐘是如何進(jìn)展控制的。所以本次設(shè)計設(shè)置5個鍵依次對其進(jìn)展"時間校準(zhǔn)〞、"鬧鐘設(shè)置〞、"秒分時切換/終止警報〞、"加1按鈕〞、"減1按鈕〞。"秒分時切換/終止報警〞鍵在調(diào)時狀態(tài)中,起時分秒切換的作用,在非調(diào)試狀態(tài)下,起鬧鐘終止的作用。當(dāng)用戶按下"時間校準(zhǔn)〞的按鈕后,程序會關(guān)閉T0定時器,之后時鐘停頓工作,此時數(shù)碼管會顯示當(dāng)前靜止的時間,說明已經(jīng)進(jìn)入時間校準(zhǔn)的界面了。在完成時間校準(zhǔn)后,翻開T0定時器,時鐘會在設(shè)置好的時間上繼續(xù)工作走秒。當(dāng)用戶按下"鬧鐘設(shè)置〞按鈕后,會將當(dāng)前時間復(fù)制出來提供應(yīng)定時界面,注意此時我們的時鐘仍然在繼續(xù)工作,只是數(shù)碼管顯示的是定時模式的靜止時間。當(dāng)設(shè)置好后,此時用戶設(shè)置的時間只要沒有觸發(fā)過鬧鈴,再次按"鬧鐘設(shè)置〞按鈕就能查看并修改,即鬧鐘會保存下用戶最后一次未被觸發(fā)的鬧鐘時間。當(dāng)正常工作的時鐘時刻到達(dá)了預(yù)設(shè)的鬧鈴時刻,蜂鳴器發(fā)出警報聲,屏幕會閃爍并顯示當(dāng)前時間。考慮到用戶可能已經(jīng)被提醒而不想繼續(xù)被鬧鈴聲干擾,還提供了一個能夠終止鬧鈴的功能,此功能與"時分秒切換〞功能共用同一按鍵,按下后時鐘繼續(xù)正常工作,且鬧鐘功能又可以重新設(shè)置。2.3系統(tǒng)軟件本設(shè)計在Keil編程環(huán)境下,使用C語言進(jìn)展編程的編輯。編輯成功后,通過仿真軟件Proteus進(jìn)展仿真測試。2.4系統(tǒng)硬件LED顯示屏×1主控芯片:AT89C52鬧鐘提示:蜂鳴器人機(jī)交互:按鍵×5晶振:12KHz×1排阻:RESPACK-8×1電容:10nf×2總線收發(fā)器:74HC245×2第3章系統(tǒng)硬件設(shè)計3.1系統(tǒng)硬件模塊及功能系統(tǒng)硬件模塊主要分為以下幾個模塊:1.主控模塊:控制其他子模塊。2.時鐘模塊:為系統(tǒng)提供實時時間。3.顯示模塊:顯示系統(tǒng)時間信息。4.按鍵模塊:用戶通過按鍵進(jìn)展人機(jī)交互,修改實時時間、設(shè)置鬧鐘時間和終止鬧鐘報警。5.鬧鐘模塊:在所設(shè)鬧鐘時間發(fā)出警報聲。3.2主控模塊主芯片AT89C52(1).AT89C52簡介AT89C52是一個低電壓,高性能CMOS8位單片機(jī),片含8kbytes的可反復(fù)擦寫的Flash只讀程序存儲器和256bytes的隨機(jī)存取數(shù)據(jù)存儲器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器和Flash存儲單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)展編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)本錢。AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。AT89C52引腳圖如圖:圖(2).工作原理AT89C52為8位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的C51核,在部功能及管腳排布上與通用的8xc52一樣,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主IC部存放器、數(shù)據(jù)RAM及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。主要管腳有:XTAL1〔19腳〕和XTAL2〔18腳〕為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd〔9腳〕為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。VCC〔40腳〕和VSS〔20腳〕為供電端口,分別接+5V電源的正負(fù)端。P0~P3為可編程通用I/O腳,其功能用途由軟件定義,在本設(shè)計中,P0端口〔32~39腳〕被定義為N1功能控制端口,分別與N1的相應(yīng)功能管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1的SDAS〔18腳〕和SCLS〔19腳〕端口,12腳、27腳及28腳定義為握手信號功能端口,連接主板CPU的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進(jìn)入的控制功能。P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口P0寫"1〞時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址〔低8位〕和數(shù)據(jù)總線復(fù)用,在訪問期間激活部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。P1口:P1是一個帶部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口寫"1〞,通過部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時/計數(shù)器2的外部計數(shù)輸入〔P1.0/T2〕和輸入〔P1.1/T2EX〕,F(xiàn)lash編程和程序校驗期間,P1接收低8位地址。P2口:P2是一個帶有部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動〔吸收或輸出電流〕4個TTL邏輯門電路。對端口P2寫"1〞,通過部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。在訪問外部程序存儲器或16位地數(shù)據(jù)存儲器〔例如執(zhí)行MOVXDPTR指令〕時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器〔如執(zhí)行MOVXRI指令〕時,P2口輸出P2鎖存器的容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P3口:P3口是一組帶有部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅(qū)動〔吸收或輸出電流〕4個TTL邏輯門電路。對P3口寫入"1〞時,它們被部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3口將用上拉電阻輸出電流〔IIL〕。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE〔地址鎖存允許〕輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時鐘振蕩頻率的1/6輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖〔PROG〕。如有必要,可通過對特殊功能存放器〔SFR〕區(qū)中的8EH單元的D0位置位,可制止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會被微弱拉高,單片機(jī)執(zhí)行外部程序時,應(yīng)設(shè)置ALE制止位無效。PSEN:程序儲存允許〔PSEN〕輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令〔或數(shù)據(jù)〕時,每個機(jī)器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器〔地址為0000H—FFFFH〕,EA端必須保持低電平〔接地〕。需注意的是:如果加密位LB1被編程,復(fù)位時部會鎖存EA端狀態(tài)。如EA端為高電平〔接Vcc端〕,CPU那么執(zhí)行部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。XTAL1:振蕩器反相放大器及部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。時鐘電路設(shè)計利用芯片部的振蕩電路,在XTAL1、XTAL2的引腳上外接定時元件,部振蕩器便能產(chǎn)生自激振蕩。定時元件可以采用石英晶體和電容組成的并聯(lián)諧振電路,如圖所示。晶振可以在1.2~12MHZ之間任選,甚至可以到達(dá)24MHz,但是頻率越高功耗也就越大。和晶振并聯(lián)的電容C1、C2的大小對振蕩頻率有微小影響,可以起到頻率微調(diào)作用。時鐘電路如圖:圖3.2.374HC245芯片電路中用74HC245芯片充當(dāng)總線收發(fā)器,作用是放大信號,它具有典型的CMOS型三態(tài)緩沖門電路。由于單片機(jī)或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過其負(fù)載能力,一般應(yīng)加驅(qū)動器。引腳定義:1引腳DIR:未輸入輸出端口轉(zhuǎn)換用,當(dāng)它為高電平"1〞時,信號由"A〞端口輸入"B〞端口輸出;當(dāng)它為低電平"0〞時,信號由"B〞端口輸入"A〞端口輸出。2-9引腳:"A〞端口輸入輸出端,每個端口與"B〞端口對應(yīng)。11-18引腳:"B〞端口輸入輸出端,每個端口與"A〞端口對應(yīng)。10引腳:GUD,電源地。20引腳:VCC,電源正極。74HC245引腳圖如圖〔1〕:圖〔1〕仿真電路圖如圖〔2〕:圖〔2〕3.3LED顯示模塊本次課程設(shè)計采用了6位數(shù)碼管顯示電路。在6位LED顯示時,為了簡化電路,降低本錢,采用動態(tài)顯示的方式,6個LED顯示器共用一個8位的I/O,

6位LED數(shù)碼管的位選線分別由相應(yīng)的P2.

0~P2.

5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。譯碼顯示電路將"時〞、"分〞、"秒〞計數(shù)器的輸出狀態(tài)經(jīng)七段顯示譯碼器譯碼,通過6位LED七段顯示器顯示出來。到達(dá)定時電路時根據(jù)計時系統(tǒng)的輸出狀態(tài)產(chǎn)生脈沖信號,然后去觸發(fā)音頻發(fā)生器實現(xiàn)鬧鈴。校時電路時用來對"時〞、"分〞、"秒〞顯示數(shù)字進(jìn)展校對調(diào)整的。LED仿真電路圖如圖3.3:圖3.33.4按鍵模塊圖3.3按鍵模塊共設(shè)置了五個按鍵,功能分別如下:(1).時間校準(zhǔn)鍵"CLOCK〞:自鎖開關(guān),按下后進(jìn)入校準(zhǔn)設(shè)置,再次按下后退出。(2).鬧鐘設(shè)置鍵"ALARMCLOCK〞:自鎖開關(guān),按下后進(jìn)入鬧鐘設(shè)置,再次按下后退出。另外可供用戶對已經(jīng)設(shè)置的鬧鐘時間進(jìn)展查看或修改。(3).秒分時切換/終止報警鍵"SWITCH/STOP〞:按鈕開關(guān),在按下"CLOCK〞或"ALARMCLOCK〞鍵時,為時分秒切換功能,默認(rèn)是"秒〞,再次按下是"分〞,然后是"時〞之后是"秒〞,以此類推。在"CLOCK〞或"ALARMCLOCK〞鍵未按下時,為終止報警功能。(4).時間增加鍵"+〞:按鈕開關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)展加一操作。(5).時間減少鍵"-〞:按鈕開關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)展減一操作。按鍵模塊仿真電路圖如圖3.4:圖3.43.5警報模塊鬧鈴指示設(shè)置有聲和光兩種形式。聲音形式的關(guān)鍵元件是蜂鳴器。蜂鳴器有無源和有源兩種,前者需要輸入聲音頻率信號才能正常發(fā)聲,后者那么只需外加適當(dāng)直流電源電壓即可,本次設(shè)計我們使用的是后者。鬧鐘電路是用比擬器來比擬計時系統(tǒng)和定時系統(tǒng)的輸出狀態(tài),如果計時系統(tǒng)和定時系統(tǒng)的輸出狀態(tài)一樣,那么發(fā)出一個脈沖信號,再和一個高頻信號混合,送到放大電路驅(qū)動揚聲器發(fā)聲,從而實現(xiàn)定時鬧響的功能。蜂鳴器仿真電路圖如圖3.5:圖3.5第4章系統(tǒng)軟件設(shè)計4.1系統(tǒng)軟件設(shè)計概述該局部主要分為實時時鐘模塊、LED顯示模塊、鍵盤中斷模塊、鬧鐘模塊。實時時鐘局部主要包括實時時間的讀寫,時間的修改。LED顯示模塊主要包括顯示屏的初始化,顯示的命令字。鍵盤中斷模塊包括各鍵的定義和作用,按鍵的消抖,各按鍵跳轉(zhuǎn)的子程序分配。鬧鐘模塊包括鬧鐘時間的設(shè)置,以及對蜂鳴器啟動和停頓條件的設(shè)置和處理。4.2主程序設(shè)計主程序包含三個局部。一是主函數(shù)局部,負(fù)責(zé)系統(tǒng)的初始化操作;從中斷效勞取得實時時間;判斷鬧鐘時間是否與實時時間相等并在相等時發(fā)出警報聲。第二局部是定時中斷局部,分兩種情況:負(fù)責(zé)處理從中斷效勞獲得的時間數(shù)據(jù)并送至LED顯示緩沖顯示,或者顯示鬧鐘設(shè)置界面并顯示鬧鐘時間的設(shè)置過程。第三局部是外部中斷,主要定義5個按鍵的作用,分配每一個按鍵跳轉(zhuǎn)的子程序。第三局部負(fù)責(zé)時間和日期的修改,鬧鐘時間的設(shè)置,停頓蜂鳴器鳴叫的功能。4.3單片機(jī)的中斷系統(tǒng)斷系統(tǒng)在單片機(jī)應(yīng)用系統(tǒng)中起著十分重要的作用,是現(xiàn)代嵌入式控制系統(tǒng)廣泛采用的一種適時控制技術(shù),能對突發(fā)事件進(jìn)展及時處理,從而大大提高系統(tǒng)對外部事件的處理能力。正是有了中斷技術(shù),單片機(jī)才得以能夠普及。因此,中斷技術(shù)是單片機(jī)的一項重要技術(shù),掌握中斷技術(shù)能開發(fā)出靈活、高效的單機(jī)片應(yīng)用系統(tǒng)。中斷源要讓單機(jī)片停頓當(dāng)前的程序去執(zhí)行其他程序,需要向它發(fā)出請求信號,CPU接收到中斷請求信號后才能產(chǎn)生中斷。讓CPU產(chǎn)生中斷的信號稱為中斷源〔又稱中斷請求源〕。單片機(jī)提供5個中斷源,其中兩個為外部中斷請求源INT0〔P3.2〕和INT1〔P3.3〕,兩個片定時器/計數(shù)器T0和T1的溢出請求中斷源TF0和TF1,1個片串行口發(fā)送或接收中斷請求源T1和R1。中斷的優(yōu)先級別單片機(jī)的CPU工作時,如果一個中斷源向它發(fā)出中斷請求信號,它就會產(chǎn)生中斷。但是,如果同時有兩個中斷源發(fā)出中斷請求信號,CPU就會優(yōu)先接收級別高的中斷請求源,然后再接收優(yōu)先級別低的中斷請求。表列出5個獨立中斷請求源由其硬件構(gòu)造決定的自然優(yōu)先級排列順序。中斷源自然優(yōu)先級中斷入口地址中斷編號外部中斷INT0高↓低0003H0定時器T0000BH1外部中斷INT10013H2定時器T1001BH3串行口通信中斷R1或T10023H4表4.3.2單片機(jī)中斷源的自然優(yōu)先級、入口地址及中斷編號對應(yīng)于單片機(jī)的5個獨立中斷源,應(yīng)有相應(yīng)的中斷效勞程序。這些中斷效勞程序有專門規(guī)定的存放位置,即表的中斷入口地址。當(dāng)有了中斷請求后,CPU可以根據(jù)入口地址迅速找到中斷效勞程序并開場執(zhí)行,大大提高執(zhí)行效率。4.4主程序主程序見附錄。第5章系統(tǒng)測試5.1測試容1.顯示局部2.按鍵局部5.2測試環(huán)境Proteus仿真模擬軟件。5.3測試步驟測試環(huán)境的構(gòu)建〔1〕.在Proteus軟件中繪制好定時鬧鐘仿真模擬電路圖?!?〕.將Keil編譯器生成的.hex文件載入AT89C52芯片。圖〔2〕載入.hex文件〔3〕.在Proteus軟件中,點擊左下角的"play〞按鈕啟動定時鬧鐘。如下列圖,"play〞按鈕在第一個。圖〔3〕仿真電路運行控制按鈕測試容詳細(xì)測試容如下:定時鬧鐘是否能正確顯示時間;是否能正確顯示鬧鐘設(shè)置時的界面;是否能正確顯示時間調(diào)整時的界面。(1).顯示時間點擊"play〞鍵之后,時鐘系統(tǒng)開場走時,如圖〔1〕:圖〔1〕經(jīng)測試,顯示結(jié)果到達(dá)預(yù)期要求。(2).時間調(diào)整測試如果用戶發(fā)現(xiàn)時間運行不對,要對時間進(jìn)展修改和調(diào)整,就需要進(jìn)入時間修改的界面。預(yù)期可以對時、分、秒進(jìn)展調(diào)整和修改。系統(tǒng)能正確顯示時間修改的界面。用戶可以完成時間的修改。經(jīng)測試,該局部運行正常。(3).鬧鐘設(shè)置測試在系統(tǒng)能正確顯示時間之后,用戶假設(shè)想設(shè)置鬧鐘,可以通過按鍵完成鬧鐘時間的設(shè)置。設(shè)置時間到后蜂鳴器報警,按下"STOP〞鍵后警報停頓經(jīng)測試,該局部能正常運行。結(jié)論:通過以上對仿真工程的全面測試,可知仿真局部運行正常。5.4測試結(jié)果通過以上測試,證明本設(shè)計根本實現(xiàn)系統(tǒng)所有要求,即能夠正確顯示時間信息,能夠?qū)Ξ?dāng)前時間進(jìn)展調(diào)整和修改,并且能夠設(shè)定鬧鐘并在所設(shè)置的鬧鐘時間發(fā)出警報聲,通過按鍵可以停頓警報。結(jié)論該系統(tǒng)采用單機(jī)片AT89C52作為核心芯片,結(jié)合一些其他外圍設(shè)備,一起構(gòu)成了一款能夠顯示時間并且能夠?qū)ζ溥M(jìn)展修改和設(shè)置定時鬧鐘的定時鬧鐘系統(tǒng)。該系統(tǒng)采用數(shù)碼管顯示屏,能夠清晰顯示時間信息,并且能夠友好的引導(dǎo)用戶進(jìn)展時間的修改以及鬧鐘的設(shè)置??梢酝ㄟ^各個存放地址對時間進(jìn)展讀寫操作,即讀取時間和修改時間。利用蜂鳴器為用戶提供鬧鈴功能,能夠在設(shè)定時間發(fā)出警報聲提醒用戶。采用按鍵較少的獨立式鍵盤供人機(jī)交互,操作簡單方便。可以通過鍵盤修改時間,也可以設(shè)置鬧鈴時間和修改鬧鈴時間,另外,在鬧鈴時間與系統(tǒng)時間一致,蜂鳴器鳴叫時,可以通過按鍵中斷警報聲。總之,該定時鬧鐘系統(tǒng)完成了市場上一般鬧鐘應(yīng)有的功能,能夠顯示時間和設(shè)置鬧鐘,可以給用戶提供時間信息。該設(shè)計也存在一些缺點,就是實際生產(chǎn)時投入資金會比市場上一般鬧鐘價格昂貴,如果進(jìn)展包裝,價格還會上升一些。另外,外觀不如市場銷售的鬧鐘美觀。致衷心感雷俊紅教師的指導(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é)報〔自然科學(xué)版〕,1998,S1:84-86.[3]王東鋒,王會良,董冠強(qiáng).單機(jī)片C語言應(yīng)用100例[M].:電子工業(yè),2009.3:218-219,148-152.[4]樓然苗,光飛.單片機(jī)課程設(shè)計指導(dǎo)〔第2版〕[M].:航空航天大學(xué),2012.1:285-289...附錄:系統(tǒng)電路圖如下:系統(tǒng)電路圖系統(tǒng)程序如下:#include<reg52.h>sbitbtnTime=P1^0;sbitbtnClock=P1^1;sbitbtnSwitch=P1^2;sbitbtnUp=P1^3;sbitbtnDown=P1^4;sbitpin1=P2^0;sbitpin2=P2^1;sbitpin3=P2^2;sbitpin4=P2^3;sbitpin5=P2^4;sbitpin6=P2^5;sbitpinBuz=P2^6;unsignedchartimer=0,sec,min,hour,count=0,s=60,m=60,h=24,flag=0;unsignedcharcodenumbers[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voiddelayMs(unsignedintk){unsignedinti,j;for(i=k;i>0;i--)for(j=110;j>0;j--);}voidtimeChange(){sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24)hour=0; } }}voidshowTime(unsignedcharzs,unsignedcharzm,unsignedcharzh){pin1=1;P0=numbers[zh/10];delayMs(5);pin1=0;pin2=1;P0=numbers[zh%10]&0x7f; delayMs(5);pin2=0;pin3=1;P0=numbers[zm/10];delayMs(5);pin3=0;pin4=1;P0=numbers[zm%10]&0x7f; delayMs(5);pin4=0;pin5=1;P0=numbers[zs/10];delayMs(5);pin5=0;pin6=1;P0=numbers[zs%10];delayMs(5);pin6=0;}voidsetTime(){unsignedcharst,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(btnUp==0){while(!btnUp);switch(count){case0:st++;if(st==60)st=0;break;case1:mt++;if(mt==60)mt=0;break;case2:ht++;if(ht==24)ht=0;break;default:; } } }if(btnDown==0){delayMs(10);if(btnDown==0){while(!btnDown);switch(count){case0:if(st>0)st--;elsest=0;break;case1:if(mt>0)mt--;else mt=0;break;case2:if(ht>0)ht--;else ht=0;break;default:;} } } }TR0=1;sec=st,min=mt,hour=ht; } }showTime(sec,min,hour);}voidsetClock(){if(btnClock==0){delayMs(50);if(btnClock==0){ if(flag==0){s=sec;m=min;h=hour; } flag=1;while(btnClock==0){showTime(s,m,h);if(btnSwitch==0){delayMs(10);if(btnSwitch==0){while(!btnSwitch); count++;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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論