标题: 单片机+cd4094加cd4511驱动共阴数码管电路图+程序一例 [打印本页]

作者: zkele    时间: 2019-2-11 09:29
标题: 单片机+cd4094加cd4511驱动共阴数码管电路图+程序一例
春节闲来无事,翻出来两块数码管的板子,大尺寸的数码管。看了看手工描绘了实物图出来,比较简单一个CD4094输出8BIT分成两个4BIT驱动两个CD4511。

电路原理图如下:
上图









很简单然后写了几行代码测试显示数字00-99循环加

测试程序附上
  1. /***************
  2. 测试CD4094+CD4511驱动共阴数码管显示数字
  3. 一个4094带两个CD4511驱动两个数码管
  4. 然后输出级连口
  5. ********************/
  6. #include <reg51.h>
  7. #include <intrins.h>
  8. #define uchar unsigned char
  9. #define uint  unsigned int

  10. #define nop(); _nop_();

  11. sbit D4094=P1^0; //串行数据输出端,H 使能
  12. sbit STR4094=P1^1; //锁存器移位使能端,H 使能
  13. sbit CLK4094=P1^2; //串行时钟输出端,H 使能输出状态使能端,H 使能
  14. void delayms(unsigned short ms)
  15. {
  16.    unsigned short i;
  17.    uchar j;
  18.    for(i=0;i<ms;i++)
  19.         {
  20.     for(j=0;j<200;j++);
  21.     for(j=0;j<102;j++);
  22.     } //for(i=0;i<ms;i++)
  23. }

  24. void Out4094(uchar dat0)
  25. {
  26.         uchar a,b;

  27.         b=dat0;//读入待发送的数据
  28.         STR4094=0;
  29.         for(a=0;a<8;a++)
  30.                 {
  31.                 if(b&0x80)
  32.                 D4094=1;
  33.                 else D4094=0;
  34.         CLK4094=0;
  35.                 nop();
  36.                    CLK4094=1;
  37.                 b<<=1;//向左移一位
  38.                 }
  39.    STR4094=1;
  40. }

  41. void main()
  42. {
  43.         uchar a=0,b,c,d;
  44.         while(1)
  45.                 {
  46.                 if(a>=100) a=0;
  47.                 b=a/10;//取十位
  48.                 c=a%10;//取个位
  49.                 d=c<<4|b&0x0f;//然后高低交换
  50.                 Out4094(d);//发送移位输出至CD4094
  51.                 delayms(500);
  52.                 a++;
  53.                 }
  54. }
复制代码

全部资料51hei下载地址:
4094v2.rar (688 Bytes, 下载次数: 31)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1