• 締切済み

pic のIOポート設定

PICの初心者です。 16F876AのAポートをデジタルに変更したいのですがなかなかうまくいきません。 初心者の質問で申し訳ありませんが教えてください。 よろしくお願いいたします。

みんなの回答

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.3

BTFSC -> BTFSS 論理が反転しています また PAT1 より戻る時に、PORTA に BANK を戻していますか? /MCLR プルアップ抵抗、発振器はついてますか? RA0-スイッチ RA5-LED で連動テストしました、問題ありません PIC16F877A 使用 MAIN2 BANKSEL TRISA MOVLW B'00001111' MOVWF TRISA MOVLW 0x06 MOVWF ADCON1 BANKSEL PORTA LOOP2 BTFSS PORTA,0 CALL LED_ON BTFSC PORTA,0 CALL LED_OFF GOTO LOOP2 LED_ON BSF PORTA,5 RETURN LED_OFF BCF PORTA,5 RETURN

office3110ss
質問者

お礼

ありがとうございました。 動きました!! 細かいご指導、本当にありがとうございました。 これで今日はゆっくり眠れます。

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.2

アセンブラの場合 BANKSEL ADCON1 ; RP0,RP1 設定 MOVLW 0x06 MOVWF ADCON1 で合っています、 また RA4 は、オープンドレインなのでHレベル出力はプルアップ抵抗が必要です 具体的症状と、プログラムの提示を願います。

office3110ss
質問者

補足

前段のところです。動作部分の後半は省きます。 単純にプルアップしたRA0のスイッチを押すことでPAT1の動作をするプログラムです。 ;************ list p=16f876A #include <p16F876A.inc> __CONFIG _CP_OFF & _LVP_OFF & _BOREN_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ;************ CBLOCK 020h COUNT COUNT1 COUNT2 COUNT3 ENDC ORG 0 ;************************* BSF STATUS,RP0 MOVLW B'00001111' MOVWF TRISA MOVLW B'00000000' MOVWF TRISB MOVLW B'00001111' MOVWF TRISC BCF STATUS,RP0 MOVLW B'00000110' MOVWF ADCON1 ; ----------------------------------------------------- MAIN BTFSC PORTA,0 CALL   PAT1  GOTO MAIN ; --------動作1------------------------------------ PAT1

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.1

XC8 の場合、デジタルモード (A/Dコンバータ未使用)は ADCON1=0x06; // A/D 不使用 を追加して下さい

office3110ss
質問者

補足

ご回答ありがとうございます。 アセンブラなのですが、下記のプログラムを追加したのですがやはりうまくいきませんでした。何か間違っていますでしょうか? またはほかに原因があるのでしょうか? BCF STATUS,RP0 MOVLW B'00000110' MOVWF ADCON1

関連するQ&A