根据客户要求用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
|