找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

LED点阵经验各种点阵驱动方法讲解

查看数: 43608 | 评论数: 16 | 收藏 19
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-3-4 01:56

正文摘要:

   首先还是讲一下芯片。先讲164芯片,它用作行扫描,行为低电平有效(0有效)。 前面发的程序是买点阵时送的,个人感觉不好,下面是我自己写的: /*--------16*48点阵屏的移动显示------------* ...

回复

ID:281040 发表于 2023-10-2 10:37
32X64的单色LED屏幕 用2个74HC245 一个74HC123D 和 2个74hc138  16个595  8个4953这种室内单元板的原理图有没有
ID:1085441 发表于 2023-9-3 17:13
5020确定是恒流源输出,所以不需要串联电阻来限流,简化了电路,方便使用。而一片595需要8个电阻,既增加了成本,也增加了电路节点,降低可靠性。

5020.png (189.13 KB, 下载次数: 98)

5020.png
ID:69038 发表于 2023-9-2 09:28
cnfloatleaf 发表于 2023-8-7 17:03
不好意思,打错了几个字
74164和74595在这是都是串行移位用,建议用74595,因为74595带输出使能,可以在串 ...

不一样的哦!5020是开漏输出,595是推挽输出,电路上的差异没有可比性
ID:1085441 发表于 2023-8-7 17:03
不好意思,打错了几个字
74164和74595在这是都是串行移位用,建议用74595,因为74595带输出使能,可以在串行移位的时候关闭输出,避免数据移位时显示内容出现短暂的闪烁。74164就不能避免闪烁。
另,现在都是用5020替代74595,2者功能一样,但是5020是恒流输出,不需要外接限流电阻
ID:1085441 发表于 2023-8-7 16:57
留住这一刻2014 发表于 2018-9-18 01:39
楼主74HC164和74HC595这两者有什么区别?

74164和74595在这是都是串行以为用,建议用74595,因为74595带输出使能,可以在串行一味的时候关闭输出,避免数据移位时显示内容出现短暂的闪烁。75264就不能避免闪烁。
ID:362939 发表于 2023-8-7 11:49
颜色是怎么调的,没想通,楼主能科普一下吗?
ID:74933 发表于 2019-4-22 11:01
不错,向楼主学习
ID:430234 发表于 2018-12-9 13:20
颜色是怎么调的,没想通,楼主能科普一下吗
ID:398477 发表于 2018-9-18 01:39
楼主74HC164和74HC595这两者有什么区别?
ID:395607 发表于 2018-9-10 19:26
颜色是怎么调的,没想通,楼主能科普一下吗
ID:359702 发表于 2018-8-26 01:47
颜色是怎么调的,没想通,楼主能科普一下吗
ID:389200 发表于 2018-8-23 11:22
东东不错满意
ID:33522 发表于 2018-7-14 21:21
不错,向楼主学习
ID:309376 发表于 2018-6-4 22:22
解释的不错,谢谢楼主
ID:168401 发表于 2017-3-7 21:28
试试看看,效果如何
ID:140725 发表于 2017-3-4 01:57
以前用MSP430G2553做的音频点阵,fft的头文件: fft.zip (1.73 KB, 下载次数: 40)

  1. /*********************************************************************
  2.                          快速福利叶变换C函数
  3. 函数简介:此函数是通用的快速傅里叶变换C语言函数,移植性强,以下部分不依
  4.           赖硬件。此函数采用联合体的形式表示一个复数,输入为自然顺序的复
  5.           数(输入实数是可令复数虚部为0),输出为经过FFT变换的自然顺序的
  6.           复数
  7. 使用说明:使用此函数只需更改宏定义FFT_N的值即可实现点数的改变,FFT_N的
  8.           应该为2的N次方,不满足此条件时应在后面补0
  9. 函数调用:FFT(s);
  10. 时    间:2010-2-20
  11. 版    本:Ver1.0
  12. 参考文献:   
  13.       
  14. **********************************************************************/
  15. #include<math.h>
  16. #include <stdio.h>


  17. #define PI 3.1415926535897932384626433832795028841971               //定义圆周率值
  18. #define FFT_N 16                                                   //定义福利叶变换的点数

  19. typedef struct compx
  20. {
  21.         double real,imag;
  22. }compx;                                    //定义一个复数结构
  23. struct compx s[FFT_N];                                              //FFT输入和输出:从S[1]开始存放,根据大小自己定义


  24. /*******************************************************************
  25. 函数原型:struct compx EE(struct compx b1,struct compx b2)  
  26. 函数功能:对两个复数进行乘法运算
  27. 输入参数:两个以联合体定义的复数a,b
  28. 输出参数:a和b的乘积,以联合体的形式输出
  29. *******************************************************************/
  30. compx  EE(struct compx *a,struct compx *b)      
  31. {
  32. compx c;
  33. c.real=a->real*b->real-a->imag*b->imag;
  34. c.imag=a->real*b->imag+a->imag*b->real;
  35. return c;
  36. }

  37. /*****************************************************************
  38. 函数原型:void FFT(struct compx *xin,int N)
  39. 函数功能:对输入的复数组进行快速傅里叶变换(FFT)
  40. 输入参数:*xin复数结构体组的首地址指针,struct型
  41. *****************************************************************/
  42. void FFT(struct compx *xin)
  43. {
  44.   int f,m,nv2,nm1,i,k,l,j=0;
  45.   struct compx u,w,t;
  46.    
  47.    nv2=FFT_N/2;                  //变址运算,即把自然顺序变成倒位序,采用雷德算法
  48.    nm1=FFT_N-1;  
  49.    for(i=0;i<nm1;i++)        
  50.    {
  51.     if(i<j)                    //如果i<j,即进行变址
  52.      {
  53.       t=xin[j];           
  54.       xin[j]=xin[i];
  55.       xin[i]=t;
  56.      }
  57.     k=nv2;                    //求j的下一个倒位序
  58.     while(k<=j)               //如果k<=j,表示j的最高位为1   
  59.      {           
  60.       j=j-k;                 //把最高位变成0
  61.       k=k/2;                 //k/2,比较次高位,依次类推,逐个比较,直到某个位为0
  62.      }
  63.    j=j+k;                   //把0改为1
  64.   }
  65.                         
  66.   {
  67.    int le,lei,ip;                            //FFT运算核,使用蝶形运算完成FFT运算
  68.     f=FFT_N;
  69.    for(l=1;(f=f/2)!=1;l++)                  //计算l的值,即计算蝶形级数
  70.            ;
  71.   for(m=1;m<=l;m++)                         // 控制蝶形结级数
  72.    {                                        //m表示第m级蝶形,l为蝶形级总数l=log(2)N
  73.     le=2<<(m-1);                            //le蝶形结距离,即第m级蝶形的蝶形结相距le点
  74.     lei=le/2;                               //同一蝶形结中参加运算的两点的距离
  75.     u.real=1.0;                             //u为蝶形结运算系数,初始值为1
  76.     u.imag=0.0;
  77.     w.real=cos(PI/lei);                     //w为系数商,即当前系数与前一个系数的商
  78.     w.imag=-sin(PI/lei);
  79.     for(j=0;j<=lei-1;j++)                   //控制计算不同种蝶形结,即计算系数不同的蝶形结
  80.      {
  81.       for(i=j;i<=FFT_N-1;i=i+le)            //控制同一蝶形结运算,即计算系数相同蝶形结
  82.        {
  83.         ip=i+lei;                           //i,ip分别表示参加蝶形运算的两个节点
  84.         t=EE(&xin[ip],&u);                    //蝶形运算,详见公式
  85.         xin[ip].real=xin[i].real-t.real;
  86.         xin[ip].imag=xin[i].imag-t.imag;
  87.         xin[i].real=xin[i].real+t.real;
  88.         xin[i].imag=xin[i].imag+t.imag;
  89.        }
  90.       u=EE(&u,&w);                           //改变系数,进行下一个蝶形运算
  91.      }
  92.    }
  93.   }
  94.   
  95. }
复制代码



小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表