初学者求助
字体: 小 中 大 | 打印 发表于: 2008-8-26 21:12 作者: feishuang 来源: proteus仿真社区
用proteus仿真时,用KEIL执行下面的语句 switch(count)
{
/* case 1:
// time[0]=read_1302(0x81); //读取秒数
time[0]=time[0]+1; //秒数加1
if(time[0]%16==0x0a)
time[0]=(time[0]&0xf0)+0x10;
if((time[0]&0x7f)>0x59) //超过59秒,清零
time[0]=0;
write_1302(0x8e,0x00); //写入允许
write_1302(0x80,time[0]|0x80); //stop
write_1302(0x8e,0x80); //禁止写入
seh=time[0]/16;
sel=time[0]%16;
_ShowNumber(2,88,sel);
_ShowNumber(2,80,seh);
break;
*/
case 2:
// time[1]=read_1302(0x83); //读取分数
time[1]=time[1]+1; //分数加1
if(time[1]%16==0x0a)
time[1]=(time[1]&0xf0)+0x10;
if(time[1]>0x59) //超过59分,清零
time[1]=0;
write_1302(0x8e,0x00); //写入允许
write_1302(0x82,time[1]);
write_1302(0x8e,0x80); //禁止写入
mih=time[1]/16;
mil=time[1]%16;
_ShowNumber(2,56,mil);
_ShowNumber(2,48,mih);
break;
case 3:
// time[2]=read_1302(0x85); //读取小时数
time[2]=time[2]+1; //小时数加1
if(time[2]%16==0x0a)
time[2]=(time[2]&0xf0)+0x10;
if(time[2]>0x23) //超过23小时,清零
time[2]=0;
write_1302(0x8e,0x00); //写入允许
write_1302(0x84,time[2]);
write_1302(0x8e,0x80); //禁止写入
hoh=time[2]/16;
hol=time[2]%16;
_ShowNumber(2,24,hol);
_ShowNumber(2,16,hoh);
break;
case 4:
// time[3]=read_1302(0x87); //读取日数
time[3]=time[3]+1; //日数加1
if(time[3]%16==0x0a)
time[3]=(time[3]&0xf0)+0x10;
if(time[3]>0x31)
time[3]=1;
write_1302(0x8e,0x00); //写入允许
write_1302(0x86,time[3]);
write_1302(0x8e,0x80); //禁止写入
dah=time[3]/16;
dal=time[3]%16;
_ShowNumber(0,88,dah);
_ShowNumber(0,96,dal);
break;
case 5:
// time[4]=read_1302(0x89); //读取月数
time[4]=time[4]+1; //月数加1
if(time[4]%16==0x0a)
time[4]=(time[4]&0xf0)+0x10;
if(time[4]>0x12)
time[4]=1;
write_1302(0x8e,0x00); //写入允许
write_1302(0x88,time[4]);
write_1302(0x8e,0x80); //禁止写入
monh=time[4]/16;
monl=time[4]%16;
_ShowNumber(0,72,monl);
_ShowNumber(0,64,monh);
break;
case 6:
// time[6]=read_1302(0x8d); //读取年数
time[6]=time[6]+1; //年数加1
if(time[6]%16==0x0a)
time[6]=(time[6]&0xf0)+0x10;
if(time[6]>0x85)
time[6]=0;
write_1302(0x8e,0x00); //写入允许
write_1302(0x8c,time[6]);
write_1302(0x8e,0x80); //禁止写入
yearh=time[6]/16;
yearl=time[6]%16;
_ShowNumber(0,48,yearl);
_ShowNumber(0,40,yearh);
break;
default:break;
}
1-6全部都编译时液晶显示乱码,二当屏蔽掉1时,能正常显示,本想是1错了,但当屏蔽掉3-6,只编译1和2时,也能正常显示。多次试后,发现全编译不行,但屏蔽一部分编译行,请问这是什么原因,本人C不是很好,请达人帮个忙!!!

最新回复
feishuang (2008-8-27 10:14:58)