Ai8051U驱动1.44寸黑白点阵LCD12864实验程序-SPI-DMA刷整屏523us,超高帧频
Ai8051U驱动1.44寸黑白点阵LCD12864实验程序===SPI-DMA刷整屏523uS,超高帧频
本例程基于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的,所以显示圆形成了椭圆,
这种屏显示字符、汉字就比较好看。
程序源码:
并口LCD12864用DMA直接刷新@AI8051U, 不占用CPU时间,管脚兼容 89C52 - TFT/LCD12864/LCD1602/红外遥控 国芯技术交流网站 - AI32位8051交流社区 (stcaimcu.com)
延申阅读:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10411
梁工威武
{:4_250:}{:4_250:}{:4_250:}
这个刷屏显图速度可成为标杆了.学习了.
{:4_250:}{:4_250:}{:4_250:} //========================================================================
// 函数: 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
topsjb 发表于 2024-9-21 00:37
//========================================================================
// 函数: void SPI_DMA_ISR ...
你要打个补丁,扩展中断号,否则大于31的中断号就会报错。
{:4_174:}
这样啊,我刚开始学C251,
感谢梁工。 又发现好玩的了 此程序可否帮忙移植到STC8A8K64D4
页:
[1]
2