<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          實(shí)時時鐘芯片DS1302

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          DS1302是一種三線制的串行時鐘芯片,即CE(片選),SCLK(時鐘),I/O(雙向數(shù)據(jù))。從嚴(yán)格意義上來說,它不是SPI總線類型的,因?yàn)镾PI的數(shù)據(jù)線的輸入輸出是分開的,但是我們操作的時候可以用帶SPI的硬件接口的MCU,比如PIC16F877的MSSP模塊。


          命令字節(jié)的基本格式

          本文引用地址:http://www.ex-cimer.com/article/201611/320861.htm

          存儲器結(jié)構(gòu)

          需要注意的地方:

          1.在上電時,RST 必須為邏輯0直至Vcc>2.0V。同時SCLK 在RST 驅(qū)動至邏輯1 狀態(tài)時必須為邏輯0。

          2.數(shù)據(jù)輸入是在SCLK的上升沿,數(shù)據(jù)輸出是在SCLK的下降沿。

          3.傳輸方式:低位先傳輸。

          4.時鐘運(yùn)行:秒寄存器的最高位(BIT7)是作為時鐘控制位,當(dāng)為邏輯1時,時鐘停止,為0時鐘運(yùn)行。所以如果要時鐘運(yùn)行的話就必須將秒寄存器的最高位清0

          5.12/24小時模式:小時寄存器的第7位(最高位)是選擇12小時制還是24小時制。當(dāng)為邏輯1時選擇12小時,邏輯0選擇24小時。當(dāng)為12小時制時,小時寄存器的第5位用來表示上午AM和下午PM,邏輯1的時候表示PM,邏輯0的時候表示AM。

          6.在企圖對DS1302操作之前,必須將WP位清零。

          7.讀寫模式:有兩種模式,可以單字節(jié)讀寫,以及連續(xù)多字節(jié)讀寫(burst mode)。在連續(xù)多字節(jié)讀寫時,即burst mode,地址是必須從地址0的0位開始的。如果對時鐘操作,即CLOCK操作,則必須連續(xù)寫滿8個字節(jié),若是對RAM操作,則可以不必須寫滿31個字節(jié)。

          8.DS1302包含了實(shí)時時鐘日歷和31個字節(jié)的RAM,這里需要注意的是實(shí)時時鐘日歷的8個寄存器和31個字節(jié)的RAM是獨(dú)立的,沒有任何關(guān)系,不要混淆。31個RAM字節(jié)可以做其他用途,如鬧鐘等。因?yàn)镈S1302有電池供電,所以RAM的內(nèi)容不會丟失,相當(dāng)于EEPROM了。用戶可以用來實(shí)現(xiàn)特別的要求。

          9.時序必須嚴(yán)格按照其數(shù)據(jù)手冊上來。
          10.DS1302具有可編程的涓流充電功能,這對于經(jīng)常斷電的場合,意義重大。





          對于涓流充電電流的大小,可以根據(jù)以下公式計(jì)算:

          IMAX = (5.0V–diodedrop)/R1;

          其中,diodedrop為二極管壓降,R1為選擇的電阻大小。



          關(guān)鍵詞: 實(shí)時時鐘芯片DS130

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();