PIC-DEV-690RLに搭載されているRS232Cインターフェースを利用して、PCなどから送られてきた文字をエコーバックするとともに、その内容を文字LCDに表示するスケッチを紹介します。
PIC-DEV-690RLには、DSUB9のメスコネクタにRS232Cの信号が接続されています。PCとは、両端にDSUB9のメスとオスのコネクタが付いたストレートケーブルで接続できます。
このスケッチは、以下のボードでもそのまま動きます。(MPLABプロジェクトのデバイス設定や、ボードを指定するマクロ定義などはそれぞれに合わせた変更が必要です)
#include "picsys16.h" void setup() { pinMode(LED1, OUTPUT) ; pinMode(LED2, OUTPUT) ; CLCD_initDefault() ; // 文字LCDの初期化 CLCD_putrs("PIC-DEV-690RL") ; CLCD_setCursor(0,1) ; // カーソルを下の行に CLCD_putrs("SERIAL-CLCD") ; delayMilliseconds(3000) ; // タイトルを見てね Serial_begin(9600) ; // RS232Cを9600ボーで初期化 CLCD_clear() ; CLCD_setCursor(0, 1) ; CLCD_putrs("Ready!") ; // 通信の用意ができましたよ! CLCD_setCursor(0, 0) ; } void loop() { int c ; if (Serial_available()) { // PCから送られた文字がある c = Serial_getc() ; // 1文字取得 CLCD_putc(c) ; // 文字LCDに表示 while (Serial_busy()) // 送信できる? ; Serial_putc(c) ; // PCにエコーバック if (c == '\r') { // キャリッジリターン文字だったら CLCD_clear() ; // 文字LCDは消去して次の行の受け入れ準備 while (Serial_busy()) ; Serial_putc('\n') ; // 改行文字を追加してPCに送り返す } digitalWrite(LED2, !digitalRead(LED2)) ; // 1文字の受信ごとに点いたり消えたり } digitalWrite(LED1, ((int)millis()) & 0x200) ; // ハートビート }
PIC-DEV-690RLを評価ボードとして、PIC16F690のプログラム例を紹介します。
LCDへのUSART受信データの表示