当按下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亮
#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亮
按键检测作为一个独立程序结构,时间检测作为另一个独立程序结构,不要把时间检测放到按键检测中!
由于定时器的开与关都在开关检测的循环内,也就是意味着按按键的时候定时器开了,松手后有关了。所以出问题了。把按键检测独立开来写。祝你成功。
请问 怎样改 听起来是懂了 但动起手来就不行了 还望大神再深入指教 谢谢