王 娟,魏 雄
(東華理工大學機械與電子工程學院,江西 南昌 330013)
多年來,一些學校使用的基本是傳統的打鈴鐘,以往的打鈴鐘操作不便,靜態電流大,電路復雜,可靠性低,成本高。而多功能定時打鈴鐘就有效的解決了這些問題。使用方便,可自動完成學校每天的打鈴要求,還可以隨時對任意一點的打鈴時刻,打鈴方式做調整,不影響走時。這種打鈴鐘經濟性、穩定性好,節省人力、走時準確,能夠滿足商業貿易和學校的使用需求。
本系統設計的是適用于學校的多功能定時打鈴鐘,能自動完成每天的打鈴工作,顯示當前時間 ,可以用鍵盤來校正不準時間。該系統由單片機微型計算機AT89C51和移動寄存器74LS164以及八段數碼管,光耦器等組成。系統框圖如圖1所示。

圖1 多功能定時打鈴鐘的基本思路
其中微型計算機AT89C51主要負責數據處理,控制顯示,鍵盤控制等工作,是該系統的核心部分。
(1)鍵盤接89C51的P1口,從P1.0到P1.3口共設置了四個鍵,作用分別為開始鍵、顯示修改鍵、加一鍵、減一鍵。
(2)顯示電路中,是通過89C51的P3.0和P3.1口即串行輸入輸出口控制移位寄存器74LS164對數碼管驅動顯示。
(3)驅動電路中,我們用到 AT89C51的P2.0口,通過晶體三極管NPN8050和光藕器MOC3041,連接一個發光二級管,用可控硅來控制打鈴。
本系統用四個數碼管分三屏顯示月,時,分,秒。規定起始的時間為2011年6月11日00點00分00秒。
打鈴時間的設置為:上課時間50分鐘;課間休息10分鐘;上午8點上課;節數為4節;下午2點上課;節數為4節;晚上7點上課,節數為2節。
響鈴的時間為:8:00、8:50、9:00、9:50、10:00、10:50、11:00、11:50、14:00、14:50、15:00、15:50、16:00、16:50、17:00、17:50、19:00、 9:50、20:00、20:50。 共為 20 次響鈴,可自動實現而不用每次人工設置操作。
所有的運算是采用十六進制無符號整數運算,定點顯示,鍵盤控制,當需要校準時間時能在鍵盤上直接操作,如清零,加時間,減時間。
(1)顯示電路。采用了串口靜態顯示,選用的驅動芯片是74LS164,用其來驅動八段數碼管。當89C51的串行口不作通信使用的時候,串行口可以工作于移位寄存器方式,用來驅動LED靜態顯示器,這樣就可以充分利用串行口,而將并行口用到最需要的地方去。
本系統采用的是靜態顯示,這樣在每一個顯示輸出后能夠保持不變,僅在待顯數字需改變時,才更新其數字顯示器中鎖存的內容。這種顯示站用機時少,顯示穩定可靠。缺點是,當顯示的位數較多時,占用的I/O口較多。在顯示的時候,應該將高位的零熄滅。這樣可以減少閱讀差錯,也比較符合習慣。這種顯示功能成為滅零顯示。它的規則是:整數部分從高位到低位的連續零均不顯示。從遇到的第一個非零數值開始均要顯示,個位的零和小數部分均應顯示。
(2)鍵盤掃描電路。鍵盤是人與微機系統打交道的主要設備。為了節省資源空間和費用,也為了使面板容易布置些,我們在此設計中,采用了獨立式鍵盤,僅僅采用了四個按鍵。由于節省了按鍵,但我們必須完成一些功能,設定這四個鍵為功能鍵。從引腳P1.0到P1.3下來,這四鍵分別為開始鍵、顯示修改鍵、加一鍵、減一鍵。在一般狀態下,P1.0到P1.3都是處于高電平,當往其中一個口送低電平,則這個口所對應的按鍵按下,進入其所對應的功能模式。
為了使單片機控制系統中各種硬件設備能夠正常運行,有效地完成打鈴鐘各個控制環節的實時控制和管理,除了要設計合理的硬件電路外,還必須要有高質量的軟件支持。因此,軟件在整個設計中也顯得十分重要。一個控制系統中程序設計得好與壞,將直接決定了整個系統的控制質量和它的效率。對于多功能定時打鈴鐘系統,它也是由主程序和定時/計數器T0中斷子程序,以及若干個子程序(如鍵盤掃描子程序、顯示子程序、判斷閏年子程序和延時子程序等)構成,其沒一個功能模塊都實現了某一確定的任務。
(1)主程序。在多功能定時打鈴鐘系統的軟件設計中,主程序設計是關鍵。它實現了對定時/計數器的初始化以及開中斷,并且設定了初始的年、月、日、時、分和秒,同時還調用了鍵盤掃描子程序。
(2)子程序。外部中斷子程序,在查詢按鍵值中斷顯示,設定為優先級中斷,其流程圖如圖6

在調試程序過程中,源程序的編輯在PC機上進行,各程序模塊都調試通過后,再將它們組合起來進行系統統調。調試過程只有當硬件調試和軟件調試完成以后,再進行系統綜合調試。在Keil uvision2環境下各程序模塊都能通過調試,達到了設計要求。
[1]劉樂善.微型計算機接口技術及應用[M].武漢:華中科技大學出版社,2005.
[2]趙茂泰.智能儀器原理及應用[M].北京:電子工業出版社,2005.
[3]楊文龍.單片機原理及應用[M].西安:西安電子科技大學出版社,1998.