求救啊 会单片机的 进!!!!!

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:26:45
这几天小弟编了个水塔水位控制的程序 可老是死机 有哪位高手 给想个啊 有三个水塔分别有三个电磁阀控制进水管 有一个水泵供水 每个水塔有一高一低的水位监测线和一根地线 要用单片机控制 水泵和电磁阀来打水
谢谢了

死机, 可能是现场干扰太严重.反正偶已经放弃没有内部程序存储器和EEPROM的芯片了.原因就是往往不是程序问题,而是制板和PCB设计问题.偶曾经遇到过一块板子竟然什么东东都没焊呢上面竟然就有信号了,后来发现信号竟然是广播电台信号,晕,仔细检查,靠,地线环路了.
自那以后,偶认为芯片还是用集成度高的,让他的外接线越少越好.尤其是总线能不外接的绝不外接,免得后患.
象你这样生米成熟饭的,还是改程序吧.估计你用的是51机子,把你不用的程序存储器空间里每隔200B地址就写个"ljmp 0000H",另外,不用的中断入口处也写上,因为51死机很可能就是程序指针指到了本来不用的程序存储器空间里,而那些不用的空间默认是"FF",你去查查汇编表就知道了如果51执行"FF"是在干什么了.反正是不会再回到正常程序里去了.

以前没编过单片机程序么?先画流程图,逻辑关系要清楚。
首先是泵,只要有一个水塔低限位,则启动泵直到这个水塔高限位为止。同时,哪个水塔低,则开启此水塔电磁阀直到高为止。

所以需要三个寄存器分别记录三个水塔的状态,是需要打水还是不需要打水,当某一水塔水位低时该寄存器为1,当该水塔高时该寄存器清零。

然后把三个寄存器做与运算,如果结果是1则开启水泵,是0则停止。

应取三个信号,哪个为1则哪个电磁阀导通