「PIC16F88 + DHT11」のプリント基板を作成した。
相変わらずDIPを無理やり表面実装する「なんちゃって表面実装」だ。
アキシャルリードな抵抗まで表面実装するほど、穴あけが嫌い。
あと、上のサイトからいただいたコードではConfig Bitsで MCLR = ON になっていたのを MCLR = OFF とした。
さらに、PIC16F88からPIC16F1827に変更した。
PIC16F88は250円(購入時200円)で手持ちの残り1個なのに対して、PIC16F1827は130円(購入時110円)で手持ちの残り3個だったから。
以前にも書いたがPIC16F1827は上位チップだが下位チップであるPIC16F88の約半分の値段。
ピン配置には互換性があるのでそのまま挿せる。
プログラムの変更点は以下のとおり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
-----Before----- #pragma config FOSC = INTOSCIO // Oscillator Selection bits (XT oscillator) -----After----- //#pragma config FOSC = INTOSCIO // Oscillator Selection bits (XT oscillator) #pragma config FOSC = INTOSC // Oscillator Selection (INTOSC oscillator: I/O function on CLKIN pin) -----Before----- #pragma config CCPMX = RB0 // CCP1 Pin Selection bit (CCP1 function on RB0) -----After----- //#pragma config CCPMX = RB0 // CCP1 Pin Selection bit (CCP1 function on RB0) APFCON0bits.CCP1SEL = 1;//CCP1/P1A function is on RB0 -----Before----- ANSEL = 0x00;//Configuration of analog and digital pin -----After----- //ANSEL = 0x00;//Configuration of analog and digital pin ANSELA = 0; ANSELB = 0; -----Before----- OSCCON = 0x7C;//To use PIC16F88 8 MHz internal oscillator -----After----- #pragma config PLLEN = OFF // PLL Enable (4x PLL disabled) //OSCCON = 0x7C;//To use PIC16F88 8 MHz internal oscillator OSCCONbits.IRCF = 0b1110;//8 MHz |
消さずに//でコメントアウトしてある。
上の3つはコンパイラがエラーを吐くのでそれを頼りに修正するだけですぐに済む。
最後のは、ちょっと考えたが、クロック数の設定を元と同じにしたことになる。
すべてのケースでこんなに簡単に置き換えられるかは分らないが、比較的楽な感じはする。
新たな用途でわざわざ高いPIC16F88を購入することは無いので、動作確認用に1つはキープしておこうという配慮だ。