我是一初学者,正在头破血流的学习为了能够让自己填饱肚子的(单片机),现试图修改一些程序来提高自己,却遇到一难题。以下程序我想把他修改成无过流采样次数及无过流次数到转报警程序时,却怎么也不成功。我试过删除 INC 3AH ,3BH, 3CH.或增加 DEC 3AH, 3BH, 3CH。或改变绝对转移命令...等等。都达不到要求,只有来请大侠高手门来指点迷津。谢谢
程序如下: 没关联的程序没有写上来
MOV 3AH,#00H ;关门过流采样次数清零 MOV 3BH,#00H ;开门过流采样次数清零 MOV 3CH,#00H 、、、、、、、、、、、、、、、、、、、、、、、 CLOSE: CLR TR0 CLR 03H CLR P1.3 SETB P1.4 ;电机反转,关门 CLOSEKH: SETB P3.4 ;P3.4输出高脉冲 ACALL DELY JB P3.6,CLKK ;关门过程中遇到阻力(过流)吗?没有,转CLKk INC 3AH ;过流采样次数加1 ACALL CLKKK JNB 04H,CLKK1 ;确实过流吗?不是,转CLKK1 INC 3CH ;非正常过流次数加1 AJMP CLKK2 ;确实过流,转反向开门程序CLKK2 CLKK: MOV 3AH,#00H CLKK1: JB P3.2,CLKH ;有人接近门感应器吗?没有,转CLKH CLKK2: MOV 3AH,#00H ACALL OPENPP ;有人接近门感应器,或关门过程中遇到阻力,调用OPENPP开门判断处理子程序 MOV A,3CH CJNE A,#03H,CLKK3 ;非正常过流已经3次吗?否,转CLKK3 AJMP ALARM ;非正常过流已经3次,转停车报警子程序 CLKK3: AJMP MAIN1 、、、、、、、、、、、、、、、、、、、、、、、、、、、、 CLSLOWH: ;关门慢速高电平程序 SETB P3.4 ;P3.4输出高电平 ACALL DELY JB P3.6,CLKK5 ;关门过程中遇到阻力(过流)吗?没有,转CLKk5 INC 3AH ;过流采样次数加1 ACALL CLKKK JNB 04H,CLKK6 INC 3CH AJMP CLKK7
CLKK5: MOV 3AH,#00H CLKK6: JB P3.2,CLMH ;有人接近门感应器吗?没有,转CLMH CLKK7: MOV 3AH,#00H ACALL OPENPP ;有人接近门感应器,或关门过程中遇到阻力,调用OPENPP开门判断处理子程序 MOV A,3CH CJNE A,#03H,CLKK8 AJMP ALARM 、、、、、、、、、、、、、、、、、、、、、、、、、
OPKKK: MOV A,3BH ;开门过流判断子程序 CJNE A,#20,NOOVERO MOV 3BH,#00H SETB 05H AJMP OVEROP NOOVERO: CLR 05H ;过流标志清零 OVEROP: RET
、、、、、、、、、、、、、、、、 ALARM: CLR P1.3 停车报警子程序 CLR P1.4 CLR P3.4 CLR P3.7 MOV 3CH,#00H AJMP $ END
[此贴子已经被作者于2009-11-1 17:27:33编辑过]
|