閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)

*16F628A PORTAスイッチ入力 [#n16c3947]

16F628AのPORTAをスイッチ入力(スイッチのオン(ON)、オフ(OFF)信号をPICに取り込む)
に利用する際、2点の注意事項がありますので紹介します。  07/02/11

1.プルアップ抵抗が必要

16F628AのPORTAには「内部プルアップ」する機能がないので、プルアップ抵抗を付ける
必要があります。
(10KΩを推奨(0.1mA以上の電流を確保したい為50KΩ以下))

2.PORTAをデジタル利用にする設定が必要

16F628AのPORTAはデフォルトでは「アナログコンパレータ」として利用する設定になっ
ている。
スイッチ入力利用時には、この設定を「アナログコンパレータは使用しない」すなわち
「PORTAをデジタル入出力に使用」の設定に変更する必要がある。
(書式)
CMCON = 0b00000111;

  07/02/12

|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|

 /**
 * 16F88 アナログ入力テスト 抵抗ーLED点滅時間
 * A/D値で発光ダイオード(LED)の点滅間隔を変更する
 *
 * PIC16F88
 *
 * A/D: RA3 (10KΩ半固定抵抗で分圧しアナログ値を生成)
 * LED: RA0
 * Clock: 8.0MHz 内蔵発振器使用
 * Devvice Flags:
 * _CP_OFF  _CCP1_RB3  _DEBUG_OFF  _WRT_ENABLE_OFF
 * _CPD_OFF  _LVP_OFF  _BODEN_OFF  _MCLR_OFF  _PWRTE_ON
 * _WDT_OFF  _INTRC_IO  _IESO_ON__CFG2  _FCMEN_ON__CFG2
 *
 * MikroC v6.2.1
 */
 void main() {
     //使用変数の定義
     unsigned int temp;
 
     //マイコンの初期化
     //内臓クロック8MHzに設定
     OSCCON.IRCF2=1;
     OSCCON.IRCF1=1;
     OSCCON.IRCF0=1;
 
     //A/D変換clock設定 0.125us*16倍=2.0us
     ADCON1.ADCS2=1;
     ADCON0.ADCS1=0;
     ADCON0.ADCS0=1;
 
     // A/D利用PORTの設定 // ANALOG=1, DIGITAL=0 //
     ANSEL = 0b00001000; //RA3のみアナログ使用
 
     PORTA = 0b00000000; //PORTAの中身をきれいにする
     TRISA = 0b00001000; //RA3のみ1:入力に設定、他は0:出力
     //マイコンの初期化終わり
 
     do {
         //アナログデータの取得 10bit(0~1023)
         temp = ADC_Read(3); //RA3(AN3)アナログ入力
 
         //LED点滅間隔が0-1023msecで滑らかに変更出来る
         PORTA.F0 = 1;
         VDelay_ms(temp);
         PORTA.F0 = 0;
         VDelay_ms(temp);
     } while(1);
 }

★この情報は役に立ちましたか?
#vote(はい[0],いいえ[0])

#comment