请问DS1302芯片中的读数据的时序图

leetow2006 2019-11-30 11:04:14
我在看读数据时,它是先写地址,然后在读数据,
它的SLK写的时候的是上升沿的,读的时候是下降沿的,
可是我在程序时,代码都是SCK先高电平,然后再低电平,
但是程序是可以运行的,请看(我只显示读数据的):
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;
}
请问为什么这样也可以呢?感觉和时序图不一样?
...全文
144 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yishumei 2019-12-01
  • 打赏
  • 举报
回复
SCK_SET; SCK_CLR; 先产生一个上升沿再产生一个下降沿,只要数据在此之前就绪,都会成功传送的。
基于DS1302电子时钟的设计 【摘 要】针对电子时钟芯片DS1302的工作原理,本文对基于DS1302的电子时钟系统进行了硬 件和软件的设计。仿真结果表明,该设计的电子时钟电路简单,能完整地显示日期、星 期和时间,实用性较强。 【关键词】DS1302 ;AT89C51;时钟系统 The Design of Electronic Clock Based on DS1302 FENG Da-jie (Automation Department, Hainan Normal University, Haikou Hainan, 571158) 【Abstract】According to the working principle of electronic clock chip DS1302, this paper has designed electronic clock system both in hardware and software. The result of simulation demonstrates that electronic clock system designed is of simple structure and can display date, week and time, and therefore the system is more practical. 【Key words】DS1302; AT89C51; Clock system 在很多单片机系统都要求带有实时时钟电路,如数据记录仪表、数字钟。本论文介 绍了利用时钟芯片DS1302来制作电子时钟。利用时钟芯片DS1302制作的电子时钟最大的 优点是精度高,能完整的提供秒、分、时、日、星期、月、年的信息,并且每个月的天 数和闰年的天数可自动调整。 1 电子时钟系统硬件电路设计 DS1302电子时钟电路如图1所示,该系统主要由AT89C51单片机、时钟芯片DS1302及液 晶显示器1602 三大部分组成。在此系统DS1302是美国DALLAS公司推出的一种高性能,低功耗的实 时时钟芯片。系统的工作原理是单片机通过读取DS1302寄存器的数据,然后将数据显示 在1602液晶显示器上。 DS1302时钟芯片简介 DS1302是DALLAS公司堆出的涓流充电时钟芯片,可以通过串行接口与单片机进行通信 。DS1302与单片机之间的通信,仅需三根I/O线:复位(RET)、I/O数据线、串行时钟( SCLK),DS1302外部引脚如图2所示。 2 电子时钟系统软件设计 在软件设计方面,采用C 语言编写DS1302初始化、读写时序, LCD1602初始化及LCD1602显示子程序,软件流程图如图3所示。 2.1 DS1302 读写时序 在DS1302时钟芯片与单片机的通信过程,一个时钟周期是一个上升沿序列,紧跟着 一个下降沿。对于数据的输入,在时钟周期的上升沿期间,数据必须正确;在时钟周期 的下降沿,数据位输出。如果RST的输入低电平,所有数据传输止,I/O引脚变成高阻 状态,DS1302读写时序如图4所示。 采用英国Labcenter electronics 开发的Proteus 软件对该电子时钟系统进行仿真,仿真效果如图5所示,从DS1302读出的数据通过LCD 1602显示出来,显示器的第一行显示日期和星期,第二行显示时间。仿真结果表明,该 电子时钟系统具有电路结构简单,能显示出日期、星期和时间。 【参考文献】 [1]刘坤,宋弋,赵红波,等.51 单片机C 语言应用开发技术大全[M].北京:人民邮电出版社,2008. [2]王明顺,吴省.可涓流充电的串行实时时钟芯片DS1302 及其应用设计[J]. 电子技术应用,1996,10. [3]何立民. 单片机应用系统设计[M]. 北京:北京航空航天大学出版社,1990:133-189. ----------------------- 基于DS1302电子时钟的设计(1)全文共2页,当前为第1页。 基于DS1302电子时钟的设计(1)全文共2页,当前为第2页。
第一讲:开发板和软件的操作使用 1、 介绍配件。 2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。 3、 着重介绍一下USB接口的仿真器。 第二讲:AVR单片机的概述和C语言的基础知识 1、 AVR单片机的概述包括它的优点、片上资源。 2、 C语言的基础包括电平特性、2进制与16进制的表示及转换、二进制数的逻辑运算,数据类型,运算符。 3、 着重讲一下特有的BIT()操作,C的各种语句。 4、 介绍一下AVR单片机IO口的配置。 第三讲:点亮发光二极管、驱动蜂鸣器、继电器 1、首先讲解一下原理图上开关电路、复位电路、时钟电路; 2、讲解573工作原理, 3、首先点亮一个发光二极管,然后让一个二极管亮灭变化。 4、编写函数证明573的工作原理:锁住后不导通就不能再更新数据。 5、编写延时函数,软件仿真查看延时的精确时间 6、子函数的编写(分带形参和不带形参)。 7、编写流水灯函数。 8、蜂鸣器,继电器的工作原理并编写程序。 第四讲:数码管工作原理 1、 共阴共阳数码管内部结构,显示原理。 2、 用数字万用表标定数码管的段选和位选 3、 编写程序使1个数码管上显示数字 4、 编写程序在6个数码管上滚动显示数字 5、 重点讲解动态显示,保持时间,以及扫描频率对闪烁和亮暗程度的影响。 第五讲:键盘检测原理(比较复杂) 1、 键盘作用,检测原理,如何消抖,独立键盘检测程序编写。 2、 矩阵键盘检测程序编写,涉及到返回值函数调用。 第六讲:1602液晶的使用 1、 看手册,管脚、写指令和数据、时序图。 2、 编写程序,显示光标 3、 编写程序显示字, 4、 编写程序,滚动显示字符 第七讲:断、定时器的原理和应用(比较复杂) 1、 断的概念,AVR单片机的断 2、 定时/计数器1几种模式的寄存器配置 3、 定时器1普通模式下实现秒表 4、 CTC模式输出方波 5、 快速PWM模式输出PWM信号 6、 相位修正PWM模式输出PWM信号 第八讲:AD、DA简介及其应用 1、 AD简介,AVR内部AD寄存器设置 2、 编写程序控制AD读写电位器输出的模拟电压 3、 SPI串行通信简介 4、 DA简介,AD5300时序图 5、 编写程序控制DA输出模拟电压使发光二极管亮度变化 第九讲:TWI(IIC) 1、 TWI(IIC)协议简介 2、 AVR单片机内部TWI寄存器简介,操作流程 3、 具有IIC协议的数字电位器芯片AD5161的简介 4、 编写程序用独立键盘控制AD5161输出不同的阻值 第十讲:异步串口UART的简介和程序的编写 1、 UART简介 2、 AVR单片机内部与UART相关的寄存器的配置 3、 编写程序控制AVR单片机和电脑进行通信 4、 讲解串行通信时数字和字符之间的区别 第十一讲:PS2键盘、DS1302的工作原理和程序的编写 1、 AVR单片机外部断的介绍 2、 PS2键盘的工作原理 3、 编写程序读取PS2键盘的按键值并在1602液晶上显示 4、 DS1302的工作原理 5、 编写程序控制1302工作并在1602液晶上显示时间

27,377

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧