關鍵詞:PCF8563 I2C 倒計時系統
引言
倒計時系統的任務,就是對某一設定日期進行倒數,在顯示屏顯示當前距離設定日期的時間;廣泛應用于重大的節日或活動,以增強人們的關切程度和緊迫感。戶外型倒計時系統,首先要求在強日光下顯示屏的字符依然清晰可見,而且要求系統能夠長時間連續穩定地工作。本文介紹的系統正是針對這樣的要求而開發出來的。
1 總體設計方案
整個系統由時鐘芯片、中央處理單元、譯碼、驅動、顯示、鍵盤幾部分構成,系統框圖如圖1所示。
2 硬件電路設計
2.1 時鐘芯片
PCF8563是Philips公司推出的一款帶I2C總線具有極低功耗的多功能時鐘/日歷芯片,具有四種報警功能和定時功能;內部時鐘電路、內部振蕩電路、內部低電壓檢測以兩線制I2C總線通信方式,不但使用外圍電路簡潔,而且增加了芯片的可靠性。
PCF8563的SCL為時鐘輸入端,數據隨時鐘信號同步輸入器件或從器件輸出;SDA為雙向引腳,用于串行數據的輸入輸出;INT是中斷信號輸出端,可通過設置報警寄存器按指定時間在該腳產生報警信號,低電平有效;SDA、SCL、INT均為漏極開路,必須上拉電阻;X1、X2分別為反相放大器的輸入、輸出端;可在X1端接入32.768kHz的石英晶振,配置成片內振蕩器。本系統PCF8563與89C51接口采用圖2所示接口方案。
圖2中,在X1、X2端接入32.768kHz的石英晶振,將時鐘源配置為片內振蕩器。VDD與地之間國入1個1μF的大電容供電維持時鐘芯片,鋰電池(3.6V)同時開始工作,給時鐘芯片供電,使時鐘芯片工作不受影響。PCF8563與89C51接口采用3根口線,PCF8563的INT腳產生周期為1s的脈沖中斷信號給89C51的INT0引腳,89C51產生中斷后,通過I2C總線讀取PCF8563的基準時間。
2.2 顯示和鍵盤電路
譯碼、顯示、驅動、鍵盤電路如圖3所示、單片機將讀入的PCF8563時間信息,經過程序處理,輸出顯示信號到P1口(數據4位,選擇信號4位)。顯示信息包括倒計時信息(當前距離設定時間的天數)和當前時間的星期、時、分、秒信息。4位數據信號送入MC14513(BCD-鎖存/7段譯/碼驅動器),共有10個MC14513:倒計時占用3個,時間時、分、秒各占用2個,星期占用1個。4位選擇信號送到74LS145譯碼器(4位鎖存/4-10線譯碼),選擇接收數據的MC14513芯片。 被選擇的MC14513譯碼驅動對應共陰數碼管字段(a、b、c、d、e、f、g)。
戶外顯示要求在強日光下依然清楚可見,所以我們采用超高度φ5 LED管組成LED點陣字符。其中每個字段由4塊LED點陣埠并聯組成,而每個LED點陣塊先由5個LED串聯1組,再將4個串聯組并聯而成。先用的超高亮度LED工作電流約為20mA,工作電壓約為2V,每字段的總電流約為320mA,工作電壓為10V;字段的驅動,采用大電流反相驅動器ULN2003(由7組NPN達林頓驅動器組成);倒計時信號經MC14153輸入到ULN2003,ULN2003輸出接字段的陰極,字段陽極接電源正極;電源采用10A、5V的兩個開關電源串聯供電。
鍵盤接口有4個鏈:1個設定/確認鍵、1個修改+1鍵、1個修改-1鍵、1個移位鍵。對應秒、分、時、倒計時、星期,有5個LED。LED亮,表示對應的秒或分或星期或倒計時數據可按修改鍵修改。設定/確認鍵,有兩種狀態:設定和確認。首先按下為設定時間狀態,再按下為確認狀態。將設定時間數據處理后寫入PCF8563,兩種狀態互為循環。在設定時間狀態,首先次移位為秒位,對應秒移位LED亮,按下移位鍵,移位LED燈接秒→分→時→倒計時→星期逐次循環;按下修改+1鍵或修改-1鍵可對相應位的數據進行+1或-1操作。
3 軟件設計
PCF8563中共有16個寄存器,其中00~01H為控制寄存器,09~0CH為報警寄存器,0DH為時鐘輸出寄存器,0E~0FH為定時器功能寄存器,02~08H為秒~年時間寄存器。表1、表2列出了各寄存器概況及對應的內存地址和功能。
表1 寄存器概況
地 址 | 寄存器名稱 | 位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
00H | 控制/狀態寄存器1 | TFST | 0 | STOP | 0 | TESTC | 0 | 0 | 0 |
01H | 控制/狀態寄存器2 | 0 | 0 | 0 | TT/TP | AF | TF | AIE | TIE |
0DH | CLKOU 輸出寄存器 | FE | - | - | - | - | - | FD1 | FD0 |
0EH | 定時器控制寄存器 | TE | - | - | - | - | - | TD1 | TD0 |
0FH | 定時器倒計數數值寄存器 | 定時器倒計數數值(二制) |
表2 BCD格式寄存器概況
地址 | 寄存器名稱 | 位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
02h | 秒 | VL | 00~59BCD碼格式數 | ||||||
03h | 分 | - | 00~59BCD碼格式數 | ||||||
04h | 時 | - | - | 00~23BCD碼格式數 | |||||
05h | 日 | - | - | 00~59BCD碼格式數 | |||||
06h | 星期 | - | - | - | - | - | 0~6 | ||
07h | 月/世紀 | C | - | - | 01~12BCD碼格式數 | ||||
08h | 年 | 00~99BCD碼格式數 | |||||||
09h | 分鐘報警 | AE | 00~59BCD碼格式數 | ||||||
0Ah | 小時報警 | AE | - | 00~23BCD碼格式數 | |||||
0BH | 日報警 | AE | - | 01~31BCD碼格式數 | |||||
0CH | 星期報警 | AE | - | - | - | - | 0~6 |
按I2C總線規約,PCF8563的從地址:讀地址SLAR為A3H、寫地址SLAW為A2H,PCF8563I2C通信實現有字節寫/讀兩種狀態。適用80C51的虛擬I2C總線軟件包。本系統直接調用該I2C總線軟件包的數據讀寫子程序(其中WRNBYT為N字節的子程序,RDNBYT為讀取N字節的字節),來實現PCF8563的I2C總線操作。
根據硬件電路及資源分配,將I2C軟件包中符號單元賦值如下:
SDA EQA P0.0 ;數據傳送
SCL EQU P0.1 ;時鐘控制狀態
MIN DATA 30H ;秒寄存器
SEC DATA 31H ;分寄存器
HOUR DATA 32H ;時寄存器
DAY DATA 33H ;日寄存器
WEEK DATA 34H ;周寄存器
MONTH DATA 35H ;月寄存器
YEAR DATA 36H ;年寄存器
SLA DATA 37H ;37H為被控器的地址
NUMBYT DATA 38H ;38H為數據字節計數器
MRT DATA 40H ;接收數據緩沖區首地址
MTD DATA 50H ;發送數據緩沖區首地址
①PCF8563定時器工作模式
MOV 51H ,#81H ;設置PCF8563的0EH為81H,啟動定時器,定時器頻率64Hz
MOV 52H ,#64 ;設置PCF8563的0FH為64,定時器倒計數值為64
MOV MTD ,#0EH ;定時器控制寄存器字節首地址
MOV NUMBYT,#3 ;寫字節
MOV SLA ,#0A2H;取寫器件地址
LCALL WRNBYT ;寫8563
以上配置完成后,PCF8563的INT腳產生周期為1s,脈沖寬度(低電平)約為15ms的脈沖中斷信號。
②PCF8563當前時間設定子程序如下:
MOV 51H,#00H ;啟動時鐘
MOV 52H,#11H ;定時器為中斷模式,脈沖形式
MOV 53H,MIN ;將秒至年的時間寫入發送緩沖區
MOV 54H,SEC
MOV 55H,HOUR
MOV 56H,DAY
MOV 57H,WEEK
MOV 58H,MON
MOV 59H,YEAR
MOV SLA,#0A2H ;取寫器件地址
MOV NUMBYT,#10;寫字節數
MOV MTD,#00H ;寫入8563寄存器首地址為00H
LCALL WRNBYT ;寫入8563
RET
③讀出時鐘芯片當前值子程序設計
MOV MTD,#02H ;讀時鐘寄存器首字節地址02H
MOV SLA,#0A2H ;取寫器件地址
MOV NUMBYT,#1 ;寫字節數
LCALL WRNBYT ;寫8563
MOV SLA,#0A3H ;取讀器件地址
MOV NUMBYT,#7 ;讀七個時鐘信息
LCALL RDNBYT ;讀取時間并放入緩沖區
MOV A,40H ;取潷字節
ANL A,#7FH ;屏蔽無效位
MOV MIN,A ;送秒寄存器
MOV A,41H ;取分字節
ANL A,#7EH ;屏蔽無效位
MOV MIN,A ;送分寄存器
MOV A,42H ;取小時字節
ANL A,#3FH ;屏蔽無效位
MOV HOUR,A ;送時寄存器
MOV A,43H ;取天字節
ANL A,#3FH ;屏蔽無效位
MOV DAY,A ;送天寄存器
MOV A,44H ;取星期字節
ANL A,#07H ;屏蔽無效位
MOV WEEK,A ;送星期寄存器
MOV A,45H ;取月字節
ANL A,#1FH ;屏蔽無效位
MOV MOTH,A ;送月寄存器
RET
系統程序流程如圖4所示,中斷服務程序如5所示。
結語
此倒計時系統于廣東省六屆大運會中標,在整個運行過程正常穩定工作,達到了大會提出的要求。
相關推薦
基于PCF8563的數字時鐘設計


1.設計一個籃球24秒倒計時系統。
100s可變模置數倒計時
PCF8563 RTC時間在使用3個月后損壞了的原因?怎么解決?
PCF8563(RTC)讀取時間有誤是什么原因導致的?
PCF8563怎么使用
PCF8563時鐘模塊的資料分享
倒計時器,綠燈閃爍的時候倒計時也要繼續計時,這塊程序怎么寫?
倒計時顯示的問題
倒計時的vi資料下載
STC12單片機I2C程序機驅動PCF8563程序
STC51驅動PCF8563
nanopi neo怎么使用外部rtc時鐘pcf8563?
【問題】4412開發板配置pcf8563時鐘芯片驅動后,無法使用,是什么問題呢?
一種可變信息倒九秒半程倒計時器
為什么PCF8563運行一段時間后就停止了?
低功耗CMOS實時時鐘/日歷芯片PCF8563
關于PCF8563時鐘模塊的介紹
基于PCF8563時鐘芯片的萬年歷制作資料分享
基于STM32的正倒計時器程序設計
基于labview的倒計時和定時器
基于labview的定時和倒計時功能小程序
如何去實現一種基于單片機的倒計時牌控制系統設計
如何讓seg倒計時的同時點亮點陣?
完成倒計時時鐘的設計資料分享
帶暫停功能的倒計時程序
怎樣去設計一種基于51單片機的倒計時系統
數碼管倒計時問題求助
畢設做的萬年歷PCF8563的鬧鐘報警怎么用
求助基于PCF8563芯片的電子時鐘綜合系統
求基于STC89C52的倒計時的設計
秒表倒計時
籃球倒計時 案例
請問PCF8563中的定時器定時功能一般用來干什么?
請問pcf8563這個時鐘芯片在altium designer哪個庫里面啊?
請問怎么才能用PCF8563產生秒輸出中斷?
采用PCF8563的萬年歷
PCF8563 pdf datasheet

外圍器件PCF8563 I2C實時時鐘日歷芯片在8051系統

AN070219 PCF8563中斷輸出功能

PCF8563實時時鐘高精度調整方法

PCF8563匯編程序

PCF8563在電子時鐘設計中的應用

現場總線型交通倒計時器的設計


籃球倒計時牌[優質文檔]

pcf8563芯片功能_工作原理和引腳圖及應用介紹

PCF8563時鐘芯片驅動程序分享

如何調整pcf8563精度_PCF8563高精度調整方法介紹


基于PCF8563時鐘芯片的萬年歷制作

pcf8563和ds1302有什么區別_哪個比較好


微雪電子RTC時鐘模塊PCF8563 PCF8563T介紹


單片機課設-60秒倒計時器

課程設計題九: 倒計時時鐘設計

19-基于51單片機的倒計時系統

PIC16F877A單片機 (IIC總線+PCF8563芯片)

STM32模擬IIC讀取PCF8563

【DIY】STM8的實時時鐘PCF8563與紅外進出門提醒器

ESP32使用PCF8563時鐘模塊進行網絡校時

評論