第一个自己做的产品,给个建议

[复制链接]
3637|11
 楼主| monitor 发表于 2009-9-13 21:02 | 显示全部楼层 |阅读模式
根据客户要求用AT89C2051做了个小装置来控制空压机启停,动作都实现了,目前没出什么问题,第一次做这种东西,不知道这段程序有没有问题,比如符不符合写程序的规范,请给个建议。延时程序是从书上移过来的。还用一部分是报警功能,用来诊断压力传感器是不是正常,不在这里。
            OUT EQU P1.6
            PL EQU P1.0    ;压力下限
            PH EQU P1.1    ;压力上限
            ORG 0000H
            MOV R0,#255 ;
D1:       DJNZ R0,D1
INITIAL:SETB OUT       ;禁止输出
;延时3秒
            MOV R3,#20h    ;
LOOP0: MOV R4,#0C8H  ;
LOOP1: MOV R5,#0FAH  ;
XD:      DJNZ  R5,XD      ;
            DJNZ R4,LOOP1 ;
            DJNZ R3,LOOP0 ;

           CLR OUT ;空压机启动
;让空压机工作约5秒钟
            MOV R3,#50 ;
            MOV R1,#200 ;
D3:       MOV R2,#250 ;
D2:       DJNZ R2,D2;
            DJNZ R1,D3;
            DJNZ R3,D3;

;检测压力传感器状态   
MAIN:   JNB PH,STOP
           JNB PL,START
           AJMP MAIN
START: CLR OUT   ;
           JNB  PH,STOP ;
           ACALL START
STOP:  SETB OUT  ;
           ACALL MAIN
           END

一个牧师 发表于 2009-9-13 21:49 | 显示全部楼层
你的压力传回的上限下线是不是得加个消抖啊?
得按照按键那样处理,要不出现杂讯不是乱跳了?
要是并个电容啥的应该可以,但是软件上最好做一下!
程序体不怎么好,小程序可以,大点的就不行了!
我也在这瞎说啊!做下参考!
 楼主| monitor 发表于 2009-9-13 22:29 | 显示全部楼层
实际测试开关抖动对工作没发现有影响,结构不好是不是说用了太多的acall?
一个牧师 发表于 2009-9-13 23:02 | 显示全部楼层
用电容了?
用什么测的?
上干扰机了?
测的时候得考虑最不好的时候要不测也白测
用不用acall无所谓
实现功能就好了
你这个实现功能简单,这样写法能实现,但是我感觉需要硬件来加固,要不肯定会不稳定
但是以后写大点的东西难写
用中断扫描或者定时扫描好一些
o蓝玉莹 发表于 2009-9-13 23:19 | 显示全部楼层
5880527 发表于 2009-9-14 10:29 | 显示全部楼层
开卷有益,值得鼓励一下。做个大循环,再用个定时器,所有与时间相关的东西就都有了个刻度,你这样DJNZ会影响太多
wanghao123 发表于 2009-9-16 00:45 | 显示全部楼层
大概能看懂
学习中:P
thanksgiving 发表于 2009-9-16 11:26 | 显示全部楼层
luotianzhi 发表于 2009-9-16 11:48 | 显示全部楼层
看具体的系统,但是启动机器后应该一直检测压力,用中断的还是比较好,为何不用C。
辰少 发表于 2009-9-16 18:11 | 显示全部楼层
学习 单片机很好 可惜俺还不会
gooogleman 发表于 2009-9-17 09:41 | 显示全部楼层
嗯,不错。俺一年都单片机,
陌生了,嘿嘿。
 楼主| monitor 发表于 2009-9-17 21:02 | 显示全部楼层
当初的思路是不间断的去查询传感器的状态,初始化结束后使空压机运行,直到上限压力传感器发出信号才停止工作,如果这个传感器不能动作空压机就一直工作,压力超过上限后系统会通过卸荷阀自动卸荷,不会继续升高。因为程序比较短,执行一个循环的时间也短,所以没考虑消抖的问题,在程序的开头还有一条给电源模块TLE4271喂狗的指令,电源和信号的输入、输出在电路上有隔离设计。
感谢各位帮助,我是第一次写程序,看来思路有问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

126

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部