找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2899|回复: 11
打印 上一主题 下一主题
收起左侧

求助,这种LED点阵显示屏怎么使用?如何用MCU驱动

[复制链接]
跳转到指定楼层
楼主
              求助,这种LED显示屏怎么使用?
从网上某店买了一块LED显示屏,样式如下:
   

   

买的时候忘了问有没有配套开发资料,想当然的认为理所当然会有这资料,结果买到后向店家索要开发资料,店家说只有以下资料,没有其他的资料。
   
我想在这块屏上滚动显示五个汉字,但由于没有必需的开发资料,无从下手,希望了解这种屏的人帮帮我,不胜感激!



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2020-7-11 16:21 来自手机 | 只看该作者
查看板上芯片型号及使用 MCU,对号入座搜 80*16 点阵屏程序
回复

使用道具 举报

板凳
ID:404797 发表于 2020-7-11 22:48 | 只看该作者
谢谢指点,我也想看板上是用了哪些芯片,但芯片太小,看不清楚,用手机拍照放大也还看不清。板上有两个16针接口,一个标OUT1,一个标IN1。
回复

使用道具 举报

地板
ID:155507 发表于 2020-7-11 23:02 | 只看该作者
你这个是hub08接口  点阵屏

我给你来个资料可以参考一下
http://www.51hei.com/bbs/dpj-100285-1.html

http://www.51hei.com/bbs/dpj-31394-1.html

http://www.51hei.com/bbs/dpj-38426-1.html


  1. /*
  2. 08接口简单说明

  3. A 、B 、 C、 D:两片74HC138的输入信号

  4. EN: 74HC138的输出使能,低电平有效
  5. R1: 是74HC595的数据线,串行数据输入
  6. R2: 用不上
  7. G1: 用不上
  8. G2: 用不上
  9. LT:74HC595时钟
  10. SK:74HC595的存储控制线
  11. */
  12. //单片机:STC89C52
  13. //晶振:22.1184M,下载选择双倍时钟,否则会有闪烁!
  14. //显示屏:HUB08接口16X64单红点阵
  15. //显示方式:左移


  16. #include
  17. #include"zimo.h"
  18. #define uchar  unsigned char
  19. #define uint   unsigned int
  20. #define SPEED   5   //定义速度与数字成反比 数字小,速度快
  21. #define NUMBER  11  //定义要移动显示总16X16汉字个数,计算方法:NUMBER=汉字显示个数+4个空格

  22. uchar word=0,col=0,col1=0,disrow=0,move=0;//wor为要显字变量,col为位移变量,col1为字节偏移量,disrow为行变量
  23. uchar BUFF__UP[17];     //缓冲字节数取值=[2*板点阵宽度/8]+1比较保险,即两倍板的点阵字节数.
  24. uchar BUFF__UP0[12];    //上半屏显示缓冲

  25. sbit R1=P0^4;//红色数据1
  26. sbit R2=P3^3;//红色数据2
  27. sbit G1=P3^4;//绿色数据1
  28. sbit G2=P3^5;//绿色数据
  29. sbit CLK=P0^7; //595时钟端口
  30. sbit STB=P0^6; //595锁存端口
  31. sbit OE =P0^5;//74HC138使能:低有效

  32. //根据列指针由双字节合并为单字节的子程序模块
  33. //和点阵的取模方式有关:低位在前,高位在后,但是实际显示,高位在前,低位在后!
  34. uchar Combine_2byte(uchar h1,uchar h2)
  35. {
  36.         uchar T_date,tempcol;
  37.         tempcol=col1;
  38.         T_date=(h1>>tempcol)|(h2<<(8-tempcol));
  39.         return T_date;
  40. }      

  41. //分别装屏点阵数据
  42. void Load_one_line(void)     //多加4个16X16汉字的缓冲
  43. {
  44.         BUFF__UP[0]=Table[word][disrow*2+0];//装载点阵数据
  45.         BUFF__UP[1]=Table[word][disrow*2+1];

  46.         BUFF__UP[2]=Table[word+1][disrow*2+0];
  47.         BUFF__UP[3]=Table[word+1][disrow*2+1];

  48.         BUFF__UP[4]=Table[word+2][disrow*2+0];
  49.         BUFF__UP[5]=Table[word+2][disrow*2+1];

  50.         BUFF__UP[6]=Table[word+3][disrow*2+0];
  51.         BUFF__UP[7]=Table[word+3][disrow*2+1];

  52.         BUFF__UP[8]=Table[word+4][disrow*2+0];
  53.         BUFF__UP[9]=Table[word+4][disrow*2+1];

  54.         BUFF__UP[10]=Table[word+5][disrow*2+0];
  55.         BUFF__UP[11]=Table[word+5][disrow*2+1];

  56.         BUFF__UP[12]=Table[word+6][disrow*2+0];
  57.         BUFF__UP[13]=Table[word+6][disrow*2+1];

  58.         BUFF__UP[14]=Table[word+7][disrow*2+0];
  59.         BUFF__UP[15]=Table[word+7][disrow*2+1];

  60. }

  61. //发送屏一线点阵数据
  62. void Send_one_line(void)
  63. {
  64.         char s;
  65.         uchar temp,i,inc;
  66.         if(col<8)            inc=0;
  67.         if(8<=col&&col<16)   inc=1;
  68.         for(s=0+inc;s<=8+inc;s++)
  69.         {
  70.                 temp=Combine_2byte(BUFF__UP[s],BUFF__UP[s+1]);
  71.                 for(i=0;i<8;i++)
  72.                 {
  73.                         R1=~(temp>>i)&0x01;//取出最低位
  74.                         R2=0xff;      //不显示
  75.                         G1=0xff;
  76.                         G2=0xff;  
  77.                         CLK=0;
  78.                         CLK=1;       //移位时钟
  79.                 }
  80.         }
  81. }


  82. //左移函数
  83. void LEFT_MOVE()
  84. {
  85.         uchar i;
  86.         for(col=0;col<16;col++)//循环16次,点亮并移动一个汉字,步进是一位
  87.         {
  88.                 col1=col%8;//一个字节移动位数
  89.                 for(i=0;i
  90.                 {
  91.                         for(disrow=0;disrow<16;disrow++)//扫描16行   
  92.                         {
  93.                                 Load_one_line();//装载一行点阵数据
  94.                                 Send_one_line();//发送一行点阵数据
  95.                                 OE=1;                     
  96.                                 STB=1;        // 输出锁存         
  97.                                 STB=0;               
  98.                                 P0=disrow;    // 行扫描
  99.                                 OE=0;
  100.                         }
  101.                 }
  102.         }

  103.         word=word+1;// 一个汉字移动后,指向下一个汉字
  104.         if(word>=NUMBER)
  105.         {
  106.                 word=0;//移动完NUMBER个汉字后重新开始
  107.         }   
  108. }


  109. //主函数入口
  110. void main(void)
  111. {
  112.         R1=0;//数据初始化
  113.         R2=0;
  114.         G1=0;
  115.         G2=0;
  116.         while(1)
  117.         {
  118.                 LEFT_MOVE(); //左移
  119.         }
  120. }


  121. zimo.h

  122. unsigned char code Table[][32]=
  123. {
  124.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
  125.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  126.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  127.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  128.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  129.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  130.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  131.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  132.         0x08,0x00,0xC8,0x7F,0x48,0x00,0x7F,0x00,0x48,0x3F,0x68,0x00,0xD8,0x7F,0x48,0x03,
  133.         0x4C,0x25,0x4B,0x65,0x48,0x19,0x48,0x11,0x28,0x11,0x28,0x65,0x1A,0x23,0x04,0x01,
  134.         0xFC,0x1F,0x00,0x0C,0x60,0x03,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,
  135.         0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x14,0x04,0x08,

  136.         0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,
  137.         0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x40,0x80,0x40,
  138.         0x00,0x7F,0x00,0x00,

  139.         0x00,0x00,0xFC,0x0F,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x80,0x00,
  140.         0x80,0x20,0xFF,0x7F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
  141.         0xA0,0x00,0x40,0x00,

  142.         0x00,0x01,0x00,0x01,0x3F,0x01,0xA0,0x7F,0xA1,0x20,0x52,0x12,0x14,0x02,
  143.         0x08,0x02,0x18,0x02,0x18,0x06,0x24,0x05,0x24,0x09,0x82,0x18,0x61,0x70,
  144.         0x1C,0x20,0x00,0x00,

  145.         0x02,0x00,0x84,0x01,0x6C,0x3E,0x24,0x22,0x20,0x22,0x20,0x22,0x27,0x22,
  146.         0x24,0x22,0xA4,0x22,0x64,0x2A,0x24,0x12,0x04,0x02,0x04,0x02,0x0A,0x00,
  147.         0xF1,0x7F,0x00,0x00,

  148.         0x90,0x00,0x90,0x01,0x88,0x20,0xC8,0x7F,0x44,0x20,0x2C,0x12,0x16,0x02,
  149.         0x45,0x0A,0xC4,0x12,0x44,0x12,0x24,0x22,0x24,0x62,0x14,0x22,0x84,0x02,
  150.         0x04,0x01,0x00,0x00,

  151.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
  152.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  153.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空白
  154.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  155.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  156.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  157.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  158.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  159.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  160.         0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  161. };
复制代码
回复

使用道具 举报

5#
ID:88256 发表于 2020-7-11 23:25 | 只看该作者
wc86110 发表于 2020-7-11 16:21
查看板上芯片型号及使用 MCU,对号入座搜 80*16 点阵屏程序

仅仅看芯片型号没用吧?真要搜索80*16 点阵屏程序应该极难搜索到,板上应该都是级联的,只要能够点亮一个字剩下的都简单了。我觉得还是搞清楚用些什么集成块及电路的接法,搜索相应接法的程序,只要能够局部点亮,剩下的自己再改
回复

使用道具 举报

6#
ID:404797 发表于 2020-7-12 09:59 | 只看该作者
      经楼上指点,本人找了一个放大镜,仔细查看板上所用芯片,终于有所收获,看到板上好象有
FMTC5020A芯片5片,
SM74HC138D芯片2片,
SM74HC04芯片2片,
SM245TS芯片2片,
以及好象是4953芯片8片。


    根据FMTC5020A芯片这一型号,本人在百度查到一些资料、程序等,但是本人这块板标注很简略,两个数据接口及一个电源接口都没任何标注,电源还好办,但数据接口没任何标注,甚至连针脚号都没有,不知哪个引脚该对应哪个信号,有些不清,望高手指导。下面是本人所买的板的数据接口图:



回复

使用道具 举报

7#
ID:404797 发表于 2020-7-12 13:28 | 只看该作者
angmall 发表于 2020-7-11 23:02
你这个是hub08接口  点阵屏

我给你来个资料可以参考一下

非常感谢,有找时间试试。
回复

使用道具 举报

8#
ID:404797 发表于 2020-7-12 13:30 | 只看该作者
hhdsdy 发表于 2020-7-11 23:25
仅仅看芯片型号没用吧?真要搜索80*16 点阵屏程序应该极难搜索到,板上应该都是级联的,只要能够点亮一个 ...

是的,只要能准确点亮一排灯就有办法啦
回复

使用道具 举报

9#
ID:155507 发表于 2020-7-12 16:13 | 只看该作者
你这个是LED点阵08标准接口
LED显示屏的接口形式有04接口、08接口、12接口几种

12接口多用于户外屏,例如P10/P16/P13.3单色或者双色。
08接口多用于室内屏,例如F3.0/3.75/5.0等规格的点阵。

判断方法:一个户外屏用的,一个是室内屏用的,就看你的屏是户外的还是室内的就知道了。
看看显示屏单元板排阵两侧 标注的字母 ,对照上表 就可知道,一般常用的室内F5.0/F3.75为08接口,室外的P10为12接口,特殊除外。。。。



LED点阵08标准接口
GND 接地
EN 使能也用OE描述
A\B\C\D 行信号,过138由二进制转十进制
R1\R2\G1\G2 是指颜色代号,R是红色red的简称,G是绿色greed的简称
LT SK 是指时钟、锁存

扫描信号目前有三种常见的接线方式:直通译码扫描,串行译码扫描和最常见的138译码扫描方式,其中138译码的原理就是利用138译码芯片实现译码,ABCD信号共可以译出16扫;
OE信号对应通用ON/OFF芯片的OE脚,例如MBI的5024,对应PWM芯片就是GCLK,例如MBI5050等


其中,管脚LA、LB、LC、LD表示行信号;管脚R1、R2、G1、G2表示列信号;管脚EN表示使能信号;管脚SCK表示时钟信号;管脚STB表示锁存信号;管脚GND表示接地。
  那么,管脚LA、LB、LC、LD是如何来控制行信号,从而实现1/16扫描方式的。其实很简单,这是通过两个3-8译码器74HC138芯片来实现,通过这两个芯片可以实现如下的功能:
  当管脚LD、LC、LB、LA的输出分别为0000时,LED显示屏的第一行被选中;
  当管脚LD、LC、LB、LA的输出分别为0001时,LED显示屏的第二行被选中;
  当管脚LD、LC、LB、LA的输出分别为0010时,LED显示屏的第三行被选中;
  ......
  当管脚LD、LC、LB、LA的输出分别为1111时,LED显示屏的第十六行被选中。
  现在,我们已经知道如何通过08接口的四个行信号LA、LB、LC、LD来控制LED显示屏的每一行了。将08接口的四个列信号都接地,循环给四个行信号输入0000到1111,就可以点亮整个LED显示屏了。
  但是要在LED显示屏上显示出汉字或是图形,仅仅对行信号进行控制是远远不够的,我们还需要对列信号进行控制。


驱动这种矩阵LED屏真心没有什么难的,最简单的方法,就是先把你要显示的字按16*16的阴码取字模, 然后取4个字的第1行字模数据移入到8个595中,再片选这一行(就是38译码器输出1),延时个1ms,取消片选,再取第2行字模,移入595,片选第2行,延时,取消片选,重复此过程16遍,便把一行字的字模码全显了,然后就是不停循环,便可刷出一行字了.第二行是同样的道理.








回复

使用道具 举报

10#
ID:404797 发表于 2020-7-12 16:45 | 只看该作者
angmall 发表于 2020-7-12 16:13
你这个是LED点阵08标准接口
LED显示屏的接口形式有04接口、08接口、12接口几种

非常感谢!
回复

使用道具 举报

11#
ID:404797 发表于 2020-7-12 16:53 | 只看该作者
angmall 发表于 2020-7-12 16:13
你这个是LED点阵08标准接口
LED显示屏的接口形式有04接口、08接口、12接口几种

经您指点,我有信心点亮这块屏啦,明后天找个时间试试你给我的程序,定会有惊喜出现。
回复

使用道具 举报

12#
ID:404797 发表于 2020-7-13 23:27 | 只看该作者
angmall 发表于 2020-7-12 16:13
你这个是LED点阵08标准接口
LED显示屏的接口形式有04接口、08接口、12接口几种

       在您的指导下,经过一个周末的折腾,终于把字显示在LED屏上了,本人采用整字滚动的办法,没有用单一象素滚动的方法,这样比较简单实用。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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