劉 銳 范少慧
(河北農(nóng)業(yè)大學(xué)機(jī)電工程學(xué)院,河北 保定 071001)
微型控制器單片機(jī)的運(yùn)算能力強(qiáng)、程序設(shè)計(jì)方式多樣且靈活、實(shí)際操作使用性強(qiáng),所以可使用編程軟件設(shè)計(jì)程序和各種算法來實(shí)現(xiàn)各種功能的邏輯控制。此外單片機(jī)還具有重量輕、消耗低、生產(chǎn)成本低、抗干擾性能強(qiáng)大等優(yōu)點(diǎn),因此單片機(jī)在各個領(lǐng)域得以廣泛加工使用。本設(shè)計(jì)無須高性能的處理系統(tǒng)處理數(shù)據(jù),所以本簡易電子時鐘設(shè)計(jì)方案考慮選擇經(jīng)濟(jì)且實(shí)用的STC89C51單片機(jī)作為控制核心器件。
簡易電子時鐘數(shù)碼管上“時”“分”“秒”的數(shù)字顯示和時鐘走時的功能幾乎完全借助于軟件程序?qū)崿F(xiàn)。定時器的功能也是通過計(jì)數(shù)器的計(jì)數(shù)來實(shí)現(xiàn)的,不同于計(jì)數(shù)器的計(jì)數(shù)功能是對外來脈沖進(jìn)行計(jì)數(shù),定時器的計(jì)數(shù)脈沖是來自單片機(jī)的內(nèi)部。程序設(shè)計(jì)的總體框架為:在單片機(jī)內(nèi)部存儲器設(shè)置3個足夠大的字節(jié)分別用于存放簡易電子時鐘的“時”“分”“秒”信息。單片機(jī)每個機(jī)器周期產(chǎn)生一個計(jì)數(shù)脈沖,也就是每經(jīng)過一個機(jī)器周期的時間,計(jì)數(shù)器加1。當(dāng)計(jì)數(shù)器計(jì)數(shù)溢出時,利用中斷程序向CPU發(fā)出中斷請求信號,CPU轉(zhuǎn)向中斷服務(wù)程序后單片機(jī)內(nèi)“秒”的存儲器的數(shù)值加1;若“秒”的存儲器的數(shù)值達(dá)到60,則將其清零,并在“分”的存儲器的字節(jié)內(nèi)數(shù)值加1;若“分"的存儲器的數(shù)值達(dá)到60,則將其清零,并在“時”的存儲器的字節(jié)內(nèi)的數(shù)值加1;當(dāng)“時”的存儲器的字節(jié)內(nèi)的數(shù)值達(dá)到24時,則將其清零。雖然本簡易電子時鐘設(shè)計(jì)具備簡單的電路特性,但是微型處理器單片機(jī)CPU執(zhí)行程序時,定時器都需要再次賦予電子時鐘初始值,所以電子時鐘的精確度低。
顯示模塊釆用的是LED數(shù)碼管來實(shí)現(xiàn)“時”“分”“秒”的顯示功能。LED數(shù)碼管顯示屏展示的字母字符有限,但是LED數(shù)碼管已經(jīng)足夠滿足本次設(shè)計(jì)中顯示電子時鐘“時”“分”“秒”需求,并且LED數(shù)碼管成本低,所以從降低生產(chǎn)制作的成本的層面出發(fā),在此次簡易電子時鐘設(shè)計(jì)中選擇LED數(shù)碼管作為顯示模塊。
STC89C51單片機(jī)是一種低功耗、高性能8位微控制處理器。微型處理器單片機(jī)具有靈敏的8位CPU、4KB的片內(nèi)ROM和最多能擴(kuò)展64KB的片外程序處理器,使其為嵌入式控制應(yīng)用系統(tǒng)提供靈活有效的系統(tǒng)設(shè)計(jì)。STC89C51單片機(jī)片內(nèi)還含有ROM/EPROM,因此,由STC89C51單片機(jī)組成的電路系統(tǒng)簡潔實(shí)用、可靠安全。
本次簡易電子時鐘設(shè)計(jì)采用的是共陰數(shù)碼管、動態(tài)顯示的顯示方式。數(shù)碼管是一個把8個LED顯示段集在一起的電子顯示器件,8個顯示段可以顯示數(shù)字0~9,顯示屏右下的dp點(diǎn)可以將簡易數(shù)字時鐘顯示的“時”“分”“秒”數(shù)字分隔開。本次設(shè)計(jì)采用的共陰型數(shù)碼管是把8個LED顯示段的陰極接在一起形成公共端,二極管的正極為陽極。八段數(shù)碼管的8個LED顯示段分別為A、B、C、D、E、F、G、DP,其中DP是小數(shù)點(diǎn)位段。當(dāng)單片機(jī)輸出一個“1”的控制信號時,共陰型數(shù)碼管該顯示段LED點(diǎn)亮。數(shù)碼管動態(tài)顯示的原理是各數(shù)碼管的同名端連接在一起,另為每個數(shù)碼管的公共極增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制。當(dāng)單片機(jī)輸出字形碼時只要將需要顯示的數(shù)碼管的選通控制打開,數(shù)碼管就顯示出字形,而沒有選通的數(shù)碼管就不會亮。
本次簡易電子時鐘的設(shè)計(jì)只利用了74HC573的驅(qū)動功能來驅(qū)動數(shù)碼管的顯示功能。74HC573芯片是包括八路D型透明鎖存器,每個鎖存器具有獨(dú)立的D型輸入,以及適用于面向總線的應(yīng)用的三態(tài)輸出。所有鎖存器共用一個鎖存使能(LE)端和一個輸出使能(OE)端。D是輸入,Q是輸出。LE端的作用是通過高低電平控制八位輸入與內(nèi)部數(shù)據(jù)保持器的輸入端的連通和開關(guān)。當(dāng)LE端為高電平時,數(shù)據(jù)從D輸入到鎖存器,鎖存器的輸出Q隨著對應(yīng)輸入D的變化而變化。當(dāng)LE端為低電平時,鎖存器D輸入上的信息不會被輸出。當(dāng)OE為低電平時,芯片內(nèi)部數(shù)據(jù)保持輸出器與芯片的八位輸出端之間聯(lián)通,8個鎖存器的內(nèi)容可被正常輸出;當(dāng)OE為高電平時,8個鎖存器進(jìn)入高阻態(tài)將不會輸出內(nèi)容。
基于單片機(jī)的簡易電子時鐘硬件設(shè)計(jì),是數(shù)字化綜合運(yùn)用的體現(xiàn)。以STC89C51單片機(jī)為整體設(shè)計(jì)中心,對基于單片機(jī)的簡易電子時鐘的控制模塊、計(jì)時模塊、顯示模塊進(jìn)行要點(diǎn)剖析,并且詳細(xì)介紹了STC89C51單片機(jī)、數(shù)碼管和74HC573芯片的功能。因此,文章研究結(jié)果將為基于單片機(jī)的電子元件的設(shè)計(jì)提供參考與借鑒。