单片机交流
直播中

李巍

7年用户 1367经验值
私信 关注
[问答]

74HC595芯片串转并该如何去实现呢

74HC595芯片串转并有何作用?
74HC595芯片串转并该如何去实现呢?


回帖(1)

张鑫

2021-11-3 10:46:32
  74HC595芯片串转并
  作用:只用一个接口控制8个输出口。(实现了I/O口的扩展)
  具体实现看下图:
  
  端口介绍:
  SER(14):串行数据输入端。
  比方说串行数据是0x01(0000 0001),那么这个端口就是接收这个数据的,当然,一次只能接收一个,要分八次接收。(因为他就一个引脚,只能分辨高低)
  SRCLK(11):上升的时候移位。也就是说我上升一次,就把SER口上的电平情况保存下来。
  RCLK(12):上升的时候输出。就是当芯片内8个串行数据都接收到以后将数据输出。
  /SRCLK (10):低电平时重置芯片(数据清零)。一般都默认接高电平。
  /OE(13):高电平时禁止输出。一般默认低电平。
  代码如下
  功能:led流水效果
  #include 《REGX52.H》
  #include 《intrins.h》
  ***it sck=P0^1;
  ***it ser=P0^0;
  ***it rck=P0^2;
  //typedef P1 led;
  typedef unsigned char u8;
  void _74hc595(u8 a)
  {
  u8 i;
  for(i=0;i《8;i++)
  {
  ser=a》》7;
  a《《=1;
  sck=0;
  _nop_();
  _nop_();
  sck=1;
  }
  rck=0;
  _nop_();
  _nop_();
  rck=1;
  }
  void delay300ms(void) //误差 0us
  {
  unsigned char a,b,c;
  for(c=123;c》0;c--)
  for(b=116;b》0;b--)
  for(a=9;a》0;a--);
  }
  int main()
  {
  u8 i;
  while(1)
  {
  u8 led=0x01;
  for( i=0;i《8;i++)
  {
  _74hc595(~led);
  delay300ms();
  led《《=1;
  }
  }
  }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分