摘 要:電子鬧鐘是一種應(yīng)用非常廣泛的日常計(jì)時(shí)工具,數(shù)字顯示的日歷鐘已經(jīng)越來(lái)越流行,特別是適合在家庭居室、辦公室、大廳、會(huì)議室、車站和廣場(chǎng)等使用,壁掛式LED數(shù)碼管顯示的日歷鐘逐漸受到人們的歡迎。
首先介紹設(shè)計(jì)電子鬧鐘所涉及的主要硬件和特性,然后說明軟件設(shè)計(jì)的思路,程序結(jié)構(gòu)及流程,并在測(cè)試軟件上進(jìn)行調(diào)試和修改,以完成電子鬧鐘的基本要求,即可以隨意設(shè)定起始時(shí)間,有秒顯示功能,可以設(shè)定鬧鐘,停止時(shí)由電池供電等功能。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);集成電路;電子鬧鐘硬件;電子鬧鐘軟件
1 概述
電子鬧鐘在科學(xué)技術(shù)高度發(fā)展的今天,千家萬(wàn)戶都少不了它,所以很多家庭個(gè)人都需要有一個(gè)電子鬧鐘,為人們提供報(bào)時(shí)方便。本文給出了一種以AT89S51單片機(jī)電子鬧鐘設(shè)計(jì)方法,從而給人們帶來(lái)更為方便的工作與生活。
1.1 電子鬧鐘發(fā)展趨勢(shì)
單片機(jī)電子鬧鐘是具發(fā)前鬧鐘創(chuàng)新性的系統(tǒng),它代表了時(shí)代的發(fā)展趨勢(shì)。在原材料價(jià)格不斷上漲、下游渠道商實(shí)力膨脹、價(jià)格戰(zhàn)越來(lái)越激烈、行業(yè)利潤(rùn)日趨微薄的背景下,日前,中國(guó)的電子鬧鐘在節(jié)能化、環(huán)?;?chuàng)新型轉(zhuǎn)變過程中,正進(jìn)行新一輪鬧鐘賽跑。
1.2 電子鬧鐘的重要意義
20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。 時(shí)間對(duì)人們來(lái)說總是那么寶貴,工作的忙碌性和繁雜性容易使人1.概述
忘記當(dāng)前的時(shí)間。鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。
1.3 本課題研究的主要內(nèi)容
首先介紹設(shè)計(jì)電子鬧鐘所涉及的主要硬件和特性,然后說明軟件設(shè)計(jì)的思路,程序結(jié)構(gòu)及流程,并在測(cè)試軟件上進(jìn)行調(diào)試修改,以完成電子鬧鐘的基本要求,即可隨意設(shè)定起始時(shí)間,有秒顯示功能,有12/24時(shí)制選擇,可設(shè)定鬧鐘,由電池供電等功能。
2 電子鬧鐘的系統(tǒng)設(shè)計(jì)
2.1 AT89S51單片機(jī)的特性
Atmel公司的AT89S51芯片具有以下特性:
(1) 指令集和芯片引腳與Intel公司的8051兼容;
(2) 4KB片內(nèi)在系統(tǒng)可編程Flash程序存儲(chǔ)器;
(3) 時(shí)鐘頻率為0~33MHz;
(4) 128字節(jié)片內(nèi)隨機(jī)讀寫存儲(chǔ)器(RAM);
(5) 32個(gè)可編程輸入/輸出引腳;
(6) 2個(gè)16位定時(shí)/計(jì)數(shù)器;
(7) 6個(gè)中斷源,2級(jí)優(yōu)先級(jí);
(8) 全雙工串行通信接口;
(9) 監(jiān)視定時(shí)器;
(10) 2個(gè)數(shù)據(jù)指針。
單片機(jī)的最小應(yīng)用系統(tǒng)電路指的是它可以正常工作的最簡(jiǎn)單電路組成。AT89S51單片機(jī)的最小應(yīng)用系統(tǒng)電路如圖1所示,該系統(tǒng)中包含4個(gè)電路部分:供電電路、程序存儲(chǔ)器選擇電路、時(shí)鐘電路、復(fù)位電路。
2.2 電子鬧鐘的硬件設(shè)計(jì)
2.2.1硬件選擇
單片機(jī)選用AT89S51型,它是一種帶4K字節(jié)閃爍可編程可擦除只讀儲(chǔ)存的低電壓、高性能CMOS8位微處理器,該器件采用ATMEL高密度非易失性存儲(chǔ)器制造技術(shù)與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT8951是一種高效微控制器,為很多嵌入控制系統(tǒng)提供了一種靈活性高且廉價(jià)的方案。
整體系統(tǒng)選用 AT89S51單片機(jī),時(shí)鐘芯片DS1302,數(shù)碼管顯示驅(qū)動(dòng)芯片MAX7219。共陰極數(shù)碼管8個(gè),4511七段譯碼芯片1片, 24M晶振1個(gè)。
2.2.2系統(tǒng)組成
該數(shù)字鬧鐘包括以下幾個(gè)組成部分:(1) 顯示屏:由6個(gè)七段數(shù)碼管組成,用于顯示當(dāng)前時(shí)間(時(shí) 分 秒)或設(shè)置的鬧鐘時(shí)間;(2) KEY鍵:用于輸入新的時(shí)間或新的鬧鐘時(shí)間時(shí),對(duì)每位輸入數(shù)字的確認(rèn);(3) TIME(時(shí)間)鍵:用于確定新的時(shí)間設(shè)置; (4)鬧鐘鍵:用于確定新的鬧鐘時(shí)間設(shè)置,或顯示已設(shè)置的鬧鐘時(shí)間;(5) 揚(yáng)聲器:在當(dāng)前時(shí)鐘時(shí)間與鬧鐘時(shí)間相同時(shí),發(fā)出響聲。
2.2.3系統(tǒng)設(shè)計(jì)
(1)控制器??刂破魇请娮郁[鐘設(shè)計(jì)的核心部分,按設(shè)計(jì)要求產(chǎn)生相應(yīng)的控制邏輯,以控制其他各部分的工作。由程序計(jì)數(shù)器、指令寄存器、指令譯碼器、時(shí)序產(chǎn)生器和操作控制器組成,它是發(fā)布命令的“決策機(jī)構(gòu)”,即完成協(xié)調(diào)和指揮整個(gè)計(jì)算機(jī)系統(tǒng)的操作。
(2)計(jì)數(shù)器。計(jì)數(shù)器實(shí)際上是一個(gè)異步復(fù)位、異步置位的累加器。通常情況下進(jìn)行時(shí)鐘累加計(jì)數(shù),必要時(shí)可以置入新的時(shí)鐘值,然后從該值開始新的計(jì)數(shù)。
(3)寄存器。寄存器用于保存用戶設(shè)置的鬧鐘時(shí)間,是一個(gè)異步復(fù)位寄存器。寄存器是中央處理器內(nèi)的組成部份,是有限存貯容量的高速存貯部件,它們可用來(lái)暫存指令、數(shù)據(jù)和位址。
(4)分頻器。分頻器將高速的外部時(shí)鐘頻率分頻成每一分鐘一次的時(shí)鐘頻率,以便進(jìn)行時(shí)鐘計(jì)數(shù)。由于石英晶體振蕩器產(chǎn)生的頻率很高,要得到秒脈沖,需要用分頻電路。
(5)顯示電路。顯示器根據(jù)需要顯示當(dāng)前時(shí)間、用戶設(shè)置的鬧鐘時(shí)間或用戶通過鍵盤輸入的新時(shí)間,同時(shí)判斷當(dāng)前時(shí)間是否已到了鬧鐘時(shí)間,實(shí)際上是一個(gè)多路選擇比較器。
(6)計(jì)時(shí)器。在計(jì)時(shí)過程中,系統(tǒng)利用89S51自身的計(jì)時(shí)器T0作為時(shí)鐘基準(zhǔn),計(jì)時(shí)器中斷的準(zhǔn)確度直接關(guān)系到整個(gè)系統(tǒng)的精度,因此獲取精確的定時(shí)時(shí)鐘信號(hào)成為該系統(tǒng)的關(guān)鍵。AT89S51單片機(jī)內(nèi)有2個(gè)可編程的16位定時(shí)器/計(jì)數(shù)器,并工作在方式l下,晶振頻率為12MHz。
電子鬧鐘的系統(tǒng)硬件電路如圖2所示
2.3 電子鬧鐘的軟件設(shè)計(jì)
AT89S5l內(nèi)部定時(shí)/計(jì)數(shù)器T0和Tl設(shè)置為定時(shí)器模式l工作方式.作為電子時(shí)鐘及電子秒表的計(jì)時(shí)基準(zhǔn)。定時(shí)器T0產(chǎn)生10 ms的中斷信號(hào),每經(jīng)過1t30次中斷,時(shí)鐘秒位加一,秒位經(jīng)60次加一后向時(shí)位進(jìn)位,當(dāng)時(shí)問為23時(shí)59分59秒時(shí),秒位再加一后變?yōu)?0時(shí)00分00秒.當(dāng)按鍵切換為電子秒表功能時(shí),T0每產(chǎn)生一次中斷,十毫秒單元加一,十毫秒單元經(jīng)過l0次加一后,百毫秒單元加一。軟件設(shè)計(jì)分為主程序、定時(shí)器T0和定時(shí)器T1中斷服務(wù)程序及相應(yīng)的子程序。
2.3.1子程序及其功能簡(jiǎn)介
(1) 比較程序
每當(dāng)秒存儲(chǔ)單元的內(nèi)容為0時(shí),系統(tǒng)通過調(diào)用比較子程序可判斷當(dāng)前時(shí)間是否符合鬧鈴條件,若符合,則調(diào)用發(fā)音子程序使蜂鳴器發(fā)出鬧鈴聲音。
(2) 檢測(cè)按鍵程序
當(dāng)系統(tǒng)檢測(cè)到某個(gè)案件被按下時(shí),轉(zhuǎn)到相應(yīng)子程序處理,可實(shí)現(xiàn)校時(shí)、設(shè)定鬧鈴時(shí)間的功能
(3) 顯示程序
系統(tǒng)通過調(diào)用顯示子程序,可將顯示緩沖區(qū)里的內(nèi)容通過動(dòng)態(tài)掃描方式輸出到數(shù)碼管顯示器。
(4) 時(shí)間設(shè)置程序
系統(tǒng)通過按鍵檢測(cè),更改顯示數(shù)值,從而實(shí)現(xiàn)對(duì)當(dāng)前時(shí)間修改的功能。
2.3.2程序設(shè)計(jì)
我們利用芯片和軟件編程結(jié)合的思路。下面將對(duì)照程序的構(gòu)成來(lái)闡述我對(duì)簡(jiǎn)易鬧鐘的方案設(shè)計(jì),具體設(shè)計(jì)方案如下:(一)在主程序中,填寫中斷向量表,應(yīng)用8255A的IRQ7和IRQ5端。利用8253A和8259A完成計(jì)時(shí)一秒的功能,然后通過更新時(shí)間的子程序完成時(shí)間跳變的功能,待到新的時(shí)間判斷是否到達(dá)設(shè)定的鬧鐘的時(shí)間,如果是,則啟動(dòng)揚(yáng)聲器;如果否,則繼續(xù)進(jìn)行顯示時(shí)間。(二)鬧鐘的時(shí)間是變化的,在更新時(shí)間的子程序中,首先判斷更改后的秒數(shù)是否小于10,如果是,則返回主程序;如果否,則秒的個(gè)位跳變成0,秒的十位加一;再次判斷秒的十位,過程同判斷秒的個(gè)位相同。(三)在顯示時(shí)間的子程序中,時(shí)間從0,0,0,0開始顯示。
3 系統(tǒng)的調(diào)試和性能分析
3.1 系統(tǒng)的調(diào)試方法
整個(gè)系統(tǒng)調(diào)試的主要思想是:先每個(gè)模塊進(jìn)行調(diào)試,然后整個(gè)系統(tǒng)一起調(diào)試。先軟硬件分開調(diào)試,然后一起調(diào)試。遵循先部分后整體的原則。
系統(tǒng)的在調(diào)試過程中要注意以下幾點(diǎn):
(1)硬件電路設(shè)計(jì)完之后,在上電之前一定要先用萬(wàn)用表檢測(cè)電源和地之間是否短路。
(2)上電之后要用示波器觀察信號(hào)的在電路中變化的情況,與設(shè)計(jì)當(dāng)初的情況相比較,找出差別,并進(jìn)行分析。
(3)軟件調(diào)試過程中可以使用斷點(diǎn)、單步執(zhí)行等常用的方法。
(4)軟硬件聯(lián)調(diào)時(shí),要注意軟件部分要一個(gè)功能一個(gè)功能的調(diào)試。
3.2 系統(tǒng)的性能分析
系統(tǒng)能在設(shè)定的時(shí)間內(nèi)鬧鈴,必須調(diào)用一次顯示子程序后才能再次取反,否則在發(fā)音期間不能顯示,而調(diào)用一次顯示子程序需要的時(shí)間大約為6ms(6位每位1ms),所以振蕩頻率f=1/T=1/(2*6ms)≈83Hz,顯然這個(gè)頻率過低。經(jīng)測(cè)試,其時(shí)鐘誤差約為3秒/天,這是因?yàn)閺亩〞r(shí)器向CPU發(fā)出中斷申請(qǐng)信號(hào)到重裝定時(shí)初值的過程需要一定的時(shí)間。
本系統(tǒng)通過測(cè)試,能夠?qū)崿F(xiàn)以下功能:(1)按鍵輸入(2)鬧鈴聲音(3)LED顯示。
4 結(jié)論
通過這次課程設(shè)計(jì),使的我對(duì)這門功課有了更加深刻的了解,首先從硬件的工作原理有了進(jìn)一步系統(tǒng)的學(xué)習(xí),同樣有了進(jìn)一步的認(rèn)識(shí),使我懂得了理論與實(shí)際相結(jié)合的重要性,光靠有理論知識(shí)是不夠的只有把所學(xué)的理論知識(shí)與實(shí)踐相互結(jié)合起來(lái),才可以提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。其次在這次軟件設(shè)計(jì)中也有不足的地方,比如沒有實(shí)現(xiàn)鬧鈴功能,但是又不知道從哪個(gè)地方入手解決這個(gè)問題,這要求在以后的學(xué)習(xí)中,必須拓寬自己的知識(shí)面,以解決設(shè)計(jì)中得不足之處。總之,通過這次課程設(shè)計(jì)我不僅鞏固了對(duì)課本所學(xué)的基本知識(shí),還使我具有了撰寫科研報(bào)告的初步訓(xùn)練能力,我相信這些能力在我以后的學(xué)習(xí)或者工作中一定會(huì)起到不小的作用,一切的辛苦和艱難都是值得的。
經(jīng)過不斷的努力讓電子鬧鐘能實(shí)現(xiàn)以下幾個(gè)功能:
能正確顯示鬧鐘的走時(shí);
可以進(jìn)行當(dāng)前時(shí)間的設(shè)置;
可以設(shè)置鬧鐘時(shí)間,并能在時(shí)間到時(shí)發(fā)出響聲。
可是在這次設(shè)計(jì)中也遇到了許多困難的地方,例如:
單片機(jī)的系統(tǒng)設(shè)計(jì),它的內(nèi)置存儲(chǔ)器功能無(wú)法集成到芯片內(nèi)部;
在電路應(yīng)用中,在關(guān)閉電源后短時(shí)間內(nèi)再次啟動(dòng)電源,系統(tǒng)工作會(huì)不正常;
單片機(jī)與大功率LED燈共用一個(gè)電源,系統(tǒng)會(huì)出現(xiàn)死機(jī),程序走亂得現(xiàn)象。
參考文獻(xiàn)
1.李捷.陳典濤等.一種應(yīng)用單片機(jī)電子鬧鐘的設(shè)計(jì)與制作設(shè)計(jì).農(nóng)機(jī)化研究.2005
2.陳明熒.8051單片機(jī)課程設(shè)計(jì)實(shí)訓(xùn)教材 北京:清華大學(xué)出版社 2004
3.胡漢才.單片機(jī)原理及其接口技術(shù) 北京:清華大學(xué)出版社 1995
4.徐淑華 程退安 姚萬(wàn)生 .單片機(jī)微型機(jī)原理及應(yīng)用 哈爾濱工業(yè)大學(xué)出版社1994
5.丁元杰.《單片機(jī)原理與應(yīng)用》.機(jī)械工業(yè)出版社出版.2003年2月.58-67
6. 朱定華.《單片機(jī)原理及接口技術(shù)》.電子工業(yè)出版社出版.2004年5月.32-46
7. 何立民.《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接
作者簡(jiǎn)介
劉耀(1993-),男,漢,陜西,本科在讀,西安外事學(xué)院,學(xué)生。