找回密码
 立即注册
查看: 2637|回复: 15

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

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 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, 下载次数: 186)

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

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

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

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

梁工威武

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

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:493
  • 最近打卡:2025-05-01 08:31:58

30

主题

347

回帖

3476

积分

荣誉版主

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

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-05-01 06:31:58

0

主题

4

回帖

688

积分

高级会员

积分
688
发表于 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
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

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

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

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:154
  • 最近打卡:2025-05-01 06:31:58

0

主题

4

回帖

688

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:74
  • 最近打卡:2025-04-29 13:02:20
已绑定手机

0

主题

130

回帖

174

积分

注册会员

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-19 12:52:17
已绑定手机

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, 2025-5-2 08:19 , Processed in 0.138587 second(s), 122 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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