#freeze 閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);) *16F628A PORTAスイッチ入力 [#n16c3947] 16F628AのPORTAをスイッチ入力(スイッチのオン(ON)、オフ(OFF)信号をPICに取り込む) に利用する際、2点の注意事項がありますので紹介します。 07/02/12 1.プルアップ抵抗が必要 16F628AのPORTAには「内部プルアップ」する機能がないので、プルアップ抵抗を付ける 必要があります。 (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(はい[0],いいえ[0]) #comment