while(1)
{
if(key==0)//按键按下
{ delayms(20)//延时消抖
if(key==0)//再次判断按键是否按下
{
while(key==0)//按键没有凳乎隐抬起
{ led=!leddelayms(200)}/顷明/LED闪烁枣厅
}
}
else led=0
}
#include <STC12C52.H>
#define uchar unsigned char
#define uint unsigned int
sbit key=P1^2
sbit p1_6=P1^6
void delay(uchar delay_time)
{
uchar n
uint m
for (n=0n<delay_timen++)
{
for(m=0m<10000m++)
}
}
void 敬局keyscan()
{
if(key==0)
{
delay(5)
if(key==0)
while(!key)
{
p1_6 = 0
delay(20)
p1_6 = 1
delay(20)
}
}
}
void 亮谨让main()
{
WDT_CONTR = 0x3C
while(1)
{
keyscan()
WDT_CONTR = 0x3C
}
}
这个功能可以用中断来实现,当然,现在我写的这个也可以实晌巧现。由于你用的晶振频率不知道,所以你自己修改一下延时时间,再把头文件改一下,就可以了,我试验了,可以实现改功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)