2006年11月22日
ドットマトリックスLED @ 電子工作
PIC16F88でドットマトリックLEDを使ってみました。74HC138を使ってダイナミックドライブしてアルファベットのAを表示です。LEDが8*8と偶数なので、センターを少しずらすために、斜体っぽくしてます。
ちなみに部品の費用としてはドットマトリックスLEDが100円。PIC16F88が230円。74HC138が63円。三端子レギュレータが63円。006P電池ケースが52円。コンデンサーが20円位のモノを2個。主な部品はこんな感じなので、実際に同じようなモノを作る場合は、600円から700円くらいですかね。1000円は超えないと思います。
徐々に複雑なモノになってきているので、持っているブレッドボードでは全然足りなくなってきました。もう少し大きなモノを買った方がよいですね。ゼロプレッシャーICソケットを使うと一気に狭くなります。抜き差しが楽になって便利なのですが、スペース的に厳しいです。
ちなみに、ソースは以下のような感じです。PIC16F84でも十分なのですが、配線を減らしたかったので、PIC16F88を使って内蔵クロックを使ってます。
/*
sdcc -V -mpic14 -p16f88 matrix.c
*/
#include <pic16f88.h>
int at 0x2007 __config = _INTRC_IO & _LVP_OFF & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _BODEN_OFF &_MCLR_OFF & _CCP1_RB3;
void sleep()
{
int i;
for(i=0;i<32;i++);
}
unsigned char p[]={0x08,0x08,0x1c,0x34,0x36,0x62,0x7f,0xe3,0xff};
void main(void)
{
int i;
OSCCON |= 0x70; //8MHz internal clk
ANSEL = 0;/* 全てデジタル */
TRISA = 0;/* PortAは全て出力モード */
TRISB = 0;/* PortBは全て出力モード */
while (1)
{
for(i=0;i<8;i++)
{
PORTA = i;
PORTB=p[i];
sleep();
}
}
}
この様な不完全なモノを試す人も居ないと思いますが、一応hexファイルも
:020000040000FA
:0600000000008A114728F0
:06000A00703083160313A1
:100010008F049B018501860183120313AB01AC01A0
:100020002C08803E803E031D172808302B02031841
:100030000C282B08831203138500831203132B084B
:10004000203EAD000030AE002C0803182C0FAE0788
:100050002D08840083132E188317000883120313BE
:100060008600392083120313AB0A0319AC0A102847
:100070000800203083120313A900AA01FF30A9074A
:10008000031CAA0329082A04031D3E28080008307F
:1000900083120313A000A1001C30A2003430A3007F
:1000A0003630A4006230A5007F30A600E330A70000
:0800B000FF30A8008A110528A9
:02400E00182F69
:00000001FF
写真を見ると分かるように、一応それっぽい感じになってはいるのですが、不必要なところが点灯してます。まだ経験が足りないので、何処をどうすれば綺麗に表示できるのかは分かってないです。ウエイトが短すぎるのか、もう少し長めにした方がよいのか・・・。
本来の目的からは脱線した事なので、取り敢えずこれはこれで置いておき、今後のために有益なLCDの表示部分を作ります。
関連日記
- 2007年01月09日 秋月も結構早い (13912)@ 電子工作
- 2006年11月16日 PIC16F88用テストプログラム (9935)@ 電子工作
- 2006年11月26日 PIC16F88でシリアル通信 (9892)@ 電子工作
- 2008年08月03日 トランジスタ技術付録基板でAVRライター (8480)@ 電子工作
- 2006年11月17日 PIC16F88でアナログ入力 (8385)@ 電子工作
- 2007年02月09日 PIC16F877Aが不安定 (8198)@ 電子工作
- 2006年11月04日 SDCC - Small Device C Compiler (7346)@ 電子工作
- 2007年01月09日 SPIでDAC (7238)@ 電子工作
- 2006年10月18日 midicckで自作MIDI楽器 (6772)@ 音楽
- 2007年01月04日 HOSIDEN HLM3205のピン配置 (6690)@ 電子工作
- 2006年12月30日 自己点滅LED (6623)@ 電子工作
- 2007年02月09日 PIC18F2450へのプログラム書き込み (6589)@ 電子工作
- 2006年11月19日 PIC16F88でLEDアクティブ点灯 (6190)@ 電子工作
- 2006年11月22日 共立エレショップからパーツ到着 (6058)@ 電子工作
- 2008年08月29日 PICkit2 (5996)@ 電子工作
- 2006年11月05日 PIC16F88 (5378)@ 電子工作
- 2007年08月30日 PIC16F88とSDCC (5349)@ 電子工作
- 2007年01月17日 PIC16F88では入出力が足りないかも (5224)@ 電子工作
- 2007年01月05日 PIC16F88でLCD (5175)@ 電子工作
- 2007年01月21日 シリアル通信とDAC (5120)@ 電子工作
- 2007年02月03日 音階が変 (4823)@ 電子工作
- 2007年01月23日 SPIのピン配置とシリアル通信のデータ処理 (4815)@ 電子工作
- 2007年04月17日 EasyPIC4でサンプルプログラム (4337)@ 電子工作
- 2009年12月12日 MIDI to Sync24 + Clock chip (4167)@ 電子工作
- 2008年03月29日 久々にパーツ注文 (4070)@ 電子工作
- 2006年11月10日 PIC16F88でMIDI (4013)@ 電子工作
- 2007年04月04日 DIN SYNCのクロック変換器(2) (3911)@ 電子工作
- 2006年11月09日 やはり変だSDCC (3738)@ 電子工作
- 2006年12月02日 振り出しに戻ったかも(T_T) (3675)@ 電子工作
- 2007年01月23日 シリアル通信 (3401)@ 電子工作
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。