<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DS1302時鐘芯片的工作原理

CHANBAEK ? 來源:CSDN-_會飛_的魚 ? 作者:CSDN-_會飛_的魚 ? 2023-03-07 15:01 ? 次閱讀

一. 描述

DS1302時鐘芯片是由美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘芯片。 它可以對年、月、日、周、時、分、秒進行計時,且具有閏年補償等多種功能。

DS1302芯片包含一個用于存儲實時時鐘/日歷的 31 字節的靜態 RAM,可通過簡單的串行接口微處理器通訊,將當前的時鐘存于RAM。 DS1302芯片對于少于 31 天的月份月末會自動調整,并會自動對閏年進行校正。 由于有一個 AM/PM 指示器,時鐘可以工作在 12 小時制或者 24小時制。

二. 芯片參數

1.芯片特點

  • 實時時鐘計算年、月、日、時、分、秒、星 期,直到 2100 年,并有閏年調節功能
  • 31 x 8 位 通用暫存 RAM
  • 串行輸入輸出,使管腳數最少
  • 2.0V 至 5.5V 寬電壓范圍操作
  • 在 2.0V 時工作電流小于 300nA
  • 讀寫時鐘或 RAM 數據時有單字節或多字節(脈沖串模式)數據傳送方式
  • 8 管腳 DIP 封裝或可選的 8 管腳表面安裝 SO 封裝
  • 簡單的 3 線接口
  • 與 TTL 兼容 (VCC = 5V)
  • 可選的工業溫度范圍:-40°C to +85°C

2.引腳說明

截圖20230301181839.png

DS1302采用的是三線接口的雙向數據通信接口,RST是片引腳,低電平有效; SCLK是時鐘芯片,為通信提供時鐘源; I/O為數據輸入輸出引腳,用于傳輸及接收數據;

DS1302還采用了雙電源供電模式,VCC1 連接到備用電源,在VCC2主電源失效時保持時間和日期數據.

三. 參考電路

截圖20230301181839.png

DS1302芯片基本電路如上圖,其中Y2為32.768k外部晶振,為芯片提供時鐘源;P2為備用電池,以保證在主電源掉電后,芯片仍可繼續運行;D1為二極管,保證電壓的單向導通,防止主電源電壓過高燒壞備用電池;R6為上拉電阻,增強信號傳輸的穩定性。

四. 控制程序

1.時鐘數據的讀寫地址

截圖20230301181839.png

如上圖,為DS1302芯片的時鐘數據的讀和寫的地址,也就是說要實現對芯片控制,就是往這些地址上寫入或讀出數據。 其中:

讀地址為: 0x81(秒), 0x83(分), 0x85(時), 0x87(日), 0x89(月), 0x8b(星期), 0x8d(年);

寫地址為: 0x80(秒), 0x82(分), 0x84(時), 0x86(日), 0x88(月), 0x8a(星期), 0x8c(年);

2.控制時序

DS1302控制軟件最基本的操作為寫函數和讀函數,其次就是實現初始化函數。

(1)讀時序

截圖20230301181839.png

/*******************************************************************************
* 函數功能       : 讀取一個地址的數據
*******************************************************************************/
uchar Ds1302Read(uchar addr)
{
  uchar n,dat,dat1;
  RST = 0;
  _nop_();




  SCLK = 0;//先將SCLK置低電平。
  _nop_();
  RST = 1;//然后將RST(CE)置高電平。
  _nop_();




  for(n=0; n<8; n++)//開始傳送八位地址命令
  {
    DSIO = addr & 0x01;//數據從低位開始傳送
    addr >>= 1;
    SCLK = 1;//數據在上升沿時,DS1302讀取數據
    _nop_();
    SCLK = 0;//DS1302下降沿時,放置數據
    _nop_();
  }
  _nop_();
  for(n=0; n<8; n++)//讀取8位數據
  {
    dat1 = DSIO;//從最低位開始接收
    dat = (dat>>1) | (dat1<<7);
    SCLK = 1;
    _nop_();
    SCLK = 0;//DS1302下降沿時,放置數據
    _nop_();
  }




  RST = 0;
  _nop_();  //以下為DS1302復位的穩定時間,必須的。
  SCLK = 1;
  _nop_();
  DSIO = 0;
  _nop_();
  DSIO = 1;
  _nop_();
  return dat;  
}

(2)寫時序

截圖20230301181839.png

/*******************************************************************************
* 函數功能       : 向DS1302命令(地址+數據)
*******************************************************************************/
void Ds1302Write(uchar addr, uchar dat)
{
  uchar n;
  RST = 0;
  _nop_();
  SCLK = 0;//先將SCLK置低電平。
  _nop_();
  RST = 1; //然后將RST(CE)置高電平。
  _nop_();




  for (n=0; n<8; n++)//開始傳送八位地址命令
  {
    DSIO = addr & 0x01;//數據從低位開始傳送
    addr >>= 1;
    SCLK = 1;//數據在上升沿時,DS1302讀取數據
    _nop_();
    SCLK = 0;
    _nop_();
  }
  for (n=0; n<8; n++)//寫入8位數據
  {
    DSIO = dat & 0x01;
    dat >>= 1;
    SCLK = 1;//數據在上升沿時,DS1302讀取數據
    _nop_();
    SCLK = 0;
    _nop_();  
  }




  RST = 0;//傳送數據結束
  _nop_();
}

(3)初始化

/*******************************************************************************
* 函數功能       : 初始化DS1302.
*******************************************************************************/
void Ds1302Init()
{
  uchar n;
  Ds1302Write(0x8E,0X00);     //禁止寫保護,就是關閉寫保護功能
  for (n=0; n<7; n++)//寫入7個字節的時鐘信號:分秒時日月周年
  {
    Ds1302Write(WRITE_RTC_ADDR[n],TIME[n]);  
  }
  Ds1302Write(0x8E,0x80);     //打開寫保護功能
}

3. 參考示例

實現了DS1302的驅動程序,接下來就可以實現DS1302的報時功能了。




//---DS1302寫入和讀取時分秒的地址命令---//
//---秒分時日月周年 最低位讀寫位;-------//
uchar code READ_RTC_ADDR[7] = {0x81, 0x83, 0x85, 0x87, 0x89, 0x8b, 0x8d}; 
uchar code WRITE_RTC_ADDR[7] = {0x80, 0x82, 0x84, 0x86, 0x88, 0x8a, 0x8c};




//---DS1302時鐘初始化2013年1月1日星期二12點00分00秒。---//
//---存儲順序是秒分時日月周年,存儲格式是用BCD碼---//
uchar TIME[7] = {0, 0, 0x12, 0x01, 0x01, 0x02, 0x13};




/*******************************************************************************
* 函數功能       : 讀取時鐘信息
*******************************************************************************/
void Ds1302ReadTime()
{
  uchar n;
  for (n=0; n<7; n++)//讀取7個字節的時鐘信號:分秒時日月周年
  {
    TIME[n] = Ds1302Read(READ_RTC_ADDR[n]);
  }  
}




void main()
{
  LcdInit();
  Ds1302Init();
  while(1)
  {  
    Ds1302ReadTime();       //讀取此時的時間
    LcdDisplay();                 //顯示時間
  }
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電源
    +關注

    關注

    182

    文章

    16657

    瀏覽量

    245451
  • 芯片
    +關注

    關注

    447

    文章

    48195

    瀏覽量

    411042
  • 接口
    +關注

    關注

    33

    文章

    7829

    瀏覽量

    148908
  • 時鐘芯片
    +關注

    關注

    2

    文章

    234

    瀏覽量

    39612
  • DS1302
    +關注

    關注

    8

    文章

    448

    瀏覽量

    50286
收藏 人收藏

    評論

    相關推薦

    何為DS1302時鐘芯片

    標題 單片機外設之一(時鐘芯片DS1302)何為DS1302?DS1302是由美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時
    發表于 12-08 08:15

    DS1302 的基本組成和工作原理

    DS1302 的基本組成和工作原理DS1302 的基本組成和工作原理DS1302 的管腳排列及描述如下圖及表所示
    發表于 01-14 13:27 ?17次下載
    <b class='flag-5'>DS1302</b> 的基本組成和<b class='flag-5'>工作原理</b>

    時鐘芯片DS1302及其在數據記錄中的應用

    時鐘芯片DS1302及其在數據記錄中的應用:介紹了美國DALLAS公司推出的低功耗時鐘芯片DS1302
    發表于 05-22 08:35 ?140次下載

    基于DS1302芯片時鐘設計

    基于DS1302芯片時鐘設計
    發表于 03-01 12:21 ?11次下載

    基于實時時鐘模塊 時鐘芯片DS1302

    基于實時時鐘模塊 時鐘芯片DS1302
    發表于 10-16 11:35 ?40次下載
    基于實時<b class='flag-5'>時鐘</b>模塊 <b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b><b class='flag-5'>DS1302</b>

    ds1302芯片介紹,ds1302工作原理解析

    時鐘小編相信大家見怪不怪了,那么時鐘芯片大家知道是什么嗎?今天我們就來談談最常用時鐘芯片ds1302
    發表于 10-18 16:19 ?4.4w次閱讀

    DS1302的內部結構全面剖析

    說起DS1302想必還是有很多人知道的吧,畢竟現在流行的串行時鐘電路有很多DS1302就在其中。對于DS1302小編在《ds1302
    發表于 10-19 09:28 ?6053次閱讀

    DS1302芯片的使用,時鐘芯片DS1302功能匯總

    DS1302大家都知道他是時鐘芯片,知道了原理肯定想知道功能和操作方法,這篇文章就是主要來說DS1302芯片的功能以及
    發表于 10-19 10:43 ?9086次閱讀

    DS1302時鐘芯片調試經驗,奉上調試時鐘芯片DS1302的程序

     時鐘芯片DS1302目前得到廣泛的應用,但是DS1302的調試還是很有難度的。這篇文章就來說說DS1302
    發表于 10-19 11:12 ?1.1w次閱讀

    MSP430F149微控制器簡介及其時鐘芯片DS1302的應用介紹

    介紹TI公司生產的MsP430F149單片機與美 國 DALLAS公司推出的低功耗時鐘芯片 DS1302之間的接口應用程序,并詳細介紹時鐘芯片
    發表于 11-27 14:30 ?0次下載
    MSP430F149微控制器簡介及其<b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b><b class='flag-5'>DS1302</b>的應用介紹

    時鐘芯片DS1302的原理及使用

    一.描述DS1302時鐘芯片是由美國DALLAS公司推出的具有涓細電流充電能力的低功耗實時時鐘芯片。它可以對年、月、日、周、時、分、秒進行計
    發表于 01-17 13:03 ?28次下載
    <b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b><b class='flag-5'>DS1302</b>的原理及使用

    DS1302時鐘芯片的使用

    DS1302時鐘芯片的使用帶你寫一個小時鐘DS1302地址字節控制字節邏輯有效位必須是邏輯1,若為0,則數據就寫不進去
    發表于 01-18 09:01 ?3次下載
    <b class='flag-5'>DS1302</b><b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b>的使用

    基于單片機的DS1302實時時鐘實驗 實時時鐘芯片DS1302工作原理

    在許多系統當中都需要精確的時鐘功能,因此時鐘芯片孕育而生。其中美國達拉斯 DALLAS 公司設計的 DS1302 是一款非常流行的數字時鐘
    的頭像 發表于 07-27 18:27 ?3945次閱讀
    基于單片機的<b class='flag-5'>DS1302</b>實時<b class='flag-5'>時鐘</b>實驗 實時<b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b><b class='flag-5'>DS1302</b>的<b class='flag-5'>工作原理</b>

    DS1302時鐘芯片工作原理

    DS1302時鐘芯片是一種實時時鐘芯片,采用三線串行接口與微處理器相連,可以提供年、月、日、時、分、秒等時間信息。
    的頭像 發表于 11-18 09:39 ?3812次閱讀

    DS1302時鐘芯片的電路原理

    DS1302時鐘芯片內部的時鐘電路原理是基于晶振的振蕩原理。晶振是一種利用晶體的共振特性產生穩定的振蕩信號的元件。在DS1302中,晶振的頻
    的頭像 發表于 11-18 09:40 ?1831次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>