PSoCの使い方:特殊記号(゚Cなど)の表示とシリアル送信のやり方
09-December-'09 07:44
Age: 270 days



Category: PSoC




PSoCやPICなどのワンチップマイコンを利用してデジタル温度計をなどを自作すると、時々、特殊記号や温度の単位などもテキスト表示したくなります。そのときPSoCデザイナーなどのマイコン開発環境ではパソコンのキーボード入力でプログラムすることになります。

PSoCのCプログラミングの場合、テキスト文字をLCD液晶表示するにはキーボードを使って

   LCD_1_Position(1,5);
   LCD_1_PrCString("abcdefghijk");

という風に書きます。キーボードの中にあれば%や$や#などの記号はテキスト入力できます。ところが、「゚C」の左上の丸印は通常のキーボードには割り振られていません。このようなキーボードにない特殊記号はどうすれば良いのでしょうか?LCD液晶表示のデータシートをみれば温度単位の左上の丸印も表示できることが分かります。データシートによれば、上付きの丸印のコードは、16進数表示で”DF”であることが分かります。同様にしてカタカナやギリシャ文字などのコードも見つかります。バイトコードを一つだけ表示器に送るのには、”LCD_1_WriteData(BYTE bData)”が使えます。例えば、

   BYTE bDeg = 0xDF;

と定義しておいて、

   LCD_1_Position(1,5);
   LCD_1_WriteData(bDeg);
   LCD_1_PrCString("C  ");

という風にプログラムすれば、右上の写真のように液晶に温度の単位が表示されます。

同じようにして、シリアル通信でパソコンに送ると温度の単位はパソコン画面に表示されるのでしょうか?試してみました。シリアル通信でも同じようにして、

   UART_1_PutChar(bDeg);
   UART_1_CPutString("C ");

とすれば、右下の写真のようにパソコン画面に表示することできました。パソコンでも0xDFは同じ上付きの丸印に対応していました。ハイパーターミナルでも同じように表示されました。但し、不思議なことに受信したハイパーターミナルからPSoCデザイナーのコードエディター画面にコピーペーストして

   LCD_1_PrCString("゚C  ");

という風にしてコンパイルし直すと、デザイナーのコードエディター画面ではちゃんと表示されているのに実際の表示は文字化けになりました。








<- Back to: メイン ・セクション

サイト内のページ検索

Searchword:

Search in:


(上のページ検索は通常ページのみでブログ風ニュースの内容は検索できません)