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