微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 当按下key后,计时两秒后led亮的 编程问题

当按下key后,计时两秒后led亮的 编程问题

时间:10-02 整理:3721RD 点击:
#include <REGX51.H>
#define uint unsigned int
sbit key = P3^5;
sbit led = P1^1;
void delay()
{
   uint k;
   for(k=0;k<20;k++)
   ;
}
void main()
{
    TCON = 0x01;
    TH0  = 0xb8;
    TL0  = 0x00;
    TR0  = 1;
  while(1)
  {
   uint i;
   
    TR0=0;
    if(key==0)
    {
      delay();
      if(key==0)
  {
   
    TR0=1;
     if(TF0==1)
     
  {
   
    TF0=0;
    TH0  = 0xb8;
       TL0  = 0x00;
    i++;
  }
   if(i==100)
    {
   i=0;
      led=~led;
       while(!key);
     }
     
   
  }
   }
  }
}
想破脑子都想不出的错误,希望大神指导指导
题目是这样的 当按下key后,计时两秒后led亮

按键检测作为一个独立程序结构,时间检测作为另一个独立程序结构,不要把时间检测放到按键检测中!

由于定时器的开与关都在开关检测的循环内,也就是意味着按按键的时候定时器开了,松手后有关了。所以出问题了。把按键检测独立开来写。祝你成功。

请问 怎样改 听起来是懂了   但动起手来就不行了  还望大神再深入指教   谢谢

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

网站地图

Top