• 追加された行はこの色です。
  • 削除された行はこの色です。
#freeze
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)
 
 *16F628A PORTAスイッチ入力 [#n16c3947]
 
 16F628AのPORTAをスイッチ入力(スイッチのオン(ON)、オフ(OFF)信号をPICに取り込む)
 に利用する際、2点の注意事項がありますので紹介します。  07/02/12
 
 1.プルアップ抵抗が必要
 16F628AのPORTAには「内部プルアップ」する機能がないので、プルアップ抵抗を付ける
 必要があります。(PORTBには内部プルアップ機能がある。)
 (10KΩを推奨(0.1mA以上の電流を確保したい為50KΩ以下))
 
 2.PORTAをデジタル利用にする設定が必要
 16F628AのPORTAはデフォルトでは「アナログコンパレータ」として利用する設定になっている。
 スイッチ入力利用時には、この設定を「アナログコンパレータは使用しない」すなわち
 「PORTAをデジタル入出力に使用」の設定に変更する必要がある。  07/02/12
 (書式)
 CMCON = 0b00000111; //コンパレータを使用しない
 
 |&attachref(P1010294.JPG,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
 
  /**
  * スイッチ入力
  * (スイッチを押している間だけON、はなすとOFF)
  * (PORTAをスイッチ入力に利用する場合)
  *
  * PIC16F628A   内蔵4MHz
  * LED: RB3 スイッチ: RA1
  * 電源:乾電池3本(4.5V)
  *
  * Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF
  *        _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
  * MikroC 2.1
  */
  void main() {
      PORTA = 0b00000000; //PORTAの中身をきれいにする
      PORTB = 0b00000000; //PORTBの中身をきれいにする
      TRISA = 0b00000010; //RA1を1:入力、他は0:出力に設定
      TRISB = 0b00000000; //PORTB 全てを0:出力に設定
  
      CMCON = 0b00000111; //コンパレータを使用しない
  
      do {
          if(Button(&PORTA, 1, 1, 0)) { //スイッチONの場合
              PORTB.F3 = 1; //LED ON
          } else {              //スイッチOFFの場合
              PORTB.F3 = 0; //LED OFF
          }
      }while(1);
  }
 
 ★この情報は役に立ちましたか?
 #vote(はい[12],普通[4],いいえ[4])
 #vote(はい[13],普通[5],いいえ[5])
 
 #comment_nospam