是啊,可以不需要单片机,直接用555就可以哈,上网搜一下555的应用 |
好想法的一个电路,值得学习 |
实现的方法很几种 不需要精准的话做个简易的延时函数就可以了,需要精准的时间 就用定时器做一个时间出来。 void Delay500ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); _nop_(); i = 22; j = 3; k = 227; do { do { while (--k); } while (--j); } while (--i); } 这段代码就可以延时500ms,在11.0592M的频率下 逻辑的话,设置1个标志位 检测到有高电平而且标志位没有置位,7脚输出,将标志位置位,然后延时500ms,再停止输出 因为有标志位,所以只会导通一次 建议用定时器做,这样你的单片机就还可以做其他的事情。 第二种逻辑 不使用标志位 检测到有高电平,7脚输出,,然后延时500ms,再停止输出,接一个死循环while(1); 因为是个死循环,所以整个代码只会执行一次,这样的方式 你这个电路可以使用,你是直接断掉单片机的电了,每次开门相当以重启单片机,单片机启动后只能执行一次 |
这个根本不需要用单片机,用555或者运放加RC电路就可以了 |