摘 要 本文介紹了一種以AT89C51單片機(jī)為核心的自動(dòng)打鈴的設(shè)計(jì),在該設(shè)計(jì)中采用數(shù)碼管顯示模塊作為顯示時(shí)間的界面,采用實(shí)時(shí)時(shí)鐘芯片DS12887作為計(jì)時(shí)芯片,并用鍵盤(pán)來(lái)設(shè)置不同的作息時(shí)間,從而來(lái)實(shí)現(xiàn)無(wú)人值守打鈴和系統(tǒng)的自動(dòng)化。
關(guān)鍵詞 單片機(jī)(AT89C51) 自動(dòng)打鈴 數(shù)碼顯示模塊 時(shí)鐘芯片(DS12887)
本設(shè)計(jì)介紹的是一種自動(dòng)化的打鈴系統(tǒng),選用時(shí)鐘芯片DS12887 作為基準(zhǔn)時(shí)間。以單片機(jī)微處理器AT89C51為核心控制芯片,與其擴(kuò)展電路來(lái)實(shí)現(xiàn)自動(dòng)打鈴控制電路的設(shè)計(jì)。硬件電路由AT89C51單片機(jī)、數(shù)碼管顯示電路、DS12887實(shí)時(shí)時(shí)鐘電路、鍵盤(pán)掃描電路、驅(qū)動(dòng)電鈴電路和電源電路等幾大電路組成。在本系統(tǒng)中,AT89C51單片機(jī)是中央計(jì)算處理器,其ROM記錄了程序,作用就是統(tǒng)一調(diào)度和管理所有接口電路工作。數(shù)碼管顯示電路是顯示時(shí)間界面,DS12887實(shí)時(shí)時(shí)鐘電路是實(shí)現(xiàn)計(jì)時(shí)功能。電源電路是為整個(gè)系統(tǒng)供電的模塊。
設(shè)計(jì)實(shí)現(xiàn)結(jié)果為鈴聲響10s后,自動(dòng)關(guān)閉。在節(jié)假日關(guān)閉,在期中、期末考試時(shí),通過(guò)按鍵,到期中、期末考試時(shí)間時(shí)自動(dòng)打鈴,
下面我們來(lái)詳細(xì)討論這個(gè)設(shè)計(jì)方案。
1.系統(tǒng)的組成框圖
由圖可知,硬件電路由AT89C51單片機(jī)、數(shù)碼管顯示電路、DS12887實(shí)時(shí)時(shí)鐘電路、鍵盤(pán)掃描電路、驅(qū)動(dòng)電鈴電路和電源電路等幾大電路組成。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 軟件流程
本設(shè)計(jì)采用查詢方法,從秒至?xí)r單元的數(shù)據(jù)讀出后存入89C51內(nèi)部RAM21H-23H單元中。DS12887是實(shí)現(xiàn)24小時(shí)制電子鐘,6位數(shù)碼管顯示,顯示時(shí)分秒,其顯示格式:235959(小時(shí)十位如果為0則不顯示)。
設(shè)計(jì)在比較時(shí)間子程序中判斷是否是周末,是周末的話就關(guān)閉打鈴,不是周末則對(duì)當(dāng)前時(shí)間和設(shè)定打鈴時(shí)間進(jìn)行比較,相同的話就能夠?qū)崿F(xiàn)打鈴,反之則不行。另外,按下強(qiáng)制打鈴鍵,啟動(dòng)期中、期末程序,則判斷考試時(shí)間,實(shí)現(xiàn)按時(shí)打鈴。
周一到周五打鈴方式分上、下課鈴兩種,系統(tǒng)使用4只按鍵,3只按鍵用來(lái)調(diào)整時(shí)間,另一只為強(qiáng)制打鈴按鈕。調(diào)整選擇鍵SET_KEY:P3.0是通過(guò)選擇鍵選擇調(diào)整位;增加鍵ADD_KEY:P3.1是按一次使選中位加1;減少鍵DEC_KEY;P3.3;強(qiáng)制打鈴鍵DALING_KEY:P3.5;用來(lái)強(qiáng)制打鈴或強(qiáng)制關(guān)閉鈴聲;按一次使選中位減1。如果長(zhǎng)按ADD_KEY或DEC_KEY,識(shí)別后則進(jìn)行調(diào)時(shí)快進(jìn),此時(shí)停止閃爍。如果選中位是秒,則按增加鍵或減少鍵都是將秒清零。
2.2程序如下:
SET_KEY:
CJNE R5,#01H,EXIT ; 選擇鍵鍵值 INC R1 ; 調(diào)整選擇功能標(biāo)志加一
SETB BEEP CJNE R1,#4,EXIT MOV R1,#0
MOV 24H,#00H ; 調(diào)時(shí)閃爍基準(zhǔn)清零
RET ADD_KEY: CJNE R5,#02H,EXIT ; 增加鍵鍵值
CJNE R1,#01H,NEXT1 ; 選擇鍵功能標(biāo)志為1,調(diào)時(shí),否則跳出
MOV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#24H,EXIT
MOV 23H,#00H
NEXT1:
CJNE R1,#02H,NEXT2 ; 選擇鍵功能標(biāo)志為2,調(diào)分,否則跳出
MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,EXIT
MOV 22H,#00H
NEXT2:
CJNE R1,#03H,EXIT ; 選擇鍵功能標(biāo)志為3,調(diào)秒,否則跳出
MOV 21H,#00H ; 如增加鍵按下直接清零秒 RET
DEC_KEY:
CJNE R5,#04H,EXIT ; 減少鍵鍵值
CJNE R1,#01H,NEXT3 ; 選擇鍵功能標(biāo)志為1,調(diào)時(shí),否則跳出
MOV A,23H ADD A,#99H DA A MOV 23H,A
CJNE A,#99H,EXIT MOV 23H,#23H
NEXT3:
CJNE R1,#02H,NEXT4 ; 選擇鍵功能標(biāo)志為2,調(diào)分,否則跳出
MOV A,22H ADD A,#99H DA A
MOV 22H,A CJNE A,#99H,EXIT MOV 22H,#59H
NEXT4:
CJNE R1,#03H,EXIT ; 選擇鍵功能標(biāo)志為3,調(diào)秒,否則跳出
MOV 21H,#00H ; 如較少鍵按下直接清零秒
RET DALING_KEY: CJNE R5,#08H,EXIT ; 選擇鍵鍵值 CPL BEEP
RET
參考文獻(xiàn):
[1]自動(dòng)上課打鈴器.http://zhidao.baidu.com/question/48639044.html ,2009年3月
[2]侯崇升. 利用DS12887時(shí)鐘芯片實(shí)現(xiàn)實(shí)時(shí)定時(shí)電路[J]. 國(guó)外電子測(cè)量技術(shù), 2002年第1期
[3]曹冬, 尹成群, 何玉鈞.基于AT89S51 的新型打鈴器的研制[J].現(xiàn)代電子技術(shù),2005 年第10 期