2008年 02月 04日
LCD液晶を極める!
一日中、プログラミングしていると、意外と多くのプログラムをコーディングできるみたいだwww
LCDのプログラムを朝から晩まで、作り続けていたw
今日一日でここまで作ることが出来た。
void LCD_Init(void);//LCDの初期化
char LCD_Read(char RS);//LCDの読み込みサイクル
void LCD_Write(char RS,char lcd_data);//LCDの書き込みサイクル
void LCD_Write_DATA( char RS , char lcd_data );//LCDの4ビットデータを2回送信
char LCD_Read_DATA( char RS);//LCDの4ビットデータを2回受信
void LCD_Clear (void);//LCDのクリア
void LCD_Stear (void);//LCDのスタート
void LCD_Position (char Row, char Col); //LCDのポジション
void LCD_Display_Cmd (char cmd);//LCDの表示オン・オフコントロール
void LCD_Cursor_RightShift (char shift_num);//カーソルを右にシフト
void LCD_Cursor_LeftShift (char shift_num);//カーソルを左にシフト
ふぅ・・・・
ここまで作り込めば、意外と便利になったwww
カーソル表示も出来るし、クリアもポジションも思いのままw
関数の考え方とか、名前の付け方は、PSoC寄りですwwww
だけど、やっぱり自分で作るから、PSoCのプログラムより綺麗に表示できるのはなぜでしょうw
つかっててわかるが、あのPSoCのLCDプログラムには、LCDのビジーフラグを一切気にせずに実行している。
そのため、早すぎる変化にはついていけないようになっている。
R8Cとか、PSoCとか、20MHz以上のマイコンで低速なLCDなど扱う場合は、
しっかしビジーフラグを見ながら動かした方がいいと思う・・・
まぁ、その分他の動作が遅くなるんだけどね・・・・
OSっぽく、割り込み使ってタスク管理をすれば、LCD用ルーチンががががwww
半田無しの開発は、なんか新鮮で面白かったwww
ケーブルの絡みとか、プログラム中にケーブル外れてエラーに気が付かなかったりね・・・
まぁ、まだ解決できてない問題が、いくらかあるんだけどねwww
ん? よく見ると、このLCDのキャラクターって、ASCIIにほぼ同じだった orz
いや、正確には ASCIIコードの改良版というべきか、キャラクターコード という物だろう。
おぉ! キャラクターコードが同じだから、文字列をそのままデータとして出力できた!
な~んだ 簡単じゃないかwww
一部、表示できない特殊記号あるけど、当分使わないだろうw
キャラコードをHexで直接出力する関数作るのもいいな~www
ここを参考に見ましたw
あと、LCDは何故か、表示するには問題は無いのだが、パソコンで言う バックスペース の機能を再現するような便利なコマンドは無いのだろうか・・・
やっぱり、地道に、カーソル一つずらして文字も一文字消す って出来るだろうか・・・
これは、売れば500円ぐらいの価値にならないかなwwww
by Noise_Blog | 2008-02-04 22:02 | R8C