ATmega164PでLCD表示
← AVRIsp mkU
← 5V電源
↑16桁×2行 LCD
◆LCD表示器を搭載したATmega(アトメガ)開発環境。
開発環境とはいってもATMRGA164Pに16桁×2行のLCD表示器と、
フラッシュROM書き込み用のAVRIsp mkUに
不要になった携帯電話の充電器の5V電源を接続しただけの簡単なシステム。
LEDだけでは限界があり、その先に進むことが困難な場合が多いが
特にC言語開発を進める場合はLCD表示器があると便利!
製作のポイント
◆LCDは16桁2行表示のキャラクタ・ディスプレイならほとんどの機種が使えますが、機種によってバックライトのピンが付いたものや、1pinが5Vで2pinがGNDになっているものもあるので要注意です。
◆ 5V電源は不要になった携帯電源(5±0.25V)にミノムシクリップを接続して使う
ことができる。ただし+-の極性には要注意。
◆ ユニバーサル基板に40pのDIPコネクタとAVRisp mkUコネクタ接続用の
6pピンヘッダ(オス)、電源平滑の電解コンデンサをハンダ付け。
プログラム解説
◆LCD表示
dsp1c(dig, data) //LCDの指定する桁に1文字表示
dig: 1行目=L1(0) 、2行目=L2 (0x40 )
例 dsp1c(L2+2,'D'); // 2行目の2桁目に'D' を表示
dsp1c(L1,'A'); // 1行目の1桁目に'A' を表示
dsp1c(L1+8, (0x30 | x)); // 変数xの数値を1行目の8桁目に表示
dspmsg(dig, *data) //LCD 1行表示
例 dspmsg(L1,"Hello world")
◆その他
●8bit2進値を"00"〜"FF"のように変換して表示する bin_hex 関数
●16bit2進値を"0000"〜"FFFF"のように変換して表示する bin_hex2 関数
●16ビット値を指定するバッファに10進5桁文字に変換する int_deci 関数
●32ビット値を指定するバッファに10進7桁文字に変換する uint32_deci 関数
●不揮発メモリ(EEPROM)書き込み、読み出しの EEPROM_write と
EEPROM_read 関数 (ATMEGA164PのEEPROMのアドレスは0〜511)