基于ATmage8的打鈴器設(shè)計
0 引言
本設(shè)計根據(jù)學校常規(guī)教學和臨時教學活動(如考試等)對打鈴時間的要求,對打鈴器的設(shè)計進行了改進,使其可分別工作在夏制、冬制、臨時三種模式下。每種工作模式支持多達80個時間點的打鈴輸出,并且根日期的設(shè)置,打鈴器可以自動切換冬夏兩種工作模式,實現(xiàn)不同時制的打鈴。如需臨時改變打鈴時間,將系統(tǒng)切換至臨時工作模式,設(shè)置打鈴時間即可,極大地簡化了打鈴器的操作。通過電路設(shè)計的優(yōu)化改進,提高了設(shè)備的可靠性和操作易用性,并在使用過程中表現(xiàn)出了較高穩(wěn)定性和實用性。
1 系統(tǒng)硬件設(shè)計
打鈴器由ATmega8單片機最小系統(tǒng)、DS1302時鐘電路、LED數(shù)碼顯示電路、串行口通訊電路、按鍵電路和打鈴輸出控制電路構(gòu)成,系統(tǒng)電路如圖1所示。
ATmage8單片機是美國ATEMEL公司的一款高性能、低功耗的8位AVR微處理器,內(nèi)含32個8位通用工作寄存器、RC時鐘振蕩電路、8K字節(jié)的系統(tǒng)內(nèi)可編程Flash、512字節(jié)的EEPROM及1K的SRAM。ATmega8內(nèi)含豐富的總線接口,并有專門的SPI接口,可方便實現(xiàn)與時鐘電路的連接。
時鐘芯片采用的是DS1302。它是一種高性能、低功耗、帶RAM的實時時鐘電路,可以對年、月、日、周日、時、分、秒進行計時。在工作過程中,SCM對這些時鐘單元的數(shù)據(jù)循環(huán)讀取,將讀到的時間與打鈴時間比對,以確定是否打鈴。通過修改相應(yīng)的時間單元,可實現(xiàn)系統(tǒng)時間的調(diào)整。
時間顯示采用了4位共陽LED數(shù)碼管動態(tài)顯示方式,PC口與數(shù)碼管的段碼相連,PB0、PB1、PB6、PB7作為位選信號分別控制數(shù)碼管的共陽極;S1~S4分別與PD4、PD5、PD6、PD7相連,用于系統(tǒng)設(shè)置和時間調(diào)整;串行通訊接口電路分別與ATmega8的RXD和TXD引腳相連,通過與PC聯(lián)機,可快速完成打鈴器的系統(tǒng)設(shè)置、打鈴時間設(shè)定及系統(tǒng)時間的調(diào)整;SPI接口與DS1302的數(shù)據(jù)I/O相連,從DS1302中讀取實時時鐘。
PD2與打鈴控制電路相連,電路如圖2所示,打鈴輸出時,該引腳被置為低電平,三極管Q1飽和導通,經(jīng)光耦隔離并觸發(fā)Q2飽和導通,繼電器JD1得電閉合,并觸發(fā)雙向晶閘管AK極導通,AC220V電源經(jīng)BT136的AK極,電鈴線圈得電響鈴。當響鈴時間結(jié)束后,PD2被置為高電平,Q1截止,后續(xù)電路均失電,響鈴停止。
2 軟件設(shè)計
打鈴器上電后,SCM將從片內(nèi)的EEPROM中讀取設(shè)置參數(shù)進行系統(tǒng)的初始化,然后讀取DS1302時間單元,將時間通過定時中斷程序顯示出來。在工作過程中,每個打鈴時間點用兩個字節(jié)分別表示小時和分鐘的時間值,當秒單元為‘00’時,系統(tǒng)將調(diào)用一次打鈴時間比較子程序,以確定當前時間是否打鈴,系統(tǒng)的主程序流程如圖3所示。
評論