九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告[共39頁]

  • 資源ID:42979604       資源大小:524.08KB        全文頁數(shù):39頁
  • 資源格式: DOC        下載積分:12積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要12積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告[共39頁]

西安文理學(xué)院課程設(shè)計(jì)報(bào)告定時(shí)鬧鐘設(shè)計(jì)摘要: 本設(shè)計(jì)目的是利用單片機(jī)設(shè)計(jì)制作一個(gè)簡易的定時(shí)鬧鈴時(shí)鐘,可以放在宿舍或教室使用,在夜晚或黑暗的場(chǎng)合也可以使用??梢栽O(shè)置現(xiàn)在的時(shí)間以及鬧鈴的時(shí)間并且顯示出來,若時(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í)分分秒秒。通過五個(gè)功能按鍵可以實(shí)現(xiàn)對(duì)時(shí)間的修改、定時(shí)和鬧鈴終止,鬧鐘設(shè)置的時(shí)間到時(shí)蜂鳴器可以發(fā)出聲響。在軟件方面用C51編程。整個(gè)定時(shí)鬧鐘系統(tǒng)能完成時(shí)間的顯示,調(diào)時(shí)和設(shè)置鬧鐘、停止響鈴等功能,并經(jīng)過系統(tǒng)仿真后得到了正確的結(jié)果。關(guān)鍵詞:定時(shí)鬧鐘;蜂鳴器;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í)別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第 2 頁結(jié)論15致謝16參考文獻(xiàn)17附錄18第 2 頁第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í)器來實(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)。譯碼顯示電路將“時(shí)”、“分”、“秒”計(jì)數(shù)器的輸出狀態(tài)送到七段顯示譯碼器譯碼,通過一個(gè)六位八段數(shù)碼管顯示出來。這里利用51單片機(jī)的相關(guān)知識(shí),來實(shí)現(xiàn)電子鬧鐘的相關(guān)功能。實(shí)驗(yàn)使用了AT89C52、74HC245等芯片,通過單片機(jī)的P0、P3管腳來驅(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顯示器來顯示現(xiàn)在的時(shí)間;顯示格式為“時(shí)時(shí)分分秒秒”;具有4個(gè)按鍵來做功能設(shè)置,可以設(shè)置現(xiàn)在的時(shí)間及顯示鬧鈴設(shè)置時(shí)間;時(shí)間到則發(fā)出一陣聲響,可通過按鍵復(fù)位;對(duì)單片機(jī)系統(tǒng)設(shè)計(jì)的過程進(jìn)行總結(jié),認(rèn)真書寫課程設(shè)計(jì)報(bào)告并按時(shí)上交。1.2.2設(shè)計(jì)任務(wù):利用51單片機(jī)結(jié)合七段LED顯示器設(shè)計(jì)一個(gè)簡易的定時(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ì)的過程。第2章為總體設(shè)計(jì)方案。第3章主要介紹設(shè)計(jì)實(shí)現(xiàn)需要解決的硬件問題。依次介紹所使用的各種硬件的使用方法,并附上仿真電路圖和文字說明。第4章從軟件的角度說明實(shí)現(xiàn)該設(shè)計(jì)需要解決的問題。第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)前時(shí)間與實(shí)時(shí)時(shí)間有誤差時(shí),可以通過鍵盤調(diào)整當(dāng)前時(shí)間。3系統(tǒng)允許進(jìn)行鬧鐘設(shè)置,開啟鬧鐘功能時(shí),當(dāng)設(shè)置的鬧鐘時(shí)間與當(dāng)前時(shí)間一致的時(shí)候,系統(tǒng)通過蜂鳴器發(fā)出警報(bào)聲并且可以通過按鍵停止。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ì)過程中,我發(fā)現(xiàn)通過4個(gè)按鍵來完成一個(gè)鬧鐘的基礎(chǔ)功能雖然可以實(shí)現(xiàn),但是用戶用起來就會(huì)很麻煩,因?yàn)橛械逆I必須有多種功能和不同的觸發(fā)方式,我認(rèn)為可以增加少許按鍵來方便用戶快速了解到我們的鬧鐘是如何進(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í)間,說明已經(jīng)進(jìn)入時(shí)間校準(zhǔn)的界面了。在完成時(shí)間校準(zhǔn)后,打開T0定時(shí)器,時(shí)鐘會(huì)在設(shè)置好的時(shí)間上繼續(xù)工作走秒。當(dāng)用戶按下“鬧鐘設(shè)置”按鈕后,會(huì)將當(dāng)前時(shí)間復(fù)制出來提供給定時(shí)界面,注意此時(shí)我們的時(shí)鐘仍然在繼續(xù)工作,只是數(shù)碼管顯示的是定時(shí)模式的靜止時(shí)間。當(dāng)設(shè)置好后,此時(shí)用戶設(shè)置的時(shí)間只要沒有觸發(fā)過鬧鈴,再次按“鬧鐘設(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語言進(jìn)行編程的編輯。編輯成功后,通過仿真軟件Proteus進(jìn)行仿真測(cè)試。2.4系統(tǒng)硬件LED顯示屏×1主控芯片:AT89C52鬧鐘提示:蜂鳴器人機(jī)交互:按鍵×5晶振:12KHz×1排阻:RESPACK-8×1電容:10nf×2總線收發(fā)器:74HC245×2第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按鍵模塊:用戶通過按鍵進(jìn)行人機(jī)交互,修改實(shí)時(shí)時(shí)間、設(shè)置鬧鐘時(shí)間和終止鬧鐘報(bào)警。 5鬧鐘模塊:在所設(shè)鬧鐘時(shí)間發(fā)出警報(bào)聲。3.2主控模塊3.2.1主芯片AT89C52(1).AT89C52簡介AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的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è)讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash存儲(chǔ)器可有效地降低開發(fā)成本。AT89C52有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ù)位輸入端口,外接電阻電容組成的復(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 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8 個(gè)TTL邏輯門電路,對(duì)端口P0 寫“1”時(shí),可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(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 邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。與AT89C51 不同之處是,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 邏輯門電路。對(duì)端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16 位地?cái)?shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR 指令)時(shí),P2 口送出高8 位地址數(shù)據(jù)。在訪問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 邏輯門電路。對(duì)P3 口寫入“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ī)器周期以上高電平將使單片機(jī)復(fù)位。ALE/PROG:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時(shí)鐘振蕩頻率的1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE 脈沖。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后,只有一條MOVX 和MOVC指令才能將ALE 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE 禁止位無效。PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲(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:振蕩器反相放大器及內(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)緩沖門電路。由于單片機(jī)或CPU的數(shù)據(jù)/地址/控制總線端口都有一定的負(fù)載能力,如果負(fù)載超過其負(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ù)碼管顯示電路。在6位LED顯示時(shí),為了簡化電路,降低成本,采用動(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)七段顯示譯碼器譯碼,通過6位LED七段顯示器顯示出來。到達(dá)定時(shí)電路時(shí)根據(jù)計(jì)時(shí)系統(tǒng)的輸出狀態(tài)產(chǎn)生脈沖信號(hào),然后去觸發(fā)音頻發(fā)生器實(shí)現(xiàn)鬧鈴。校時(shí)電路時(shí)用來對(duì)“時(shí)”、“分”、“秒”顯示數(shù)字進(jìn)行校對(duì)調(diào)整的。LED仿真電路圖如圖3.3:圖 3.33.4 按鍵模塊按鍵模塊共設(shè)置了五個(gè)按鍵,功能分別如下:(1).時(shí)間校準(zhǔn)鍵“CLOCK”: 自鎖開關(guān),按下后進(jìn)入校準(zhǔn)設(shè)置,再次按下后退出。(2).鬧鐘設(shè)置鍵“ALARM CLOCK”: 自鎖開關(guān),按下后進(jìn)入鬧鐘設(shè)置,再次按下后退出。另外可供用戶對(duì)已經(jīng)設(shè)置的鬧鐘時(shí)間進(jìn)行查看或修改。(3). 秒分時(shí)切換/終止報(bào)警鍵“SWITCH/STOP”: 按鈕開關(guān),在按下“CLOCK”或“ALARM CLOCK”鍵時(shí),為時(shí)分秒切換功能,默認(rèn)是“秒”,再次按下是“分”,然后是“時(shí)”之后是“秒”,以此類推。在“CLOCK”或“ALARM CLOCK”鍵未按下時(shí),為終止報(bào)警功能。(4).時(shí)間增加鍵“+”:按鈕開關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)行加一操作。 (5).時(shí)間減少鍵“-”: 按鈕開關(guān),可以在進(jìn)入校準(zhǔn)設(shè)置和鬧鐘設(shè)置后,進(jìn)行減一操作。按鍵模塊仿真電路圖如圖3.4:圖 3.43.5警報(bào)模塊鬧鈴指示設(shè)置有聲和光兩種形式。聲音形式的關(guān)鍵元件是蜂鳴器。蜂鳴器有無源和有源兩種,前者需要輸入聲音頻率信號(hào)才能正常發(fā)聲,后者則只需外加適當(dāng)直流電源電壓即可,本次設(shè)計(jì)我們使用的是后者。鬧鐘電路是用比較器來比較計(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顯示模塊、鍵盤中斷模塊、鬧鐘模塊。實(shí)時(shí)時(shí)鐘部分主要包括實(shí)時(shí)時(shí)間的讀寫,時(shí)間的修改。LED顯示模塊主要包括顯示屏的初始化,顯示的命令字。鍵盤中斷模塊包括各鍵的定義和作用,按鍵的消抖,各按鍵跳轉(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è)置過程。第三部分是外部中斷,主要定義5個(gè)按鍵的作用,分配每一個(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ù)能開發(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è)中斷源,其中兩個(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串行口通信中斷R1或T10023H4表4.3.2 單片機(jī)中斷源的自然優(yōu)先級(jí)、入口地址及中斷編號(hào)對(duì)應(yīng)于單片機(jī)的5個(gè)獨(dú)立中斷源,應(yīng)有相應(yīng)的中斷服務(wù)程序。這些中斷服務(wù)程序有專門規(guī)定的存放位置,即表4.3.2的中斷入口地址。當(dāng)有了中斷請(qǐng)求后,CPU可以根據(jù)入口地址迅速找到中斷服務(wù)程序并開始執(zhí)行,大大提高執(zhí)行效率。4.4主程序主程序見附錄。第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(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)開始走時(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í)間的修改。經(jīng)測(cè)試,該部分運(yùn)行正常。(3).鬧鐘設(shè)置測(cè)試在系統(tǒng)能正確顯示時(shí)間之后,用戶若想設(shè)置鬧鐘,可以通過按鍵完成鬧鐘時(shí)間的設(shè)置。設(shè)置時(shí)間到后蜂鳴器報(bào)警,按下“STOP”鍵后警報(bào)停止經(jīng)測(cè)試,該部分能正常運(yùn)行。結(jié)論:通過以上對(duì)仿真項(xiàng)目的全面測(cè)試,可知仿真部分運(yùn)行正常。5.4測(cè)試結(jié)果通過以上測(cè)試,證明本設(shè)計(jì)基本實(shí)現(xiàn)系統(tǒng)所有要求,即能夠正確顯示時(shí)間信息,能夠?qū)Ξ?dāng)前時(shí)間進(jìn)行調(diào)整和修改,并且能夠設(shè)定鬧鐘并在所設(shè)置的鬧鐘時(shí)間發(fā)出警報(bào)聲,通過按鍵可以停止警報(bào)。結(jié)論該系統(tǒng)采用單機(jī)片AT89C52作為核心芯片,結(jié)合一些其他外圍設(shè)備,一起構(gòu)成了一款能夠顯示時(shí)間并且能夠?qū)ζ溥M(jìn)行修改和設(shè)置定時(shí)鬧鐘的定時(shí)鬧鐘系統(tǒng)。該系統(tǒng)采用數(shù)碼管顯示屏,能夠清晰顯示時(shí)間信息,并且能夠友好的引導(dǎo)用戶進(jìn)行時(shí)間的修改以及鬧鐘的設(shè)置??梢酝ㄟ^各個(gè)寄存地址對(duì)時(shí)間進(jìn)行讀寫操作,即讀取時(shí)間和修改時(shí)間。利用蜂鳴器為用戶提供鬧鈴功能,能夠在設(shè)定時(shí)間發(fā)出警報(bào)聲提醒用戶。采用按鍵較少的獨(dú)立式鍵盤供人機(jī)交互,操作簡單方便??梢酝ㄟ^鍵盤修改時(shí)間,也可以設(shè)置鬧鈴時(shí)間和修改鬧鈴時(shí)間,另外,在鬧鈴時(shí)間與系統(tǒng)時(shí)間一致,蜂鳴器鳴叫時(shí),可以通過按鍵中斷警報(bào)聲。總之,該定時(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ì)上升一些。另外,外觀不如市場(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īng)用100例M.北京:電子工業(yè)出版社,2009.3:218-219,148-152.4 樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)(第2版)M.北京:北京航空航天大學(xué)出版社,2012.1:285-289.第 35 頁附錄:系統(tǒng)電路圖如下:系統(tǒng)電路圖系統(tǒng)程序如下:#include<reg52.h> sbit btnTime = 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 numbers = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void delayMs(unsigned int k) unsigned int i,j; for(i = k;i>0;i-) for(j = 110;j>0;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 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%10; 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(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(st>0)st-; else st = 0;break; case 1:if(mt>0)mt-; else mt = 0;break; case 2:if(ht>0)ht-; else ht = 0;break; default : ; TR0 = 1;sec = st,min = mt,hour = ht; showTime(sec,min,hour);void setClock()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(count = 3) count = 0;if(btnUp = 0)delayMs(10);if(btnUp = 0)while(!btnUp);switch(count)case 0:s+;if(s = 60)s = 0;break;case 1:m+;if(m = 60)m = 0;break;case 2:h+;if(h = 24)h = 0;break; default:; if(btnDown = 0)delayMs(10);if(btnDown = 0)while(!btnDown);switch(count)case 0:if(s>0)s-;else s = 0;break;case 1:if(m>0)m-; else m = 0;break;case 2:if(h>0)h-; else h = 0;break; default:; void buzzer()if(hour = h)&&(min = m)&&(sec = s)int i;for(i = 1;i<30;i+)if(btnSwitch = 0)delayMs(20);if(btnSwitch = 0)break; pinBuz = 1; delayMs(450);showTime(sec,min,hour);pinBuz = 0;delayMs(300);showTime(sec,min,hour);flag = 0; void init()TMOD = 0x01; TH0 = (65536-45872)/256; TL0 = (65536-45872)%256; EA = 1; ET0 = 1; TR0 = 1; pinBuz = 0;void main()init(); while(1) setTime();setClock(); buzzer(); void T0_ms() interrupt 1TH0 = (65536-45872)/256; TL0 = (65536-45872)%256;timer+;if(timer = 20) timer = 0;timeChange();

注意事項(xiàng)

本文(定時(shí)鬧鐘設(shè)計(jì)課程設(shè)計(jì)報(bào)告[共39頁])為本站會(huì)員(gfy****yf)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!