You are here

LCDへのUSART受信データの表示

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受信データの表示

開発ソフト: 
チップファミリー: 
MCUチップ: