ds1302 电路_ds3231中文资料

ds1302 电路_ds3231中文资料DS1302实时时钟(九)目录一、DS1302介绍二、DS1302原理图详解1、引脚定义和应用电路2、内部结构框图3、时序图4、BCD码三、DS1302时钟1、编写程序2、实物展示四、DS1302可调时钟1、编写程序2、实物展示一、DS1302介绍DS1302是由美国DAL

DS1302实时时钟(九)   目录   一、DS1302介绍   二、DS1302原理图详解   1、引脚定义和应用电路   2、内部结构框图   3、时序图   4、BCD码   三、DS1302时钟   1、编写程序   2、实物展示   四、DS1302可调时钟   1、编写程序   2、实物展示   一、DS1302介绍   DS1302是由美国DALLAS公司推出的具有涓细电流(很微小的电流)充电能力的低功耗实时时钟芯片。   它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿等多种功能。   RTC(Real Time Clock):实时时钟,是一种集成电路,通常称为时钟芯片。   
ds1302 电路_ds3231中文资料                           
ds1302 电路_ds3231中文资料   DS1302相比单片机定时器计时的优点   (1)DS1302的精度更高;   (2)单片机定时器计时会占用CPU的时间;   (3)断电后,单片机定时器计时就会停止,而DS1302有备用电池,及时断电后,DS1302仍然可以工作。(89C52RC电路板上没有接备用电池)   二、DS1302原理图详解   
ds1302 电路_ds3231中文资料   1、引脚定义和应用电路   
ds1302 电路_ds3231中文资料   这里VCC1没有接备用电源,因此断电后,DS1302会停止工作。   2、内部结构框图   
ds1302 电路_ds3231中文资料   右上角X1和X2接的是外部晶振,通过内部电路计算之后,就会得到标准的1Hz计时频率。   CE为高电平,I/O和SCLK的操作才有效,低电平时,则无效;   I/O引脚读入数据,SCLK为串行时钟,每来一个上升沿时,就会写入一个数据到时钟,每来一个下降沿,就会读取时钟芯片的数据一次。   晶振电路下面实时时钟部分,就是内部存放时间的寄存器,下图为寄存器内部部分结构:   
ds1302 电路_ds3231中文资料   Address/Command Byte(地址/命令字节):用来完成写入数据和读数据操作   第7位:固定为1;   第6位:如果是1,就是操作RAM,如果是0,就是操作
ds1302 电路_ds3231中文资料(时钟);   第5~1位:   为0 0 0 0 0,则是对秒(Seconds)进行操作,范围0~59;   其中Bit 7  CH=1,则时钟秒停止,CH=0,时钟秒继续工作。   如果是要写秒进入寄存器,就是1000 0000,转换成十六进制就是80H;   如果是读秒数据,就是1000 0001,转换成十六进制就是81H,与上面图像对应。   为0 0 0 0 1,则是对分(Minutes)进行操作,范围0~59。   为0 0 0 1 0,则是对小时(Hour)进行操作,范围1~12或0~23;   Bit 7 =0,设置24小时模式;Bit 7 =1,设置12小时模式;   Bit 5 =0,表示AM(上午),Bit 5 =1,表示PM(下午)。   为0 0 0 1 1,则是对天(Date)进行操作,范围1~31。   为0 0 1 0 0,则是对月(Month)进行操作,范围1~12。   为0 0 1 0 1,则是对星期(Day)进行操作,范围1~7。   为0 0 1 1 0,则是对年(Year)进行操作,范围00~99。   为0 0 1 1 1,WP是写入保护,WP=0时,取消写保护。   第0位:如果是1,就是读数据;是0,就是写入数据。   3、时序图   
ds1302 电路_ds3231中文资料   CE一直要保持高电平,读写完数据后,置0;   如果地址/命令字节最后一位是1,就是读数据,在写入地址/命令字节后,每隔一个SCLK的下降沿,就会读出时钟芯片的数据一次。   如果地址/命令字节最后一位是0,就是写入数据,在写入地址/命令字节后,每隔一个SCLK的上升沿,I/O的数据就会被写入一次。   4、BCD码   BCD码是指用4位二进制数来表示1位十进制数。   如:0001 0011 表示13,1000 0101表示85,0001 1010不合法。   
ds1302 电路_ds3231中文资料   在LCD1602液晶显示器中,LCD_ShowNum()是显示十进制数的,如果用来显示时钟,   在0000 1001(9)后,会变成0001 0000(16),而不是数字10,这是因为DS1302寄存器中的时钟是以BCD码的形式存储的。   如果是用LCD_ShowHexNum()显示十六进制,那么在0000 1001(0x09)后,变成0001 0000(0x10)就是正确的。   BCD码在十六进制中的体现:0x13表示0001 0011(19),0x85表示1000 0101(133),0x1A不合法。   两位BCD码转十进制:DEC=BCD/16*10(表示十位)+BCD%16(表示个位);   如BCD码0001 0011转化成十进制:(0001 0011)/16=1(取十位),1*10=10,   (0001 0011)%16=3(取个位)。   十进制转两位BCD码:BCD=DEC/10*16(表示十位)+DEC%10(表示个位)。   如十进制13转化成BCD码:13/10=1(取十位),1*16=16=0001 0000,   13%10=3=0011,所以转化成BCD码为0001 0011。   三、DS1302时钟   1、编写程序   主函数   DS1302模块   LCD1602模块之前有写过,这里省略。   2、实物展示   DS1302时钟   四、DS1302可调时钟   1、编写程序   主函数   其他模块都有写过,就不重复添加了。   2、实物展示   DS1302设置时钟

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/72785.html

(0)
上一篇 2024年 8月 6日
下一篇 2024年 8月 6日

相关推荐

关注微信