PICをUSB接続でパソコンに接続して使いたいと思い、昨年3種類のPICを購入しました。
PIC16F1455
PIC18F14K50
PIC18F27J53
の3種類です。
PIC16F1455については、一応USBが使えるところまでできましたので、続いてPIC18F14K50の勉強に進むことにします。
ただ、PIC18シリーズのPICを使うのは初めてですので、ゆっくりとしっかり勉強していくことにします。
環境は、
MPLAB X ver6.15
XC8 ver2.45
MCC ver5.3.7
です。
まず、PIC16シリーズとPIC18シリーズの違いを確認しておきます。
プログラムワードは、PIC16が14ビットですが、PIC18は16ビットに拡大されています。更にPIC18は多重割り込みが可能です。また、PIC18のKシリーズは低消費電力、低価格、高機能などの特徴があります。
コンパイラは、使い慣れたXC8を使いますが、PIC18は、C18コンパイラも使えます。
本来、PICはアーキテクチャを十分に理解してプログラミングすべきですが、XC8とMCCを使ってプログラミングする場合は、かなりアバウトでもプログラミングできるところが、我々素人にはありがたいです。
では、ターゲットPICのPIC18F14K50のスペックを見てみます。今回使うのは20pinのDIPパッケージ(秋月電子で400円)でピンアサインは次のとおりです。
プログラムメモリFlash16k byte
データメモリ SRAM 768 byte
EEPROM 256 byte
電源電圧 1.8~5.5V
クロック最大48MHz
GPIO 15
10bit A/D 11ch
ECCP(PWM) 1
MSSP SPI Yes
I2C Yes
EUSART 1ch
Comperator 2
Timer(8/16bit) 1/3
USB Yes
です。
さっそく、最初の1歩Lチカ(LED点滅)をやってみました。回路図です。
RC0に接続したLEDを点滅させてみます。
まず、MPLAB Xでプロジェクトを作成して、次にMCCの設定をします。
今回は、クロックとI/Oの設定だけを次のように設定しました。
設定が終わったらGenerateして、main.cを次のようにしました。
-----------------------------------------------------------------
#include "mcc_generated_files/mcc.h"
#define LED LATC0
void main(void)
{
// Initialize the device
SYSTEM_Initialize();
while (1)
{
LED = 1;
__delay_ms(1000);
LED = 0;
__delay_ms(1000);
}
}
-----------------------------------------------------------------------
PICへのプログラム書き込みは、下の写真のようにPICKit3と付属のゼロプレッシャーソケットを使いました。
ブレッドボードです。電源は乾電池2本(3V)です。無事1秒ごとに点滅しました。
※コメント投稿者のブログIDはブログ作成者のみに通知されます