51单片机C程序答疑!求各位大哥关照!

2019-07-15 16:38发布

本帖最后由 小代码 于 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--;
           }
         }

}
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
小代码
2019-07-16 05:09
空竹青青 发表于 2015-7-12 10:20
程序看不大懂,但0xff是十六进制,转化成二进制是1111 1111,和0数值不等。

这是一个定时报警的程序!当时间的减至 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)

一周热门 更多>