//********************************************************************** /*   <拡張ポート(出力専用)制御ライブラリ>  ※拡張ポート用のICには、NJU3711を使用します。 */ //********************************************************************** //■■■インクルード■■■ #include "ex_port_lib_nju3711.h" //********************************************************************** //■■■拡張ポート初期化関数■■■ char output_data_register; void ex_port_init() { short cnt; // STB_Direction = 0; CLK_Direction = 0; DAT_Direction = 0; // STB = 1; DAT = 0; CLK = 0; for (cnt = 0; cnt < 8; cnt++) { CLK = 1; CLK = 0; } STB = 0; STB = 1; output_data_register = 0; } //********************************************************************** //■■■拡張ポート出力関数■■■ void ex_port_out(char output_data) { short cnt; // output_data_register = output_data; for (cnt = 0; cnt < 8; cnt++) { if ((output_data & 0b10000000) != 0) { DAT = 1; } else { DAT = 0; } CLK = 1; CLK = 0; output_data = output_data << 1; } STB = 0; STB = 1; } //********************************************************************** //■■■拡張ポートビット出力関数■■■ void ex_port_out_bit(char pin, char sts) { switch (pin) { case 0: output_data_register.B0 = sts; break; case 1: output_data_register.B1 = sts; break; case 2: output_data_register.B2 = sts; break; case 3: output_data_register.B3 = sts; break; case 4: output_data_register.B4 = sts; break; case 5: output_data_register.B5 = sts; break; case 6: output_data_register.B6 = sts; break; case 7: output_data_register.B7 = sts; break; } ex_port_out(output_data_register); } //**********************************************************************