这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » STM32 » 51单片机DS1302时钟

共4条 1/1 1 跳转至

51单片机DS1302时钟

菜鸟
2013-11-24 19:59:30     打赏
最近在学51,关于DS1302的时序问题,一般读一字节数据是这种unsigned char output(void)
{
unsigned char i,dat=0;
for(i=8;i>0;i--)
{
dat>>=1;
if(DS1302_IO)dat|=0x80;
CLK=1;
CLK=0;
}
return (dat);
}
但是我有一直疑问:这一个字节数据到底是怎么样的过程被读出??if(DS1302_IO)dat|=0x80;这句话不是把所有的位都置1了吗??求大神能仔细帮我剖析这段代码,谢谢了

菜鸟
2013-11-27 12:44:30     打赏
2楼
@啸风  谢谢关注!根据你的回复我又有了新的疑问,我觉得数据是一位一位传过来的,那 if(DS1302_IO)   dat|=0x80     能不能改成 if(DS1302_IO)   dat=(bit) 1  呢?  还有,怎么抓dat  的波形呢?读DS1302的IO引脚?但是我怎么判断什么时候是往外读的数据,就是怎么锁定DS1302 IO的输出?

菜鸟
2013-11-27 12:46:03     打赏
3楼
@啸风 谢谢关注!根据你的回复我又有了新的疑问,我觉得数据是一位一位传过来的,那 if(DS1302_IO) dat|=0x80 能不能改成 if(DS1302_IO) dat=(bit) 1 呢? 还有,怎么抓dat 的波形呢?读DS1302的IO引脚?但是我怎么判断什么时候是往外读的数据,就是怎么锁定DS1302 IO的输出?

菜鸟
2013-11-27 12:47:10     打赏
4楼
谢谢关注!OK,以后会注意

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]