实际仿真和运行的时候,程序好像都没有按照想法去跑,程序如下:<br /><br /> ORG 0x00;<br />INIT<br /> MOVLW 0x00;<br /> MOVWF OSCCAL;<br /> MOVLW 0x00;<br /> OPTION ;<br /><br /> MOVLW 0x0C; 设置GP3为输入,配置字中也使能GP3<br /> TRIS GPIO;<br />EE<br /> MOVLW 0x00; <br /><br /> MOVWF GPIO; <br /> CALL DELAY100MS; GP0口接LED,低电平亮<br /> MOVLW 0x03;<br /> MOVWF GPIO;<br /> CALL DELAY500MS;<br /> MOVF GPIO,0; 此处GP3口为高电平<br /> BTFSC W,3;<br /> GOTO EE; 此句被跳过。。。<br /> CALL DELAY10MS;<br /> MOVF GPIO,0;<br /> BTFSC W,3; <br /> GOTO EE;<br />KEYUP<br /> MOVF GPIO,0; <br /> BTFSS W,1; <br /> GOTO KEYUP;<br /> CALL DELAY10MS; <br /> MOVF GPIO,0;<br /> BTFSS W,1;<br /> GOTO KEYUP; waiting for loose the press<br /> MOVF GPIO,0; read GPIO before sleep<br /> SLEEP ;<br /> GOTO INIT;<br /><br />我没按下按键,GP3口电平为高(用示波器看过),按理LED应该继续闪烁,可是实际上却跟读到低电平一样,跳过了GOTO EE;请问是什么原因啊?<br /> |
|