标题:
如何用stc15f104单片机写代码做一个延时约500ms控制电路?谢谢!
[打印本页]
作者:
wyc1920
时间:
2019-8-19 18:29
标题:
如何用stc15f104单片机写代码做一个延时约500ms控制电路?谢谢!
求助各位大神!!如何用stc15f104写代码做一个延时约500ms控制电路,谢谢!
51hei图片20190819181859.png
(9.18 KB, 下载次数: 57)
下载附件
2019-8-19 18:28 上传
本人不会写代码,怎么弄才能实现以下逻辑功能:
逻辑是这样的:
1,当深夜上下班回家,打开房门,门磁接通12V电池供电给降压7805供电给单片机工作,单片机第8PIN检测到高电平或者持续的高电平,也只能输出一次约500ms的高电平控制三极管Q1导通拉低易微联的通道按键执行回家场景开灯。
特别留意的是,因为有时候回家门一直是打开的,第8Pin一直处于检测高电平状态,所以第7Pin只能输出一次高电平,如果重复输出或者持续输出,易微联模块就会出现关灯或者又进入配网模式了影响使用(因为易微联模块通道的手动按键,长按3秒以上进入配网模式了,所以第7Pin不能持续输出高电平或者重复输出高电平)。
作者:
cjm82
时间:
2019-8-20 13:35
这个根本不需要用单片机,用555或者运放加RC电路就可以了
作者:
城江伍佬
时间:
2019-8-20 19:46
实现的方法很几种 不需要精准的话做个简易的延时函数就可以了,需要精准的时间 就用定时器做一个时间出来。
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);
因为是个死循环,所以整个代码只会执行一次,这样的方式 你这个电路可以使用,你是直接断掉单片机的电了,每次开门相当以重启单片机,单片机启动后只能执行一次
作者:
X雄仔
时间:
2019-8-20 20:20
好想法的一个电路,值得学习
作者:
whx.000
时间:
2019-8-21 08:07
是啊,可以不需要单片机,直接用555就可以哈,上网搜一下555的应用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1