久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: c語言控制程序,如何更改觸發(fā)方式(按鍵判斷改為高低電平判斷),而保持原程序執(zhí)行... [打印本頁]

作者: 皮皮魚de場景    時間: 2018-6-1 00:14
標(biāo)題: c語言控制程序,如何更改觸發(fā)方式(按鍵判斷改為高低電平判斷),而保持原程序執(zhí)行...
下面的程序,按一次按鍵(key1)執(zhí)行case0,再按一次按鍵執(zhí)行case1。
本人新手,想請高手指點幫忙,實現(xiàn)以下功能:當(dāng)key1高電平時,執(zhí)行case0。當(dāng)key1為低電平時,執(zhí)行case1。
【即:當(dāng)key1高電平時,燈2滅,燈1滅;1秒后,保持燈2滅,但燈1亮,然后一直保持,直至key1電平發(fā)生變化。】
我曾使用if(!key1)但不能實現(xiàn)所需要的功能。

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint);
sbit led2=P1^0;
sbit led1=P1^2;
sbit key1=P3^2;

void main()
{
uchar i=0;

while(1)
{
if(key1==0)//按鍵1
{
delay_ms(10);
if(key1==0)
{
i++;
i=i%2;
switch(i)
{
case 0: led2=1; led1=1; delay_ms(1000); led2=1; led1=0; break;//燈2滅,燈1滅;1秒后,保持燈2滅,但燈1亮。
case 1: led2=0; led1=1; delay_ms(1000); led2=0; led1=0; break;//燈2亮,燈1滅;1秒后,保持燈2亮,但燈1亮。
default: break;
}
}
while(!key1);
}

}
}
void delay_ms(uint z) //延時子程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}


作者: wulin    時間: 2018-6-1 07:24
改這樣試試
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay_ms(uint);
sbit led2=P1^0;
sbit led1=P1^2;
sbit key1=P3^2;

void main()
{
        bit i=0;
        while(1)
        {
                if(key1==0)//按下
                {
                        delay_ms(10);
                        if((key1==0)&&(i==0))
                        {
                                i=~i;
                                led2=1; led1=1; delay_ms(1000); led2=1; led1=0; //燈2滅,燈1滅;1秒后,保持燈2滅,但燈1亮。
                        }
                }
                if(key1==1)//抬起
                {
                        delay_ms(10);
                        if((key1==1)&&(i==1))
                        {               
                                i=~i;
                                led2=0; led1=1; delay_ms(1000); led2=0; led1=0; //燈2亮,燈1滅;1秒后,保持燈2亮,但燈1亮
                        }
                }
        }
}
void delay_ms(uint z) //延時子程序
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

作者: zhanghyg    時間: 2018-6-1 08:49
本來按鍵就是高低電平判斷,不需要改啊。
作者: 皮皮魚de場景    時間: 2018-6-1 18:39
wulin 發(fā)表于 2018-6-1 07:24
改這樣試試
#include
#define uint unsigned int

測試已通過!謝謝。!

至于增加i,和i取反,其中的作用,我將好好的去理解并搞懂來。

再次感謝。。
作者: 皮皮魚de場景    時間: 2018-6-1 18:46
zhanghyg 發(fā)表于 2018-6-1 08:49
本來按鍵就是高低電平判斷,不需要改啊。

不同的。

原來的程序是按下并松開變化一次,F(xiàn)在是:按下變化一次,松開又變化一次。

即:原來的是下降沿觸發(fā)(其實我不知到是上升沿還是下降沿),F(xiàn)在是:高電平、低電平分別觸發(fā)。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人午夜在线观看 | 免费一区二区三区 | 99久久99 | 国产高清精品一区二区三区 | 久久久久国产精品 | 日韩精品1区2区3区 爱爱综合网 | 国产精品精品久久久 | 色伊人网 | 免费国产网站 | 久久一二 | 日韩欧美字幕 | 久草精品视频 | 免费观看的黄色网址 | 亚洲 欧美 日韩 在线 | 亚洲毛片在线观看 | 久久51 | 日韩国产精品一区二区三区 | 99免费在线观看视频 | 久久久久国产一级毛片 | 99色在线视频 | 精品免费视频一区二区 | 麻豆精品国产91久久久久久 | 日韩欧美一区二区三区免费观看 | 欧美成人在线影院 | 精品中文字幕久久 | www日日日| 国产成人精品免高潮在线观看 | 日韩av一区二区在线 | 国产免费又黄又爽又刺激蜜月al | 成人国产午夜在线观看 | 亚洲 欧美 日韩在线 | 久久久久久国产精品免费免费狐狸 | 精品欧美一区二区在线观看 | 欧美一二三四成人免费视频 | 毛片区| 国产精品成人在线观看 | 精品国产久 | 欧美日韩一二三区 | 在线色网| 日韩欧美不卡 | 日韩一区二区在线视频 |