当前位置:首 页 > 电路大全

74hc164应用电路图_74hc164驱动源程序

时间:2021-12-31 21:29 浏览:16次 电路大全 74hc164 应用 电路图 驱动源 程序

  74hc164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74hc164是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

  时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。

  主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。

74hc164原理图

74hc164应用电路

  下图是74HC164显示驱动电路图,图中所示的电路是轻触开关、数码管和LED组成的混合显示电路,其中16个按键,2个数码管,8个LED,是一个典型的538扫描电路.74HC164芯片的8个引脚Q0~Q7输出列扫描信号,单片机直接提供5路行扫描信号。单片机为74HC164提供时钟输入和数据输入信号,控制显示内容。该电路共需单片机的8个引脚,比常规扫描电路节约6个引脚资源,具有一定的成本优势。

  二极管D2-D23起隔离作用,防止74HC164芯片引脚电位的互相干扰。例如:当选中一通道时,74HC164164输出引脚Q0~Q6为高电平,Q7为低电平。此时,如果同时按下SW1和SW2,引脚Q7和引脚Q6处于短路状态,将会损坏芯片。

  时钟输入脚和数据输入脚需要接瓷片电容,用来抗高频干扰,但是电容量不能太大,以免引起输入波形的过度失真,使得电路不能正常工作,推荐使用100~1000pF.

74hc164驱动电路图和源程序

  源程序:

  /***74hc164是上升沿有效***/

  #include《regx51.h》

  #include《intrins.h》

  #define uchar unsigned char

  #define uint unsigned int uchar ch;

  sbit DAT=P2^7;A,B端接一块后接入DAT

  sbit CLK=P2^6;

  char code

  seg[16]=

  {

  0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff

  };

  /*0~9和全灭状态*/

  /*数经过移位寄存器后低位数为高位数,高位数为低位数 如:0000 0011移位以后为1100 0000*/

  /*延时一毫秒函数*/

  void delay(uint ms)

  {

  uchar i;

  for(;ms!=0;ms--)

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

  {

  _nop_();

  _nop_();

  _nop_();

  _nop_();

  }

  }

  /***把代码发送到移位寄存器***/

  void sendchar(ch)

  {

  uchar i;

  for(i=0;i《8;i++)8位数据传输完毕后才给数码管显示

  {

  DAT=ch&0x01;P2_7=0000000x

  /*DAT一直保持该状态,等时钟脉冲触发传递数值*/

  CLK=0;

  下面两句制造一个上升沿 CLK=1;

  /*一个seg[]刚好八位,164是串行输入的,分成八位输入*/ ch》》=1;

  /*DAT=ch&0x01和ch》》=1的功能是一次取出八位二进制ch的每一位赋值给74hc164*/ }

  }

  void main(void)

  {

  uint m=0;

  while(1)

  {

  sendchar(seg[m]);

  if(++m==11) m=0; delay(200);

  }

  }

查看更多