单片机学习小组
直播中

听我讲

9年用户 694经验值
擅长:电源/新能源 MEMS/传感技术
私信 关注

如何实现开关按钮威廉希尔官方网站 设计?

如何实现开关按钮威廉希尔官方网站 设计?

回帖(1)

王淑珍

2022-1-21 11:34:41
仿真威廉希尔官方网站

威廉希尔官方网站 图:

晶振和复位威廉希尔官方网站 没加
要点:单片机io口默认高电平所以开关打开时接地为高电平,关闭时为低电平
开关关闭:

开关打开:

代码


/*        名称:开关控制LED
        说明:开关S1和S2分别控制LED1和LED2。
*/
#include
***it S1=P1^0;
***it S2=P1^1;
***it LED1=P0^0;
***it LED2=P0^1;
//主程序
void main()
{
        while(1)
        {
                LED1=S1;
                LED2=S2;
        }
}


增加了按钮:

按钮和开关效果一致,不同的是,按钮按下只有一瞬间是接通的,而开关只要按下即为接通,如果要按下后持续亮,
例如下面这种效果:

后面可以加上while语句


        if(S1==0)
                {LED1=0;while(!S1);}
                else if(S2==0)
                {LED2=0;while(!S2);}


如果需要按一下一直亮,再按一下灭这种效果,可以试试下面的方法(因为我比较low,只想到这个,大佬可以改进以下)


int time1=0;
int time2=0;
if(S1==0&&time1%2==0)
        {time1++;LED1=0;while(!S1);}


else if(S1==0&&time1%2==1)
        {time1++;LED1=1;while(!S1);}


else if(S2==0&&time2%2==0)
        {time2++;LED2=0;while(!S2);}


else if(S2==0&&time2%2==1)
        {time2++;LED2=1;while(!S2);}


程序可以修改为类似于下面这种形式


while(1)
        {
        if(key0==1){led=!led;}
        if(key1==1){led2=!led2;}
        };
举报

更多回帖

发帖
×
20
完善资料,
赚取积分