本人现在正在学习
单片机,在学习定时器时遇到点问题,求高手指点。
下面是我写的一个程序,定时器0控制LED2每一秒闪一次,定时器1控制LED1前5秒灭,后10秒亮,预期效果应该是LED2闪第五次时LED1开始闪第一次,可为什么实验时LED2闪第三次LED1就开始闪了啊??求高手指点,多多感谢。。。
#include<reg52.h>
#define uint unsigned int
sbit led1=P1^3;
sbit led2=P1^7;
uint num=0,num1=0;
void main()
{
TMOD=0x11;
TH0=(65636-50000)/256;
TL0=(65636-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
while(1);
}
void T0_
time() interrupt 1
{
TH0=(65636-50000)/256;
TL0=(65636-50000)%256;
num++;
if(num==20)
{ num=0;
led2=~led2;
}
}
void T1_time() interrupt 3
{
TH1=(65636-50000)/256;
TL1=(65636-50000)%256;
num1++;
if(num1>300)
num1=0;
if(num1<100)
led1=1;
else
led1=0;
}
一周热门 更多>