永发信息网

求51单片机控制继电器程序

答案:2  悬赏:10  手机版
解决时间 2021-02-25 18:14
  • 提问者网友:骑士
  • 2021-02-25 09:31
求51单片机控制继电器程序
最佳答案
  • 五星知识达人网友:妄饮晩冬酒
  • 2021-02-25 10:04
程序就免了,给你几个建议。
你最好把按键的程序和逻辑控制分开写,这样比较清晰,按键驱动的结果就是消抖以后的按键状态,处理完清除,最好用固定时钟驱动少用延时,按键驱动看着容易做好了还是不容易的。

逻辑控制无非就是if else。。。用全局量记录之前的状态,最好有个简单明了的逻辑状态图否则很容易乱套,然后操作继电器就是两个io口就是了。
你用的这个和89c都是stc比较老的型号了,建议你到官网看看,很多新型号跑得更快,程序上能不能通用注意两点,死等延时的时间和硬件上的区别。
stc很多型号都用3.0和3.1口下载程序,所以按键会有影响,建议换个io口
继电器的常开和常闭是接线决定的,按键常开和常闭可以用上下拉电阻来控制,硬件上处理一下,主要是要保证系统刚上电之前的这段时间的状态是对的。
51和stm32是完全不同的cpu,如果要移植到stm32上初始化和寄存器操作是不一样的,c语言的层面上大概只有逻辑控制这块儿能用,而且stm32是3.3V硬件上也要处理。
这个做成并不难,做好就要花些心思,自己做才有意义解决问题就是学习的过程。

追问关键问题是不懂编程,现抱佛脚来不及啊。。。
你说的这些我都只知道皮毛,型号无所谓,新的老的都行,关键就是想实现那几个功能,至于用哪个引脚也无所谓,不是非得用p3.0,p3.1的,继电器状态不要管他,意思就是通过按键改变输出状态,经过一段时间后结束。
至于51跟stm32,主要是看着stm32体积比较小,更能节约空间,引脚多,可扩展性强,没别的。追答51也有小封装,8脚sop的都有。
又看了一下你这个逻辑是有问题的
s1常闭,s2常开,s3常开。工作时扫描三个按键的状态:如果s1闭合,s2常开,s3常开时,输出控制继电器1闭合,延时3秒后结束输出程序,继续检测三个按键的状态,如果状态无改变,则扫描下去。。。
初态应该和上电默认状态一致,如果单片机没上电应该保持初态,没有任何状态变化也要保持初态。所以你这个延时三秒后结束输出是个啥意思,换句话说三秒从哪里开始算起呢?
你在斟酌斟酌吧。
全部回答
  • 1楼网友:舊物识亽
  • 2021-02-25 10:29
编程语言追问针对这种情况,能给编写下么?
汇编也是一窍不通,现在在恶补中。。。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯