国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

Xilinx FPGA入門連載63:基于數碼管顯示的RTC讀取之RTC芯片解析

發布時間:2016-3-31 19:04    發布者:rousong1989
Xilinx FPGA入門連載63:基于數碼管顯示的RTC讀取之RTC芯片解析
特權同學,版權所有
配套例程和更多資料下載鏈接:
1 RTC芯片解析
本實例使用的RTC實時時鐘芯片是型號為PCF8563,是PHILIPS 公司推出的一款工業級內含IIC 總線接口功能的具有極低功耗的多功能時鐘/日歷芯片。PCF8563的多種報警功能、定時器功能、時鐘輸出功能以及中斷輸出功能能完成各種復雜的定時服務,甚至可為單片機提供看門狗功能。內部時鐘電路、內部振蕩電路、內部低電壓檢測電路(1.0V) 以
及兩線制IIC 總線通訊方式,不但使外圍電路及其簡潔,而且也增加了芯片的可靠性。同時每次讀寫數據后內嵌的字地址寄存器會自動產生增量,因而PCF8563 是一款性價比極高的時鐘芯片,它已被廣泛用于電表、水表、氣表、電話、傳真機、便攜式儀器以及電池供電的儀器儀表等產品領域。
特性
●  寬電壓范圍1.0 5.5V 復位電壓標準值Vlow=0.9V
●  超低功耗典型值為0.25 A VDD=3.0V,Tamb=25°C
●  可編程時鐘輸出頻率為32.768KHz/1024Hz/32Hz/1Hz
●  四種報警功能和定時器功能
●  內含復位電路振蕩器電容和掉電檢測電路
●  開漏中斷輸出
●  400kHz的IIC 總線(VDD=1.8-5.5V) 其從地址讀0xa3,寫0xa2
PCF8563的引腳排列及描述如下所示。
PCF8563有16 個位寄存器:一個可自動增量的地址寄存器,一個內置32.768KHz 的振蕩器(帶有一個內部集成的電容),一個分頻器用于給實時時鐘RTC 提供源時鐘,一個可編程時鐘輸出,一個定時器,一個報警器,一個掉電檢測器和一個400KHz的IIC 總線接口。
所有 16 個寄存器設計成可尋址的8 位并行寄存器,但不是所有位都有用。前兩個寄存器(內存地址00H 01H)用于控制寄存器和狀態寄存器,內存地址02H~08H 用于時鐘計數器(秒~年計數器),地址09H~0CH用于報警寄存器(定義報警條件),地址0DH 控制CLKOUT 引腳的輸出頻率,地址0EH 和0FH分別用于定時器控制寄存器和定時器寄存器。秒、分鐘、小時、日、月、年、分鐘報警、小時報警、日報警寄存器,編碼格式為BCD,星期和星期報警寄存器不以BCD 格式編碼。
當一個 RTC 寄存器被讀時,所有計數器的內容被鎖存。因此,在傳送條件下,可以禁止對時鐘日歷芯片的錯讀。
PCF8563 共有16 個寄存器,其中00H~01H為控制方式寄存器;09H~0CH為報警功能寄存器;0DH為時鐘輸出寄存器;0EH 和0FH 為定時器功能寄存器,02H~08H為秒~年時間寄存器。各寄存器的位描述如下示。
看了這么多條條框框的寄存器描述,大家一定有些累了,下面我們來電實用的,和大家簡單說說如何使用這個芯片初始設置或讀出年月日時分秒等信息。
我們將并且只能夠使用IIC接口來讀寫這個芯片的各個寄存器,IIC接口有一定的協議,需要按照協議規定送起始位、器件地址、讀寫寄存器地址、讀寫數據、停止位等,這個內容我們下一小節的設計中詳細探討,后面我們先拋開IIC具體讀寫控制時序,先從宏觀角度來把該讀寫哪些寄存器這碼事理清楚。
正常來說,一個芯片的使用,無外乎設置一下控制寄存器,然后讀寫相關數據,必要的話產生一個中斷,此時可能回去看看狀態寄存器。不過,我們這顆RTC更簡單,地址0x00和0x01的控制寄存器1和2默認狀態即可,我們只需要讀寫時間便可,其他什么報警、中斷等功能留待大家有興趣自己琢磨去。好,那么簡單又是怎么操作的,不急,精彩馬上送到。
地址0x02~0x08寄存器的內容是秒、分、時、日、星期、月、年信息,我們只要操作他們便可以了。
假設現在我們就是要把這些基本的時間信息讀出來,然后以我們最常規的大家都能看得懂的10進制方式顯示出來,那么如何操作?就按下面這個步驟就好,至于原理,大家回去對照各個寄存器的定義稍微一想也就能夠領會。
         ① 讀地址0x02的秒寄存器數據second,在顯示時,十位數據為((second&0x70)>>4),個位的數據為(second&0x0f)。
         ② 讀地址0x03的分鐘寄存器數據minute,在顯示時,十位數據為((minute&0x70)>>4),個位的數據為(minute&0x0f)。
         ③ 讀地址0x04的小時寄存器數據hour,在顯示時,十位數據為((hour&0x30)>>4),個位的數據為(hour&0x0f)。
         ④ 讀地址0x05的日寄存器數據day,在顯示時,十位數據為((day&0x30)>>4),個位的數據為(day&0x0f)。
         ⑤ 讀地址0x06的星期寄存器數據week,在顯示時,數據為(week&0x07)。
         ⑥ 讀地址0x07的月份寄存器數據month,在顯示時,十位數據為((month&0x10)>>4),個位的數據為(month&0x0f)。
         ⑦ 讀地址0x08的年寄存器數據year,在顯示時,十位數據為((year&0xf0)>>4),個位的數據為(year&0x0f)。
         以上這些寄存器值,如果我們希望重設,直接往里面寫數據即可,這樣我們便可以調整當前的時間和實際時間同步,因為我們芯片是由3V的紐扣電池供電的,所以即便我們的電路板下電后,芯片內部的時間計數單元還是在正常工作運轉的。

本文地址:http://www.4huy16.com/thread-162545-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Microchip第22屆中國技術精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 常見深度學習模型介紹及應用培訓教程
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表