本人刚刚接触单片机C语言,新手一枚,最近用stc15w404as做一个小灯,用红外当做开关,希望达到的效果是:红外触发后,灯打开(最低亮度),再次触发红外则灯关闭;
当灯打开的时候,一直触发红外,超过1s后,开始调光;
调光按照第一次持续触发超过1s后,灯光逐步变亮,当触发停止时,灯光维持触发调制到的灯光强度,关闭灯后,下一次触发红外同样记住这个亮度并且以这个亮度点亮小灯;
当再一次持续触发红外超过1s时,灯光由现在的亮度逐步变暗,同样的,亮度在触发停止后,会记住当前的亮度(无论后面是否开关灯,都将保持最新调光的亮度),直到下一次调光才会改变;
以上功能,从逻辑上能讲通,但是代码始终无法写好,求前辈指点,如果方便的话,能否给个流程图供参考呢? |