本帖最后由 小代码 于 2015-7-11 20:51 编辑
if(s==0xff)和if(s==0)的区别是什么?
在下面的程序中前者能返回m=0,s=0, 而后者做不到!
TH0=(65536-2000)/256; //重新赋值 2ms
TL0=(65536-2000)%256;
if(Fg==1)
{
n++;
if(n==500)
{
n=0;
if((m!=0)||s)
s--;
if(s==0xff)
{
s=59;
if(m>0)
{
m--;
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
这是一个定时报警的程序!当时间的减至 00—00时启动报警器
void Timer0_isr(void) interrupt 1
{
TH0=(65536-2000)/256; //重新赋值 2ms
TL0=(65536-2000)%256;
Display(0,8);
if(Fg==1)
{
n++;
if(n==500)
{
n=0;
if((m!=0)||s)
s--;
if(s==0xff)
{
s=59;
if(m>0)
{
m--;
}
}
}
}
}
其中m=99;s=59; 关键就是if(s==0xff) 这个判断语句 是怎样实现其功能的呢? s是整形变量(int)
if((m!=0)||s)
s--;
这个限制了S=0以后再减,看不懂了。。
一周热门 更多>