王仲夏,謝添,王蘇明
(1.皖江工學院電氣信息學院,安徽馬鞍山,243000;2. 南京蘇寧工程咨詢有限公司,江蘇南京,210000)
每年學校都要組織各種類型的考試,如其中期末考試,并且在社會上也有許多社會化的考試,考生參加考試的人數(shù)眾多且考場分布廣泛,少則一個學校,多則十幾個學校,在所有的這些考試中考生最需要控制的就是考試的時間,在考場中也分布了各種類型的時鐘,如何保證各考場教室的時鐘與考試時間同步,是保障考試公平公正的重要因素。本文在電子時鐘原有的功能上進行擴展,如定時提醒、設置考試過程中的提醒時間、提醒次數(shù),甚至在考試時間內對相應的電氣設備(無線電屏蔽儀)的定時啟動和停止,因此對電子時鐘的設計是具有實際意義的。
根據系統(tǒng)的功能要求,初步確定該系統(tǒng)由主控時鐘模塊(STC89C52+DS1302)、按鍵模塊、顯示模塊(數(shù)碼管)和通信模塊組成。系統(tǒng)方框圖如圖1所示。
圖1 考場時鐘系統(tǒng)方框圖
DS1302與STC89C52單片機的連接簡單,將引腳I/O、SCLK、RST與單片機的I/O口連接即可,將DS1302中的數(shù)據讀取到單片機中,單片機將處理后的數(shù)據通過數(shù)碼管顯示出來。通過加入的三個獨立按鍵,可進一步對時間進行修改,三個按鍵分別是菜單、+、-,例如第一次按下菜單鍵時選中分(此時‘分’閃爍),此時可以通過按下+鍵來增加分,按下-鍵來減少分;當?shù)诙伟聪虏藛捂I時選中時(此時‘時’閃爍)此時可以通過按下+鍵或-鍵可以增加或者減少時;當?shù)谌伟聪虏藛捂I后,修改后的時間數(shù)據寫入DS1302時鐘芯片并通過數(shù)碼管顯示出來。時鐘校時由HC05藍牙模塊,藍牙模塊直接接到單片機的RXD和TXD引腳構成,系統(tǒng)原理圖如圖2所示。
圖2 考場時鐘系統(tǒng)原理圖
STC89CC52是STC公司生產的一種低功耗、高性能的八位微控制器,內部具有8K用戶應用程序空間。STC89C52沿用了經典的MCS-51內核,并在其基礎上做出了改進,使芯片具有一些傳統(tǒng)51單片機不具備的功能。內置4KB的EEPROM,復位電路,3個16位定時器/計數(shù)器,4 路外部中斷,中斷觸發(fā)方式有下降沿觸發(fā)和低電平觸發(fā)兩種,看門狗定時器,全雙工串行口。另外STC89C52有空閑模式、掉電保護兩種可供選擇的節(jié)電模式,空閑模式下,CPU停止工作,但RAM、定時器/計數(shù)器、串口、中斷等工作不會受到影響。掉電保護方式下,RAM內容被保存,直到下一次單片機工作時數(shù)據也不會丟失,但單片機會停止工作,如果讓單片機繼續(xù)工作,按下復位鍵即可,在單芯片上,由于STC89C52具有8位的CPU和可編程Flash的優(yōu)點,因此可以為現(xiàn)在大多數(shù)嵌入式控制系統(tǒng)提供更多可選擇的解決方案。
DS1302是一個內部帶有RAM的時鐘芯片,并且有兩個電源引腳(主電源,后備電源),這使DS1302芯片即使在沒有主電源的情況下,仍然能夠長時間的保證時間的準確性,DS1302芯片通過簡單的串行接口與單片機進行通信,其工作電壓為2.5V~5.5V。DS1302具有很全的計時功能。例如DS1302芯片具有可自動調整每月的天數(shù)和閏年的天數(shù)的功能,這使其更加智能化,該芯片還提供秒、分、時、日、月、年的信息,時鐘可通過AM/PM 指示決定采用24 或12 小時制,本次系統(tǒng)只采用了時、分、秒進行計時功能。
2.2.1 DS1302與單片機之間的通信
DS1302 與單片機之間通過三個引腳(RST、I/O、SCLK)進行通信,它們之間采用同步串行通信的方式通信。
2.2.2 DS1302的優(yōu)點
DS1302有兩個電源引腳,分別為后備電源(VCC1)、主電源(VCC2),該芯片在不同的供電系統(tǒng)中供電方式也會發(fā)生改變,在單電源與電池供電的系統(tǒng)中由VCC1提供低電源,在雙電源系統(tǒng)中由VCC2提供主電源。時鐘芯片的供電模式取決與VCC1和VCC2的大小,當VCC2大于VCC1時,由VCC2給芯片供電;反之,由VCC1給芯片供電。因此在斷電情況下,DS1302以VCC1備用電源進行其內部供電以保證下次開啟時時間不會出現(xiàn)錯誤。對于連續(xù)長時間測量的控制系統(tǒng)來說,采用具有良好特性的DS1302作為記錄測控系統(tǒng)中的數(shù)據記錄時,可以進一步提高系統(tǒng)的工作效率。而且由于其軟硬件設計也非常簡單,因此對于長時間連續(xù)的測控系統(tǒng)來說是一個不錯的選擇。
此系統(tǒng)選用的是四位一體的共陰極數(shù)碼管,其內部已連接好,引腳(正面向上)從左到右順序依次為 1、a、f、2、3、b、dp(+)、dp(-),4、g、c、e,其中 a、b、c、d、e、f、g、為段引腳,1、2、3、4分別表示4個數(shù)碼管的位,dp(+)接電源正,dp(-)接單片機I/O口。
本系統(tǒng)共采用3個獨立按鍵,分別與單片機的P3.5、P3.6、P3.7口連接,分別是菜單、+、-功能。在調整時間時,可通過菜單鍵、+、-鍵對時間進行調整。在調整的過程中,數(shù)碼管對應顯示的調節(jié)項會閃爍,分別對時、分進行設置。按鍵電路與單片機的連接見圖2。
系統(tǒng)程序流程圖如圖3所示,程序執(zhí)行時先進行系統(tǒng)初始化,再判斷菜單鍵是否按下,當菜單鍵按下時進入時間修改模式,設置完成后把修改后的數(shù)據寫入DS1302時鐘芯片并通過數(shù)碼管顯示。若無按鍵按下則讀取時間數(shù)據送入數(shù)碼管顯示。
圖3 系統(tǒng)流程圖
DS1302時鐘程序流程圖如下圖所示,芯片工作時,會進入初始化程序,芯片內的數(shù)據會在出現(xiàn)中斷信號時被送入單片機中處理并通過數(shù)碼管顯示,然后判斷是否按下菜單鍵,若按下,則設置完成后將數(shù)據送入時鐘芯片并顯示,若無按鍵按下則直接送入EPROM中并顯示。
圖4 DS1302系統(tǒng)流程圖
本次系統(tǒng)設計實現(xiàn)了時鐘顯示及時間調整的功能,從設計前期的查找資料,到后期的動手設計,焊接實物等都讓筆者收獲良多,特別是將一個系統(tǒng)分成幾部分小的模塊,然后逐步實現(xiàn)各模塊的功能,最后把它們組合成一個完整的系統(tǒng),這種搭積木式的模塊化,任務化的系統(tǒng)設計對初學者具有一定的幫助。