記事一覧

シフトレジスタ(74HC164)その3

2009.07.21

前回紹介したシフトレジスタの実験回路、非常に簡単なものですが一応アップしておきます。
ファイル 16-1.png

データシートのタイミングチャートを見ると、このICの面白い特性が分かります。
ファイル 16-2.png

CLRとBピンがH状態の時、クロックと同期を取ったAピンの立ち上がりでQAがHとなり、以後クロックの上げ下げに応じてH状態がQA=>QB=>QCとシフトしていきます。
この機能を応用して、例えば"00001101"の状態を作り出すには、タイミングチャートのように、Aピンを2クロック分H、1クロックL、1クロックHとし、あと4クロック分Lを送れば実現されます。
クロックの変化がない限り状態は保持され、またクロックの周期はランダム(1usとか10ms)でもOKです。
前回紹介したプログラムでは、LEDが右から左へ移動しているように見せかけるため、シフト中はDelayを入れていないためLEDの点滅が感じられず、状態変化時だけにDelayを入れて、光っている状態を見せているように工夫しています。
これだけの操作を、PICからはたった2本のI/Oピンで制御できるのです。

タグ:74HC164 12F629 LED ロジックIC

UBW基板

2009.07.17

PIC18F2550で作成したUBW基板です。
ベースとなるPICのプログラム「ファームウエア」を書き込むことで、後はUSB経由でのプログラミングが可能となります。
UBWに関しては千秋ゼミさんの解説がかなり具体的で詳細です。
私はユニバーサル基板をベースに、ブレッドボードに挿せるようピンヘッダを仕込みました。

タグ:PIC 18F2550 USB UBW

作りながら学ぶPICマイコン入門

2009.07.16

参考書の紹介です。
作りながら学ぶPICマイコン入門


解説のターゲットは16F87Xなのですが、16F系だけでなく12F系でも十分参考になります。
言語はアセンブラ主体ですが、C言語が分かる方ならば翻訳して読むことができるでしょう。
CCP、USART、A/DなどPICの機能について幅広く解説されているので、ミッドレンジPICの使いこなしには欠かせない一冊です。

タグ:PIC 勉強 参考書

シフトレジスタ(74HC164)その2

2009.07.15


シフトレジスタで遊んでみました。

program SHIFREG

dim i, j, k as byte
const pp=50

main:

TRISIO = %00000000
'OPTION_REG.NOT_GPPU = 0
WPU = %00000100
GPIO = %00000000

do
'CLEAR
GPIO.4 = 0
for i = 0 to 8
GPIO.2 = 1
GPIO.2 = 0
delay_ms(pp)
next i
delay_ms(pp*2)

'LEFT > RIGHT
GPIO.4 = 1
for i = 0 to 8
GPIO.2 = 1
GPIO.4 = 0
GPIO.2 = 0
delay_ms(pp)
next i
delay_ms(pp*2)

'RIGHT > LEFT
for j = 0 to 8
GPIO.4 = 1
for i = j to 8
GPIO.2 = 1
GPIO.4 = 0
GPIO.2 = 0
next i
delay_ms(pp)
for i= 8-j to 8
GPIO.2 = 1
GPIO.2 = 0
next i
next j
delay_ms(pp*2)
delay_ms(pp*2)

'LEFT > RIGHT FILL
GPIO.4 = 1
for i = 0 to 7
GPIO.2 = 1
GPIO.2 = 0
delay_ms(pp)
next i
delay_ms(pp*2)
'ERASE
GPIO.4 = 0
for i = 0 to 7
GPIO.2 = 1
GPIO.2 = 0
delay_ms(pp)
next i
delay_ms(pp*2)

'LEFT > RIGHT FILL
for k = 0 to 8
for j = 0 to k
GPIO.4 = 1
GPIO.2 = 1
GPIO.2 = 0
next j
GPIO.4 = 0
for i = j to 7
GPIO.2 = 1
GPIO.2 = 0
next i
delay_ms(pp)
next k
delay_ms(pp*2)

'LEFT > RIGHT ERASE
for k = 0 to 7
for j = 0 to 7 - k
GPIO.4 = 1
GPIO.2 = 1
GPIO.2 = 0
next j
delay_ms(pp)
GPIO.4 = 0
for i = 0 to 7
GPIO.2 = 1
GPIO.2 = 0
next i
next k
delay_ms(pp*2)

'FLASH
for k = 0 to 7
for j = 0 to 7
GPIO.4 = 1
GPIO.2 = 1
GPIO.2 = 0
next j
delay_ms(pp*2)
for i = 0 to 7
GPIO.4 = 0
GPIO.2 = 1
GPIO.2 = 0
next i
delay_ms(pp*2)
next k
delay_ms(pp*2)
loop until 0 = 1
end.


Mikrobasicにてプログラミング。この手の実験的な軽い開発には便利なツールですね。
難しかったのは、右から左への点灯です。
シフトレジスタは左から右への一方向へのシフトしかできないので、反対方向に流すにはコツがいります。

タグ:74HC164 12F629 LED ロジックIC

ドットマトリックスLED時計の製作④

2009.07.13


今回はプラスチックの名刺ケースに収めてみました。
スモークがかってるのでLEDのコントラストも上がり見やすいです。


基板裏の様子。半田付けに6時間掛かりました・・・

タグ:PIC 16F648A ドットマトリックス

ページ移動