标题: 关于单片机中断问题,为什么灯不闪烁 [打印本页]

作者: 坐在分头调戏鬼    时间: 2019-1-23 10:41
标题: 关于单片机中断问题,为什么灯不闪烁
为什么灯不闪烁
程序:#include<reg52.h>
#define uchar unsigned char
uchar num;
sbit led2=P1^1;
void main()
{
        TMOD=1;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
                {
                        led2=0;                        
                }
}                        
void exter0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
                if(num==20)
                        {
                                num=0;
                                led2=~led2;
                        }         
}

作者: 绊脚石13    时间: 2019-1-23 11:19
TMOD=1; 这句代码对了吗?
作者: xuyaqi    时间: 2019-1-23 11:32
while(1)里的led2=0;  不能要,要屏蔽掉。
作者: lakeleeson    时间: 2019-1-23 11:46
while(1)里面led2=0; 会一直执行下去。所以,去掉led2=0;或直接 while(1);或者在while(1);前面就设置led2=0;
作者: 坐在分头调戏鬼    时间: 2019-1-23 20:15
中断是否可以打断循环啊
作者: 坐在分头调戏鬼    时间: 2019-1-24 15:07
绊脚石13 发表于 2019-1-23 11:19
TMOD=1; 这句代码对了吗?

对的   和0x01是一个含义
作者: 凌特逸轩    时间: 2019-1-24 16:28
void main()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;//50ms
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        led2=0;
        while(1);
}                        
void time0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
                if(num==20)
                        {
                                num=0;
                                led2=~led2;
                        }         
}




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