JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

PIC18F14K50の勉強を始めます。 まずはLチカから

2023-11-07 14:10:54 | PIC18F14K50
 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秒ごとに点滅しました。



最新の画像もっと見る

コメントを投稿