色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

DS1302涓流充電計時芯片特征

科技綠洲 ? 來源:單片機實例設計 ? 作者:單片機實例設計 ? 2023-09-11 14:41 ? 次閱讀

1.芯片簡介

DS1302 涓流充電計時芯片包含一個實時時鐘/日歷和 31 字節的靜態 RAM.通過簡單的串行接口微處理器通訊.這個實時時鐘/日歷提供年月日,時分秒信息.對于少于 31 天的月份月末會自動調整,還有閏年校正.由于有一個 AM/PM 指示器,時鐘可以工作在 12 小時制或者24小時制。

圖片

主要特點如下

  • 實時時鐘計算年、月、日、時、分、秒、星 期,直到 2100 年,并有閏年調節功能 ,具有31 x 8 位 通用暫存 RAM。
  • 2.0V 至 5.5V 寬電壓范圍操作 ,在2.0V時工作電流小于300nA 。
  • 讀寫時鐘或 RAM 數據時有單字節或多字節(脈沖串模式)數據傳送方式。引腳電平與 TTL 兼容 (VCC = 5V)。

2.DS1302引腳定義

使用同步串行通訊簡化了 DS1302 與微處理器的接口。與時鐘/RAM 通訊只需要三根線: CE, I/O (數據線), and SCLK (串行時鐘). 數據輸出輸入時鐘/RAM 一次1字節或者在脈沖串中多達 31 字節。除了 DS1202 的基本計時功能以外, DS1302 有額外特點比如,雙管腳主電源和備用電源,可編程涓流充電器 VCC1,還附加 7 字節的暫存器。

圖片

3.DS18B20驅動程序

(1)DS1302.h

#ifndef __DS1302_H__
#define __DS1302_H__


#include < reg52.h >
#include< intrins.h >


sbit SCK=P1^4;    
sbit SDA=P1^5;    
sbit RST=P1^6;
//復位腳
#define RST_CLR  RST=0//電平置低
#define RST_SET  RST=1//電平置高




//雙向數據
#define IO_CLR  SDA=0//電平置低
#define IO_SET  SDA=1//電平置高
#define IO_R  SDA  //電平讀取




//時鐘信號
#define SCK_CLR  SCK=0//時鐘信號
#define SCK_SET  SCK=1//電平置高




#define ds1302_sec_add      0x80    //秒數據地址
#define ds1302_min_add      0x82    //分數據地址
#define ds1302_hr_add      0x84    //時數據地址
#define ds1302_date_add      0x86    //日數據地址
#define ds1302_month_add    0x88    //月數據地址
#define ds1302_day_add      0x8a    //星期數據地址
#define ds1302_year_add      0x8c    //年數據地址
#define ds1302_control_add    0x8e    //控制數據地址
#define ds1302_charger_add    0x90            
#define ds1302_clkburst_add    0xbe


extern unsigned char time_buf1[8];//空年月日時分秒周
extern unsigned char time_buf[8] ;//空年月日時分秒周
/*------------------------------------------------
           向DS1302寫入一字節數據
------------------------------------------------*/
void Ds1302_Write_Byte(unsigned char addr, unsigned char d);
/*------------------------------------------------
           從DS1302讀出一字節數據
------------------------------------------------*/
unsigned char Ds1302_Read_Byte(unsigned char addr) ;
/*------------------------------------------------
           向DS1302寫入時鐘數據
------------------------------------------------*/
void Ds1302_Write_Time(void) ;
/*------------------------------------------------
           從DS1302讀出時鐘數據
------------------------------------------------*/
void Ds1302_Read_Time(void)  ;
/*------------------------------------------------
                DS1302初始化
------------------------------------------------*/
void Ds1302_Init(void);


#endif

(2)DS1302.c

#include "ds1302.h"


unsigned char time_buf1[8] = {20,9,3,13,18,51,00,6};//空年月日時分秒周
unsigned char time_buf[8] ;                         //空年月日時分秒周
/*------------------------------------------------
           向DS1302寫入一字節數據
------------------------------------------------*/
void Ds1302_Write_Byte(unsigned char addr, unsigned char d)
{


  unsigned char i;
  RST_SET;  

  //寫入目標地址:addr
  addr = addr & 0xFE;     //最低位置零
  for (i = 0; i < 8; i ++) 
      { 
    if (addr & 0x01) 
        {
      IO_SET;
      }
    else 
        {
      IO_CLR;
      }
    SCK_SET;
    SCK_CLR;
    addr = addr > > 1;
    }

  //寫入數據:d
  for (i = 0; i < 8; i ++) 
     {
    if (d & 0x01) 
        {
      IO_SET;
      }
    else 
        {
      IO_CLR;
      }
    SCK_SET;
    SCK_CLR;
    d = d > > 1;
    }
  RST_CLR;          //停止DS1302總線
}
/*------------------------------------------------
           從DS1302讀出一字節數據
------------------------------------------------*/


unsigned char Ds1302_Read_Byte(unsigned char addr) 
{


  unsigned char i;
  unsigned char temp;
  RST_SET;  


  //寫入目標地址:addr
  addr = addr | 0x01;//最低位置高
  for (i = 0; i < 8; i ++) 
      {

    if (addr & 0x01) 
       {
      IO_SET;
      }
    else 
        {
      IO_CLR;
      }
    SCK_SET;
    SCK_CLR;
    addr = addr > > 1;
    }

  //輸出數據:temp
  for (i = 0; i < 8; i ++) 
      {
    temp = temp > > 1;
    if (IO_R) 
       {
      temp |= 0x80;
      }
    else 
       {
      temp &= 0x7F;
      }
    SCK_SET;
    SCK_CLR;
    }

  RST_CLR;  //停止DS1302總線
  return temp;
}


/*------------------------------------------------
           向DS1302寫入時鐘數據
------------------------------------------------*/
void Ds1302_Write_Time(void) 
{

    unsigned char i,tmp;
  for(i=0;i< 8;i++)
      {                  //BCD處理
    tmp=time_buf1[i]/10;
    time_buf[i]=time_buf1[i]%10;
    time_buf[i]=time_buf[i]+tmp*16;
      }
  Ds1302_Write_Byte(ds1302_control_add,0x00);      //關閉寫保護 
  Ds1302_Write_Byte(ds1302_sec_add,0x80);        //暫停 
  //Ds1302_Write_Byte(ds1302_charger_add,0xa9);      //涓流充電 
  Ds1302_Write_Byte(ds1302_year_add,time_buf[1]);    //年 
  Ds1302_Write_Byte(ds1302_month_add,time_buf[2]);  //月 
  Ds1302_Write_Byte(ds1302_date_add,time_buf[3]);    //日 
  Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);    //周 
  Ds1302_Write_Byte(ds1302_hr_add,time_buf[4]);    //時 
  Ds1302_Write_Byte(ds1302_min_add,time_buf[5]);    //分
  Ds1302_Write_Byte(ds1302_sec_add,time_buf[6]);    //秒
  Ds1302_Write_Byte(ds1302_day_add,time_buf[7]);    //周 
  Ds1302_Write_Byte(ds1302_control_add,0x80);      //打開寫保護 
}


/*------------------------------------------------
           從DS1302讀出時鐘數據
------------------------------------------------*/
void Ds1302_Read_Time(void)  
{ 
         unsigned char i,tmp;
  time_buf[1]=Ds1302_Read_Byte(ds1302_year_add);    //年 
  time_buf[2]=Ds1302_Read_Byte(ds1302_month_add);    //月 
  time_buf[3]=Ds1302_Read_Byte(ds1302_date_add);    //日 
  time_buf[4]=Ds1302_Read_Byte(ds1302_hr_add);    //時 
  time_buf[5]=Ds1302_Read_Byte(ds1302_min_add);    //分 
  time_buf[6]=(Ds1302_Read_Byte(ds1302_sec_add))&0x7F;//秒 
  time_buf[7]=Ds1302_Read_Byte(ds1302_day_add);    //周 




  for(i=0;i< 8;i++)
     {           //BCD處理
    tmp=time_buf[i]/16;
    time_buf1[i]=time_buf[i]%16;
    time_buf1[i]=time_buf1[i]+tmp*10;
     }
}


/*------------------------------------------------
                DS1302初始化
------------------------------------------------*/
void Ds1302_Init(void)
{

  RST_CLR;      //RST腳置低
  SCK_CLR;      //SCK腳置低
    Ds1302_Write_Byte(ds1302_sec_add,0x00);         
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 電壓
    +關注

    關注

    45

    文章

    5598

    瀏覽量

    115704
  • 微處理器
    +關注

    關注

    11

    文章

    2258

    瀏覽量

    82405
  • 計時芯片
    +關注

    關注

    0

    文章

    6

    瀏覽量

    8691
  • DS1302芯片
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1773
收藏 人收藏

    評論

    相關推薦

    DS1302涓流充電時鐘保持芯片的原理與應用

    DS1302涓流充電時鐘保持芯片的原理與應用DS1302 是DALLAS 公司推出的涓流
    發表于 12-12 16:36

    關于ds1302的使用

    怎么使用ds1302涓流充電功能,
    發表于 01-26 14:48

    涓流充電,帶31個字節RAM,時鐘芯片GM1302,兼容DS1302,數據手冊和參考源代碼

    `涓流充電,帶31個字節RAM,時鐘芯片GM1302,兼容DS1302,數據手冊和參考源代碼`
    發表于 12-10 14:03

    DS1302基本介紹

    )模式讀/寫操作簡單說明寫入數據讀取數據涓細電流充電充電原理圖充電控制字節代碼示例寫保護開關BCD碼和十進制之間的轉換十進制轉BCDBCD轉十進制參考文獻DS1302基本介紹
    發表于 01-17 06:21

    DS1302的中文手冊

    DS1302 涓流充電計時芯片包含一個實時時鐘/日歷和 31 字節的靜態 RAM.通過簡單的串行接口與微處理器通訊.這個實時時鐘/日歷提供年
    發表于 09-28 07:52

    DS1302涓流充電時鐘保持芯片的原理與應用

    摘要:本文概括介紹了DS1302時鐘芯片的特點和基本組成,通過實例詳細說明了有關功能的應用軟件。關于DS1302各寄存器的詳細位控功能請參考DALLAS(達拉斯)公司的相應產品資料。
    發表于 07-17 23:54 ?144次下載

    DS1302涓流充電時鐘保持芯片的原理及應用

    DS1302涓流充電時鐘保持芯片的原理及應用
    發表于 01-24 17:21 ?18次下載

    關于DS1302典型應用原理圖

    DS1302是一款涓流充電時鐘芯片DS1302與單片機的連接也僅需要3條線:CE引腳、SCLK串行時鐘 引腳、I/O串行數據引腳,Vcc2
    發表于 10-18 10:43 ?3.4w次閱讀
    關于<b class='flag-5'>DS1302</b>典型應用原理圖

    ds1302是什么接口,DS1302時鐘芯片接口分析詳解

    DS1302是達拉斯公司出品的一款實時時鐘芯片。主要是針對年、月、日、周、時、分、秒進行計時,且具有閏年補償等多種功能。這篇文章主要就是說DS1302的到底是屬于什么接口的,同時分析詳
    發表于 10-19 14:34 ?1.5w次閱讀

    DS1302講解篇,DS1302全面解析

    時鐘芯片DS1302 DS1302 是DALLAS 公司推出的涓流充電時鐘芯片,內含有一個實時時
    發表于 10-19 16:49 ?4w次閱讀

    DS1302涓流充電計時實時時鐘芯片的詳細原版數據手冊免費下載

    DS1302涓流充電計時芯片包含實時時鐘/日歷和31字節的靜態RAM。它通過一個簡單的串行接口與微處理器通信。實時時鐘/日歷提供秒、分鐘、小
    發表于 09-28 15:16 ?0次下載
    <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'>芯片</b>的詳細原版數據手冊免費下載

    DS1302涓流充電計時芯片的數據手冊免費下載

    DS1302 涓流充電計時芯片包含一個實時時鐘/日歷和31 字節的靜態RAM.通過簡單的串行接口與微處理器通訊。這個實時時鐘/日歷提供年月日
    發表于 07-02 16:33 ?8次下載
    <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'>芯片</b>的數據手冊免費下載

    DS1302涓流充電計時芯片的數據手冊

    DS1302涓流充電計時芯片包含一個RTC/日歷和31個字節的靜態RAM。它通過一個簡單的串行接口與微處理器通信。RTC/日歷提供秒、分鐘、
    發表于 08-08 08:00 ?3次下載
    <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'>芯片</b>的數據手冊

    DS1302涓流充電時鐘芯片的中文資料和源代碼免費下載

    DS1302 是DALLAS 公司推出的涓流充電時鐘芯片內含有一個實時時鐘/日歷和31 字節靜態RAM可通過簡單的串行接口與單片機進行通信
    發表于 10-30 16:58 ?18次下載
    <b class='flag-5'>DS1302</b><b class='flag-5'>涓流</b><b class='flag-5'>充電</b>時鐘<b class='flag-5'>芯片</b>的中文資料和源代碼免費下載

    DS1302涓流充電計時芯片的中文數據手冊免費下載

    DS1302 涓流充電計時芯片包含一個實時時鐘/日歷和 31 字節的靜態 RAM.通過簡單的串行接口與微處理器通訊。這個實時時鐘/日歷提供年
    發表于 06-01 17:42 ?19次下載
    <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'>芯片</b>的中文數據手冊免費下載
    主站蜘蛛池模板: 精品国产成人a区在线观看| 吃寂寞寡妇的奶| 波野结衣qvod| 欧美激情性AAAAA片欧美| 99爱免费视频| 免费一级毛片在线观看| ZZoo兽2皇| 网红主播 国产精品 开放90后| 国产成人免费高清在线观看| 无套内谢大学生A片| 亚洲欧美综合在线中文| 美女被打开了屁股进去的视频 | 视频成人永久免费下载| 好吊妞在线成人免费| 扒开老师大腿猛进AAA片邪恶| 亚洲黄色大片| 美目盼兮amy198281| 办公室里做好紧好爽H| 四川老师边上网课边被啪视频| 精品久久久久久久高清| 最近免费中文字幕MV免费高清| 千禧金瓶梅 快播| 国产精品97久久AV色婷婷| 在线免费观看视频a| 欧美z000z猪| 国产 在线 亚洲 欧美 动漫| 亚洲福利区| 久久青青无码AV亚洲黑人| 99视频精品国产在线视频| 亚洲国产成人精品无码区APP| 国产v综合v亚洲欧美大片| 亚洲AV噜噜88| 久久这里只精品国产99re66| 99国产热视频在线观看| 日韩黄色软件| 国产美女影院| 诱受H嗯啊巨肉舍友1V1| 欧美zozofoot| 国产精品麻豆a啊在线观看| 一区不卡二区卡| 欧美色图天堂网|