单片机
回帖(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;}
};
仿真威廉希尔官方网站
威廉希尔官方网站
图:
晶振和复位威廉希尔官方网站
没加
要点:单片机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;}
};
举报
更多回帖