#define uint unsigned int
sbit LED = P1^0
sbit KEY1 = P1^2
void delay(uint)
void main(void)
{
LED = 1 //初始化LED熄灭
KEY1 = 1 //赋值KEY1高电平
while(1)
{
{
LED = ~LED/*LED取反,此时LED = 0,灯亮。当松手时,KEY1 = 1,不满足if语句不
进入循环,LED继续保持当前状态即LED = 0,如果再次按下按键,此时检测到KEY1 = 0,进入旁颂循
环,LED取反得到LED = 0,灯亮。*/
delay(500) /*此处延迟,保樱启州证连续两次按键动作处在程序的延时过程中,不进行其他程序从而不会影响小灯。*/
}
}
}
void delay(uint z) //延时函数
{
uint x, y
for(x=85x>0x--)
for(y=zy>0y--)
}
可下载到单片机验证。
led应该是一个变量,是代表led灯 亮或者灭的一个变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led的意思就是取反灶灶的意思,即原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后
就变成亮。按键段宽按下就打控制灯隐燃扮的io取反就可以了。如:if(key1==1){while(key1==1)//
等待按键放开led1=~led1}
现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如此循环,相当于三档,第三档是停止。第一档和第二档定时5S,5S终了,停止运行,如果此时再按1次则回到第一档。如果5S之内按下,则切换到下一档,实现功能:按下按键三个全亮,在按下LED2灭,再按下三个LED全灭,如旁大此循环,相当于三档,第三档是停止。第一档和第二档定时5S,5S终了,停止渣岁运行,如果此时再按1次则回到第一档。如果5S之内如启睁按下,则切换到下一档。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)