单片机笔记之DS1302实时时钟

本文介绍了DS1302实时时钟芯片的特性,它由DALLAS公司制造,具备低功耗和闰年补偿功能。通过串行数据传输,DS1302可进行全方位时间计时。文章还详细阐述了DS1302的写字节和读字节操作,包括RST信号的作用和数据读写的时序控制。
摘要由CSDN通过智能技术生成

DS1302概念:

DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片,DS1302的在实时显示时间中的应用。它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。

DS1302原理图:

写字节:


第一个字节是地址字节,第二个字节是数据字节。RST信号必须拉高,否则数据的输入是无效的。换一句话说,RST信号控制数据|时间信号输入的开始和结束。地址字节和数据字节的读取时上升沿有效,而且是由LSB开始读入。

读字节:


读一个字节和写一个字节有明显的不一样,先是写地址字节,然后再读数据字节,写地址字节时上升沿有效,而读数据字节时下降沿有效,当然前提是RST信号必须拉高。写地址字节和读数据字节同是从最低位(即第0位)开始。


程序实现:

<ol><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">#include<reg51.h></span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">#include<intrins.h></span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">#define uchar unsigned char</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">#define uint unsigned int</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">sbit IO=P3^4;      //数据输入输出线</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">sbit RST=P3^5;  //复位信号线</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">sbit SCLK=P3^6;   //时钟信号线</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">uchar code write_addr[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};   //写的地址</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">uchar code read_addr[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};   //读的地址</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">//---存储顺序是秒分时日月周年,存储格式是用BCD码---//</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">uchar time[7]={0,0,0x03,0x12,0x01,0x20,0x16};  //初始化的时间为2016年01月3日12:00</span></li><li>
</li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">/*********DS1302初始化**************/</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">void ds1302_init()</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">{</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;">   uchar k;</span></li><li><span style="font-family: Arial, Helvetica, sans-serif; font-size: 1
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值