制作途中のNJU3711を使った電子工作があるのですが、しばらくサボっていました。
本日NJU3711の部分を動作確認してみました。
 

下の写真はNJU3711の出力を確認するために制作したもので、NJU3711の各ポートに対応したLEDが点灯するようにしてあります。


 
 

NJU3711側の基板の写真です。PIC18F2620 - NJU3711 - トランジスタアレイ - ケーブル という接続になっています。


 
 
 

以下のコードでLEDを点灯させて確認しました。
NJ37_Set_C(char d); は NJU3711に値をセットする関数です。

void main()
{
  char temp=0;
  InitDevice();   // 初期設定
  NJ37_Set_C(0);
  Delay_ms(1000);
  while(1)
  {
    NJ37_Set_C(temp);
    Delay_ms(500);
    temp++;
 }

}


 
 
 

void NJ37_Set_C(char d) は以下の通りです。
8ビット分のデータをシフトレジスタに送り込んでからストローブ信号で出力しています。
 

#define NJU3711_STB  PORTB.B1      // NJU3711 STB信号
#define NJU3711_CLR  PORTB.B0      // NJU3711 CLR信号
#define C_DATA       PORTB.B5
#define C_CLK        PORTB.B4

void NJ37_Set_C(char d)
{
  C_CLK = 0;
  C_DATA = d.B7;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B6;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B5;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B4;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B3;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B2;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B1;
  C_CLK = 1;
  C_CLK = 0;
  C_DATA = d.B0;
  C_CLK = 1;

  NJU3711_STB = 0;   // 出力実行
  NJU3711_STB = 1;
}
 
 
 
 
MJU3711は、出力点数を拡大したいときに簡単に使えるICだとおもいます。例えばLEDをたくさん点灯させるアプリケーションで、プログラムは単純で容量を必要としないのに出力点数は多く必要な場合に便利に使えると思います

Tags:

Leave a Reply

This blog is kept spam free by WP-SpamFree.

3 visitors online now
1 guests, 2 bots, 0 members
Max visitors today: 6 at 01:08 pm UTC
This month: 18 at 02-04-2020 07:29 pm UTC
This year: 19 at 01-26-2020 06:07 pm UTC
All time: 133 at 05-04-2015 11:06 pm UTC