发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印
[应用方案]

基于DP5020点阵屏的显示驱动

[复制链接]
1390|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#   @21小跑堂
在以往的点阵屏中,多使用74HC595作为串并转换的芯片,它所处理的数据宽度只有8位。而现在的显示面板设计多使用16位的驱动IC,例如DP5020就是其中的一种,这样就可以有效地缩减芯片的使用量并可以大幅地化简电路的设计复杂度。此外,该芯片还有一大特点就是其输出端口提供了2~60mA的恒定电流驱动,因而使得LED的发光亮度更均匀且能精确控制,该芯片的内部结构如图1所示。
1  内部结构

该芯片的引脚排列如图2所示,各引脚的功能则如图3所示。

2  引脚排列

3  引脚功能


该芯片在显示面板的设计中,其典型的应用方式见图4所示。
4 典型应用


DP5020的工作时序如图5 所示,这是后续对其进行驱动的主要基础。
5时序关系

前面之所以对DP5020作这么详细的介绍,就在于所驱动红色P4.75点阵屏就是基于该芯片来设计的,这块点阵屏的规格为16*64,其外观如图6所示。

在线路构成上,除使用芯片DP50204片)之外,还用到的芯片有SM2452片)和SM51662片)。
6 点阵屏外观


该点阵屏所使用的接口为HUB08,各引脚的名称如图7所示。
7  HUB08接口


为驱动该点阵屏,所使用的是N76E003最小系统开发板,调试下载工具为MU_LINK,连接方式如图8所示。
8 开发板及下载工具

点阵屏与开发板的连接关系为:
A---P0.0
B---P0.1
C---P0.2
D---P0.3
R1 ---P1.4
OE ---P0.5
LAT ---P0.6
CLK ---P0.7
所做的相应定义为:
sbit LA=P0^0;
sbit LB=P0^1;
sbit LC=P0^2;
sbit LD=P0^3;
sbit LSCL=P0^7;  // CLK
sbit LSTB=P0^6;  // LAT
sbit LR1=P1^4;   // R1
sbit LEN=P0^5;   // OE
UINT8  ScanRow=0;


使用DP5020发送16位数据的函数为:
void DP5020_OutByte(UINT16 dat)
{
    UINT8 i=0 ;
    for(i=0;i<16;i++)
    {
        LSCL=0;
        if(dat&0x8000)
        {
            LR1=1;
        }
        else
        {
            LR1=0;
        }
        dat=dat<<1;
        LSCL=1;
    }
}

进行输出行选择的函数为:
void  SeleRow(UINT8 Nd)
{
    UINT8 N=Nd;
        N=N%16;
    if(N&0x01)  LA=1;
    else  LA=0;
    if (N&0x02)  LB=1;
    else  LB=0;
    if (N&0x04)  LC=1;
    else  LC=0;
    if (N&0x08)  LD=1;
    else  LD=0;
}

实现指定宽度的数据发送函数为:
void DisCol(UINT16 *dat,UINT16 len)
{
    while(len--)
    {
             DP5020_OutByte(dat);
    }
}

进行显示驱动的函数为:
void  Display(void)
{
          DisCol(0x5555,4);
          LEN=1;
          LSTB=1;
          LSTB=0;
      SeleRow (ScanRow)
      LEN=0;
      ScanRow++;
          if(ScanRow>15)  ScanRow=0;
}

实现驱动测试的主程序为:
void main (void) 
{
         Set_All_GPIO_Quasi_Mode;       
         set_CLOEN;
         ScanRow=0;
     while(1)
     {
                   Display();
     }
}

经测试,其显示效果如图9所示,说明驱动正常。
9  驱动测试

在以上驱动程序的基础上,将测试的固定数值改为读取字库中的字模即可实现字符或汉字的显示。

以工具软件PCtoLCD2002来提取字模的方式如图10所示,是垂直镜像字。
10 字模提取方式
将字模存放到数组的格式为:
UINT8  code tab[]={
0x00,0x00,0xF8,0x23,0x00,0x10,0x00,0x10,0x00,0x00,0xFC,0x07,0x20,0xF1,0x20,0x11,
0x20,0x11,0x20,0x11,0x24,0x11,0x24,0x12,0x24,0x12,0x1C,0x14,0x00,0x28,0xFE,0x47,/*"",0*/
...
};


实现满屏显示的函数为:
void DisCol(UINT16 lenght)
{
          UINT16 dat,n;
          UINT8 m=8;
      n= lenght-2
      while(lenght--)
      {
                   dat=( tab [m*32+ScanRow*2+1]<<8)+ tab [m*32+ScanRow*2];
                   DP5020_OutByte(dat);
                   m=m+1;
     }
}

其显示的效果如图11所示,说明显示效果正确。
11  汉字显示效果


若在屏上想实现单字显示,则其显示函数应修改为:
void DisCol(UINT16 lenght)
{
          UINT16 dat,n;
          UINT8 m=8;
      n= lenght-2;
      while(lenght--)
      {
                   if(lenght>n) dat=( tab [m*32+ScanRow*2+1]<<8)+ tab [m*32+ScanRow*2];
                   else dat=0x0;
                   DP5020_OutByte(dat);
                   m=m+1;
     }
}

其显示的效果如图12所示,当然通过修改变量n的表达式也能指定其它数量的显示字数。
12  单字显示效果

这样就解决了基于DP5020点阵屏的显示驱动问题,并得到了良好的显示效果。感兴趣的话,还可参考前面介绍74HC595的驱动方法来实现数值的显示及电子时钟功能。


使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2023-03-22
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
21小跑堂 2023-3-22 10:32 回复TA
使用驱动IC,提升点阵屏的显示效果,降低操作繁琐程度,优化使用体验。 
沙发
海滨消消| | 2023-3-21 11:26 | 只看该作者
介绍详细,有时间慢慢看吧

使用特权

评论回复
板凳
V853| | 2023-3-21 16:02 | 只看该作者
点阵屏,其实显示效果还是不错的。

使用特权

评论回复
地板
Pretext| | 2023-3-21 16:02 | 只看该作者
点阵屏的优势就是价格便宜,寿命长。

使用特权

评论回复
5
天天向善| | 2023-3-21 16:03 | 只看该作者
驱动点阵屏需要不停的刷新,还是挺占执行时长的。

使用特权

评论回复
6
jinglixixi|  楼主 | 2023-3-21 16:38 | 只看该作者
海滨消消 发表于 2023-3-21 11:26
介绍详细,有时间慢慢看吧

关系支持!!!

使用特权

评论回复
7
jinglixixi|  楼主 | 2023-3-21 16:40 | 只看该作者
V853 发表于 2023-3-21 16:02
点阵屏,其实显示效果还是不错的。

如果价格再亲民一些还是很容易被人接受的

使用特权

评论回复
8
jinglixixi|  楼主 | 2023-3-21 16:44 | 只看该作者
天天向善 发表于 2023-3-21 16:03
驱动点阵屏需要不停的刷新,还是挺占执行时长的。

是的,所以在规模不是很大的情况下用N76E003这种价格便宜的芯片还是很合适的。

使用特权

评论回复
9
昨天| | 2023-3-25 09:14 | 只看该作者
这个是外接开关电源供电吧??,算了下电流要几安了。

使用特权

评论回复
10
jinglixixi|  楼主 | 2023-3-25 09:32 | 只看该作者
昨天 发表于 2023-3-25 09:14
这个是外接开关电源供电吧??,算了下电流要几安了。

起初我也是这样想的,用的外接开关电源,后来一次偶然的失手,居然是电脑为下载工具提供的电源也能使其点亮,就开始以USB为其供电了,短时间是没问题的。

使用特权

评论回复
11
V853| | 2023-4-6 17:04 | 只看该作者
jinglixixi 发表于 2023-3-21 16:40
如果价格再亲民一些还是很容易被人接受的

是的,但是他的成本就在那,估计价格也很难压下来。

使用特权

评论回复
12
jinglixixi|  楼主 | 2023-4-7 08:39 | 只看该作者
V853 发表于 2023-4-6 17:04
是的,但是他的成本就在那,估计价格也很难压下来。


使用特权

评论回复
发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2675

帖子

37

粉丝