PIC 16F88によるLED点滅を備忘のため記録します
(注意)PCを入れ替えによりMPLABを最新版(V5.45)XC8(V2.31)で再セットアップしたところ、下記説明のプログラムでコンパイルエラーを起こすようになりました。(2021年01月22日)
PCを入れ替え新たにセットアップしたXC8(V2.31)をアンインストールのうえ、Microchip社のアーカイブのダウンロードサイト(検索サイトで "XC8 Ver1 archive"で検索し「MPLAB Ecosystem Downloads Archive Microchip Technology」を探す)からXC8(V1.45)をダウンロードし、セットアップするとコンパイルでエラーがなくなりました。(この対策方法は、ネット検索で見つけました。)(2021年01月23日)
MPLAB(V5.45)付属のIPEでは、PICへの書き込みが出来ませんでしたので、アンインストールのうえ、MPLAB X (V5.15)にしました。(2021年01月25日現在)
■ 2020年03月20日 作成
2020年03月22日 修正
2020年03月25日 修正(#pragma config MCLRE = ON → OFFへの変更)
2020年06月23日 画像の追加
2021年01月21日 1.新規プロジェクト作成の誤字訂正(12F675→16F88)
MPLAB IDEv5.45の場合を追加
2021年01月25日 IDE / MPLAB訂正 コンパイラバージョン追記 MPLAB IDEv5.45の場合削除
2021年05月22日 MPLABXIPEの「Adbanced Mode→Password」の修正とボルトに関する補記の追加
2024年02月22日 ■手順 3.configの設定 誤記(Windows → Window)訂正
■参考にされる場合は、自己責任でお願いします。
■作成時の環境
OS / Windows10
IDE / MPLAB X V5.15
コンパイラ / XC-8 v1.45
PICkit 3
■準備品
ブレッドボード
LED
抵抗 330Ω(前後)
■手順
1.新規プロジェクト作成
IMPLABXIDEを起動 メニュー File → NewProject → Next →
Device → PIC 16F88を選択 → Next → PICkit3 →Next → ●xc8(v・・)[・・・] → Next →
ProjectName[例:16F88_led] → Finish
これで16F885_ledという新規プロジェクトが出来ます。
2.新規プロジェクトにプログラムを記述する場所を作成します。
・メニュー Windows → Projects → Projects[タブ] → 16F88_led「+」 クリック → Source Files上で右クリック → New→ C SorceFliles → File Name [newfiles] → Finish
3.configの設定
下記の部分を張り付ける。
・メニュー Window → Terget Memory Views → Configration Bits →
設定画面(何もせず) → 「Generate Source Code to Output」ボタンをクリック
すると設定が自動作成されるので内容(見えていない上の部分を含むすべて)をコピー
しプログラムの設定エリアに張り付ける。
当該ウィンドウ右上角のアイコンをクリックして閉じる。
但し、このままではLED点滅が不安定となるので#pragma config MCLRE = ON
を OFFに変更すること。
4.クロックの設定
クロックを以下のとおり記述
#define _XTAL_FREQ 4000000 //delay関数を使う為の設定 クロックは4MHz
5.動作のプログラム
PORTA = 0x00; // PORTAを初期化
PORTB = 0x00; // PORTBを初期化
TRISA = 0x00; // PORTAの出力設定
TRISB = 0x00; // PORTBの出力設定
RA0 = 1;
__delay_ms(1000); // 1秒の待ち時間
RA0 = 0;
__delay_ms(1000); // 1秒の待ち時間
return ;
}
////////////////////////////////////////////////////////////
全体のプログラムは以下のとおり
////////////////////////////////////////////////////////////////
// Use project enums instead of #define for ON and OFF.
#pragma config FOSC = EXTRCCLK // Oscillator Selection bits (EXTRC oscillator; CLKO function on RA6/OSC2/CLKO)
#pragma config WDTE = ON // Watchdog Timer Enable bit (WDT enabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF //ON→OFF 20200325 不安定のため変更 // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = ON // Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)
#pragma config CPD = OFF // Data EE Memory Code Protection bit (Code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off)
#pragma config CCPMX = RB0 // CCP1 Pin Selection bit (CCP1 function on RB0)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
#pragma config IESO = ON // Internal External Switchover bit (Internal External Switchover mode enabled)
PORTA = 0x00; // PORTAを初期化
PORTB = 0x00; // PORTBを初期化
TRISA = 0x00; // PORTAの出力設定
TRISB = 0x00; // PORTBの出力設定
//TRISB = 0xFF; // PORTBの入力設定
RA0 = 1;
__delay_ms(1000); // 1秒の待ち時間
RA0 = 0;
__delay_ms(1000); // 1秒の待ち時間
return ;
}
////////////////////////////////////////////////////
この内容で、コンパイルすると、
C:\Users\コンピュータ名\MPLABXProjects\16F88_led.X\dist\default\production
にHEXファイルが出来上がります。
6.PICkit3へのセット
PICkit3に16F88をセットします。
(18ピン用のセッティングが出来ていること)
7.MPLABXIPEによるプログラムの書き込み
MPLABXIPEを起動する。
Device → PIC16F88 → Apply → Tool → 接続されたPICkit3が表示されている → メニュ-→Settings →Adbanced Mode→ Password("microchip"画面下にも記載済) → Logon → 左側ウインドウのPower → Power Target circuit Tool の左側□にチェックする → 左側ウインドウのOperate → sourceのBrowseでHexファイルを選択 → Programをクリック → ok
これでPICに書き込まれるはずです。
なお、使用マシン環境の為か、"volts"に関するエラーメッセージが出ますので、IPEの左側ウインドウの Power → VDD: のボルト表示を5から4.8に変更すると書き込みすることが出来ましたので、このことも補記します。
8.配線
16F88のピン配置
右側真ん中のVDDピンはプラス(4~5V)
左側真ん中のVSSピンはGNDへ
右上から二番目のピンに抵抗を介してLEDの長いほうの線のプラスを接続し、
短いほうの線のマイナス側をGNDに接続します。
9.画像を添付
以上
失礼致しました。Amazonで日本のラズベリーパイを販売している林遠です。
ブログを拝見しました。弊社のラズベリーパイレビューブログ記事を書きしてくれませんか。
こちらは無料でサンプルを提供します。
連絡メールはjp02@vertue.cnです。
御返事お待ちしております。どうぞよろしくお願いします。
投稿: 林遠 | 2022年9月26日 (月) 14時55分
林遠 様
ゆきゆき電子工作ブログ管理者です。
ご連絡ありがとうございます。
さて、ご依頼の記事の件につきまして、大変申しわけございませんが多忙につきお応えすることはできません。
ご了承のほどお願いいたします。
投稿: ゆきゆき電子工作ブログ管理者 | 2022年9月28日 (水) 08時07分