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;
}
} |