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