閲覧総計:&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