我是单片机初学者,在做数字钟时碰到了问题,
如题,12小时制可以写命令write_ds(0x0B,0x26);
但是怎么切换到12小时制中呢?又如何切换回来?
另外在用单片机内部的定时器做跑秒能成功,但是和887一起做就又碰到了问题,开始是不能切换进跑秒界面,后来发现可能是单片机的P0输出和887的P0输出重叠了,然后设置了标志位,能成功进入跑秒界面,但是开始跑秒屏幕有不显示了,和开始重叠差不多,我简单的把程序贴一下:
进入跑秒界面:
if(s1==0)
{
delay(5);
if(s1==0)
{
while(!s1);
di();
x++; //x有定义全局变量
switch(x)
{
case 1; flag=0; //标志位,当flag为1时显示时钟数据
write_com(0x80+0x40+3); // 1602显示命令
shi=write_sfm(4,0);
fen=write_sfm(7,0);
miao=write_sfm(10,0);
break;//能进入第一个命令
case 2: TR0=1; //开定时器,就是这里屏幕没有显示了,估计是重叠了
break;
case 3: TR0=0;
break;
case 4: flag=1;
x=0;
break;
}
}
}
两个问题,无比都解决下。
对于各位大虾无比简单,但对于我却是单片机学习的一道坎。
对于各位的辛勤付出我绝对高分回报,谢绝复制粘贴!