修改按键控制LED亮灭的程序

修改按键控制LED亮灭的程序,第1张

led应该是一个变量,是代表led灯 亮或者灭的一个肢陪卜变量。 当你按下开关后,s1==0,就执行 led=!led 这条语句。 led=!led  的意思就是取反的意思,即乱枯原来led灯亮的话 执行该条语句后就变成灭;原来灭的话 执行该条语句后 就变成亮。按键按下就打控制灯的io取反就可以了。如:if(key1==1){while(key1==1)// 等待按键放开历穗led1=~led1}

一个按键时程序如下:

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

}

}

这个功能可以用中断来实现,当然,现在我写的这个也可以实晌巧现。由于你用的晶振频率不知道,所以你自己修改一下延时时间,再把头文件改一下,就可以了,我试验了,可以实现改功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12234519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存