查看: 10442|回复: 20

[原创] 基于LPC824 lite开发板的串口TFT屏显示

[复制链接]
  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
    发表于 2016-11-18 08:58:56 | 显示全部楼层 |阅读模式
        对于LPC824 lite这款以取代单片机为目标的产品,不为它配上个TFT彩色显示屏也难展其英雄本色。可面对32KB的程序存储空间,要不借助辅助的存储空间的帮助,要想实现图像显示也实在是个难题。那首先就上TFT显示屏亮起来吧,面对LPC824的小身子板,可不能盲目地选TFT显示屏,为了节省GPIO资源这里选的是TFT串口显示屏,其显示效果如图1所示。
    图片1.png
             图1  TFT串口屏显示效果
    选好显示屏,下面的问题是如何来进行连接,因为板上GPIO资源基本上已被瓜分殆尽了。这里采用如下的连接方式,即:
    REST --P0.20    DC --P0.21   CS --P0.22   SDI --P0.25   SCK --P0.24
        为此,相应相关引脚输出高低电平的定义语句如下:
    #define LCD_SCK_High()     GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 24, 1 );
    #define LCD_SCK_Low()           GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 24, 0 );  
    #define LCD_SDI_High()      GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 25, 1 );
    #define LCD_SDI_Low()      GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 25, 0 );  
    #define LCD_CS_High()      GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 1 );
    #define LCD_CS_Low()           GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 22, 0 );
    #define LCD_DC_High()      GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 21, 1 );
    #define LCD_DC_Low()             GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 21, 0 );
    #define LCD_REST_High()            GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 20, 1 );
    #define LCD_REST_Low()     GPIOSetBitValue(LPC_GPIO_PORT->PIN0, 20, 0 );
    在自定义小字库的情况下,实现32*32点阵汉字显示的函数为:
    1. void showhanzi32(unsigned int x,unsigned int y,unsigned char index)       
    2. {  
    3.         unsigned char i,j,k;
    4.         const unsigned char *temp=hanzi32;   
    5.         temp+=index*128;       
    6.         for(j=0;j<32;j++)
    7.         {
    8.                 LCD_SetCursor(x,y+j);
    9.                 LCD_WriteRAM_Prepare();       
    10.                 for(k=0;k<4;k++)
    11.                 {
    12.                         for(i=0;i<8;i++)
    13.                         {                      
    14.                                  if((*temp&(1<<i))!=0)
    15.                                 {
    16.                                         LCD_WR_DATA(POINT_COLOR);
    17.                                 }
    18.                                 else
    19.                                 {
    20.                                         LCD_WR_DATA(BACK_COLOR);
    21.                                 }   
    22.                         }
    23.                         temp++;
    24.                 }
    25.          }
    26. }
    复制代码
    而对应的字库结构则为:
    1. unsigned char hanzi32[]=
    2. {
    3. //心
    4. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    5. 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00,
    6. 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0x1c, 0x02, 0x00,
    7. 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x40, 0x0c, 0x00, 0x02, 0x40, 0x0c, 0x00, 0x06,
    8. 0x60, 0x0c, 0x00, 0x0c, 0x60, 0x0c, 0x00, 0x1c, 0x60, 0x0c, 0x00, 0x18, 0x70, 0x0c, 0x00, 0x38,
    9. 0x38, 0x0c, 0x80, 0x38, 0x3c, 0x0c, 0x80, 0x10, 0x00, 0x0c, 0x80, 0x00, 0x00, 0x0c, 0x80, 0x00,
    10. 0x00, 0x0c, 0x80, 0x00, 0x00, 0x0c, 0x80, 0x00, 0x00, 0x0c, 0xc0, 0x01, 0x00, 0xf8, 0xff, 0x01,
    11. 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    12. //率
    13. ......
    14. }
    复制代码
    那在LPC824 lite开发板上能否实现图片显示呢?
    答案是可以的,但图片不能过大,其效果如图2所示。
    如果图片较大又如何处理呢?目标是板上的4MBSPI FLASH!但要将大图片查分成小若干片,再分批倒到SPI FLASH中,以供读取使用。
    以显示40*40像素的16位色图片为例,其显示程序为:
    1. void showimage(unsigned int x,unsigned int y)
    2. {   // 显示40*40像素图片
    3.         unsigned int i,j,k;
    4.         unsigned int da;
    5.         k=0;
    6.         for(i=0;i<40;i++)         
    7.         {       
    8.                 LCD_SetCursor(x,y+i);
    9.                 LCD_WriteRAM_Prepare();       
    10.                 for(j=0;j<40;j++)               
    11.                 {
    12.                         da=qqimage[k*2+1];
    13.                         da<<=8;
    14.                         da|=qqimage[k*2];
    15.                         LCD_WR_DATA(da);                                       
    16.                         k++;  
    17.                 }
    18.         }
    19. }
    复制代码
    图片2.png
                 图2 图片显示效果

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-4-28 22:47
  • 签到天数: 233 天

    连续签到: 1 天

    [LV.7]常住居民III

    0

    主题

    623

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1431
    最后登录
    2022-10-20
    发表于 2016-11-18 09:15:55 | 显示全部楼层
    刷一幅图估计时间很长吧。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-23 10:20
  • 签到天数: 45 天

    连续签到: 1 天

    [LV.5]常住居民I

    5

    主题

    693

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1406
    最后登录
    2025-7-21
    发表于 2016-11-18 09:38:18 | 显示全部楼层
    赞一个
    dfdfdfdfdfdfdfd dsfa222
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-10-11 11:01
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    0

    主题

    16

    帖子

    0

    注册会员

    Rank: 2

    积分
    62
    最后登录
    2019-4-3
    发表于 2016-11-18 09:47:48 | 显示全部楼层
    漂亮,如果用作心电信号的处理好像处理器稍稍弱了点
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-1-24 08:47
  • 签到天数: 49 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    524

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1267
    最后登录
    2017-4-19
    发表于 2016-11-18 10:51:29 | 显示全部楼层
    牛b                             
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-18 12:11:25 | 显示全部楼层
    yanhaijian 发表于 2016-11-18 09:15
    刷一幅图估计时间很长吧。

    具体没测,但用手机拍肯定拍不到一幅整图像。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-31 22:07
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    20

    主题

    385

    帖子

    19

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2093
    最后登录
    2020-7-1
    发表于 2016-11-18 12:30:42 | 显示全部楼层
    这个玩的6啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-18 13:11:21 | 显示全部楼层
    ccfengfw 发表于 2016-11-18 09:47
    漂亮,如果用作心电信号的处理好像处理器稍稍弱了点

    用STM32L432实现了,正在向LPC824移植。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
     楼主| 发表于 2016-11-18 13:12:08 | 显示全部楼层

    还是图像有意思,否则太单调了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-6-3 10:27
  • 签到天数: 131 天

    连续签到: 1 天

    [LV.7]常住居民III

    19

    主题

    519

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1612
    最后登录
    2022-6-26
    发表于 2016-11-18 18:42:33 | 显示全部楼层
    6666666
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 05:32 , Processed in 0.101215 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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