秋月で売っている小さくて可愛くておしゃれな液晶
AQM0802Aで時計を仕上げてみました。
精度は、高くありません。
液晶の初期化が一番難しい
点かない場合は、何が間違っているかわからないから。
一旦初期化が終了すれば
@ABCで表示できる。@は、制御+アドレス。
次を表示する場合は、画面クリアかカーソル移動でカーソルを戻す。
開発は、確実に動くarduinoで配線と初期化コマンドをチエックして
初期化コマンドをそのまま移植した。
ichigojamだけでやろうとすると確実にはまる。
0x00,0x01 は、画面クリア
0x00,0x02 は、データシート上は、ホームポジション カーソルを左上
0x00,0x80 は、データシート上は、ホームポジション
0x00,0x80+0x40 は、データシート上、2行目の先頭
秋月の液晶 AQM0802 です。
バンク0 10 'AQM0802A LCD DRIVE CAA45040 20 '0X00,0X38 FUNCTION SET 30 '0X00,0X39 FUNCTION SET 40 '0X00,0X04 ENTRY MODE SET 50 '0X00,0X14 INTERNAL OSC FRE 60 '0X00,0X73 CONTRAST SET 70 '0X00,0X5E POW/ICON/CONTRAST 80 '0X00,0X6C FOLLOWER CONTROL 100 '0X00,0X38 FUNCTION SET 110 '0X00,0X0C DISPLAY ON/OFF 120 '0X00,0X01 CLEAR DISPLAY 130 '0X80,0X00 SET CURSOR 0,0 140 '0X40,'O','N' "ON" 150 '0X80,0X40 SET CURSOR 0,1 160 '0X40,'L','C','D' "LCD" 200 'ON LCD 210 POKE #700,#0,#38,#0,#39,#0,#04,#0,#14,#0,#70,#0,#56,#0,#6C,#0,#38,#0,#C,#0,#1 220 FOR I = 0 TO 9 230 ?"#700+";:?I*2;:?".";:?HEX$(PEEK(#700+I*2));:?".";:?HEX$(PEEK(#701+I*2)) 240 R=I2CW(#3E,#700+I*2,2) 250 NEXT 260 ?"INT":WAIT 120:?"ON LCD" 270 R=I2CW(#3E,"@ON LCD",7) 280 ?"LRUN 1":WAIT 120 290 LRUN 1 SAVE 0 バンク1 10 'AQM0802A TIME 20 H=0:M=0 30 INPUT "H 0-23>",H 40 INPUT "M 0-59>",M 50 ? H;:?".";:?M 60 ' 70 ' 80 ' 90 ?"INT":'WAIT 60 100 'LOOP 110 ?H/10; 120 ?H%10; 130 ?"."; 140 ?M/10; 150 ?M%10 160 POKE #700,0,1:R=I2CW(#3E,#700,2) 170 POKE #702,64,48+H/10,48+H%10,46,48+M/10,48+M%10 180 R=I2CW(#3E,#702,6) 190 WAIT 60*60-0 :'1M 200 'UP 210 M = M + 1 230 IF M < 60 GOTO 280 240 H = H + 1:M = 0 250 IF H < 24 GOTO 280 260 H = 0 270 ' 280 'NEXT 290 'WAIT 5 300 GOTO 100 SAVE 1