任艷焱
(赤峰學(xué)院 計(jì)算機(jī)與信息工程學(xué)院,內(nèi)蒙古 赤峰 024000)
在實(shí)際生活中數(shù)字鐘的設(shè)計(jì)方法有許多種,比如說(shuō)可以用中小規(guī)模集成電路設(shè)計(jì)數(shù)字電子鐘的方法,也可以利用專(zhuān)用的電子鐘芯片配以顯示電路及其所需要的外圍電路組成電子鐘,還可以利用單片機(jī)來(lái)設(shè)計(jì)電子鐘等等.這些方法都各有各的特點(diǎn),有些在設(shè)計(jì)上還增設(shè)了附加功能,例如校時(shí)功能、測(cè)量室內(nèi)溫度與濕度的功能等.其中,利用單片機(jī)實(shí)現(xiàn)的電子鐘具有編程靈活、便于電子鐘功能的擴(kuò)充(即可用該電子鐘發(fā)出各種控制信號(hào))、精確度高等特點(diǎn)[1].
目前有一種較簡(jiǎn)單且容易操作的校時(shí)電路,它是以一種中小規(guī)模的數(shù)字芯片74LS162為基礎(chǔ)來(lái)設(shè)計(jì)數(shù)字電子鐘的電路,并且附帶設(shè)置自校準(zhǔn)的時(shí)間電路,這種方法的優(yōu)點(diǎn)是它的時(shí)間校準(zhǔn)操作不需加入專(zhuān)門(mén)的校時(shí)脈沖信號(hào).這種校正電路的的基本原理是:先把正在進(jìn)行工作的計(jì)數(shù)電路工作暫時(shí)中斷,再利用人工觸發(fā)計(jì)數(shù)的方式或者在所需要校正的計(jì)數(shù)單元的輸入端加入某一頻率比較高的方波信號(hào),從而達(dá)到人們的預(yù)制校正要求,最后再轉(zhuǎn)入到剛開(kāi)始的正常的計(jì)數(shù)電路里去.
此設(shè)計(jì)方法的基本電路的主要構(gòu)成部分是555定時(shí)器和RC多諧振蕩器、分頻器、計(jì)數(shù)器、譯碼顯示器、時(shí)間校準(zhǔn)電路、LED顯示器.其中標(biāo)準(zhǔn)時(shí)間的“秒”信號(hào)發(fā)生器由振蕩器和分頻器組成,基礎(chǔ)的計(jì)時(shí)電路由不同進(jìn)制的計(jì)數(shù)器、譯碼器和顯示器組成.計(jì)數(shù)器對(duì)“秒”信號(hào)進(jìn)行累計(jì)計(jì)數(shù),把累加的結(jié)果以時(shí)間的基礎(chǔ)單位時(shí)、分、秒的形式用具體的數(shù)字顯示出來(lái).“時(shí)”顯示由24進(jìn)制計(jì)數(shù)器、譯碼器、顯示器構(gòu)成,“分”、“秒”顯示分別由60進(jìn)制計(jì)數(shù)器、譯碼器、顯示器構(gòu)成.用譯碼的方法來(lái)代替?zhèn)鹘y(tǒng)的機(jī)械計(jì)時(shí)方法,用LED顯示表示時(shí)間的數(shù)字代替?zhèn)鹘y(tǒng)的時(shí)針、分針、秒針來(lái)指示時(shí)間的方法,從而讓時(shí)間的顯示更加精準(zhǔn).在現(xiàn)有的方法下,還可以增加整點(diǎn)報(bào)時(shí)、預(yù)制時(shí)間等許多附加功能.另外我們可以增加外圍的時(shí)間校準(zhǔn)電路來(lái)校準(zhǔn)計(jì)時(shí)出現(xiàn)的誤差[2].
單片機(jī)又稱(chēng)微控制器(MCU).其實(shí)質(zhì)就是在芯片內(nèi)部集成了ROM、RAM、定時(shí)/計(jì)數(shù)器、EEPROM等各種計(jì)算機(jī)必要的功能模塊和I/O口.它具有性能價(jià)格比高、體積小、可靠性高、控制功能強(qiáng)、功耗低等許多優(yōu)點(diǎn).
數(shù)字電子鐘的設(shè)計(jì)電路是一個(gè)最小的的單片機(jī)應(yīng)用系統(tǒng),是一個(gè)具體的應(yīng)用實(shí)例.它的電路由89S51單片機(jī)、外部輸入的脈沖電路、定時(shí)/計(jì)數(shù)電路、外部存儲(chǔ)器設(shè)計(jì)電路、按鍵開(kāi)關(guān)和 LED顯示電路等構(gòu)成.并采用單片機(jī)系統(tǒng)中的定時(shí)/計(jì)數(shù)器和中斷技術(shù)的編制程序來(lái)實(shí)現(xiàn)計(jì)時(shí)和顯示時(shí)間的功能.其中除了51單片機(jī)是集成的IC芯片外,其余部分則須根據(jù)實(shí)際要求進(jìn)行自主設(shè)計(jì)[3].主要包括系統(tǒng)的電路設(shè)計(jì)、連接各個(gè)部件、編寫(xiě)驅(qū)動(dòng)程序和最后的程序調(diào)試.
在單片機(jī)的設(shè)計(jì)方法中可以利用MSP430F2xx系列微處理器來(lái)設(shè)計(jì),這款微處理器是由美國(guó)德州儀器公司于2002年推出,是一款運(yùn)算速度快且體積小的16位RISC微處理芯片.片內(nèi)集成了8路10位以上的A/D、串行通信接口、看門(mén)狗定時(shí)器、溫度傳感器、LCD驅(qū)動(dòng)電路等外圍電路,從而降低了應(yīng)用電路的復(fù)雜度、提高了系統(tǒng)的可靠性.該芯片工作于3.3V和2.5V兩種電壓下并可處于休眠狀態(tài),此時(shí)的頻率只有32768Hz,功耗相當(dāng)?shù)?、環(huán)境溫度范圍-40至+125攝氏度.這些優(yōu)點(diǎn)非常適合設(shè)計(jì)便攜式,且要求長(zhǎng)時(shí)間連續(xù)工作,環(huán)境溫度變化范圍寬的智能化儀器儀表.數(shù)字鐘的實(shí)現(xiàn)方案很多,以前的多用集成電路來(lái)實(shí)現(xiàn),這種方法電路復(fù)雜,也有用專(zhuān)用電子鐘芯片來(lái)實(shí)現(xiàn)的,但受其制約,靈活性差[4].
其次還可以利用單片機(jī)80C51系列來(lái)設(shè)計(jì).其中以AT89S51單片機(jī)為典型代表.AT89S51單片機(jī)是ATMEL公司的標(biāo)準(zhǔn)型單片機(jī),是8位的單片機(jī),其硬件結(jié)構(gòu)主要包括:中央處理器(CPU)、存儲(chǔ)器(數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器)、可編程I/O口、定時(shí)/計(jì)數(shù)器、串行口等,各個(gè)部分通過(guò)內(nèi)部總線相連.8051單片機(jī)執(zhí)行指令的時(shí)間長(zhǎng)短以及定時(shí)器/計(jì)數(shù)器的頻率都與單片機(jī)的時(shí)鐘頻率有關(guān).單片機(jī)常采用的時(shí)鐘頻率有6MHZ和12MHZ.常采用12MHZ的晶振與外部時(shí)鐘脈沖的方式來(lái)提高波形頻率的精度,晶振的兩個(gè)引腳分別與51單片機(jī)的外接晶振引腳XTAL1和XTAL2相連.并且給波形發(fā)生器設(shè)計(jì)能讓它正常工作的復(fù)位電路.8051系列單片機(jī)的內(nèi)部設(shè)有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器T0和T1.它們具有計(jì)數(shù)和定時(shí)兩種功能及方式0、方式1、方式2、方式3四種工作方式,其工作方式、定時(shí)時(shí)間、量程、啟動(dòng)方式等均可由指令確定和改變[5].在波形發(fā)生器中,利用它的定時(shí)功能,用它來(lái)確定波形的兩個(gè)采樣點(diǎn)輸出之間的延遲時(shí)間.由于方式1采用的是16位定時(shí)/計(jì)數(shù)器,他的最大計(jì)數(shù)值是65536.當(dāng)T0或T1開(kāi)始計(jì)數(shù)后,從初值的基礎(chǔ)上開(kāi)始累計(jì)加1計(jì)數(shù),直到其最高位產(chǎn)生溢出時(shí)才向CPU申請(qǐng)中斷.因此想要精準(zhǔn)的計(jì)時(shí),首先要計(jì)算出定時(shí)器的計(jì)數(shù)初值.單片機(jī)的中斷系統(tǒng)是為了響應(yīng)外部的中斷事件而設(shè)立的,它主要由幾個(gè)與中斷有關(guān)的特殊功能寄存器和順序查詢邏輯電路等組成,是單片機(jī)不可或缺的重要組成部分.中斷是指當(dāng)中央處理器CPU正在執(zhí)行主程序時(shí)外界發(fā)生了緊急事件請(qǐng)求,有必要盡快終止當(dāng)前程序的執(zhí)行,而轉(zhuǎn)去執(zhí)行形影的緊急事件的處理程序.在波形發(fā)生器中,只有當(dāng)定時(shí)/計(jì)數(shù)器達(dá)到它的最大計(jì)數(shù)值從而溢出時(shí)才產(chǎn)生中斷請(qǐng)求,即在51單片機(jī)輸出一個(gè)波形采樣點(diǎn)信號(hào)后,啟動(dòng)定時(shí)器,在定時(shí)器未產(chǎn)生溢出中斷之前,51單片機(jī)等待工作.直到定時(shí)器計(jì)時(shí)結(jié)束后才申請(qǐng)中斷請(qǐng)求,此時(shí)51單片機(jī)轉(zhuǎn)去響應(yīng)中斷請(qǐng)求,接著輸出下一個(gè)采樣點(diǎn)信號(hào),依次循環(huán)產(chǎn)生所需要的信號(hào)波形.
利用51單片機(jī)制作的的數(shù)字鐘具體應(yīng)用了單片機(jī)的中斷技術(shù)、定時(shí)技術(shù)以及LED的顯示技術(shù),通過(guò)調(diào)整鍵、加1鍵、減1鍵、確定鍵四個(gè)按鍵,用8位數(shù)碼管設(shè)計(jì)制作了一個(gè)可以調(diào)整時(shí)間的數(shù)字鐘,實(shí)現(xiàn)了對(duì)時(shí)間的數(shù)字顯示[5].基于51系列單片機(jī)設(shè)計(jì)的數(shù)字電子鐘在設(shè)計(jì)的時(shí)候需要著手解決下面的幾個(gè)方面的問(wèn)題:一是LED顯示器的直流驅(qū)動(dòng)和編程,二是定時(shí)/計(jì)數(shù)器的選擇及使用,三是利用外部中斷的方式來(lái)實(shí)現(xiàn)計(jì)時(shí)功能和運(yùn)行模式的相互轉(zhuǎn)化.
解決這幾個(gè)方面相關(guān)的關(guān)鍵技術(shù)主要有:a、LED顯示器的顯示和驅(qū)動(dòng).主要是設(shè)計(jì)LED數(shù)碼管的共陰極或者是共陽(yáng)極的接線方式、是靜態(tài)顯示方式還是動(dòng)態(tài)顯示方式;還需設(shè)計(jì)單片機(jī)的外圍接口電路,以及利用單片機(jī)對(duì)LED數(shù)碼管進(jìn)行驅(qū)動(dòng)和顯示的操作;在顯示方式上,靜態(tài)顯示電路的顯示方式操作簡(jiǎn)單,不需要頻繁地掃描顯示電路,也不需要加顯示延時(shí),但是每一個(gè)數(shù)碼管都需要一片74HC164,在位數(shù)較多時(shí),字符更新速度慢,電路比較復(fù)雜,成本也比較高,因而在實(shí)際應(yīng)用中常采用動(dòng)態(tài)顯示方式.LED動(dòng)態(tài)顯示方式的特點(diǎn)是將所有位數(shù)數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效,選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示,從而大大簡(jiǎn)化了硬件電路.在單片機(jī)的外圍接口電路上,由于89S51單片機(jī)可以方便地與8255直接相連,不需要加任何外接邏輯電路,故采用8255作為單片機(jī)應(yīng)用系統(tǒng)擴(kuò)展的I/O口,占用片外數(shù)據(jù)存儲(chǔ)空間.其中A口用作字形輸出,C口用作為位選掃描輸出,其余作其它用處.采用8段共陰極數(shù)碼管,字形驅(qū)動(dòng)采用8路三態(tài)同相緩沖器74HC244,位選驅(qū)動(dòng)使用ULN2803反向驅(qū)動(dòng)芯.8255應(yīng)該按硬件設(shè)計(jì)要求輸出相應(yīng)的字形碼和位選掃描電平,所以發(fā)光時(shí)字形驅(qū)動(dòng)輸出1有效,位選驅(qū)動(dòng)輸出1有效.工作時(shí),C口6路位選信號(hào)每次僅有一路輸出是1電平(其余為0),同時(shí)A口輸出與選通的數(shù)碼管所對(duì)應(yīng)的的字形碼信號(hào),即C口掃描輸出位選信號(hào),A口輸出字形信號(hào).由于8路段選線同由A口控制,所以每個(gè)要顯示的字符都會(huì)同時(shí)加到這6個(gè)數(shù)碼管上,要想讓每位顯示不同的字符就必須要采用如下的掃描工作方式:分時(shí)輪流選通數(shù)碼管的公共端,使得各個(gè)數(shù)碼管輪流導(dǎo)通,即各數(shù)碼管是由脈沖電流導(dǎo)電的.當(dāng)所有數(shù)碼管依次顯示一遍后,軟件控制循環(huán),使得每位顯示器分時(shí)點(diǎn)亮.
b、單片機(jī)中定時(shí)器的晶振選擇、工作方式的選擇方法和怎樣啟動(dòng)其工作的方法;假設(shè)利用T1定時(shí)來(lái)完成數(shù)字時(shí)鐘的秒、分、時(shí)的定時(shí),且選擇單片機(jī)的晶振為12MHZ,要想達(dá)到上述要求,首先要完成1S的定時(shí),在這個(gè)基礎(chǔ)上,每計(jì)滿60S,分鐘加1,而每計(jì)滿60min,時(shí)鐘的時(shí)加1,計(jì)滿24h,時(shí)鐘清零,從零時(shí)開(kāi)始繼續(xù)上述循環(huán).因此要完成時(shí)鐘的設(shè)計(jì),首先要解決1s的定時(shí)問(wèn)題.因51單片機(jī)在工作方式1下定時(shí)時(shí)間最長(zhǎng),且其最大定時(shí)時(shí)間為65.536ms,顯然不能滿足1s的定時(shí)時(shí)間要求,所以需要設(shè)置一個(gè)軟件計(jì)數(shù)器.對(duì)分、時(shí)的計(jì)數(shù)同樣要通過(guò)軟件計(jì)數(shù)來(lái)完成.因此需在片內(nèi)采用4個(gè)單元地址分別進(jìn)行秒、分、時(shí)以及24h的計(jì)數(shù)[6].
c、單片機(jī)中斷系統(tǒng)的優(yōu)先級(jí)設(shè)置、響應(yīng)中斷的時(shí)機(jī)及其編程技巧.
中斷技術(shù)方式是CPU等待外部設(shè)備請(qǐng)求服務(wù)的一種I/O方式,是現(xiàn)代計(jì)算機(jī)中一項(xiàng)很重要的技術(shù).首先設(shè)置滿足CPU響應(yīng)中斷的條件即設(shè)置中斷請(qǐng)求且CPU開(kāi)中斷、申請(qǐng)中斷的中斷源開(kāi)中斷.其次單片機(jī)一旦響應(yīng)中斷,先要置位相應(yīng)的優(yōu)先級(jí)有效觸發(fā)器,然后執(zhí)行一個(gè)硬件子程序調(diào)用,把斷點(diǎn)地址壓入堆棧保護(hù),然后將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該中斷入口地址,以執(zhí)行中斷服務(wù)程序.在執(zhí)行中斷返回指令RETI前應(yīng)恢復(fù)現(xiàn)場(chǎng)[7].
本文對(duì)現(xiàn)有的數(shù)字電子鐘的設(shè)計(jì)方法進(jìn)行了系統(tǒng)的分析,總結(jié)出了各個(gè)方法典型特點(diǎn),可以為其他人設(shè)計(jì)數(shù)字電子鐘起到很好的啟示作用.
〔1〕黃紅飛,陳亦兵.基于74LS162數(shù)字鐘設(shè)計(jì)及時(shí)間校準(zhǔn)研究.電子設(shè)計(jì)工程,2011,19(11).
〔2〕李瑞,等.基于計(jì)數(shù)器的數(shù)字電子鐘的設(shè)計(jì).山西電子技術(shù),2011(4).
〔3〕王振宇.電子設(shè)計(jì)自動(dòng)化(EDA)[M].北京:電子工業(yè)出版社,2007.
〔4〕譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006.
〔5〕張迎新.單片機(jī)(微控制器)原理及應(yīng)用.北京:高等教育出版社,2009.
〔6〕何橋.單片機(jī)原理及應(yīng)用.北京:中國(guó)鐵道出版社,2009.12.
〔7〕何立民.MSC-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1994.