<br /><br />程序:<br /> ORG 00H<br /> GOTO START<br /> ORG 20H<br />START: BSF STATUS,5<br /> MOVLW 14H<br /> MOVWF TRISA<br /> BCF STATUS,5<br /> MOVLW 08H<br /> MOVWF PORTA<br />LOOP: BTFSC PORTA,4<br /> GOTO LOOP<br /> BSF PORTA,0<br /> GOTO $ ;GOTO START<br /> <br />;电路和条件:<br />;PIC16F877A: VCC=4.64V,4.7K电阻22PF电容,配置位: L:FF;H:3F 芯片代码:0E28<br />;RA3=1;RA5=0之间接104电位器两个定端子,RA4为输入并串接1K电阻<br />;RA0=0->RA1=0之间接一个LED+1K电阻<br />出现的问题:<br />;RA4=3.167V,<br />;表笔碰RA4,则RA3=0,RA0=1(LED亮)持续1S左右后,RA0=0,RA3=1,且复位可使RA0=0,RA3=1<br />;RA4电压值减小,则LED可常亮,但仍为RA3=0.<br />;RA4到RA5之间的电阻越小以上情况越容易出现,LED越不容易灭.反之以上情况越不容易出现,4.43V的时候很难出现该情况.<br />当最后一句换成GOTO START后的情况:<br />;LED灭的时候:RA4=2.86V;LED亮的时候:RA4=0.791V,RA3=1.265V. 其中RA4能随电位器正向变化,无表笔接触则将近1S左右灭(时间不定),有表笔接触则持续时间长<br />;LED灯亮时,其相应端口为:RA0=3.253V,RA1=0.04V<br />;手碰引脚均没发现有影响,只有用金属线碰才起作用<br />LED亮灭与程序逻辑不相符,IO电平无原由的变化,求高手给予指点. |