DS12C887读出乱码,我已经无能为力,我都怀疑是不是芯片坏了,但是芯片坏了应该连乱码也没有啊。

/*写时钟数据*/voidwrite_ds(ucharadd,uchardate){cs=0;as=1;ds=1;rw=1;P1=add;as=0;rw=0;P1=dat... /*写时钟数据*/
void write_ds(uchar add,uchar date)
{
cs=0;
as=1;
ds=1;
rw=1;
P1=add;
as=0;
rw=0;
P1=date;
rw=1;
as=1;
cs=1;
}
/*读时钟数据*/
uchar read_ds(uchar add)
{
uchar ds_date;
as=1;
ds=1;
rw=1;
cs=0;
P1=add;
as=0;
ds=0;
P1=0xff;
ds_date=P1;
ds=1;
as=1;
cs=1;
return ds_date;
}

void rtc_init()//首次设置时使用,以后不必再设置
{
write_ds(0x0a,0x20);
write_ds(0x0b,0x26);
write_ds(0x00,0x1e);
write_ds(0x01,0x00);
write_ds(0x02,0x00);
write_ds(0x03,0x00);
write_ds(0x04,0x00);
write_ds(0x05,0x00);
write_ds(0x06,0x00);
write_ds(0x07,0x00);
write_ds(0x08,0x00);
write_ds(0x09,0x00);
}

void main()
{
Init(); //显示屏初始化
delay(5000);//据说是DS12C887上电稳定所需时间
rtc_init(); //时钟初始化
Write_Com(0xc0+10);
read_ds(0x00); //读秒
ge=ds_date%10; //把秒分成十位,个位分别显示
shi=ds_date/10;
Write_Data(shi);
Write_Data(ge);
while(1);
}

可是就是显示出乱码,不是他们说的什么i5,各位大神,求帮忙啊,这里卡我好久了
展开
 我来答
杨应德yyd
2013-04-17
知道答主
回答量:10
采纳率:0%
帮助的人:1.2万
展开全部
先不说其他的什么液晶之类的。这里没有,
你后面的while(1);放在最后,你应该在while(1)里面读取ds12c887的数据,再显示到液晶上。
即使DS12C887里面没电了,刚上电时数据还是准确的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式