标题: 单片机程序 为什么进不了中断? 谢谢啦 [打印本页]

作者: 蜕变    时间: 2017-5-4 16:17
标题: 单片机程序 为什么进不了中断? 谢谢啦
                 #include<reg52.h>sbit led=P2^0;
#define uchar unsigned char;
uchar x,y,t;
void main()
      {  
         TMOD=0X01;//定时器0 工作方式1
         TH0=(65536-50000)/256;//高八位赋初值
         TL0=(65536-50000)%256;//低八位赋初值
         EA=1;//开总中断
         ET0=1;//开定时器0中断
         TR0=1;//启动定时器
        if(t==20)
       {
          t=0;
          led=0;
       };
         led=1;
      }
void exter0() interrupt 1
       {
         TH0=(65536-50000)/256;//高八位赋初值
         TL0=(65536-50000)%256;//低八位赋初值
          t++;
       }

哪位大神能告知一下程序为什么进不了中断?


作者: 蜕变    时间: 2017-5-4 16:18
有好心人 解惑吗?
作者: 51Lovers    时间: 2017-5-4 22:33
1.建议t赋个初值;2.f(t==20)改为f(t>=20)
作者: 归依龙井    时间: 2017-5-4 22:57
没出错吗
作者: wodedzw    时间: 2017-5-4 23:26
可以试试将主函数tr0=1;后面的语句放入while(1)死循环中。
作者: bencha    时间: 2017-5-4 23:53
同问,
作者: erlengzi    时间: 2017-5-4 23:59
什么编译器?
作者: liuzhen191    时间: 2017-5-5 11:54
应该是没while循环导致定时器只溢出一次,所以灯没变化
作者: 寰观气宇    时间: 2017-5-5 13:39
个人感觉在主程序最后需要加一个循环命令,即最后加一个while();
作者: 灰蒙天空    时间: 2017-5-5 16:21
没有死循环                 程序跑飞了!!!!!!!!!!!!!
作者: sageliu    时间: 2017-5-8 11:27

                 #include<reg52.h>sbit led=P2^0;
#define uchar unsigned char;
uchar x,y,t;
void main()
      {  
         TMOD=0X01;//定时器0 工作方式1
         TH0=(65536-50000)/256;//高八位赋初值
         TL0=(65536-50000)%256;//低八位赋初值
         EA=1;//开总中断
         ET0=1;//开定时器0中断
         TR0=1;//启动定时器
while(1)
{
        if(t==20)
       {
          t=0;
          led=0;
       };
         led=1;
    }
  }
void exter0() interrupt 1
       {
         TH0=(65536-50000)/256;//高八位赋初值
         TL0=(65536-50000)%256;//低八位赋初值
          t++;
       }

作者: 你像风儿来了    时间: 2017-5-8 13:07
程序最后一句加上while(1);
作者: 通天塔直达    时间: 2017-5-8 13:49
加个while(1)循环!
作者: 通天塔直达    时间: 2017-5-8 14:07
程序要加死循环!
作者: 3760609865    时间: 2017-5-8 16:37
应该主程系if语句前加上while(1)
作者: wuai0314    时间: 2017-5-8 17:38
      if(t==20)
       {
          t=0;
          led=0;
       };
这里太快,人眼识别不了,几乎led一直等于1
作者: 永冰    时间: 2017-5-8 20:06
程序要加死循环 不然一直在装初值 本来加到要益处 结果有赋值了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1