请教一个简单的问题。为什么程序不执行miao=0;这条指令

2020-01-30 13:30发布

#include<reg52.h>
#define uchar unsigned char
uchar count,miao;
void time_init()
{  
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;
}
void main()//主函数
{
        time_init();
        while(1);
        {
                if(miao==10)
            {
                      miao=0;
                }
        }
}
void time0() interrupt 1
{
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  count++;
  if(count==60)
    {
              miao++;
        }
}
为什么这样写,程序不执行miao=0;这条指令
而把if(miao==10);miao=0;放到中断服务函数里面去,又可以执行。为什么啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
jlhgold
1楼-- · 2020-01-30 15:21
你试着把主循环里的代码改成miao>=10试试!!
硅谷狂夫
2楼-- · 2020-01-30 16:00
 精彩回答 2  元偷偷看……
lcw_swust
3楼-- · 2020-01-30 17:34
while(1)之后的分号去掉
mcu_mouse
4楼-- · 2020-01-30 19:31
count初始化时给其赋个0值看,另外, if(count==60)改成 if(count>=60)
主循环里的代码改成miao>=10。
jlhgold
5楼-- · 2020-01-30 19:43
顶4楼 看的真仔细 哈哈哈
byrin219
6楼-- · 2020-01-31 01:43
4楼正解,写程序不能太马虎

一周热门 更多>