[疑难问答] 向DS1302写入一个字节

[复制链接]
3689|16
 楼主| jimoxinl 发表于 2010-6-17 22:07 | 显示全部楼层 |阅读模式
过程没搞清楚,现贴出部分程序
sbit DS1302_data=0xa1;
sbit DS1302_clk=0xa0;
void DS1302_write(unsigned char DS1302_temp)
{
unsigned char i,temp;
long_delay();
temp=DS1302_temp;
for(i=0;i<8;i++)
   {
    DS1302_data=temp&0x01;
    delay();
     DS1302_clk=1;
    delay();
     DS1302_clk=0;
    temp=temp>>1;

    }
}
哪位帮忙解释下
 楼主| jimoxinl 发表于 2010-6-17 22:08 | 显示全部楼层
为什么要加进来这些
delay();
DS1302_clk=1;
delay();
DS1302_clk=0;
guita 发表于 2010-6-17 22:19 | 显示全部楼层
应该是一些控制字吧
 楼主| jimoxinl 发表于 2010-6-18 12:19 | 显示全部楼层
3# guita
控制字传给DS1302_temp就行了,我问的是这个程序的思路
 楼主| jimoxinl 发表于 2010-6-18 12:21 | 显示全部楼层
我不明白的是DS1302_data这里代表的是什么,变量还是一个常量?
john_light 发表于 2010-6-18 12:28 | 显示全部楼层
看这个程序,硬件上DS1302的SDA线连接到P2.1,SCL连接到P2.0线,楼主你想问什么?
rensilver 发表于 2010-6-19 14:58 | 显示全部楼层
void DS1302_write(unsigned char DS1302_temp)
{
unsigned char i,temp;
DS1302_clk=0;
temp=DS1302_temp;
for(i=8;i》0;i--)
   {
    DS1302_data=temp;
   
     DS1302_clk=1;
   
     DS1302_clk=0;
    temp=temp>>1;

    }
}
试试这个
qfengbj 发表于 2010-6-19 22:12 | 显示全部楼层
7楼给这个那个有什么高明之处吗?
 楼主| jimoxinl 发表于 2010-6-20 13:33 | 显示全部楼层
SDA线,SCL分别是什么呢?
 楼主| jimoxinl 发表于 2010-6-20 13:35 | 显示全部楼层
我觉得应该这么写才合乎逻辑
sbit DS1302_clk=P2^0;
可是这里为什么是
sbit DS1302_clk=0xa0;
0xa0是某个管脚的地址么?糊涂中
 楼主| jimoxinl 发表于 2010-6-20 13:36 | 显示全部楼层
另外,请回帖的时候看仔细点,不要总是说得牛头不对马嘴
wuzhaolie 发表于 2010-6-21 11:15 | 显示全部楼层
我觉得sbit DS1302_clk=P2^0;这样的语句挺合理的,也见过别人这么写
laslison 发表于 2010-6-21 11:21 | 显示全部楼层
ds1302时钟程序详解,ds1302程序流程图
http://www.**/article/88/131/app/2009/2009051760512.html
这个和楼主的想法基本一致,还有电路图,会帮助你理解
 楼主| jimoxinl 发表于 2010-6-21 13:20 | 显示全部楼层
经过仔细看他的时序,感觉
delay();
DS1302_clk=1;
delay();
DS1302_clk=0;
这个问题已经弄明白了,开心!
qfengbj 发表于 2010-6-22 23:15 | 显示全部楼层
恭喜楼主解决了问题
熊猫吐烟圈 发表于 2010-6-23 12:51 | 显示全部楼层
按姓名查找同时把5表中相关数据写入1表,完成相关数据显示,如果下方输入意见,把相关意见及个人信息写入6表中。
婕迷云潇潇 发表于 2010-6-23 12:54 | 显示全部楼层
按姓名查找同时把5表中相关数据写入1表,完成相关数据显示,如果下方输入意见,把相关意见及个人信息写入6表中。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

97

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部