(K7) PIC16F819 LED 9Digits表示器 

UP dated 2011.07.21

●PIC16F819 LED9桁/6桁表示器=プログラム呼称mV10DA

マイコンチップPIC16F819で7セグメントLED9桁(第8桁〜第0桁)をダイナミックドライブ表示します。周波数カウンターの検出部と組み合わせて、その表示部として使います。

基板サイズ 40mmx26mm。PIC16F819@電圧計と同じ基板です。
3桁ダイナミック点灯7セグメントLED、アノードコモンELT-512GEA(緑)は、数字面サイズが横38mmxたて19mm。3個(9桁)を横に並べると114mm幅です。

外部検出部からシリアル信号で送られた11桁数字および Dot位置情報(計56bit)を受け取り 表示は、上位桁、下位桁の9文字づつをDIP-SWで切替えて表示することができます。
DIP-SWの切り替え機能は、回路図の表を参照ください。

 

・左写真は、外部からの信号がないときの、電源投入直後の表示状態です。この数字が表示されれば、表示器単体は、回路・プログラムが正常に動作していることを示します。
・右写真は、アルミパネル(奥行き40mm)に取り付け、周波数カウンター検出部(TD7104F+PIC12F629)を接続し、128MHzを表示しているところ。

・表示器 PIC16F819プログラム済みのものをご入用の方は、以下ページをご覧ください。

◇PICの頒布基板付

●回路

・7セグメントLEDのダイナミックドライブ回路は、基本的に@PIC電圧計と同じで、同じプリント基板を使っています。最上位3桁の第8,7,6桁は、PIC12F629Fによってドライブしています。

・LEDの各エレメントのカソード側は、76Ω(100Ω+330Ω並列)経由、PICの各ポートに接続しています。今回使用した3桁LED、ELT-512は、高輝度型ではないので、十分な電流(望ましくは30mA)を流す必要がありますので、PICの連続定格、ぎりぎり一杯(瞬間的には絶対定格をこえることもある)の設計をしています。PICは、ほんのり あったかくなりますが、誤動作しておりませんので 大丈夫だと思います。

・6桁表示器とするときは、第8,7,6の桁関連の部品、配線を省略すれば、6桁表示になります。

左の写真;
・LEDドライブ用の2SA1015、PIC12F629F等の部品は、プリント基板側でなく、LED本体の裏側に 空中配線で取り付けます。



●PIC16F819の RA3ピン トライステートで 7セグメントLEDを点灯

・PIC16F819のRA3ピンは、K3としてLEDの第5桁 および PIC12F629FのGP3(第8桁)に接続し、RA3ピン=L(K3=L)のとき、当該の2SA1015のベース(B)から電流が流れ出し、コレクターがON、5桁LEDが点灯します。PIC16F819のRA3ピン=Hのとき、PIC12F629のGP2(8桁)がLとなり、8桁が点灯します。

すなわち、トライステート動作をさせています。(回路図の右下参照)
・H;RA3ピン=出力H・・PIC12F629をHとしてLEDの第8桁を点灯。
・N;RA3ピン=High Impedance入力・・8桁も5桁も点灯しない。
・L;RA3ピン=出力L・・LEDの5桁の2SC1015をONとして 第5桁を点灯。

同様にPIC16F819のRA2ピン、RA0ピンは、LEDの4桁(および7桁)、LEDの3桁(および6桁)を担当します。

●PIC16F819へのシリアル信号

・PICの RA5(MCLR)=SER、RA1=ACK をシリアル信号の入/出力ピンとしています。GND線を含めて 3本の線です。SER、ACK、GNDの3線は、普通の線で3m程度に延長したテストで正常に動作していますので 検出部(周波数カウンタ検出)と数字表示部を3m離すこともできます。

・PIC16F819の RA5(SER)ポートは、ST(シュミトトリガー)レベルとなっており、H/Lの Threshold電圧を 左図に示します。カタログ値では、H;Vin>4.0V、L;Vin>1.0Vですが、実際に測定すると H;Vin>2.82V、L;Vin<1.69V でした。 またSTですので ヒステリシス特性を持っています。自分で設計した機器をつなぎ、シリアル信号を送るときは、この電圧(実測値に 0.3V以上余裕をもった電圧)を確保してください。

シリアル信号の受信(送信)タイミングは、回路図左下に記載していますが、ダイナミックドライブの途中で時々SER portを読み、Hであれば、周波数カウンタ側の信号送り出し準備が整っていることを知り、ACK portをH出力として、acknowledgeを返します。そのACK=Hに促されて、カウンタ検出部(信号送り手)は、データを1bitずつ、MSBより順に送出します。合計56bitを受信後、最後の4bit=B'1101'であれば、正常に受信できたと判断し、ダイナミックドライブに戻ります。56bitの受信に約1msecを要します。

さて、ここで寄り道になりますが、後述の周波数カウンター(TMR0)が組み込まれているポート(T0CKI)は、STレベルとなっているので、上図のthreshold L=1.69V / H=2.82を横切らないとカウントしない。別の言い方をすると 2.3Vを中心に、+/-0.6V以上でスウィングしなければカウントしないことになります。
実測では、前段の2SC1906の無信号時コレクター電圧をテスターで計り、2.4〜2.5Vのときにもっとも高感度となりました。2.3Vとの誤差は、STレベルのPICでのばらつき、2SC1906の出力電圧の正側、負側への振幅の非線形の影響によるものと思われます。

●PIC12F629の真理値表

・第6,7,8桁表示用PIC12F629Fの論理(真理値)は、30行程度の単純なプログラム(mV10Dsub.asm)をコーディングし、GP5がHならば、その左側のGP0=L出力、GP4がHならば、左側のGP1=L出力、以下GP3, GP2も同様に 負論理の関係としています。
・PIC16F819のRA3ピン(RA2ピン、RA0ピンも同様)を、入力モードとしたときに、High inpeadanceとなり、回路的にはRA3ピンが宙に浮き、5桁も 8桁も両方とも点灯しません。RA3ピンは、L、H、および High Inpeadanceの 3ステートで使用していることになります。
・その3ステートでの各部の電圧を、回路図右下の「High impeadnce時各部電圧説明図」を見てご理解ください。12F629の入力ピンは、TTLレベルで、カタログ値では、H;Vin>2.0V、L;Vin<0.8Vですが、実際に測定すると Thresholdは、1.25〜1.30Vで 数個測定したPICのばらつきはこの範囲に入っていました。この閾値を確保しておけば、正常に動作します。

●4.3Vツェナーの役目、PIC16F819ピンの TRISTATE動作 

・左図は、4.3Vツェナー"MTZJ4.3B"の 電流vsツェナー電圧 を示します。公称4.3Vツェナーであれば、4.3Vではないかと思われるかもしれませんが、これは、電流を5mA程度流したときにその電圧になるのであって、微小電流であれば、ツエナー特性は左図のとおり電流依存性が大きく(特に公称5.0V未満のツェナーは大きい)、電圧降下は3V近辺になります。High impeadnce時は、電流≒0.015mAであるのでツエナー電圧は、2.5V(左図)となり、上記の3ステートが、うまく動作することになります。
・4.3Vツェナーは、4.7Vツェナーでも代用でき、RD4.7ESであれば、RA3ピン出力=H(5.0V)のとき、電流は、0.06mA流れ、電圧降下3.3Vとなり、12F629の入力ピン電圧は、Vi=1.7Vとなり、Threshold=1.3Vを超えており、H論理となり、問題なく動作します。
・ただし、PICのカタログ値は Vi>2.0V がH論理なので、PICのロットによっては、動作しない可能性は残っています。この場合には、27kΩの抵抗を100kΩにすれば、電流は、0.02mA、ツェナー電圧降下=3.0V となり、H論理の2.0Vを確保できます。

・2SA1015のベース直下につながっているLEDは、普通の赤色LEDですが、順方向電圧は、ツェナーよりもツェナーらしい特性で、あまり電流依存性がなく、ΔV=1.65〜1.8Vです。この特性と 4.3Vツェナーの組み合わせで 3ステートの良好な動作を確保しています。

● プログラムソース

プログラムソースは、マウス右クリックで「対象をファイルに保存」を選んで、ダウンロード。 ・mV10DA.hexは、PIC16F819用。 mV10DAsubは、PIC12F629用。
 ◇ダウンロードPIC16F819 mv10DA.hex & PIC12F629 mv10Dsub.hex

● 本 9桁LED表示器の適用例

◇周波数カウンター(その1)PIC16F84Aの工作例
◇周波数カウンター(その2)PIC12F629の工作例

"ひとつ前に戻る"には、ブラウザの「戻る」で戻ってください。
◇ホームページ インデックスへ戻る