请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 1070|回复: 10

Ai8051U驱动1.44寸黑白点阵LCD12864实验程序-SPI-DMA刷整屏523us,超高帧频

[复制链接]

该用户从未签到

66

主题

4837

回帖

1万

积分

超级版主

积分
10038
发表于 2024-8-26 17:14:27 | 显示全部楼层 |阅读模式
Ai8051U驱动1.44寸黑白点阵LCD12864实验程序
===SPI-DMA刷整屏523uS,超高帧频
截图202409012151032247.jpg
本例程基于AI8051U为主控芯片的实验箱V1.1版本进行编写测试。
使用Keil C251编译器,Memory Model推荐设置XSmall模式,

默认定义变量在edata,单时钟存取访问速度快。
edata建议保留1K给堆栈使用,

空间不够时可将大数组、不常用变量加xdata关键字定义到xdata空间。

黑白点阵屏LCD12864驱动程序,驱动IC为ST7565R,SPI接口,

通过SPI-DMA将1024字节的图片数据送到彩屏,传送时不占用CPU时间。
显示图形,汉字,英文,数字。
驱动芯片: ST7565R, ST7567A, UC1701(注意: UC1701的对比度设置不同).

其中图形显示发送命令和图片数据使用SPI-DMA操作,

传输数据时不占用CPU时间,做GUI最方便了。
可以先操作定义于xdata的1024字节缓存,然后触发SPI-DMA即可,
523us或943us即可自己动刷完。

本例运行于40MHz, SPI速度为主频4分频(10MHz),

每次SPI-DMA传输总时间943us,
SPI速度为主频2分频(20MHz),每次SPI DMA传输总时间523us。
将要显示的内容放在1024字节的显存中,启动DMA传输即可。

下载时, 选择时钟 40MHz (用户可自行修改频率后重新编译即可).

下图使用的屏其点阵宽高比是3:4的,所以显示圆形成了椭圆,
这种屏显示字符、汉字就比较好看。
截图202408261711495787.jpg

截图202408261712135988.jpg

截图202408261712429720.jpg
程序源码:
ST7565R驱动1.44寸黑白点阵LCD12864显示屏程序-SPI-DMA.rar (90.97 KB, 下载次数: 101)

回复

使用道具 举报 送花

该用户从未签到

655

主题

1万

回帖

1万

积分

管理员

积分
15273
发表于 2024-9-1 21:54:54 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

该用户从未签到

655

主题

1万

回帖

1万

积分

管理员

积分
15273
发表于 2024-9-11 15:19:39 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • TA的每日心情
    开心
    16 小时前
  • 签到天数: 292 天

    [LV.8]以坛为家I

    已绑定手机

    31

    主题

    1593

    回帖

    2368

    积分

    荣誉版主

    积分
    2368
    发表于 2024-8-26 22:22:24 | 显示全部楼层

    梁工威武

    睁开眼睛做场梦~~~
    回复

    使用道具 举报 送花

  • TA的每日心情
    开心
    9 小时前
  • 签到天数: 351 天

    [LV.8]以坛为家I

    25

    主题

    237

    回帖

    2416

    积分

    荣誉版主

    积分
    2416
    发表于 2024-9-2 10:17:15 | 显示全部楼层

    这个刷屏显图速度可成为标杆了.  学习了.

    回复 支持 反对

    使用道具 举报 送花

  • TA的每日心情
    开心
    前天 14:44
  • 签到天数: 67 天

    [LV.6]常住居民II

    0

    主题

    4

    回帖

    318

    积分

    中级会员

    积分
    318
    发表于 2024-9-21 00:37:30 | 显示全部楼层
    //========================================================================
    // 函数: void SPI_DMA_ISR (void) interrupt DMA_SPI_VECTOR
    // 描述:  SPI_DMA中断函数.
    // 参数: none.
    // 返回: none.
    // 版本: V1.0, 2024-1-5
    //========================================================================
    void SPI_DMA_ISR (void) interrupt DMA_SPI_VECTOR
    {


    梁工你好, 程序这里,编译出现错误,能解答一下吗?

    LCD12864-ST7565R-SPI-DMA.C(408): error C168: interrupt: value not in range 0 ... 31

    点评

    你要打个补丁,扩展中断号,否则大于31的中断号就会报错。 [attachimg]57700[/attachimg]  详情 回复 发表于 2024-9-21 12:32
    回复 支持 反对

    使用道具 举报 送花

    该用户从未签到

    66

    主题

    4837

    回帖

    1万

    积分

    超级版主

    积分
    10038
     楼主| 发表于 2024-9-21 12:32:53 | 显示全部楼层
    topsjb 发表于 2024-9-21 00:37
    //========================================================================
    // 函数: void SPI_DMA_ISR ...

    你要打个补丁,扩展中断号,否则大于31的中断号就会报错。
    截图202409211232499969.jpg

    回复 支持 反对

    使用道具 举报 送花

  • TA的每日心情
    开心
    前天 14:44
  • 签到天数: 67 天

    [LV.6]常住居民II

    0

    主题

    4

    回帖

    318

    积分

    中级会员

    积分
    318
    发表于 2024-9-21 18:14:34 | 显示全部楼层

    这样啊,我刚开始学C251,
    感谢梁工。
    回复 支持 反对

    使用道具 举报 送花

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    已绑定手机

    0

    主题

    125

    回帖

    242

    积分

    中级会员

    积分
    242
    发表于 2024-11-13 00:11:56 来自手机 | 显示全部楼层
    又发现好玩的了
    回复 支持 反对

    使用道具 举报 送花

  • TA的每日心情
    奋斗
    2024-11-19 12:52
  • 签到天数: 1 天

    [LV.1]初来乍到

    已绑定手机

    0

    主题

    1

    回帖

    6

    积分

    新手上路

    积分
    6
    发表于 2024-11-19 12:51:24 | 显示全部楼层
    此程序可否帮忙移植到STC8A8K64D4

    点评

    STC8A8K64D4的SPI DMA最多只能传输256字节,要分8次传输,其余没啥差别。  详情 回复 发表于 2024-11-19 15:02
    回复 支持 反对

    使用道具 举报 送花

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

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-12-3 17:30 , Processed in 0.140166 second(s), 90 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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