一、設計要求
在單片機的功能下,利用LED數(shù)碼管,蜂鳴器及輕觸開關,設計了一個數(shù)字電子時鐘。
(一)LED數(shù)碼管能實時顯示當前時、分、秒;
(二)LED數(shù)碼管閃動做秒顯示,并且無閃爍,能正確顯示程序送顯的數(shù)據(jù);
(三)具有手動校時、校分功能,可以分別對時及分進行單獨校時,使其校正到正確時間;
(四)具有整點報時的功能。
二、設計方案
該電路由鍵盤掃描模塊,89C52主控模塊,LED顯示模塊,發(fā)聲模塊組成。
鍵盤掃描模塊由4個獨立式鍵盤組成,主控模塊由89C52單片機、復位及晶振模塊組成,LED顯示模塊由一個4位7段數(shù)碼管和一個2位7段數(shù)碼管組成,發(fā)聲模塊由一個蜂鳴片組成。
三、硬件原理分析
(一)復位控制模版
通過輕觸按鈕S5使電路起到復位作用,在無按下按鍵時,電源Vcc對電容C3進行充電,按下按鈕時,電容C3被短路,STC89C52芯片的9腳(RST)和電源Vcc直接連通,讓RST得到高電平進行復位,使數(shù)碼管回到初始狀態(tài),從而起到復位的功能。
(二)蜂鳴器控制模版
通過三極管放大驅動電路,從而可以讓蜂鳴器發(fā)出聲音,假如輸出的電平為高時,那么三極管會導通,導通電流使得蜂鳴器發(fā)出聲音,假如輸出電平為低時,那么三極管會截止不工作,沒有導通電流,故無聲音。
(三)LED電路控制模版
LED顯示器總共使用了一個8位I/O,LED數(shù)碼管的位選線是由分別相互對應的P2.0-P2.5所控制,而將其相應的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。LED七段顯示器分別將七段顯示譯碼器譯碼的時、分、秒輸出狀態(tài)顯示。校時的電路用來對“時”、“分”、“秒”顯示數(shù)字進行校對調整的。LED數(shù)碼管由兩位七段數(shù)碼管和四位七段數(shù)碼管構成六位七段數(shù)碼管。
(四)時鐘晶振電路模版
時鐘晶振電路,晶振頻率為11.0592MHz,接入芯片的18腳與19腳上,晶振與芯片間的連線越短越好,避免產生干擾現(xiàn)象。
(五)鍵盤控制電路模版
鍵盤控制電路,當松開按鍵S1時,P1.0口通過電阻接電源Vcc,P1.0口為高電平,當按下按鍵S1時,P1.0口接地,P1.0口為低電平。S1為校時校分鍵,S2為校時鍵,S3為校分鍵,S4為計時鍵。
四、軟件的描述和設計的流程
(一)總述
顯示的實現(xiàn)、秒脈沖信號的產生等方面都是軟件設計的要點和注重點。延時法和定時中斷法通常是秒脈沖信號的產生方法。
(二)主要模塊的設計與描述
主模塊的設計是最重要的。因為系統(tǒng)軟件的主要框架就是主模塊,也就是核心。一般使用的結構化程序設計使用自下而上和自上而下兩種不同的方式。 “自上而下”法的核心合理與否直接關系到程序最終的功能的程度、多少和好壞。這就是主框架的構建。
(三)基本顯示模塊和顯示電路設計
顯示代碼取得相應的短碼是顯示模塊設計的重點,高精度的計時工具都使用了石英晶體振蕩器,因此很穩(wěn)定,顯示模塊譯碼電路代替了傳統(tǒng)機械式轉動,用LED顯示器代替了傳統(tǒng)指針顯示進而顯示時間,減小了計時時產生的誤差,這種表可以具體的顯示時、分、秒,很精確,還可以進行時、分、秒之間的校對,靈活性很好。
(四)時間設定模塊設計
時間設定模塊的設計要點是按鍵的去抖處理與“一鍵多態(tài)”的處理。即只涉及4個鍵完成了6位時間參數(shù)的設定。軟件法去抖動的實質是軟件延時,即檢測到某一鍵狀態(tài)變化后延時一段時間,再檢測該按鍵的狀態(tài)是否還保持著,如是則作為按鍵處理,否則,視為抖動,不予理睬。去抖中的延時時間大多為10毫秒,但是實際使用過程中都大于20毫秒,不然的話,每次都會按一次當成多次執(zhí)行,進而影響程序的正常工作。 “一鍵多態(tài)”即多功能鍵的實現(xiàn)思想是,根據(jù)按鍵時刻的系統(tǒng)狀態(tài),決定按鍵采取何種動作,即何種功能。
五、調試過程中出現(xiàn)的問題及解決方法
(一)調試過程
1.脫機故障:使用萬用表檢測電路中個個器件的電源和每個引腳的連接是不是正確,在進行虛焊漏焊的排查。
2.上述無誤后,接通電源,看一下電路的工作狀態(tài)。若發(fā)現(xiàn)元器件等異常發(fā)熱、冒煙的必須要立即斷開電源,找出原因,設法排除,若電路工作狀態(tài)正常,就可以進行正常的調試了。
(二)調試過程中出現(xiàn)的問題及解決方法
將完成的數(shù)字電子鐘的程序下載到STC89C52芯片內,然后接入電源,數(shù)碼管顯示初始狀態(tài)“00:00:00”,但當顯示“08:45:00”時,喇叭沒有發(fā)出聲音,沒有起到作息時間表的作用。
(三)解決方法:先檢查了PNP(8550)是否損壞,與喇叭接入的線路是否出現(xiàn)問題,通過示波器觀察沒有錯誤,導致的原因是喇叭功率較大,三極管無法驅動喇叭。最后將喇叭換成蜂鳴器解決問題。
作者簡介:
陳聰,男(1991--)浙江余姚人,作者學歷:大學本科,作者專業(yè):電子信息工程,作者研究方向:電子研究常用。