|
给你个参考
假设你的按键子函数为 bit key(uchar key_num);去抖神马的都写好了,key_num是按键号,你不是3号键么,按下的话就返回1,没按返回0。LED1为你控制灯1的单片机口,LED2为你控制灯2的单片机口,我不知道你具体电路怎么样的,这里假设LED1= 1,灯1亮,LED2 = 1,灯2量
不管你前面函数怎么写的,在主函数循环里面加入以下语句
bit LED1_buf,LED2_buf,LED_change_sign;
if((key(3) == 0) && (LED_change_sign == 0)) //在LED1,LED2状态没变的时候存入缓存,LED_change_sign为LED状态变化标志位。
{
LED1_buf = LED1;
LED2_buf = LED2;
}
if(key(3) == 1)
{
if(LED1 == 1)
{
LED1 = 0;
LED_change_sign = 1;
}
if(LED2 == 1)
{
LED2 = 0;
LED_change_sign = 1;
}
}
else
{
LED1 = LED1_buf;
LED2 = LED2_buf;
LED_change_sign = 0;
}
[ 本帖最后由 yipengjiusui 于 2012-7-24 17:21 编辑 ] |
|