微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求高手指点单片机定时器问题

求高手指点单片机定时器问题

时间:10-02 整理:3721RD 点击:
本人现在正在学习单片机,在学习定时器时遇到点问题,求高手指点。
下面是我写的一个程序,定时器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;
                    
}

童鞋啊     你的led2=~led2 不是一秒闪一次  是每隔2秒闪一次   所以才会在第三次亮时  已经是5秒了。  

童鞋啊 你的led=~led  是没两秒闪一次  不是一秒闪一次  

童鞋啊 你的led=~led  是没两秒闪一次  不是一秒闪一次  

啊啊啊。对对对,是这样,谢谢你的指点,谢谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top