黃艷梅
(西華師范大學電子信息工程學院,四川南充637002)
在學校中,為了維持良好的上下課秩序和規范學生的日常作息時間,經常需要使用打鈴系統。打鈴系統不僅可以為上下課的老師和學生們提供時間提醒,也有利于師生對上課和學習時間的合理安排。本系統不僅能實現基本的校園打鈴功能,還能實現掉電后數據不丟失,保證了停電事故發生后,校園打鈴系統仍能正常工作,并且使用起來也非常方便。
1.1單片機最小系統的構成。本系統采用STC89C52RC單片機芯片作為硬件核心。STC89C52RC是一種低功耗、高性能CMOS8位微控制器,內部具有8KB ROM存儲空間,512字節數據存儲空間,帶有4K字節的EEPROM存儲空間。
時鐘電路:本系統采用內部時鐘電路,即在XTAL1和XTAL2引腳上外接定時元件 (由石英晶體和電容組成的并聯諧振回路),這樣就構成一個穩定的自激振蕩器。晶振的頻率采用12MHz,電容為20pF。
復位電路:當程序跑飛或死機時,就需要進行復位。時鐘電路工作后,在RST端持續給出2個機器周期的高電平就能完成復位操作。如果RST持續為高電平,單片機就處于循環復位狀態。復位方式有上電復位和開關復位。本系統采用圖1所示的復位電路。

圖一
1.2獨立按鍵模塊。由于本系統需要的按鍵數量不多,所以不需要使用矩陣鍵盤,因此選擇獨立按鍵就非常適合。模式按鍵,調節按鍵,存入按鍵,清空按鍵,這4個按鍵接到STC89C52RC單片機IO口上,設置為低電平有效,通過調節它們,就可以對系統當前時間以及打鈴時間進行調節,存儲,清空,使用起來非常方便快捷。
1.3打鈴模塊。系統通過蜂鳴器發出打鈴聲音,單片機的某一引腳用來控制蜂鳴器的工作狀態,當該引腳輸出高電平時,三極管截止,蜂鳴器不發聲;當該引腳輸出低電平時,三極管導通,蜂鳴器發出打鈴聲音。
1.4實時時鐘模塊。本系統使用了DS1302時鐘芯片,它可自動對秒、分、時、日、周、月、年以及閏年補償的年進行計數,而且精度非常高,工作電壓2.5V~5.5V范圍內,2.5V時耗電小于300nA,具有主電源/后備電源雙電源引腳,可以對后備電源進行涓細電流充電。DS1302芯片中的32768HZ晶振的精度小于0.01%,所以整個系統的精確度非常高。而且DS1302芯片采用3V的電池作為后備電源,使DS1302內部的時鐘不會因為系統掉電而停止。
1.5液晶顯示模塊。LED數碼管顯示數字比較合適,不適用顯示字母,符號,而且功耗大。而在日常生活中,我們經常可以看見液晶顯示屏的身影,例如:計算器,電子手表,萬用表。根據以上所述,本系統使用LCD1602液晶,它非常適合顯示字母、數字、符號,能夠同時顯示兩行,每行16個字符,并且微功耗、體積小、顯示內容豐富、超薄輕巧,價格適中。
1.6存儲模塊。要保證設置的打鈴時間數據在掉電時也不會丟失,同時實現在系統運行時能夠修改打鈴時間,就要用到AT24C02芯片。AT24C02芯片是一種電可擦除存儲器,內部含有256個8位字節,與易失性存儲器相比,斷電后它的數據不會出現丟失,因此可以用它設置多個打鈴時間點。
本系統采用C語言編程,C語言語法簡潔,使用方便,可讀性強,方便移植,用于完成軟件設計非常方便,并且使用了keil4軟件。程序思路為:先初始化LCD1602,DS1302,通過鍵盤設置打鈴時間,AT24C02存儲數據,最后蜂鳴器發出打鈴聲音。程序主要由主程序、獨立按鍵識別程序、定時器中斷子程序,DS1302時鐘程序,LCD1602液晶顯示子程序,AT24C02數據存儲子程序組成。程序里也加入了獨立按鍵防抖程序,避免因按鍵自身抖動,影響整個系統的準確度。本系統可以設置多個打鈴時間點,實時顯示當前時間,并且具有掉電保護功能,保證了設置的打鈴時間不會因系統掉電而需要重新設置。
本文設計了一種模擬校園打鈴系統,以STC89C52RC單片機為核心,通過獨立按鍵模塊,DS1302時鐘芯片,LCD1602液晶,AT24C02存儲芯片,實時顯示了當前時間,對打鈴時間進行修改,存儲,具有掉電保護功能,完整的實現了校園打鈴功能。由于本次設計采用的模塊化編程,所以當出現問題時,也便于找出錯誤原因。總的來說,本次的設計在基本打鈴功能的基礎上,增加了實時顯示,掉電保護,具有一定的實用性。
參考文獻:
[1]楊帆.一種基于單片機的校園打鈴系統的實現.[J].電腦知識與技術,2013,(32).
[2]李麗榮.51單片機應用設計[M].北京:北京理工大學出版社,2012.
[3]鄧楠川,胡湘娟,陽泳.基于單片機的校園智能打鈴系統的設計與制作.[J].電子世界,2015,(19).