74595.C  



74595 Library Routine to expand no. of output lines

///////////////////////////////////////////////////////////////////////////
////   Library for a 74595 Expanded Output Chip                        ////
////                                                                   ////
////   Any number of these chips may be connected in serise to get     ////
////   8 additional outputs per chip.  The cost is 3 I/O pins for      ////
////   any number of chips.                                            ////
////                                                                   ////
////   write_expanded_outputs(eo);  Writes the array eo to the chips   ////
////                                                                   ////
////        (C) Copyright 1996,1997 Custom Computer Services           ////
////                                                                   ////
///////////////////////////////////////////////////////////////////////////

#IFNDEF EXP_OUT_ENABLE

#define EXP_OUT_ENABLE  PIN_B0
#define EXP_OUT_CLOCK   PIN_B1
#define EXP_OUT_DO      PIN_B2
#define NUMBER_OF_74595 1

#ENDIF


void write_expanded_outputs(byte* eo) {
  byte i;

  output_low(EXP_OUT_CLOCK);
  output_low(EXP_OUT_ENABLE);

  for(i=1;i<=NUMBER_OF_74595*8;++i) {  // Clock out bits from the eo array
    if((*(eo+(NUMBER_OF_74595-1))&0x80)==0)
      output_low(EXP_OUT_DO);
    else
      output_high(EXP_OUT_DO);
   shift_left(eo,NUMBER_OF_74595,0);
   output_high(EXP_OUT_CLOCK);
   output_low(EXP_OUT_CLOCK);
  }
  output_high(EXP_OUT_ENABLE);
}


Navigation Bar

tech_support@blitzlogic.com