国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STC89C51單片機的數(shù)字時鐘設(shè)計

2021-06-23 00:45孫鳳乾鄭太恒劉海英劉大鵬
關(guān)鍵詞:數(shù)碼管時鐘按鍵

孫鳳乾,鄭太恒,劉海英,劉大鵬

齊魯工業(yè)大學(xué) (山東省科學(xué)院) 電氣工程與自動化學(xué)院,濟南 250353

數(shù)字時鐘與機械時鐘相比,有著定時準(zhǔn)確、觀察直觀、成本低廉、使用壽命長等諸多優(yōu)點[1]。進入21世紀(jì)以來,不斷發(fā)展的高新技術(shù)帶來了電子設(shè)備等領(lǐng)域更進一步的突破和發(fā)展。

目前主流的數(shù)字時鐘設(shè)計,主要有通過小規(guī)模的集成電路實現(xiàn)計時效果、使用專用的電子鐘芯片配合外圍電路,或者用單片機作為主控制器實現(xiàn)等[2]。其中使用小規(guī)模的集成電路,在后續(xù)的功能擴展上困難且設(shè)計復(fù)雜。使用專用的電子鐘芯片,不僅價格昂貴,而且維護困難。而使用單片機來完成,通過控制單片機定時計數(shù)器就可以達到時、分、秒的計數(shù)[3],不僅設(shè)計簡單方便,而且編程控制靈活,成本也更低、且更易維護[4]。

單片機是當(dāng)下主流的小型電子設(shè)備的核心,其自誕生以來便以體積小、面向控制、高性價比等優(yōu)點在工控領(lǐng)域扮演著重要角色[5]。當(dāng)前單片機正向著低噪聲、高可靠性、大容量等方向發(fā)展并逐漸成為了研究的重點[6]。

在本次設(shè)計中,采用STC89C51系列單片機作為主控制器芯片,可以提升整體的計算性能和功能性,同時具備價格低廉、運算速度快、抗干擾能力強的優(yōu)點[7]。采用內(nèi)部實現(xiàn)的方式完成數(shù)字時鐘的計時,設(shè)置了復(fù)位電路和外置的物理按鍵增加實用性,其中鍵盤是一組開關(guān)的組合,是單片機中最常見的輸入設(shè)備之一[8]。最后采用數(shù)碼管來實現(xiàn)時鐘的時間效果顯示,具備低功耗、壽命長、體積小、顯示內(nèi)容豐富、價格低、接口控制方便等優(yōu)點[9]。在軟件程序設(shè)計中,使用Keil C51軟件進行單片機的C語言編程,代碼生成效率高,作為項目開發(fā)極其理想[10]。

1 硬件設(shè)計概述

本次時鐘設(shè)計的單片機主控制器,使用STC89C51,然后設(shè)置電源、復(fù)位、晶振、數(shù)碼管、指示燈、按鍵等模塊完成功能。

系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)框圖

設(shè)計核心是用單片機作為主控制器和內(nèi)部時鐘電路;電源模塊提供能量用以驅(qū)動時鐘系統(tǒng)的運行;晶振電路和復(fù)位電路分別用來輔助產(chǎn)生時鐘信號和使系統(tǒng)復(fù)位;數(shù)碼管驅(qū)動模塊使得系統(tǒng)可以從視覺上正常顯示時間;指示燈模塊保證系統(tǒng)在切換時制時有一個清晰明了的提示效果;按鍵模塊是為了系統(tǒng)可以正常的調(diào)時和歸零。

相比于傳統(tǒng)的數(shù)字時鐘,該設(shè)計可以通過控制按鍵對時鐘實現(xiàn)靈活的調(diào)時和復(fù)位功能,而數(shù)碼管可以使時鐘擁有更好的顯示效果。

1.1 STC89C51單片機

51系列單片機是目前最為廣泛使用的幾種單片機之一,具有結(jié)構(gòu)簡單、易于操作、功能完備的特點,在工業(yè)控制領(lǐng)域占有重要位置。其擁有強大的運算能力和實用性,易于編程,配合軟件程序可以實現(xiàn)極其豐富的效果。

1.2 晶振電路

為了讓時鐘產(chǎn)生相應(yīng)的時鐘信號,需要設(shè)置晶振電路,從而完成對于時間的計時和時分秒的累加,這是時鐘最基礎(chǔ)的功能。

在本次設(shè)計中,采用內(nèi)部時鐘實現(xiàn)方法實現(xiàn)時鐘信號。這樣做的好處是可以減少芯片的使用,節(jié)約成本,通過單片機內(nèi)部的定時計數(shù)器就可以達到時鐘的計時效果。

其原理如圖2所示。

圖2 STC89C51內(nèi)部時鐘電路

核心原理在于激發(fā)單片機內(nèi)部的振蕩電路,具體方法是在芯片的XTAL1(18)和XTAL2(19)兩個引腳上加入相應(yīng)的晶振來產(chǎn)生一個時鐘信號。

而加入一個電容的作用,則是使芯片在正常工作時頻率穩(wěn)定,從而使系統(tǒng)整個工作平穩(wěn)快速。

1.3 復(fù)位電路

設(shè)置復(fù)位電路的目的,一是為了給主控制器芯片提供一個默認(rèn)的初始運行環(huán)境,二是當(dāng)時鐘系統(tǒng)的時間顯示出現(xiàn)問題時,可以通過簡單的復(fù)位,來重置系統(tǒng)的時間。

復(fù)位電路有多種實現(xiàn)方法:比如設(shè)置專用的電路來完成復(fù)位功能;或是通過物理方式,也即是通過觸發(fā)相應(yīng)的實體按鈕來產(chǎn)生一個電平信號,實現(xiàn)復(fù)位。本次設(shè)計的復(fù)位電路部分,采用第一種方法實現(xiàn)。

本方法中,系統(tǒng)的復(fù)位由獨立的復(fù)位電路來完成。方法是設(shè)置一個帶電容的獨立電路,當(dāng)電路正常運行時,電容會產(chǎn)生充放電過程,這就會產(chǎn)生相應(yīng)的電平信號,從而實現(xiàn)所需要的復(fù)位效果。

1.4 數(shù)碼管驅(qū)動模塊

本次設(shè)計在最終的時鐘時間視覺顯示上采用了外接數(shù)碼管的方式,其可以實現(xiàn)極其豐富的顯示效果。

數(shù)碼管采用直流驅(qū)動的方式,對于數(shù)碼管的每一個獨立的視覺顯示部分,都單獨劃分一個單片機的輸入/輸出口來控制,因此需要外接一個驅(qū)動芯片。

采用74HC573芯片做為數(shù)碼管驅(qū)動芯片,它通過內(nèi)部的緩存器來實現(xiàn)對信號的輸入和輸出,可以加強數(shù)碼管的視覺顯示效果。

它的工作原理如下:

當(dāng)芯片開始工作的時候,SCK上升沿接受到電平信號,然后芯片將相應(yīng)的數(shù)據(jù)輸入到芯片內(nèi)部的位移緩存器,然后從輸出接口輸出,從而完成一個運行周期。

數(shù)碼管驅(qū)動電路如圖3所示。

圖3 數(shù)碼管驅(qū)動電路

1.5 指示燈模塊

指示燈模塊主要包括LED和限流電阻。LED顯示的優(yōu)點在于其物理性能可靠,可以在很大程度上防止摔落和沖擊造成的影響,且LED模塊的工作電壓低,需要的工作電流小,運行穩(wěn)定可靠。

LED顯示電路如圖4所示。

圖4 LED顯示電路

1.6 按鍵模塊

物理按鍵采用了獨立按鍵的接法。該方法主要是利用單片機輸入/輸出口所接受到的電平信息來判定物理按鍵是否被按下,然后再調(diào)用相應(yīng)的程序。

同時考慮到因按鍵而導(dǎo)致的電平不穩(wěn)定現(xiàn)象,要對按鍵電路模塊做去抖動處理。常用的有硬件去抖動和軟件去抖動,前者通過外加電路實現(xiàn),后者則是通過內(nèi)置程序來產(chǎn)生一個延遲處理,通過延遲來屏蔽電平信號不穩(wěn)定而對整個系統(tǒng)產(chǎn)生的影響。

本次設(shè)計中,采用軟件去抖動的方法來使系統(tǒng)更加穩(wěn)定。方法是通過內(nèi)置程序來產(chǎn)生一個延遲,通過延遲來屏蔽電平信號不穩(wěn)定對整個系統(tǒng)產(chǎn)生的影響。

其實現(xiàn)方法是通過軟件程序來監(jiān)測按鍵的輸入輸出口,當(dāng)監(jiān)測到有低電平通過的時候,先延時一段時間,待延時結(jié)束后重新檢查該接口的電平值,若數(shù)值為1,則表明該次觸發(fā)為無效信息,可以屏蔽,否則視為正常操作,從而調(diào)用相應(yīng)的程序。

2 軟件程序設(shè)計

軟件程序設(shè)計的主要任務(wù)是,在完成整體的硬件設(shè)計的基礎(chǔ)上,為了完成或達到最終想要的系統(tǒng)效果和功能,或是為了將系統(tǒng)的各個硬件部分組成一個整體,從而從軟件層次上對系統(tǒng)進行控制和操作的時候,我們需要設(shè)置一段或若干段程序。通過這些程序來協(xié)助我們分配、劃分和管理整個系統(tǒng)的各種硬件資源和軟件資源,從而統(tǒng)籌系統(tǒng)的各個模塊,將系統(tǒng)的所有硬件部分連成一個整體,從而實現(xiàn)我們需要或預(yù)期的效果。

軟件程序設(shè)計如圖5所示。

圖5 軟件程序流程圖

在軟件程序設(shè)計中,使用了Keil C51軟件進行單片機的C語言編程。該軟件提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,簡單易用。

在代碼編寫上,因為使用單片機內(nèi)部的定時器計時,所以先要設(shè)計一個主程序,用于初始化定時器。然后在單片機內(nèi)部存儲器分別設(shè)置三個字節(jié),存放時鐘的時、分、秒信息。

利用定時器與軟件結(jié)合實現(xiàn)1 s定時中斷,每產(chǎn)生一次中斷,存儲器內(nèi)相應(yīng)的秒值加1;若秒值達到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達到60,則清零分字節(jié),并將時字節(jié)值加1;若時值達到24,則將時字節(jié)清零。同時因為加入了物理按鍵,所以當(dāng)按鍵被觸發(fā)后,系統(tǒng)也會執(zhí)行上述操作。

3 系統(tǒng)調(diào)試與仿真

在本次系統(tǒng)調(diào)試與仿真中,需要使用仿真軟件來完成工作,本次設(shè)計選用軟件proteus。

使用軟件仿真的優(yōu)勢在于可以提前確定系統(tǒng)的最終運行狀況,從而檢驗系統(tǒng)方案的正確性和可行性。如果系統(tǒng)在設(shè)計上存在不足,也可以提前排查和修復(fù),從而極大的節(jié)省硬件資源。

在仿真軟件操作上,先在系統(tǒng)界面選擇相應(yīng)的電路元器件并連接組成電路,完成整個電路后,點擊開始按鈕進行仿真。

當(dāng)然,在這個過程中還需要將相應(yīng)的電路程序?qū)懭肫渲?最后加載,否則系統(tǒng)是無法運行的。

因為在軟件程序設(shè)計時使用的C語言,所以需要先將C語言程序進行編譯以生成需要的.hex文件,將這個文件導(dǎo)入proteus,然后等待運行結(jié)果并由此判斷系統(tǒng)設(shè)計的正確性。

最終仿真結(jié)果如圖6所示。

圖6 系統(tǒng)仿真結(jié)果

4 結(jié) 論

本設(shè)計以單片機為核心,針對傳統(tǒng)的數(shù)字時鐘在設(shè)備構(gòu)成、走時效率和誤差等問題上進行了改進,在實現(xiàn)了和傳統(tǒng)的數(shù)字時鐘相同的計時效果的基礎(chǔ)上,整體設(shè)計更加簡單、功能性更加豐富。依靠軟件編程和物理按鍵,實現(xiàn)了對時鐘更加靈活的調(diào)時和復(fù)位設(shè)置,獨立的顯示模塊也使得時鐘的視覺效果更好。

在本次設(shè)計中,依托于單片機內(nèi)部的定時計數(shù)器,可以高效率的實現(xiàn)時鐘系統(tǒng)正常的計時效果,未來可以考慮通過加入獨立的時鐘芯片,來對系統(tǒng)的時間精度進行進一步的升級。

在時鐘的功能性上,除了已經(jīng)完成的傳統(tǒng)的計時效果外,我們還可以根據(jù)實際場景下的具體要求,對電子時鐘加入定點鬧鐘提示或者秒表等功能,進一步增加數(shù)字電子時鐘的實用性和功能性。

猜你喜歡
數(shù)碼管時鐘按鍵
別樣的“時鐘”
基于數(shù)碼管故障診斷的算法研究
基于有限狀態(tài)機的按鍵檢測程序設(shè)計
基于51單片機的分?jǐn)?shù)計數(shù)器設(shè)計
古代的時鐘
多按鍵情況下,單片機端口不足的解決方法
Arduino編程
MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
按鍵消抖在單片機和FPGA實驗教學(xué)中的應(yīng)用
有趣的時鐘
仁布县| 临沭县| 集贤县| 顺义区| 舟山市| 天峻县| 柳州市| 河源市| 扎赉特旗| 沙坪坝区| 彰武县| 资阳市| 高尔夫| 喀喇沁旗| 绍兴市| 茂名市| 昭通市| 台南市| 怀来县| 龙口市| 栾城县| 平山县| 湘潭县| 顺昌县| 东辽县| 南江县| 连云港市| 彰化市| 安义县| 禄丰县| 东丰县| 炎陵县| 万荣县| 望谟县| 辉南县| 舟山市| 荥阳市| 花莲市| 洛浦县| 福泉市| 驻马店市|