如何在 Proteus 仿真中跑起 LCD12864?ST7920 模型快速上手指南
【免费下载链接】lcd12864_st7920_proteusLCD12864 with controller ST7920 Proteus vsm model项目地址: https://gitcode.com/gh_mirrors/lc/lcd12864_st7920_proteus
你手头的单片机项目要用 ST7920 控制的 LCD12864 屏幕,但硬件还没到位——本项目的 Proteus VSM 仿真模型正好补上这个空位:8 位并行、4 位并行、串行三种接口都能仿,中文、ASCII、自定义图形都能显示。跟着做完,10 分钟内仿真屏上就会亮字。
它配得上你的接口:LCD12864 能力清单
网上的 12864A 模型大多功能受限,这个模型把缺的都补齐了,源码也一并放出。装之前先对照你的硬件:
接口模式(三种全支持)
- 8 位并行读写
- 4 位并行读写
- 串行写(只要 SCLK / SID 两根线)
显示能力
- 汉字:内置完整 GB2312 字库
- ASCII 字母与数字
- 自定义图形(GDRAM),支持图文混排,重叠像素按异或显示,和真模块行为一致
做完这节的自检:确认你的硬件是哪种接口。如果是串行方案,后面示例工程的接线方式可以直接抄。
从 0 到跑通:三步装好 Proteus 模型
硬性前提只有一个:Proteus 8.1 及以上版本。
第 1 步 📦 拿到项目源码
git clone https://gitcode.com/gh_mirrors/lc/lcd12864_st7920_proteus第 2 步 🖥️ 复制两个文件到 Proteus 目录
- 把
release/MODELS/LCD12864B.DLL复制到 Proteus 安装目录下的MODELS文件夹 - 把
release/LIBRARY下的LCD7920.IDX、LCD7920.LIB复制到 Proteus 安装目录下的LIBRARY文件夹
可检验的节点:打开 Proteus,在器件搜索框输入12864B,能搜到这个器件,说明安装成功。
第 3 步 ⚡ 打开示例工程,跑仿真
在 Proteus 里打开test/test7920.pdsprj。这个工程用 ATMEGA328P 当 MCU,走串行接口接 LCD,代码用 Atmel Studio 6.2 编译。
点工具栏的「运行」按钮。仿真启动后,LCD12864 上会亮起「CDHIGH设计」字样——看到它,就说明整条链路通了。
想换显示内容?改测试代码里传给LCD_write_string()的字符串,重新编译即可:
LCD_init(); LCD_write_string(0, "你好,世界!");重新运行,仿真屏上就是你的这句话。
避坑指南:12864 显示仿真的三个常见问题
⚠️ 按「遇到什么 → 怎么办」排好了,对号入座:
现象:Proteus 8.6 里屏幕空白或显示异常,8.1 却正常
把 LCD12864B 模块中间显示区域的左上角移到原理图的坐标原点即可。部分版本(如 8.1)放在哪都能正常显示,8.6 必须对齐原点。
现象:汉字和 ASCII 混排时字序错乱、位置偏移
连续的 ASCII 字符数量必须为偶数——这是 ST7920 本身的设计限制。数量是奇数时,在末尾补一个空格再显示。
现象:想显示 BIG5 编码的中文,字库里没有
内置字库只覆盖 GB2312。需要 BIG5 得自己生成字模:16x16 字体、横向取模、高位在前,每个汉字 32 字节,生成规则参照LCD12864B_SRC/下的gb2312.h。
想继续深入:SDK 文档与源码位置
🔧 模型不满意,可以自己改,材料都在仓库里:
- VSM 开发 SDK 文档:根目录的
ProteusVSMSDK.pdf - 模型 DLL 源码:
LCD12864B_SRC/,用 VS2010 及以上版本编译,可按需支持其他规格器件 - 驱动示例源码:
test/st7920.c,8 位 / 4 位 / 串行三种模式的完整实现 - 模型原型工程:
12864B.pdsprj,用于创建可显示的 VSM 器件符号
模型装好了,坑位也标出来了——现在就去 clone 仓库,让你的仿真屏亮起第一行字。
【免费下载链接】lcd12864_st7920_proteusLCD12864 with controller ST7920 Proteus vsm model项目地址: https://gitcode.com/gh_mirrors/lc/lcd12864_st7920_proteus
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考