中断问题--新概念51单片机书上的一道编程

2019-07-15 22:45发布

使用发光管1秒亮灭
#include<reg52.h>
#define uchar        unsigned char
#define        uint        unsignef int
sbit L1=P1^0;
uchar num;
void main()
{
        TMOD=0x01;
        TH0=(65536-45872)/256;
        TH0=(65536-45872)%256;
        TF0=0;
        L1=0;
        ET0=1;
        TR0=1;
        EA=1;
        while(1);
}
void to_time() interrupt 1
{
        TH0=(65536-45872)/256;
        TH0=(65536-45872)%256;
        num++;
        if(num==20)                //此处应该是20,可才是280ms,只有是71时才是1s变化一次
        {
                num=0;
                L1=~L1;
        }
       
}

希望能告诉我原因
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
121361061
2019-07-16 20:48
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led1 =P1^1;
uchar num;
void main()
{
num=0;
TMOD = 0x01;
TH0 = (65536-45872)/256;
TL0 = (65536-45872)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器
while(1)
{
if(num==20)
        {
                num=0;
                led1=~led1;
        }
}

}
void T0_time() interrupt 1
{
TH0 = (65536-45872)/256;
TL0 = (65536-45872)%256;
num++;

}

一周热门 更多>