實例94 模擬電子鐘(由80C51定時器產生秒時基)
摘自張志良編著《單片機實驗實訓100例》 ISBN 978-7-5124-1603-1,北航社出版
實例90~實例93時鐘采用了專用的實時時鐘芯片DS1302,由80C51讀出其時鐘數據并驅動顯示。本例由80C51定時器產生秒時基,再計數生成時分秒數據,與74LS595組成模擬電子鐘。
⒈ 電路設計
設計模擬電子鐘電路如圖 7-13所示,由80C51 RXD端與控制時十位輸出顯示的74HC595DS端連接,595串行輸出端QS與下一片595串行輸入端DS端連接,595并行輸出端Q0~Q7與數碼管筆段a~g、Dp端連接,依次輸出6位時分秒數據;80C51 TXD端與6片595 CLK端連接 ,串行輸出時鐘脈沖,控制595串行移位;80C51P1.6與6片595 RCK端連接,控制輸出觸發595片內緩沖寄存器中數據進入輸出寄存器的正脈沖;80C51P1.5、P1.4、P1.3分別與時、分、秒595輸出允許端 端連接,控制6片595輸出顯示;80C51P1.7與2組發光二極管(共4個)連接 ,控制秒閃爍;80C51 P1.2~P1.0與K0~K2連接,控制時鐘時分秒校正。
圖7-13.jpg (71.92 KB, 下載次數: 118)
下載附件
2016-5-11 17:23 上傳
74HC595特性已在實例44中介紹,此處不再贅述。
⒉ 程序設計
設fOSC=6MHz,按圖7-13電路,要求開機顯示0時0分0秒,隨后開始計時運行,2組發光二極管秒閃爍(亮暗各500ms)。同時要求K0、K1和K2具有時鐘校正功能,其控制過程為:按下K0(帶鎖),進入時鐘修正;首先,時數據(包括時十位、時個位)快速閃爍(亮暗各131ms);按一次K1(不帶鎖),被修正數據(快速閃爍)按時、分、秒(同時包括十位、個位)次序右移(循環往復);按一次K2(不帶鎖),被修正數據整體加1(最大值不超過時鐘規定值,超過復0);時鐘修正期間,計時繼續運行;釋放K0,退出時鐘修正。
秒時基產生:fOSC=6MHz時,由T0定時器方式2定時500ms。對500ms計數2000次,可得到1s時基;再對1s計數60次,可得1分;對1分計數60次,可得1小時;對1小時計數24次,可得1天。
T0初值=28 -500ms/2ms=256–250=6。因此,TH0 =TL0 = 06H。
時鐘修正位閃爍控制:由T1定時器方式1,不需設置和重裝定時初值,最大定時可達131ms,正好用于時鐘修正位閃爍。
disp6.jpg (171.1 KB, 下載次數: 153)
下載附件
2016-5-11 17:24 上傳
key.jpg (159.62 KB, 下載次數: 123)
下載附件
2016-5-11 17:25 上傳
t0t1.jpg (108.49 KB, 下載次數: 110)
下載附件
2016-5-11 17:25 上傳
⒊ Keil調試
本題Keil調試同上例。因涉及串行口外圍元件,在Keil軟件調試中無法得到外圍元件的有效信號。因此,僅在Keil中,按實例1所述步驟,編譯鏈接,語法糾錯,自動生成Hex文件。
⒋ Proteus仿真
⑴ 按實例23所述Proteus仿真步驟,打開Proteus ISIS軟件,按表7-7選擇和放置元器件,并連接線路,畫出Proteus仿真電路如圖7-14所示。
表7-7.jpg (55.28 KB, 下載次數: 126)
下載附件
2016-5-11 17:26 上傳
圖7-14.jpg (91.49 KB, 下載次數: 102)
下載附件
2016-5-11 17:27 上傳
⑵ 鼠標左鍵雙擊Proteus ISIS仿真電路中AT89C51,裝入Keil調試后自動生成的Hex文件。
⑶ 全速運行后,6位LED顯示00:00:00,然后計時運行,4個發光二極管秒閃爍。
⑷ 按下K0(鎖定),進入時鐘修正。
需要說明的是,本例選用的BUTTON按鍵有兩種運行功能:有鎖運行和無鎖運行。作有鎖運行時,鼠標左鍵單擊按鍵圖形中小紅圓點,單擊第一次閉鎖,第二次開鎖。作無鎖運行時,鼠標左鍵單擊按鍵圖形中鍵蓋帽“ ”,單擊一次,鍵閉合后彈開一次,不閉鎖。
 ① 首先2位時數據快速閃爍,表示時數據允許修正。此時每按一次K2(鼠標左鍵單擊鍵圖形中鍵蓋帽“ ”,單擊一次,鍵閉合后彈開一次,不閉鎖),時顯示數加1,但不超過最大值23,超過時復0。
② 若按一次K1(不閉鎖,方法同K2),被修正位(快速閃爍)移至分數據位,每按一次K2,分顯示數加1,但不超過最大值59,超過時復位0。
③ 再按一次K1(不閉鎖,方法同K2),被修正位(快速閃爍)移至秒數據位,每按一次K2,秒顯示數加1,但不超過最大值59,超過時復位0。
④ 再按一次K1,回復到時數據修正(繼續按K1,重復上述①~③過程)。
⑤ 釋放K0,退出時鐘修正,恢復正常計時顯示。
⑸ 終止程序運行,可按停止按鈕。
⒌ 思考與練習
秒時基是怎樣產生的?
|