现在我在搞一个报警仪,自己编了一个程序,大致的功能是这样子的:有8个接口(相当于8个开关,分别接到P0口的八位)分别对应控制八路灯(分别接到P2口的八位),有一个或者多个开关闭合(接地),它对应的那一路的灯以一定的频率闪亮,蜂鸣器以相同的频率闪叫(蜂鸣器接到P1^0),继电器吸合(继电器接到P1^1),这时如果按下消音按钮(复位按钮,接到P1^2),所对应闪亮的灯变常亮,蜂鸣器消音,继电器断开。如果这时断开接地的开关,所对应闪亮的灯灭。程序我写在这里就卡住了,接下来的功能我不知道怎么去实现了。大致的描述是:我先短路1、3、5路吧,然后对应1、3、5路灯会闪亮,继电器结合,蜂鸣器闪叫,这时我按一下消音按钮,1、3、5路灯闪亮变常亮,蜂鸣器和继电器都关闭,(此时1、3、5路开关还是闭合短路的状态)接下来我随便断开1、3、5路任何一路,比如说断开1路开关,对应的1路的灯灭掉了,其他2路灯还常亮着,这时我再把一路开关闭合,一路灯会重新闪亮,继电器盒蜂鸣器又重新打开了,但是3、5路灯还是常亮着。或者1、3、5路按下消音键后,我不动那三路,我从剩下的5路中选一路开关闭合,对应的这路灯也会闪亮,蜂鸣器和继电器也会打开,但是1、3、5路灯还是保持常亮。请问各位大侠这个功能还如何用C语言描述啊?我愁死了~~~还有就是关于设置标志位的问题,我不知道什么情况下去用,请大侠们解惑~~跪谢了!!! |