韓 霜
(山東省廣播電視局高山臺管理中心,濟南 250000)
RV8803-C7 是瑞士MicroCrystal 公司生產的一款C7(3.2x1.5mm)封裝的實時時鐘模塊,體積是全世界最小的。具備標準的I2C 接口,具有高精度、溫度補償、低成本、超低功耗、微型封裝、寬廣的工作溫度范圍。模塊內置32.768KHz 晶振,溫度范圍-40℃~+85℃,±3 ppm 的時間精度。
W77E516是一個快速8051 兼容微控制器;它的內核經過重新設計,提高了時鐘速度和存儲器訪問周期速度。經過這種改進以后,在相同的時鐘頻率下,它的指令執(zhí)行速度比標準8051 要快許多。一般來說,按照指令的類型,W77E516的指令執(zhí)行速度是標準8051的1.5-3倍。整體來看,W77E516的速度比標準的8051快2.5倍。
RV8803-C7功耗非常低,僅需240毫安,提供標準時鐘和日歷功能,包括秒、分鐘、小時(24)、工作日、日期、月、年(閏年計算)和外部事件的中斷功能,周期倒計時定時器,周期性時間更新和報警。
各寄存器的地址分別是:秒寄存器地址0x00;分鐘寄存器地址0x01;小時寄存器地址0x02;星期寄存器地址0x03;日期寄存器地址0x04;月份寄存器地址0x05;年寄存器地址0x06。
RV8803-C7的I2C 接口用于不同IC 或模塊之間的雙向、雙線通信。RV-8803-C7訪問地址是寫0x64/讀0x65,并支持快速通訊模式,高達0.4MHz。I2C 接口由兩條線組成:一條雙向數據線SDA 和一條時鐘線SCL。兩條線路連接到電源上拉電阻,只有當接口不忙時才啟動數據傳輸。
RV-8803-C7通過W77E516的P1.1引腳和P1.0引腳連接各增加一個47Ω 的限流電阻,C4為一個0.1F 的法拉電容,用于外部供電斷開后保證實時時鐘的正常運行。
由于W77E516 屬于基礎型的51 芯片,所以需要編寫程序實現(xiàn)I2C 通訊,為此需要編寫函數I2C_Start、I2C_Stop,I2C_WriteOneByte,I2C_ReadOneByte 來實現(xiàn)I2C 通訊功能。在實現(xiàn)了I2C 基礎的通訊函數后,就可以編寫I2C 總線針對特定地址的讀寫函數,具體實現(xiàn)如下:
由于RV8803-C7對外提供的時間格式為BCD 編碼格式,所以需要編寫兩個函數完成BCD 和Hex 十六進制的互相轉換。
BYTE B2H(BYTE bcd){ return (bcd/16*10+bcd%16);}
BYTE H2B(BYTE hex){ return (hex/10*16+hex%10);}
在完成了BCD 和Hex 的互轉后,就可以編寫實時時鐘的讀寫程序了。RV8803-C7模塊的星期數據使用位表示,所以在讀取和設置時,可以針對其單獨編寫switch 語句完成星期數據的正確讀寫。對于時鐘的讀寫,以秒的讀取和設置為例,實現(xiàn)語句參考如下。
Seconds=B2H(I2C_R(0x00)&0x7F);//讀 取RV8803 中當前時間的秒。
I2C_W(H2B(Seconds),0x00);//設置RV8803 中當前時間的秒。
本文主要研究了W77E516單片機與RV8803-C7實時時鐘的訪問及實現(xiàn)方法,并針對51芯片不具備I2C 接口的情況下如何實現(xiàn)I2C 通訊做了詳細探討。