淮安市高級職業(yè)技術學校 楊 祾
基于89C51時鐘電路的設計與制作
淮安市高級職業(yè)技術學校 楊 祾
本人以芯片89C51為核心,設計了一個能實現(xiàn)定時,時鐘,星期顯示功能的時間電子時鐘。實驗結果表明,基于89C51的數(shù)字時鐘能實現(xiàn)時鐘星期的功能:能進行時、分、秒的顯示。也具有星期計算、顯示和時鐘,星期的校準、定時時間的設定,實現(xiàn)三路開關定時輸出等功能。
89C51;電子制作;數(shù)字時鐘
隨著電子技術的飛速發(fā)展,單片機的使用率越來越高。教學之余,為了激發(fā)學生對51單片機的學習興趣,我利用89C51制作了一款電子時鐘,經驗證這款電子時鐘簡單實用,以至于班上的每個同學都制作一款。由于51系列單片機機展小巧、程序編寫簡、功能強大、價格便宜等優(yōu)點,由51單片機制作的小型智能產品越來越多,也是電子技術相關專業(yè)學生畢業(yè)設計的首選芯片(見圖1)。
圖1 基于89C51時鐘電路的電路圖
圖2
基于89C51時鐘電路主要由主要由微處理器電路、LED數(shù)碼管顯示電路、鍵盤電路、顯示驅動電路、時鐘模塊、電源電路等組成。89C51的管腳及技術細節(jié)可以查閱有關手冊。電路模塊的基本工作過程是:(1)顯示電路主要由兩片74HC595和7個LED共陰紅色數(shù)碼管、LED發(fā)光二極管及限流電阻組成。74HC595是數(shù)碼管和發(fā)光二極管的顯示驅動電路,是一種8位串行輸入、8位串行輸出或并行輸出的高速CMOS移位寄存器、8位并行輸出口具有三態(tài)輸出功能(即可被程控成高阻狀態(tài))。顯示電路采用動態(tài)掃描方式驅動數(shù)碼管,即數(shù)碼管的陰極和陽極都用74HC595驅動,微處理器控制將將要顯示的內容(7位數(shù)字段碼)快速的分時送到LED兩端。這種設計的優(yōu)點是最大限度地降低了系統(tǒng)的硬件支出(與靜態(tài)顯示電路相比)。(2)時鐘模塊電路DS12887是美國Dalls公司生產的實時時鐘芯片,采用CMOS技術制成,具有內部晶振和時鐘芯片備份鋰電池。該芯片具有良好的微處理器接口(有Motorola和Intel兩種時序可供選擇,在本系統(tǒng)中采用Intel時序)。芯片內含128個字節(jié)RAM單元與軟件接口,其中14個字節(jié)作為時鐘和控制寄存器。114個字節(jié)為通用RAM(在本系統(tǒng)中未用),所有RAM單元都具有掉電保護功能。采用該芯片作為該系統(tǒng)的實時時鐘基準,是為了保證時鐘運行的高精度。(3)鍵盤是單片機的主要輸入設備,是時間設置和控制的人機接口。本系統(tǒng)中設計了16個鍵,本系統(tǒng)中實際使用9個鍵,其余7個鍵留備系統(tǒng)擴展用。16個按鍵的硬件連接方式是4×4矩陣。單片機對鍵盤狀態(tài)的檢測是通過動態(tài)掃描方式進行的。這樣做的目的是大大減少了鍵盤電路所占用的單片機端口線的數(shù)量。16個鍵的鍵值讀取占用了8根I/O口線(P2口)。如果采用靜態(tài)鍵盤方式,則需占用16根口線。另外,這個鍵盤具有連擊功能,即按下某一鍵達到一定時長后,該鍵對應的功能將得到反復執(zhí)行。利用這個連擊功能,可以快速地調整時鐘和輸入鬧鐘程序。
圖3
該子程序的功能是:將事先編好的鬧鐘程序代碼從EEPROM中逐條讀出,并與當前的實時時鐘進行一次比較。若某一條鬧鐘程序的語句(下面有說明)中的時間代碼與當前的實時時鐘相同,則執(zhí)行該語句對應的鬧鐘功能。否則掃描下一條語句,直至鬧鐘程序末。
鬧鐘程序:所以鬧鐘語句的集合
鬧鐘語句:由一個時代碼、一個分代碼和一個鬧鐘時長代碼組成。一條鬧鐘語句定義一個鬧鐘操作。
鬧鐘程序存放在EEPROM芯片(型號AT24C16)中, AT24C16是ATMEL公司生產的電擦電寫串行存儲器,容量是2K字節(jié)。一周的鬧鐘程序被編成7頁,一天一頁,每一頁占256個字節(jié),AT24C16中剩下的256個字節(jié)留備用。
每條鬧鐘語句分配4個字節(jié):
第一個字節(jié):存放“時”代碼(指定 時)
第二個字節(jié):存放“分”代碼(指定 分)
第三個字節(jié):存放“時長”代碼(控制鬧鐘時間長短)
第四個字節(jié):未用。
因為一頁占256個字節(jié),那么一頁中可存放約60條鬧鐘語句,即在一天中最多可設置60個鬧鐘點。
定時鬧鐘程序流程框圖(見圖4)。
圖4
以89C51為核心制作的數(shù)字時鐘,經過電路調試和軟件調試,可以實時時鐘的顯示和調整、整點報時、定時鬧鐘的設定、以一周為周期的鬧鐘功能。
楊祾,高級講師,供職于淮安市高級職業(yè)技術學校。