目次
前
次
3時分割タイプLCD
大阪日本橋のデジットから、面白いLCDを入手しました。
数字だけの10桁表示で、NECのuPD7225を使ったLCDです。
¥200で購入し、貰ったデータシートのピンアサインを
確認すると、次のようになっています。
- RESET (Reset)
- nSCK (Serial Clock)
- SI (Serial Input)
- nBUSY (Busy)
- C,nD (Command/Data)
- nCS (Chip Select)
- Vdd (Power Supply)
- Vss (Ground)
信号ピンを眺めて、コマンド、データをシリアルで
転送するのだと、理解できました。
内部シフトレジスタに、1ビットデータをクロックで
シフトと同時に記憶するようです。
コマンドとデータを選択する信号ピンがあるので
74HC164を利用すると、次のような回路が含まれて
いるのだろうと見当をつけます。
コマンド、データのレジスタがあることまで
見当をつけましたが、3時分割という意味は
不明です。
ネットでuPD7225のデータシートを探したところ
英文のものがあり、ダウンロードして読みました。
3時分割とは、7セグメントのビットパターンを
3回に分けて転送するという意味でした。
1回目のデータ転送で、セグメントa、bの2ビット指定
2回目のデータ転送で、セグメントc、f、gの3ビット指定
3回目のデータ転送で、セグメントd、eの2ビット指定
ビットパターンを3分割して、データとするために
AWKスクリプトを作成しました。
{
# a b
rab = $2 * 2 + $1 ;
# c f g
rcfg = ($7 * 2 + $6) * 2 + $3;
# d e
rde = $5 * 2 + $4 ;
printf("%s => ab(%02x) cfg(%02x) rde(%02x)\n",$0,rab,rcfg,rde);
}
a b c d e f g
1 1 1 1 1 1 0
1 1 0 0 0 0 0
0 1 1 1 0 1 1
1 1 1 1 0 0 1
0 1 1 0 0 1 1
1 0 1 1 0 1 1
1 0 1 1 1 1 1
1 1 1 0 0 1 0
1 1 1 1 1 1 1
1 1 1 1 0 1 1
1 1 1 0 1 1 1
0 0 1 1 1 1 1
1 0 0 1 1 1 0
0 1 1 1 1 0 1
1 0 0 1 1 1 1
1 0 0 0 1 1 1
(under construction)
0xD3,0xD5,0xD3, //0
0xD3,0xD0,0xD0, //1
0xD1,0xD7,0xD2, //2
0xD3,0xD7,0xD0, //3
0xD3,0xD2,0xD1, //4
0xD2,0xD7,0xD1, //5
0xD2,0xD7,0xD3, //6
0xD3,0xD1,0xD0, //7
0xD3,0xD7,0xD3, //8
0xD3,0xD7,0xD1, //9
0xD3,0xD3,0xD3, //A
0xD2,0xD6,0xD3, //B
0xD0,0xD5,0xD3, //C
0xD3,0xD6,0xD2, //D
0xD0,0xD7,0xD3, //E
0xD0,0xD3,0xD3, //F
0xD7,0xD7,0xD3, //all(0xFF)
0xD0,0xD0,0xD0, //space
0xD0,0xD2,0xD0, //-
0xD0,0xD5,0xD0}; //=
目次
前
次