打印

我无奈了,朋友帮忙下DS1302的程序

[复制链接]
3266|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanye1127|  楼主 | 2008-5-23 20:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写DS1302时钟的程序,怎么都读不出来 !
这个是我的读写一体的时序程序,帮忙看看!
unsigned char TimeSpiReadWrite(unsigned char val)
{
unsigned char i;
bit b;
unsigned char temp;
  ACC = val;//取8位数据
  for (i = 8;i > 0; i--)
  {
      temp=0x00;
    TIMECLK = 0;//时钟下降沿读入数据(DS1302读)
    _nop_();//延时
    CY = TIMEIO;//接收串行数据到CY
    b=ACC&0x01;//右移一位数据到CY(先存后取)
    ACC>>=1;
    temp|=CY;
    temp<<=7;
    ACC|=temp;
    TIMEIO = b;//发送串行数据
    TIMECLK = 1;//时钟上升沿写入数据(DS1302写)
    _nop_();
    _nop_();
  }
  val = ACC;
  return val;
}

相关帖子

沙发
yuanye1127|  楼主 | 2008-5-23 21:03 | 只看该作者

还有一个问题

ds1302内部的寄存器和ram空间,我在读取数据的时候,读取秒的时候,是读寄存器还是ram。
我读的是寄存器 读的地址是秒是0x81,但是读出来的数据是空的!
是不是我程序的时序问题

使用特权

评论回复
板凳
yuanye1127|  楼主 | 2008-5-23 21:11 | 只看该作者

有朋友有源程序吗?c51的!

可以给我传下吗? yuanye1127@163.com

使用特权

评论回复
地板
yuanye1127|  楼主 | 2008-5-23 21:15 | 只看该作者

有没有人帮下忙啊!

使用特权

评论回复
5
涛行九天| | 2008-5-23 22:12 | 只看该作者

请兄弟看下下面的连接,有我写的1302代码,是好的

http://www.study-bbs.com/dispbbs.asp?boardID=2&ID=16233&page=1

使用特权

评论回复
6
computer00| | 2008-5-23 22:18 | 只看该作者

我也刚好写了一个,哈哈~~~看看吧,在time.c文件里

有时间调节和设置等功能,还有闹钟功能,哈哈~~~


相关链接:http://blog.**/computer00/117368/message.aspx

使用特权

评论回复
7
hotpower| | 2008-5-23 22:44 | 只看该作者

哈哈~~~链接要写好,方便群众,资料蛮多的~~~

使用特权

评论回复
8
hotpower| | 2008-5-23 22:51 | 只看该作者

一看程序的框架是咱村里的,不过是瞎抄一通---晕!!!

你那个temp瞎搞什么???


unsigned char TimeSpiReadWrite(unsigned char val)
{
unsigned char i;
  ACC = val;//取8位数据
  for (i = 8;i > 0; i--)
  {
    TIMECLK = 0;//时钟下降沿输入数据(DS1302读)
    _nop_();//延时
    CY = TIMEIO;//接收串行数据到CY
    _rrca_();//右移一位数据到CY(先存后取)
    TIMEIO = CY;//发送串行数据
    TIMECLK = 1;//时钟上升沿打入数据(DS1302写)
    TIMEIO  = 1;//释放数据总线
  }
  val = ACC;
  return val;
}

相关链接:http://blog.**/hotpower/11898/message.aspx

使用特权

评论回复
9
_crystal_| | 2008-5-24 08:24 | 只看该作者

这是我以前做的程序,经测试OK的。

http://0flying0.blogcn.com/diary,105654615.shtml

使用特权

评论回复
10
yuanye1127|  楼主 | 2008-5-24 09:40 | 只看该作者

8楼朋友,想知道下_rrca_(),是哪个头文件里面的啊?

使用特权

评论回复
11
node| | 2008-5-24 10:35 | 只看该作者

8楼代码广为流传。^_^

使用特权

评论回复
12
hotpower| | 2008-5-24 10:40 | 只看该作者
13
hq_y| | 2008-5-24 10:43 | 只看该作者

哈哈~~~~~~~~~~~

使用特权

评论回复
14
yuanye1127|  楼主 | 2008-5-24 11:03 | 只看该作者

8楼朋友

我的那个代码不是胡乱改的啊,我找不到_rrca_()在哪个头文件里面,我只能这样了,把ACC里面的数移位!

使用特权

评论回复
15
cn520| | 2008-5-24 11:31 | 只看该作者

_rrca_() 是汇编指令

14楼朋友:


   _rrca_() 是汇编指令

使用特权

评论回复
16
yuanye1127|  楼主 | 2008-5-24 11:55 | 只看该作者

_rrca_()  是汇编指令,那在这个程序上调用,我的keil编译器通不过。
怎么处理下,能让这个指令能正常的编译啊?

使用特权

评论回复
17
hotpower| | 2008-5-24 12:02 | 只看该作者

随便下载个hotins.h即可

使用特权

评论回复
18
winds| | 2008-5-24 15:18 | 只看该作者

加入头文件即可

#define _rrca_()          CY   = ACC & 0x01 
#define _rlca_()          CY   = ACC & 0x80 
#define _rrcar_(RX)       CY   = RX  & 0x01
#define _rlcar_(RX)       CY   = RX  & 0x80

使用特权

评论回复
19
huangqi412| | 2008-5-24 16:39 | 只看该作者

呵呵,热闹了,

使用特权

评论回复
20
yuanye1127|  楼主 | 2008-5-25 10:57 | 只看该作者

哦 谢谢了楼上的朋友了 呵呵

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

135

帖子

0

粉丝