lx341108:
wsdwqj老师我用2051写了个程序,如果p3.4一直给低电平p3.5输入60个脉冲。此程序就出错,以后就是每给p3.5一个脉冲p1.7就输出一个低电平,其他程序都没有了,复位后工作60次又是这样,请高手指教。程序如下ORG 0000HMAIN: SETBP1.7 SETBP1.4 JB P3.5,MAIN CLR P1.7 ACALLD40MS JB P3.5,MAIN JB P3.4,D MOV R5,#5 D9: CLR P1.4 ACALLD120HZ SETBP1.4 ACALLD120HZ DJNZ R5,D9 MOV R5,#5 D10: CLR P1.4 ACALLD100HZ SETBP1.4 ACALLD100HZ DJNZ R5,D10 MOV R5,#5 D11: CLR P1.4 ACALLD80HZ SETBP1.4 ACALLD80HZ DJNZ R5,D11 MOV R5,#5 D12: CLR P1.4 ACALLD50HZ SETBP1.4 ACALLD50HZ JB P3.5,MAIN JB P3.4,D AJMP D12 D120HZ:MOVR7,#100 D1:MOVR6,#20 D2:DJNZR6,D2 DJNZR7,D1 JB P3.5,MAIN JB P3.4,D RET D100HZ:MOVR7,#125 D3:MOVR6,#20 D4:DJNZR6,D4 DJNZR7,D3 JB P3.5,MAIN JB P3.4,D RET D80HZ: MOVR7,#150 D5:MOVR6,#20 D6:DJNZR6,D6 DJNZR7,D5 JB P3.5,MAIN JB P3.4,D RET D50HZ: MOVR7,#250 D7:MOVR6,#20 D8:DJNZR6,D8 DJNZR7,D7 JB P3.5,MAIN JB P3.4,D RET D:SETBP1.7 SETBP1.4 CLR P3.7 ACALLD5S SETBP3.7 AJMPMAIND40MS: MOV R7,#100 D13: MOV R6,#200 D14: DJNZR6,D14 DJNZR7,D13 RET D5S: MOV R7,#250 D15: MOV R6,#200 D16: MOV R5,#50 D17: DJNZR5,D17 DJNZR6,D16 DJNZR7,D15 RET END