■ BASCOM-AVR (DEMO) の使用方法 ■
命令文のリファレンス・マニュアル 使用方法のページへ戻る
キャラクタLCD関連の命令
● キャラクタ(テキスト)タイプの液晶表示器を、制御する命令です。
CONFIG LCDMODE LCDの接続方式により、動作モードを設定します。 (PORT or BUS)
CONFIG LCDBUS LCDを接続する場合に、データ線の本数を設定します。 (4 or 8)
CONFIG LCDPIN LCDをPortモードで接続した場合に、データ/E/RSを接続する、ポート/ピンを設定。
CONFIG LCD 接続するLCDの、画面構成等の仕様を指示します。
DISPLAY LCDの表示全体を、オン/オフします。
CLS LCDの表示全体を消去し、カーソルをホーム(画面左上)の位置に移動します。
CURSOR LCDのカーソル表示を、オン/オフまたは点滅させます。
LOCATE LCDのカーソルを、指定された位置に移動させます。
HOME LCDのカーソルを、ホームまたは指定された行の1列目に移動させます。
UPPERLINE LCDのカーソルを、1行目の1列に移動させます。
LOWERLINE LCDのカーソルを、2行目の1列に移動させます。
THIRDLINE LCDのカーソルを、3行目の1列に移動させます。
FOURTHLINE LCDのカーソルを、4行目の1列に移動させます。
SHIFTCURSOR LCDのカーソルを、現在の位置から、左または右へ1文字分移動させます。
LCD LCDに、変数の値または文字列を表示させます。
SHIFTLCD LCDに表示されている全ての文字を、左または右へ1文字分移動させます。
DEFLCDCHAR LCDに内蔵の、カスタム文字用メモリー(CG-RAM)に、文字データを書き込みます。
INITLCD LCDを、初期化します。
LCDCMD LCDにコマンド・モードの1バイトを送信します。
LCDDATA LCDにデータ・モードの1バイトを送信します。
$LCD LCDをBasモードで接続した場合に、LCDに割り当てるアドレスを指定します。
$LCDRS LCDをBasモードで接続した場合に、RSに割り当てるアドレスを指定します。
$LCDVFO LCD命令で、HD44780仕様LCD互換VFD用の、Enable信号を出すように命じます。
$LCDPUTCTRL LCD命令文の処理を、オリジナルのアセンブラ・ルーチンで行う場合に使用します。
$LCDPUTDATA LCD命令文の処理を、オリジナルのアセンブラ・ルーチンで行う場合に使用します。
LCDFONT 一部のキャラクターLCDに搭載されているフォントを切り替えます。


キャラクタLCDの、表示テスト・プログラム (例)

・当ページの、ATmega8535テストボード用プログラムです。
・LCDの接続回路は、下記のページを参照してください。
 
    AVR テストボードの製作 (ATmega8535)
 

' * LCD Test Program *
' * AVR Used is ATmega8535 *
'
$regfile = "m8535.DAT"
$crystal = 12800000
'
Porta = &B11111111
Portb = &B00000011
Portc = &B11111111
Portd = &B11111111
'
Config Lcdmode = Port
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5
Config Lcdpin = Pin , Db6 = Portb.6 , Db7 = Portb.7
Config Lcdpin = Pin , E = Portb.3 , Rs = Portb.2
Config Lcd = 16 * 2
'
Dim Y As Word
Dim M As Byte
Dim D As Byte
'
Deflcdchar 0 , 16 , 31 , 20 , 14 , 20 , 31 , 4 , 32
Deflcdchar 1 , 15 , 9 , 15 , 9 , 15 , 9 , 17 , 32
Deflcdchar 2 , 31 , 17 , 17 , 31 , 17 , 17 , 31 , 32
Cls
'
Y = 2007 : M = 10 : D = 23
Locate 1 , 2
Lcd "LCD Test Prg."
Lowerline
Lcd Spc(2) ; Y ; Chr(0) ; M ; Chr(1) ; D ; Chr(2)
'
End
'
'
'
'AVRデバイスを"ATmega8535"に設定
'クロック周波数を12.8MHzに設定
'
'PORT A Bit0-7 をプルアップ
'PORT B Bit0-1 をプルアップ
'PORT C Bit0-7 をプルアップ
'PORT D Bit0-7 をプルアップ
'
'キャラクタLCDをポートモードに設定
'データの上位4本を接続
'LCDのポートを割り当て
'
'
'LCD表示を16文字2行に設定
'
'使用する変数を宣言
'
'
'
'カスタム文字(0)に「年」を書き込み
'カスタム文字(1)に「月」を書き込み
'カスタム文字(2)に「日」を書き込み
'LCDの表示全体を消去
'
'変数に年月日を代入
'カーソルを1行2列に移動
'テストメッセージを表示
'カーソルを2行目に移動
'年月日を表示
'
'プログラムの終了




CONFIG LCDMODE 一覧へ戻る
キャラクタLCDの接続方式により、動作モードを設定します。 (PORT or BUS)

書式 Config Lcdmode = type
注釈
type = Port  - ポートモード
Bus  - バスモード

参照 CONFIG LCDBUS

 
Portモード (pin mode)
・このポートモードが、デフォルトです。
・液晶表示器の、データ線およびRSとEを接続するために、任意のポートの任意のピンを選ぶことが
 できます。 (CONFIG LCDPIN命令参照)
・設計によって、空いているピンを自由に選べるため、基板のレイアウトが簡単になり、柔軟性が
 あります。
・その反面、ポート制御が複雑になるため、コンパイル後のコード(フラッシュメモリー使用量)は
 多くなってしまいます。
 
Busモード
・このモードは、外部RAMを接続するために、ポートをアドレスバスとデータバスに割り当てている
 場合に有効です。
・液晶表示器のデータ線、上位4本または8本すべてを、データバスに接続します。
・EとRSへは、アドレスデコーダで振り分けて接続し、割り当てたメモリーアドレスに書き込みを
 行うことで制御します。 ($LCD、$LCDRS命令参照)

・コンパイラの[Options]→[Compiler]→[LCD]からも設定が可能ですが、この命令が優先されます。



CONFIG LCDBUS 一覧へ戻る
キャラクタLCDを接続する場合に、データ線の本数を設定します。 (4 or 8)

書式 Config Lcdbus = value
注釈
value = 4  - 上位4本を接続。
8  - 8本すべてを接続。

参照 CONFIG LCDMODE

 
・ポートモードでは、データ線の上位4本を接続する(4)が、デフォルトです。
・バスモードでは、データ線8本すべてを接続する(8)が、デフォルトです。

・コンパイラの[Options]→[Compiler]→[LCD]からも設定が可能ですが、この命令が優先されます。



CONFIG LCDPIN 一覧へ戻る
キャラクタLCDを、Portモードで接続した場合に、データ線およびEとRSを接続する、ポートとピンを
設定します。

書式 Config Lcdpin = Pin , Db4=PN , Db5=PN , Db6=PN , Db7=PN , E=PN , Rs=PN
 
(データ線を8本接続の場合)
Config Lcdpin = Pin , Port =
PORTx , E = PN , Rs = PN
注釈
PN = 接続する、ポート・ピンの名前。 (ポートBのビット2ならば、PORTB.2
PORTx = データ線8本を接続する、ポートの名前。 (ポートCならば、PORTC

参照 CONFIG LCDMODE , CONFIG LCDBUS

 
・CONFIG LCDMODE命令で、Portモード (pin mode)に設定する必要があります。
・CONFIG LCDBUS命令で、データ線の本数を設定する必要があります。

・コンパイラの[Options]→[Compiler]→[LCD]からも設定が可能ですが、この命令が優先されます。



CONFIG LCD 一覧へ戻る
接続するキャラクタLCDの、画面構成等の仕様を指示します。

書式 Config Lcd = type , Chipset = device , Contrast = value
注釈
type = 16*1 , 16*2 , 16*4 , 20*2 , 20*4
24*2 , 40*2 , 40*4 , 16*1a
 - 表示文字数 (列*行)
device = KS077 , Dogm163v5 , DOG163V3
DOG162V5 , DOG162V3
 - オプションのチップセット
value = コントラスト値  - EADOGディスプレイ専用

 
type
・HD44780または互換チップを使用するLCD(M1632,SC1602等)では、このtypeのみを設定します。
・デフォルトでは、16*2が設定されます。
・コンパイラの[Options]→[Compiler]→[LCD]からも設定が可能ですが、この命令が優先されます。

Chipset = KS077
・HD44780と互換性は高いが、追加の機能レジスターの設定が必要なKS077の場合に使用します。
Chipset = DOGM
・16x2表示、DOG162V3 3V仕様、DOG162V5 5V仕様。
・16x3表示、DOG163V3 3V仕様、Dogm163v5 5V仕様。
Contrast
・EADOGディスプレイ専用のオプション。 (詳細不明)



DISPLAY 一覧へ戻る
キャラクタLCDの表示全体を、オン/オフします。

書式 Display status
注釈
status = On  - LCD表示、オン。
Off  - LCD表示、オフ。

 
・LCD表示は、電源投入時にオンの状態です。



CLS 一覧へ戻る
キャラクタLCDの表示全体を消去し、カーソルをホーム(画面左上)の位置に移動します。

書式 Cls
注釈 なし

参照 CURSOR , LOCATE

 
・カスタム文字用メモリー(CG-RAM)は、消去されません。



CURSOR 一覧へ戻る
キャラクタLCDのカーソル表示を、オン/オフまたは点滅させます。

書式 Cursor statusC statusB
注釈
statusC = On  - カーソルを表示します。
Off  - カーソルを表示しません。
statusB = Blink  - カーソル位置を、塗りつぶし状態で点滅させます。
Noblink  - カーソル位置を、点滅させません。

参照 LOCATE , CLS

 
・電源投入時には、カーソルを表示し点滅なしの状態です。



LOCATE 一覧へ戻る
キャラクタLCDのカーソルを、指定された位置に移動させます。

書式 Locate Y , X
注釈
Y = 行を指定する数値または変数。 (1〜4) 注2.
X = 列を指定する数値または変数。 (1〜64) 注2.

参照 CURSOR , CLS

 
注2. 最大値は、使用される表示器に依存します。



HOME 一覧へ戻る
キャラクタLCDのカーソルを、ホームまたは指定された行の1列目に移動させます。

書式 Home line
注釈
line = なし  - 1行目の1列へ移動します。
Upper または U  - 1行目の1列へ移動します。
Lower または L  - 2行目の1列へ移動します。
Third または T  - 3行目の1列へ移動します。
Fourth または F  - 4行目の1列へ移動します。

参照 LOCATE

 
・HOMEだけが使われる場合、カーソルは1行目に移動します。
・行を示す頭文字を指定しても、さしつかえありません



UPPERLINE 一覧へ戻る
キャラクタLCDのカーソルを、1行目の1列に移動させます。

書式 Upperline
注釈 なし

参照 HOME , LOCATE



LOWERLINE 一覧へ戻る
キャラクタLCDのカーソルを、2行目の1列に移動させます。

書式 Lowerline
注釈 なし

参照 HOME , LOCATE



THIRDLINE 一覧へ戻る
キャラクタLCDのカーソルを、3行目の1列に移動させます。

書式 Thirdline
注釈 なし

参照 HOME , LOCATE



FOURTHLINE 一覧へ戻る
キャラクタLCDのカーソルを、4行目の1列に移動させます。

書式 Fourthline
注釈 なし

参照 HOME , LOCATE



LCD 一覧へ戻る
キャラクタLCDに、変数の値または文字列を表示させます。

書式 Lcd variable
注釈 variable = 変数名 または "文字列"

参照 CLS , LOCATE , SPC

 
・現在のカーソル位置から、表示を始めます。
・文字列は、ダブルクォーテーションマーク[ " ]で囲います。
・複数の変数や文字列を、セミコロン[ ; ]で区切ることにより、1行に並べて記述することができます。
(例)
Lcd "Frequency=" ; F ; "MHz"
 
・PRINT命令と同様に、SPC(x)等の文字列操作命令も使用できます。



SHIFTCURSOR 一覧へ戻る
キャラクタLCDのカーソルを、現在の位置から、左または右へ1文字分移動させます。

書式 Shiftcursor position
注釈
position = Left  - 現在の位置から、左へ1文字分移動します。
Right  - 現在の位置から、右へ1文字分移動します。

参照 LOCATE



SHIFTLCD 一覧へ戻る
キャラクタLCDに表示されている全ての文字を、左または右へ1文字分移動させます。

書式 Shiftlcd position
注釈
position = Left  - 全ての文字を、左へ1文字分移動させます。
Right  - 全ての文字を、右へ1文字分移動させます。

 
・画面を、左または右へスクロールさせます。



DEFLCDCHAR 一覧へ戻る
キャラクタLCDに内蔵されている、カスタム文字用メモリー(CG-RAM)に、文字データを書き込みます。

書式 Deflcdchar charNo , r1 , r2 , r3 , r4 , r5 , r6 , r7 , r8
注釈
charNo = カスタム文字のコード番号。 (0〜7)
r1〜r8 = 行ごとの文字データ値。 (ビット・パターン)

参照 CLS , Chr( )

 
・カスタム文字は、8個まで登録でき、文字のコード番号は、0〜7に割り当てられます。
・カスタム文字は、Chr( )命令で表示することができます。
・このDEFLCDCHAR命令の後に、必ずCLS命令を入れるように推奨されています。
 
・文字を作るには、BASCOM-AVRに搭載されている、LCDデザイナーが便利です。
・ツールバーから、[Tools]→[LCD Designer]で起動し、文字パターンを作成後に[Ok]をクリックすると、
 プログラムソースの中に、DEFLCDCHAR命令と一緒に、データが記述されます。



INITLCD 一覧へ戻る
キャラクタLCDを、初期化します。

書式 Initlcd
注釈 なし

 
・LCDはリセット時に自動的に初期化されますが、何かの理由で再び初期化を望む場合には、
 INITLCD命令を使用します。



LCDCMD 一覧へ戻る
キャラクタLCDに、コマンド・モードの1バイトを送信します。

書式 Lcdcmd byte
注釈
byte = キャラクタLCDに送るコマンド。 (数値 または 変数)

参照 LCDDATA

 
・キャラクタLCDに、1バイトの制御コードを送信します。



LCDDATA 一覧へ戻る
キャラクタLCDに、データ・モードの1バイトを送信します。

書式 Lcddata byte
注釈
byte = キャラクタLCDに送るデータ。 (数値 または 変数)

参照 LCDCMD

 
・キャラクタLCDに、1バイトのデータを送信します。



LCDFONT 一覧へ戻る
一部のキャラクターLCDに搭載されているフォントを切り替えます。

書式 Lcdfont fontno
注釈
fontno = フォントの番号。(0〜3)

 
・一部のキャラクターLCDには、複数のフォントを搭載している物があり、そのフォントのブロックを
 切り替えます。
・初期状態では、フォント0が選択されています。
・LCDFONT命令は、他のフォントを選択することができます。





   電子工作の部屋 Top へ 前のページへ戻る