用51单片机做一个驱动继电器的电路,C程序救助。

功能是这样的:8个按键分别对应控制8个继电器的输出,按一下按键,继电器输出,再按一下,继电器关闭;另外还有8路数字量信号输入,当单片机检测到某一路数字量信号输入为0时(无输入是为1),关闭对应的该路继电器,也就是说只要有数字量信号输入,继电器就不能输出,按键也不能用。

现在单独的按键控制继电器输出没问题了,检测数字信号输入也可以,就是数字量信号输入与继电器输出部分的结合判断这块弄了好久,搞不好。
求大神帮忙!这块应该什么写才行。

第1个回答  2013-02-04
如 一个继电器控制 ,数字量信号输入 P20 , 按键 P10 , 继电器控制 P00
if ( P20==1) // 数字量信号输入 为 1
{
if ( P10==0) // 按键 按下
{
if ( PBZ0==0)
{
PBZ0=1; // 设置一个标志,这样可以按键 按一次 执行一次。
P00=~P00; // 继电器 取反,就是原来 开 就 关,原来 关 就 开。
}
}
if ( P10==1) // 按键 释放
{
PBZ0=0; // 按键释放 标志 清零。
}
}
if ( P20==0) // 数字量信号输入 为 0
{
P00=0; // 关闭继电器
}
第2个回答  2013-02-02
每次继电器输出前先判断下该位数字信号是不是0不就好了,是0直接在这里break,是1则继续执行
程序加在你松手检测以后
if(XX==0)
{
break;

}
else
{
//加松手检测后面的语句

}追问

谢谢您的回答,我先按你的方法试一下,数字量是0的话,还要检测继电器的输出状态,如果有输出,就关掉继电器输出。

本回答被网友采纳
第3个回答  2013-02-03
我这里有一些资料,需要可以来找我,随时都在线,等待回复。如果不在线,可以给我留言,看到到马上回复。追问

在不?

追答

我们这里是专门帮同学做设计的,价格合理,都是白菜价,通过支付宝付款,如果您需要,可以加 187,0111474.

第4个回答  2013-02-02
dantdfdsaaaaaaaaaaaaaaaaa
相似回答