« PICのお勉強(26) C言語編 2桁7セグLEDのダイナミック点灯 | トップページ | iPad Wi-FiモデルでソフトバンクWi-Fiスポットを使うには »

2012年6月24日 (日)

PICのお勉強(27) C言語編 液晶ディスプレイ SD1602を使ってみる

Sd160216f84a 「ブレッドボードではじめる マイコンプログラミング」に載ってるプログラムを参考にして(この本には本当にお世話になりました),秋月電子で買ったSD1602っていうLCDモジュールを8bitモードで動作させてみました。8bitモードは,DB0~DB7の8ピンを使って文字コードと制御コード合わせて8bitのデータを1度にやりとりし,4bitモードはDB0~DB3の4ピンを使って,8bitのデータを二度に分けてやりとりするんだそうです。ふーん。
まあそれはともかく,このLCDは16ピンが一列に並んでるから,ブレッドボードに載せるのに具合が良いですな。
Sd1602 また,このLCDは,LEDバックライトを点けることができますが,この写真のようにJ3にハンダを盛り,R9に100Ωの抵抗をハンダ付けしてやると,15,16番ピンに電圧をかけなくてもバックライトが点灯するようになります。
 僕が買ったのは,バックライトがグリーンですが,オレンジの方が視認性が良いらしいですよ。今度買ってみようかな。
そういえば,コントラスト調整用の3番ピンは,GNDに落としちゃったけど,これで大丈夫なのかな。ちゃんと表示されてるから大丈夫ですよね。
Lesson27 LCDに14本もジャンパワイヤをつながなくちゃいけないので,なんだかぐちゃぐちゃになってますが,なんとかお約束の「Hello,World!」を表示させることができました。感動。
 ソースはこれ→lesson27.cですが,SD1602を8bitモードで動作させるための関数をまとめたヘッダファイルSD1602_8bit_mode.hも必要になります。HI-TECH Cで使えるように,オリジナルを少し改変してあります。
 これをlesson27.cと同じフォルダに入れておいてコンパイルすれば,ちゃんとHEXファイルができるはずです。

/************************************
16F84A HI-TECH C v.9.83
LCDモジュール  SD1602のテスト
************************************/
#define _LEGACY_HEADERS
#include "PIC.h"
#include "SD1602_8bit_mode.h"
#define _XTAL_FREQ 20000000 //20MHz

__CONFIG(HS & WDTDIS & PWRTDIS & UNPROTECT);

void main(void)
{
char s[] = "Hello, world!";

TRISA = 0x00; //RA0~RA4は出力
PORTA = 0x00;
TRISB = 0x00; //RB0~RB7は出力
PORTB = 0x00;

SD1602_init(); // SD1602の初期化

while (1)
{
SD1602_clear(); // 表示クリア
SD1602_control(0x80); // カーソルを0行目の先頭に移動
SD1602_print(s); // テキストデータを表示
__delay_ms(1000);

SD1602_clear();
SD1602_control(0xC0); // カーソルを1行目の先頭に移動
SD1602_print(s);
__delay_ms(1000);
}
}

|

« PICのお勉強(26) C言語編 2桁7セグLEDのダイナミック点灯 | トップページ | iPad Wi-FiモデルでソフトバンクWi-Fiスポットを使うには »

PICマイコン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/26930/55035179

この記事へのトラックバック一覧です: PICのお勉強(27) C言語編 液晶ディスプレイ SD1602を使ってみる:

« PICのお勉強(26) C言語編 2桁7セグLEDのダイナミック点灯 | トップページ | iPad Wi-FiモデルでソフトバンクWi-Fiスポットを使うには »