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