51单片机中,当一个按键按下去,定时器中的TR0=1,当松开按键,定时器中的TR0就一直为0,
3个回答
展开全部
看看这样行不?
sbit KEY=P1^0;
bit BKeyLast;
main()
{
……//初始化定时器
TR0=BKeyLast=KEY;
while(1)
{
while(KEY==BKeyLast) ;
if(BKeyLast) TR0=0; //BKeyLast=1时,KEY==0,按下。
else TR0=1;
for(i=0;i<250;i++) ; //去抖动。
BKeyLast=!BKeyLast;
}
}
……//定时服务程序
sbit KEY=P1^0;
bit BKeyLast;
main()
{
……//初始化定时器
TR0=BKeyLast=KEY;
while(1)
{
while(KEY==BKeyLast) ;
if(BKeyLast) TR0=0; //BKeyLast=1时,KEY==0,按下。
else TR0=1;
for(i=0;i<250;i++) ; //去抖动。
BKeyLast=!BKeyLast;
}
}
……//定时服务程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现场给写了一个 希望能帮倒你
#include <AT89x51.H>
#define Key1 P1_0
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
while(1)
{
if(Key1==0) TR0=1;
else TR0=0;
}
}
void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
}
#include <AT89x51.H>
#define Key1 P1_0
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
while(1)
{
if(Key1==0) TR0=1;
else TR0=0;
}
}
void time0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询