
■ 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の、表示テスト・プログラム (例) |
' * 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 |
- バスモード |
|
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本すべてを接続。 |
|
・ポートモードでは、データ線の上位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命令で、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の表示全体を消去し、カーソルをホーム(画面左上)の位置に移動します。
・カスタム文字用メモリー(CG-RAM)は、消去されません。
|
CURSOR |
一覧へ戻る |
キャラクタLCDのカーソル表示を、オン/オフまたは点滅させます。
書式 |
Cursor statusC statusB |
注釈 |
statusC = |
On |
- カーソルを表示します。 |
Off |
- カーソルを表示しません。 |
|
statusB = |
Blink |
- カーソル位置を、塗りつぶし状態で点滅させます。 |
Noblink |
- カーソル位置を、点滅させません。 |
|
・電源投入時には、カーソルを表示し点滅なしの状態です。
|
LOCATE |
一覧へ戻る |
キャラクタLCDのカーソルを、指定された位置に移動させます。
書式 |
Locate Y , X |
注釈 |
Y = |
行を指定する数値または変数。 (1〜4) 注2. |
X = |
列を指定する数値または変数。 (1〜64) 注2. |
|
注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列へ移動します。 |
|
・HOMEだけが使われる場合、カーソルは1行目に移動します。
・行を示す頭文字を指定しても、さしつかえありません
|
UPPERLINE |
一覧へ戻る |
キャラクタLCDのカーソルを、1行目の1列に移動させます。
|
LOWERLINE |
一覧へ戻る |
キャラクタLCDのカーソルを、2行目の1列に移動させます。
|
THIRDLINE |
一覧へ戻る |
キャラクタLCDのカーソルを、3行目の1列に移動させます。
|
FOURTHLINE |
一覧へ戻る |
キャラクタLCDのカーソルを、4行目の1列に移動させます。
|
LCD |
一覧へ戻る |
キャラクタLCDに、変数の値または文字列を表示させます。
書式 |
Lcd variable |
注釈 |
variable = 変数名 または "文字列" |
・現在のカーソル位置から、表示を始めます。
・文字列は、ダブルクォーテーションマーク[ " ]で囲います。
・複数の変数や文字列を、セミコロン[ ; ]で区切ることにより、1行に並べて記述することができます。
|
(例) |
|
Lcd "Frequency=" ; F ; "MHz" |
|
|
・PRINT命令と同様に、SPC(x)等の文字列操作命令も使用できます。
|
SHIFTCURSOR |
一覧へ戻る |
キャラクタLCDのカーソルを、現在の位置から、左または右へ1文字分移動させます。
書式 |
Shiftcursor position |
注釈 |
position = |
Left |
- 現在の位置から、左へ1文字分移動します。 |
Right |
- 現在の位置から、右へ1文字分移動します。 |
|
|
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 |
= 行ごとの文字データ値。 (ビット・パターン) |
|
・カスタム文字は、8個まで登録でき、文字のコード番号は、0〜7に割り当てられます。
・カスタム文字は、Chr( )命令で表示することができます。 ・このDEFLCDCHAR命令の後に、必ずCLS命令を入れるように推奨されています。
・文字を作るには、BASCOM-AVRに搭載されている、LCDデザイナーが便利です。
・ツールバーから、[Tools]→[LCD Designer]で起動し、文字パターンを作成後に[Ok]をクリックすると、
プログラムソースの中に、DEFLCDCHAR命令と一緒に、データが記述されます。
|
INITLCD |
一覧へ戻る |
キャラクタLCDを、初期化します。
・LCDはリセット時に自動的に初期化されますが、何かの理由で再び初期化を望む場合には、
INITLCD命令を使用します。
|
LCDCMD |
一覧へ戻る |
キャラクタLCDに、コマンド・モードの1バイトを送信します。
書式 |
Lcdcmd byte |
注釈 |
byte |
= キャラクタLCDに送るコマンド。 (数値 または 変数) |
|
・キャラクタLCDに、1バイトの制御コードを送信します。
|
LCDDATA |
一覧へ戻る |
キャラクタLCDに、データ・モードの1バイトを送信します。
書式 |
Lcddata byte |
注釈 |
byte |
= キャラクタLCDに送るデータ。 (数値 または 変数) |
|
・キャラクタLCDに、1バイトのデータを送信します。
|
LCDFONT |
一覧へ戻る |
一部のキャラクターLCDに搭載されているフォントを切り替えます。
・一部のキャラクターLCDには、複数のフォントを搭載している物があり、そのフォントのブロックを
切り替えます。
・初期状態では、フォント0が選択されています。
・LCDFONT命令は、他のフォントを選択することができます。
|
|