Giỏ hàng
Danh mục sản phẩm

Lập trình HC165 STM32,AVR,89,arduino

Đăng bởi Buiprohd@gmail.com ngày bình luận

Phần cứng :


#define DATA_74HC165 PINA.0  // chan nhan du lieu noi tiep
#define LOAD_74HC165 PORTA.2 // pin load data
#define CLK_74HC165 PORTA.1 // pin clock

#define LOAD1_74HC165 PORTA.3 // pin load data
#define CLK1_74HC165 PORTA.4 // pin clock

#define OPEN_74HC165 PINC.0  // chan nhan du lieu noi tiep


unsigned char Read_74HC165(void)
{
  unsigned char i,data;
 
//  LOAD_74HC165 = 0;  // load data
 // LOAD_74HC165 = 1;
  data = 0;
  for( i=0;i<8;i++ )
  {
      data = data << 1;
 
      if( DATA_74HC165 == 1)
      {
        data |= 0x01 ;
      };
 
      CLK_74HC165 = 1; //clock
      CLK_74HC165 = 0;
    };
  return(data);
}

unsigned char OPNEN_74HC165(void)
{
  unsigned char i,data;
 
  LOAD1_74HC165 = 0;  // load data
  LOAD1_74HC165 = 1;
  data = 0;
  for( i=0;i<8;i++ )
  {
      data = data << 1;
 
      if(OPEN_74HC165 == 1)
      {
        data |= 0x01 ;
      };
 
      CLK1_74HC165 = 1; //clock
      CLK1_74HC165 = 0;
    };
  return(data);
}


unsigned char byte_2=0,byte_1=0;
unsigned char byte_3=0,byte_4=0;
void read_74165(void)
{
    byte_4 =  Read_74HC165();  // Doc U5
    byte_3 =  Read_74HC165();  // Doc U4
    byte_2 =  Read_74HC165();  // Doc U3
    byte_1 =  Read_74HC165();  // doc U1
    LOAD_74HC165 = 0;  // load data
    LOAD_74HC165 = 1; 
}

Trong hàm Main.c

while(1)

{

 read_74165();    
  byte=OPNEN_74HC165();
 //byte=  Read_74HC165()  ;
  printf("SPI:_CH1:%d_CH2:%d_CH3:%d_CH4:%d_CH4:%d\n\r",byte_1,byte_2,byte_3,byte_4,byte);

}


Cũ hơn Mới hơn