level 1
51刚入门,程序要求是:当key输入信号的时候,relay(只有1和0两个动作)动作并保持当前状态,直到key再次输入信号的时候,relay才再次动作并保持,(原理跟按下按钮灯常亮,再按下按钮灯常灭一样)
#include <reg51.h>
sbit key = P3^5;
sbit relay = P3^2;
void main()
{
while(1)
{
relay = 0xff;
if(key==0)
{
relay = 0;
}
}
}
程序目前是key按下时,relay输出,但是key一抬起,relay输出就停止了,求大神看看应该怎么改?
2018年04月12日 11点04分
1
level 11
#include <reg51.h>
sbit key = P3^5;
sbit relay = P3^2;
void main()
{
while(1)
{
if(key==0)
{
relay = ~relay;
}
}
}
试试,不行,在改下,,这个是取反,按一下取反一次。
2018年04月12日 11点04分
3
level 3
relay = 0xff这句不要,relay = 0改为relay=!relay,意思是状态取反。后面加一句while(key==0);意思是等待key释放。此外如果硬件没有按钮消抖电路,还要加个消抖程序。消抖程序自己百度查询。
2018年04月12日 11点04分
4