74hc164驱动共阴数码管与共阳数码管_74hc164驱动源程序

电子常识

2573人已加入

描述

  74hc164是比较典型的移位寄存器,该移位寄存器有一个数据输入端口、一个时钟信号端口和八个输出端口。这种方法只需要2个MPU 的IO端口,而且在锁存器件这2个端口还可以干别的事情。 74HC164驱动共阴、共阳数码管都很方便。

  74hc164驱动要点

  1、上升沿写入串行数据

  CLK=0;

  DAT=num&0x01;

  CLK=1;

  2、写入数据的数码管编码(指代码中的 tab[])

  串行数据是FIFO先进先出,也就是先写高位,移位放入。

  74hc164驱动共阴数码管

  74hc164驱动共阴数码管电路图

数码管

  74hc164驱动共阴数码管源程序

  //共阴数码管74hc164串行驱动

  #include《AT892051.H》

  #define uint unsigned int

  #define uchar unsigned char

  sbit DAT=P3^7; //模拟串口数据发送端

  sbit CLK=P3^4;//模拟时钟控制端

  uchar code tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6};//0-9,-,全灭

  void sendbyte(uchar byte)

  {

  uchar num,c;

  num=tab[byte];

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

  {

  CLK=0;

  DAT=num&0x01;

  CLK=1;

  num》》=1;

  }

  }

  void delay_50ms(unsigned int t)

  {

  unsigned int j;

  for(;t》0;t--)

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

  {;}

  }

  main()

  {

  unsigned char h;

  while(1){

  for(h=0;h《10;h++){

  delay_50ms(1);

  sendbyte(h);

  delay_50ms(4);

  }

  h=0;

  }

  }

  74hc164驱动共阳数码管

  74hc164驱动共阳数码管电路图

数码管

  74hc164驱动共阳数码管源程序

  #include《reg51.h》

  #define uint unsigned int

  #define uchar unsigned char

  sbit DAT=P1^1; //模拟串口数据发送端

  sbit CLK=P1^2;//模拟时钟控制端

  uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭 (共阳字段表)

  void sendbyte(uchar byte)

  {

  uchar num,c;

  num=tab[byte];

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

  {

  CLK=0;

  DAT=num&0x80; //(0x80即十进制的128, 二进制的10000000 按位发送)

  CLK=1;

  num《《=1;

  }

  }

  void delay_50ms(unsigned int t) //50MS演示程序

  {

  unsigned int j;

  for(;t》0;t--)

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

  {;}

  }

  main()

  {

  unsigned char h;

  while(1){

  for(h=0;h《10;h++){

  delay_50ms(1);

  sendbyte(h);

  delay_50ms(10);

  }

  h=0;

  }

  }

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

全部0条评论

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

×
20
完善资料,
赚取积分