我是一初學者,正在頭破血流的學習為了能夠讓自己填飽肚子的(單片機),現試圖修改一些程序來提高自己,卻遇到一難題。以下程序我想把他修改成無過流采樣次數及無過流次數到轉報警程序時,卻怎么也不成功。我試過刪除 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編輯過]
|