- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)
*スイッチ入力(基本) [#vf52c2fe]
スイッチのオン(ON)、オフ(OFF)信号をPICに取り込む方法(スイッチ入力)を紹介します。
「PORTB 内部プルアップ機能」を利用
MikroCではスイッチのチャタリングを回避できる「Button()関数」が用意されている。
07/02/11
|&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
・「PORTB 内部プルアップ機能」を利用
・MikroCではスイッチのチャタリングを回避できる「Button()関数」が用意されている。 07/02/11
|&attachref(P1010293.JPG,zoom,150x150,button){新しい写真添付};|&attachref(16F628Aピンデザイン画像.jpg,zoom,150x150,button){新しい写真添付};|
/**
* 16F88 アナログ入力テスト 抵抗ーLED点滅時間
* A/D値で発光ダイオード(LED)の点滅間隔を変更する
* スイッチ入力
* (スイッチを押している間だけON、はなすとOFF)
*
* PIC16F88
* PIC16F628A 内蔵4MHz
* LED: RB3 スイッチ: RB4
* 電源:乾電池3本(4.5V)
*
* 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
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF
* _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
* MikroC 2.1
*/
void main() {
//使用変数の定義
unsigned int temp;
PORTB = 0b00000000; //PORTBの中身をきれいにする
TRISB = 0b00010000; //RB4を1:入力、他は0:出力に設定
OPTION_REG.NOT_RBPU = 0; //PORTBを内部プルアップ
//マイコンの初期化
//内臓クロック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);
if(Button(&PORTB, 4, 1, 0)) { //スイッチONの場合
PORTB.F3 = 1; //LED ON
} else { //スイッチOFFの場合
PORTB.F3 = 0; //LED OFF
}
}while(1);
}
★この情報は役に立ちましたか?
#vote(はい[0],いいえ[0])
#vote(はい[45],普通[16],いいえ[21])
#comment