閲覧総計:27237 (本日:1 昨日:0)
「A/D変換」を利用した簡単なプログラムを作成し、16F88の「A/D変換」機能の利用法、
稼働を確認しました。
A/D変換値(0〜1023)を用いて発光ダイオード(LED)の点滅間隔を0msec〜1023msec
にスムーズに変化させる。 07/02/03
/** * 16F88 アナログ入力テスト 抵抗ーLED点滅時間 * A/D値で発光ダイオード(LED)の点滅間隔を変更する * * PIC16F88 * * A/D: RA3 (10KΩ半固定抵抗で分圧しアナログ値を生成) * LED: RA0 * Clock: 8.0MHz 内蔵発振器使用 * Device 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); }
★この情報は役に立ちましたか?