标题:
ds12c887 时间不更新
[打印本页]
作者:
jijif
时间:
2015-11-2 12:42
标题:
ds12c887 时间不更新
#include<reg52.h>
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dscs=P1^4;
sbit dsas=P1^5;
sbit dsrw=P1^6;
sbit dsds=P1^7;
char filine[14]="2015-10-18 MON";
char seline[10]=" 00:00:00 ";
char sec,min,hor;
int m,n;
int num;
void delay(int m)
{
int n;
for(;m>=0;m--)
for(n=110;n>=0;n--);
}
void write_command(char com)
{//液晶命令
lcdrs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(char date)
{//液晶数据
lcdrs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
/*void write_ds(char address,char date)
{
dscs=0;
dsas=1;
dsds=1;
dsrw=0;
P0=address;
dsas=0;
dsrw=0;
P0=date;
dsrw=1;
dsas=1;
dscs=1;
}*/
char read_ds(char address)
{
char ds_date;
dsas=1;
dsds=1;
dsrw=1;
dscs=0;
P0=address;
dsas=0;
dsds=0;
P0=0xff;
ds_date=P0;
dsds=1;
dsas=1;
dscs=1;
return ds_date;
}
void init()
{
write_command(0x38);
write_command(0x0c);
write_command(0x06);
write_command(0x01);
write_command(0x80);
for(m=0;m<14;m++)
write_date(filine[m]);
write_command(0x80+0x40);
for(m=0;m<10;m++)
write_date(seline[m]);
}
void display_number(char address,char number)
{
char ge,shi;
shi=number/10;
ge=number%10;
write_command(0x80+0x40+address);
write_date(0x30+shi);
write_date(0x30+ge);
}
void main()
{
num=0;
init();
delay(50);
while(1)
{
sec=read_ds(0);
display_number(7,sec);
}
}
复制代码
郭天祥的板子。
秒针不更新一直显示/0,配套的代码却可以更新,谁给分析分析,谢谢。
QQ截图20151102113448.jpg
(507.92 KB, 下载次数: 107)
下载附件
2015-11-2 12:40 上传
作者:
gaozhaohong
时间:
2015-11-2 20:46
应该是程序有问题。
作者:
wc86110
时间:
2015-11-22 15:52
确定这个程序与DS12C877木有半毛钱关系,只会纹丝不动的显示液晶屏上的那些信息。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1