单片机,DS1302时钟芯片读写的问题。。。。。。。。。

DS1302,读字节数据的时候SCLK下降沿读取一个字节数据但是为什么底层函数是这样的呢?实物做出来没问题函数名称:DS1302_ReadOneByte(void)入口参... DS1302,读字节数据的时候 SCLK下降沿读取一个字节数据 但是为什么底层函数是这样的呢?实物做出来没问题
函数名称:DS1302_ReadOneByte(void)
入口参数:void
出口参数:unsigned char ReadDate
函数功能:从DS1302中读取一个字节数据
****************************************************************************/
unsigned char DS1302_ReadOneByte(void)
{
unsigned char Number;
unsigned char ReadDate = 0;
for(Number=0;Number<8;Number++) //8位计数器
{
DS1302_ResetSCLK(); //DS1302时钟线拉低
_nop_();_nop_(); //延时等待
ReadDate >>= 1; //数据右移一位
if(DS1302_ReadPinIO()) //判断数据是否为高电平
{
ReadDate |= 0x80; //读取一位数据逻辑‘1’
} //否则默认为低电平逻辑‘0’
DS1302_SetSCLK(); //DS1302时钟线拉高
_nop_();_nop_(); //延时等待
}
return ReadDate; //返回读取的字节
}

但是看不懂 下降沿读取字节 为什么程序是上升沿读取字节 难道是先写指令 给最高位1后,读取字节数据?
你说得很多,接的P1口,拉了上拉电阻,默认就是高电平了。这个问题懂了。还有一个问题。为什么取出来的位
展开
 我来答
jolen6474
2013-05-17 · TA获得超过221个赞
知道小有建树答主
回答量:319
采纳率:100%
帮助的人:150万
展开全部
这就是下降沿 读取的啊

你看 sclk 的上升沿和下降沿 挨不挨着

文中 是这样循环的 低电平 读取数据 高电平 低电平 读取数据 高电平 低电平 读取数据 高电平 低电平 读取数据

看出规律没

最开始还少了 一个 高电平 要么 总线静默时 sclk 是高电平 要么 就是别的地方 有个标志位 拉高了sclk

()你没理解我意思 你看看串口通信那章 另外 你补充问题 没写全
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式