PIC(3)-RS232C通信

本日は、PICを使用したシリアル通信機能を構築しようと思います。

PICの周辺機器はUARTを使用します。UARTは、Universal Asynchronous Receiver Transmittionの略で、いわゆる汎用のシリアル通信の機能をもった周辺回路モジュールです。名前の通り、全二重の非同期式通信であり、調歩同期式通信とも呼ばれます。

RS232Cは、OSI参照モデルの物理層に位置づけされます。ネットワークの物理的な接続・伝送方式を定めたものです。PIC側とPC側の電圧レベルを合わせるために、中間に変換するデバイスが必要となります。中間デバイスとしては、MAX232やFT232などがあります。今回使用するボードには、FT232が使用されていました。

下記のコードは、RS232C通信規格で、UARTを使用した通信機能のコードになります。クライアント側から文字列を送信すると、PIC側から同じ文字列を返信する機能になります。

PIC(2)-タイマー割り込み機能

本日は、PICを使用したタイマー割り込み機能です。タイマー割り込み機能は、一定周期で処理をしたい場合などに使用します。下記のコードは、タイマー機能を使用して、50ms毎にLEDランプが点灯、消灯を繰り返す機能になります。

タイマーのカウント数について考えていきます。今回、クロックは4MHzに設定しています。内部クロックの場合、カウンタは4周期に1カウントするので、今回は1000000カウントできることになります。この場合、LEDの点灯、消灯は1μsecになります。今回は、50msecという設定なので、500000カウントすれば良い事になります。ただし、タイマーのカウントは8bitしか用意されていません。ようするに、256回までしかカウントできません。

そこで、プリスケーラを活用します。プリスケーラは8bit用意されているので、これを活用すると256×256で65536カウントできます。これなら50000カウントできるので、50msecの周期をつくれそうです。50000カウンタをプリスケーラ値256で割ると、約195カウンタになります

タイマーのMAX値の256カウントから195カウントを引いた値をタイマーの初期値にすることで、50msec後にタイマー0割り込みが発生するような機能が構築できます。TMR0にカウンタの初期値を入力するので、TMR0=0x3Dとなっております。このカウンタ値の設定は、メイン関数の部分の他にも、タイマー0割り込み関数でも設定しております。

それでは、コーディングしていきたいと思います。タイマー機能を使用して、50ms毎にLEDランプが点灯、消灯を繰り返す機能のソースコードは下記のようになります。

PIC(1)-スイッチによるLED点灯

PICはMicrochipTechnology社が製造しているマイコンです。PICは、Peripheral Interface Controllerの略で、日本語訳にすると周辺機器接続部制御となります。PICはマイコンの一種で、CPUや入出力インターフェイス(I/O)、メモリ(RAM、ROM)が一つのICの中に搭載されたワンチップマイコンが主流です。以前のマイコンはCPUやI/O、RAM、ROMは別々のICとして分かれていたようです。PICは機能の違いやピン数の違い、メモリ容量の違いなどでさまざまな種類があります。

今回は、PICを使用して、LEDを制御してみたいと思います。使用するマイコンは、PIC16F627Aです。以下のようなH/Wがセットになっている書籍があったので購入して使用しました。

キットで遊ぼう電子回路 新PIC入門C言語編

下記から統合開発環境「MPLABX」がダウンロードできるので、ダウンロードしてインストールしておきます。インストールするとXCコンパイラをインストールすかどうか問い合わせがあると思いますので、XC8コンパイラを忘れずにインストールしておいてください。

https://www.microchip.com/mplab/mplab-x-ide

それではMPLABを実行して、開発環境を開きます

新規プロジェクトを作成していきます。FileメニューよりNewProjectを選択します。新規プロジェクト作成ダイアログが開かれれるので、Standalone Projectを選択して、Nextを選択します。

ここでは、使用するデバイス(PIC)を選択して、Nextを選択します。使用するデバイスは、PIC16F627Aです。

ヘッダーの選択画面が開かれますが、今回使用しないので、Nextを選択します。使用しているPICライターの選択ダイアログ開かれます。私はPICkit3を使用しているので、PICkit3を選択して、Nextを選択します。

使用するコンパイラを選択するダイアログが開かれので、XC8を選択します。XC8はMPLAB Xをインストールした時にはインストールすると思いますが、インストールしなかった場合は別途インストールしてください。

プロジェクトの作成先を選択するダイアログが開かれます。Project Name、Project Location、Project Folderを設定します。今回は、Project NameをSample_LED_001、Project Locationをドキュメントフォルダの中のMPLABフォルダにしました。Project NameとProject Locationを設定するとProject Folderが自動で設定されます。日本語文字を使用する為に、EncordingはShift_JISを選択して、Finishを選択します。

これで、新規プロジェクトの作成は完成です。画面左上側にプロジェクトが表示されているのがわかります。それでは、ソースファイルの作成に取り組みます。Projectsの中のSorce Filesを右クリックして、メニューの中のNew→C Source Fileを選択します。ファイル名を設定して、Finishを選択します。C Source Fileのファイル名設定画面が表示されるので、ファイル名を設定して、Finishを選択します。

C Source Fileが作成されたので、この中にプログラムを書き込んでいきます。

続きを読む