SF-EP1C开发板之基于74HC595的数码管实验

电子说

1.2w人已加入

描述

  74HC595简介

  74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7‘输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。而当OE为高电位,也就是输出关闭时,并行输出端会维持在高阻抗状态。

  

  8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态

  74HC595是具有三态输出功能(即具有高电平、低电平和高阻抗三种输出状态)的门电路。输出寄存器可以直接清除。具有100MHz的移位频率。

  74HC595驱动静态数码管程序

  #include《reg51.h》

  #include《intrins.h》

  #defineNOP()_nop_()

  sbitMOSIO=P3^4;

  sbitR_CLK=P3^5;

  sbitS_CLK=P3^6;

  voiddelay(unsignedinti);

  voidHC595SendData(unsignedcharSendVal);

  unsignedcharcodeLED7Code[]=

  {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,

  ~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71};

  main()

  {

  unsigned char HC595SendVal;

  static u8 LedNumVal=0;

  while(1)

  {

  LedNumVal++;

  HC595SendVal=LED7Code[LedNumVal%16];

  HC595SendData(HC595SendVal);

  delay(200);

  }

  }

  voiddelay(unsignedinti)

  {

  unsignedintj;

  for(i;i》0;i--)

  for(j=300;j》0;j--);

  }

  voidHC595SendData(unsignedcharSendVal)

  {

  unsignedchari;

  for(i=0;i《8;i++)

  {

  if((SendVal《《i)&0x80)MOSIO=1;

  elseMOSIO=0;

  S_CLK=0;

  NOP();

  NOP();

  S_CLK=1;

  }

  R_CLK=0;

  NOP();

  NOP();

  R_CLK=1;

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分