DS1302 时钟电路

时钟电路
1 应用:
1.1 需要显示时钟及日期或实现时钟控制的电子设备。
1.2 本电路在HGT2110、HGT3101、HDM2100、HDM3200中成功应用。
2 特性:
2.1 年、月、日、时、分、秒、星期的实时走时;
2.2 可设置为12小时制或24小时制走时;
2.3 日历时钟数据可读写,可启动写保护;
2.4 可接入3V电池,断电后由电池供电走时,电池供电通常可持续一年以上;
2.5 可对电池设置充电参数。
3 核心部件:
3.1 DS1302,DIP8 或 SOP8封装(推荐)。
4 外围关键元件:
4.1 32768Hz晶体振荡器;
4.2 3V电池。
5 设计注意事项:
5.1 晶体振荡器必须采用32768Hz,其引脚不得接入其它元件;
5.2 晶振引脚具有高阻抗特性, 印制板漏电会导致停振。设计时引脚应尽量短,远离周边元件或导线,并应大于2mm;
5.3 此器件对潮湿、低温敏感,推荐线路进行防潮处理;
5.4 不推荐使用大容量电容替代电池,电容引脚易与其它线路板接通造成其它线路板元件损坏。
6 软件设计要点:
6.1 上电初始化必须设置为充电;
6.2 上电后对秒进行操作,可避免时钟锁定;东安黑豹
6.3 非写入数据操作后启动写保护;
7 原理图:
7.1 见DS1302.Ddb文件;
8 引脚说明或时序图:
8.1 见DS1302.pdf文件;
9 主要指标:
10 C语言例程:
10.1 本例在HDM3200消防电话总机中应用,CPU为ATmega32L ,工作频率为4MHz。
//************************************************************************//
//                        日历时钟DS1302公用变量说明我国减灾工作的主要目标是                    //
//  --------------------------------------------------------------------  //
//    uchar cale[7] 下标对应  0    1    2  3    4      5    6          //
//                          year month day hour minute second week        //
//                                          星期        //
//    write_cale(why) cale[]中指定的日期或时间写入dallas            //
//    get_cale(why);  获得由why指定的日期或时钟,并且赋值给cale[why]    //
//    why--指定年、周、月、日、时、分、秒中的一个, why可取year        //
伊格尔顿//    monthdayhourminutesecondweek                        //
//************************************************************************//
//  --------------------------------------------------------------------  //
//                                充电设置                                //
//  --------------------------------------------------------------------  //
//    使用bttay_charger(uchar charge_set)函数,其中                      //
//        charge_set: 0--不充电  4.3V        0mA          0mA          //
//                    1--2K充电  4.3V      1.8mA        1.5mA        //
//                    2--4K充电  4.3V      0.9mA        0.8mA        //
//                    3--8K充电  4.3V      0.45mA        0.4mA        //
//        默认使用1只二极管    建议使用4K电阻(0.9mA)                    //
//  --------------------------------------------------------------------  //
//************************************************************************//
//DS1302时钟端口定义(以下端口可根据实际使用改变)-------------------------//
#define SET_DS_RST      SETBIT(PORTD,1)  //ret=1
#define CLK_DS_RST      CLRBIT(PORTD,1)  //ret=0
#define SET_DS_SCL      SETBIT(PORTB,7)  //scl=1
#define CLK_DS_SCL      CLRBIT(PORTB,7)  //scl=0
#define SET_DS_DAT      SETBIT(PORTB,2)  //data=1
#define CLK_DS_DAT      CLRBIT(PORTB,2)  //data=0
#define IN_DS_DAT      CLRBIT(DDRB,2)    //data port is input
#define OUT_DS_DAT      SETBIT(DDRB,2)    //data port is output
#define CHK_DS_DAT      CHKBIT(PINB,2)    //get data
#define dec_dallas(x)  ((x/10)*16+x%10)  //10进制数转换为dallas
#define dallas_dec(x)  ((x/16)*10+x%16)  //dallas数转换为10进制数
//日历时钟全局变量定义---------------------------------------------------//
unsigned char cale[7];                    //日期缓存数据,下标用以下宏表示
#define year  0                          //
#define month  1                          //
#define day    2                          //
#define hour  3                          //
#define minute 4                          //
#define second 5                          //
#define week  6                          //星期
//**********************************************************//
于娟的忠告//                  DS1302日历时钟电路程序                  //
//  ------------------------------------------------------  //
//    涓流充电:read_dallas(0x91)  write_dallas(0x90)      //
零售商品称重计量监督管理办法//        控制:read_dallas(0x8f)  write_dallas(0x8e)      //
//          年:read_dallas(0x8d)  write_dallas(0x8c)      //
集韵//          周:read_dallas(0x8B)  write_dallas(0x8a)      //
//          月:read_dallas(0x89)  write_dallas(0x88)      //
//          日:read_dallas(0x87)  write_dallas(0x86)      //
//          时:read_dallas(0x85)  write_dallas(0x84)      //
//          分:read_dallas(0x83)  write_dallas(0x82)      //
//          秒:read_dallas(0x81)  write_dallas(0x80)      //
//  -----------------------------------------------------  //
//              内有31字节RAM 存储器,掉电失去:          //
//              write_dallas(0xc0 - 0xfc) 偶数写            //
//              read_dallas(0xc1 - 0xfd) 奇数读            //
//**********************************************************//

本文发布于:2024-09-25 02:29:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/178484.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:时钟   电池   引脚
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议