ds1302

驱动程序照着时序图写或上网找(下面也有的下),这里不说了

需对DS1302进行的操作

①关保护:通过8eH将写保护去掉,这样我们才能将日期,时间的初值写时各个寄存器。

②赋初值:对80H、82H、84H、86H、88H、8AH、8CH进行初值的写入。同时也通过秒寄存器将位7的CH值改成0,这样DS1302就开始走时运行了。

③开保护:将写保护寄存器再写为80H,防止误改写寄存器的值

④读数值:不断读取80H-8CH的值,将它们格式化后显示出来。

<pre name="code" class="html"><pre name="code" class="cpp"><pre name="code" class="objc">uchar write_addr[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};
uchar write_data[]={0x00,0x00,0x20,0x16,0x06,0x04,0x16}	;
uchar read_addr[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d} ;
uchar read_data[7]={0,0,0,0,0,0,0};
void set_time()
{
uchar write_addr[]={0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};
uchar write_data[]={0x00,0x00,0x20,0x16,0x06,0x04,0x16}	;
uchar read_addr[]={0x81,0x83,0x85,0x87,0x89,0x8b,0x8d} ;
uchar read_data[7]={0,0,0,0,0,0,0};
void set_time()
{
    uchar i;
    Ds1302_Single_Byte_Write(0x8e,0x00);//关保护
	for(i=0;i<7;i++)
	{
	    Ds1302_Single_Byte_Write(write_addr[i],write_data[i]);//写初值
	}
	Ds1302_Single_Byte_Write(0x8e,0x80);//开保护}
void read_time()
{
    uchar i;
	for(i=0;i<7;i++)
	{
	    read_data[i]=Ds1302_Single_Byte_Read(read_addr[i]);//读取
	}
} <span style="font-family: 宋体, Arial;">                                              </span><span style="font-family: 宋体, Arial;">							</span><span style="font-family: 宋体, Arial;">    </span>



关于驱动的一点问题

/单字节读出一字节数据*/
unsigned char Read_Ds1302_Byte(void)
{
	unsigned char i, dat=0;
	for (i=0;i<8;i++)
	{
		dat = dat >> 1;
		if (SDA_R) 	  //if(SDA_R==1)    #define SDA_R SDA /*电平读取*/
		{
			dat |= 0x80;
		}
		else
		{
			dat &= 0x7F;
		}
		SCK_SET;//时钟置高
		SCK_CLR;//时钟置低
	} SDA_CLR;//!!!!!!!!!!!!!!!!!!!!!!!!这里有时候不打会显示问号,最好还是把这个数据线拉低
	return dat;
}

另外,碰巧搜到的关于调试1302的文章  分享下点击打开链接

参考资料:点击打开链接

代码:点击打开链接

时间: 2024-10-10 10:32:57

ds1302的相关文章

(16)给树莓派B+ 安装一个实时时钟芯片DS1302

在这里首先感谢glgoo在google被墙的情况下提供搜索功能,还要感谢 http://wiringpi.com/ 以及github,尽管自己眼瞎,几经波折还是发现了尘封已久的少林"七十二绝技",没错,每种绝技都能克制一个树莓派GPIO控制外设的问题,七十二绝技的核心就是wiringpi这个为Pi GPIO写的C语言库了,而每种绝技则暗藏在wiringPi/examples/目录下,这里就不一一罗列了,大家想学什么招式,就去看每个example,都非常简短. 其实早在第9篇文章&quo

移植DS1302到CC3200

首先,DS1302数据读写时序如下图: 51单片机上的程序见附件,将其移植到CC3200上需要做的工作: 1.选择合适的GPIO作为SCLK.I/0.RST,本人选用PIN_50:SCLK(7脚).PIN_59:I/O(6脚).PIN_15:RST(5脚),配置相关引脚,定义引脚操作,如下所示: //RST脚  PIN_15 #define   RST_OUT  MAP_GPIODirModeSet(GPIOA2_BASE, 0x40, GPIO_DIR_MODE_OUT)//SET RST O

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十三:DS1302模块

实验二十三:DS1302模块 DS1302这只硬件虽然曾在<建模篇>介绍过,所以重复的内容请怒笔者懒惰唠叨了,笔者尽可以一笑带过,废话少说让我们进入正题吧.DS1302是执行事实时钟(Real Time Clock)的硬件,采用SPI传输. 表示23.1 访问(地址)字节. [7] [6] [5] [4] [3] [2] [1] [0] 1 A5 A4 A3 A2 A1 A0 R/W DS1302作为从机任由主机蹂躏 ... 啊,是任由主机访问才对.对此,访问便有方向之分.如表23.1所示,访

关于在Arduino中调用DS1302模块

DS1302时钟模块中的电池是起掉电保存作用的,在实际运行中必须给他的GND和VCC供电,否则得到的是错误的时间. 也就是说,电池是保存日期的,而无法提供芯片正常运行所需的电力. 从芯片引脚上可以看出,VCC1,VCC2,一个保存日期(VCC1),另外一个接到arduino上(VCC2),用于正常运行.

单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》

引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准.具有走时精确,功耗低,显示直观,调整简单方便等优点. 功能描述 基本显示: 第一行为日期,依次为:年-月-日-星期 第二行为时间,依次为:时:分:秒 说明: 每月的天数,闰年的天数可自动调整 蓝牙校准日期: 命令d+年月日星期+#,如设置2016年12月8日星期四,手机发送命令:d16120804

电子时钟万年历+51单片机+1602液晶屏+DS1302+DS18B20+按键

这次课程设计要完成的是制作一个基于51单片机的电子时钟的万年历(protues仿真),需要用到1602液晶屏+DS1302+DS18B20+按键等模块.各个的模块就不在一一介绍,直接讲解这个系统的功能,首先是四个按键,第一个按键是选中需要修改时间位置,在按一次选中下一个,依次类推,第二个按键是对数值进行加一,第三个按键对数值进行减一,第四个按键确认. 先放仿真图 然后是代码: main.c #include <REG52.H> #include <intrins.h> #defin

Arduino和C51开发DS1302时钟

技术:51单片机.Arduino.DS1302时钟.串口通信 概述 本文实现51单片机和Arduino串口实时显示时钟功能,让读者对DS1302能够更好的理解,这次功能也和上节课学到的串口通信运用在一起 详细 代码下载:http://www.demodashi.com/demo/14706.html 一.DS1302时钟 DS1302 是美国DALLAS公司推出的一种高性能.低功耗.带RAM的实时时钟电路,它可以对年.月.日.周.时.分.秒进行计时,具有闰年补偿功能,工作电压为2.0V-5.5V

玩转 RTC时钟库 DS1302

1.前言 ????最近博主在弄8266编程的时候,偶然发现两个全新时钟模块压仓货: DS1302 DS3231 ????为了避免资源浪费以及重复编写代码,博主还是抱着尝试的心态去寻找能够同时兼容 DS1302.DS3231甚至其他的时钟模块的第三方库.终于,还是被我找到了 -- Rtc 时钟库. 2.RTC 2.1 简介 Arduino Real Time Clock library(Arduino平台的实时时钟库) 支持DS1302.DS1307.DS3231.DS3234 英文文档参考 wi

时钟+温度+遥控设置,综合时钟例子

时钟+温度+遥控设置,综合时钟例子6月30日到手的二手单片机开发板,今天做个综合的时钟例子,包含代码和仿真.做个近期的学习总结. 按独立键盘K1和红外遥控的EQ为设置键.按独立键盘K2和红外遥控的VOL+为加键.按独立键盘K3和红外遥控的VOL-为减键. 手摸温度传感器,当温度超过 34℃ 的时候点亮LED灯,模拟启动的设备. 程序有很多细节没有优化,主要是学习,lcd1602显示,独立建扫描,红外遥控,ds1302时钟芯片,ds18b20温度传感器. 实时时钟综合应用,源代码和仿真下载http