打印

求助,DS12CR887读不到数据

[复制链接]
2088|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qufo|  楼主 | 2010-4-17 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DS12CR887无法得到数据。一步步调试。连秒都读不到。
郁闷,大侠们帮我看看代码哪里错了。

用STC89C52的 P0接 DS12CR887的AD(数据线),其他的接中 P2上。

因为P1接了LED,所以,如果读到的话,应该会使 LED点亮,并且每秒会有变化。

现在的情况是。LED全亮!而且一直全亮!

MD,这是怎么回事呀

代码如下  代码:#include "reg52.h"
#include "intrins.h"
#include "absacc.h"
#define uchar unsigned char
#define uint  unsigned int
#define NOP _nop_;
#define AD P1;
uchar cen,year,month,day,hour,min,second;
sbit SQW=P2^0;
sbit IRQ=P2^1;
sbit DS=P2^2;
sbit RW=P2^3;
sbit AS=P2^4;
sbit CS=P2^5;


void delay(uint z)
{
        uint x,y;
        for (x=z;x>0;x--)
        {
                for (y=110;y>0;y--)
                {
                        ;
                }
        }
}

void Write(uchar add,uchar dat)
{
        CS=0;
        DS=1;
        RW=1;
        AS=1;
        P0=add;
        AS=0;
        RW=0;
        P0=dat;
        RW=1;
        AS=1;
        CS=1;
}


uchar Read(uchar add)
{
        uchar dat;
        CS=0;
        RW=1;
        DS=1;
        AS=1;
        P0=add;
        AS=0;
        DS=0;
        P0=0xff;
        dat=P0;
        DS=1;
        AS=1;
        CS=1;
        return dat;
}


void init()
{
        AS=0;
        DS=0;
        RW=0;
        Write(0x0a,0x20);
}

void GetData()
{
        cen=Read(32);
        year=Read(9);
        second=Read(0);
}

void main()
{
        delay(30);
        init();
        delay(30);
        while(1)
        {
                //GetData();
                second=Read(0);
                P1=second;
        }
}

相关帖子

沙发
ddtx| | 2010-4-17 11:47 | 只看该作者
操作没有延时?

使用特权

评论回复
板凳
qufo|  楼主 | 2010-4-17 12:05 | 只看该作者
DS12CR887的耗时以ns计,最大操作消耗350ns,而我们的单片机是一个指令最少要1us.

大于其要示的时间,因此不需要延时,这样理解对吗?

使用特权

评论回复
地板
qufo|  楼主 | 2010-4-17 18:24 | 只看该作者
没人理我呀,唉。`

使用特权

评论回复
5
早晨的细雨| | 2013-12-25 14:33 | 只看该作者
兄弟这个读取问题解决了吗?

使用特权

评论回复
6
yanjiajiao| | 2014-1-7 16:09 | 只看该作者
P0口有没有接上拉电阻?接上试试会有意想不到的效果!

使用特权

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

本版积分规则

0

主题

21

帖子

1

粉丝