① 如何用51单片机检测5个IO口的信号变化
如果用P2口,可以用P1口的6个IO口,外接开关集成电路,用P2口的输出控制模拟开关,用P1的6口检测。给一个高电平,检测一个,依次循环。
② 51单片机检测IO口高低变化,3秒内有变化无动作。3秒无变化立即启动继电器
sbit IN=P2^0;
sbit OUT=P2^1;
uint time ;
void main()
{
OUT=0;//继电器不动作
time=0;
while(1)
{
while(IN==1)//高电平
{
delayms(10);
time++;
if(time>300) OUT=1;//超过3S,动作
}
time=0;
while(IN==0)//低电平
{ delayms(10);
time++;
if(time>300) OUT=1;//超过3S,动作
}
time=0;
}
}
③ 关于51单片机IO口驱动能力的问题
51单片机IO口为集电极上拉输出方式,高电平输出电流等于上拉电阻的电流,这个电流比较小,低电平输出是内部晶体管吸收的电流,最大可以达到10mA,但是整个端口的总电流不能超过24mA。
电平低于0.7V就是低电平,高于1.8V就是高电平。在这个之间不确定。