`

51单片机学习笔记:ST7920控制器的12864液晶使用总结

阅读更多

总结:
1、 控制芯片不同,液晶接口定义,或者寄存器定义也可能不同
2、 显示方式有并行和串行,串行方式据说不能读数据寄存器(DR),那指令暂存器IR是否可读?
3、 含字库芯片显示字符时不必对字符取模了,但字库有可能缺斤少两,就是说有一部分字(哪怕是常用字),在字库中没有,如果你第一次测试代码就遇到该字在字库中没有的情况,建议去买体育彩票,支持体育运动!
4、 对芯片的结构地址一定要理解清楚,个人阅读网上一些资料发现大多是不准确的,甚至自相矛盾
很多数据手册中内容更是模棱两可,不明所以,数据手册之间也有矛盾的!

我根据自己的实验结果,再结合一些资料,得出以下结论:
ST7920可以控制256×64 点阵的二维绘图缓冲空间,
对于我们的12864液晶,GDRAM大小为256*64, 不是网上普遍说的只用到了一半,其实是全部用了,
它包含可视区和滚动可视区,滚动可视区就是默认不显示的,要滚屏之后才能看到,
可视区对应GDRAM的上半部分点阵区域256*32,滚动可视区是GDRAM的下半部分256*32,
然后再将可视区的水平(128-255)和垂直(0-31)区域的GDRAM映射到液晶的下半屏,
这就是我们的12864. 我画个图给大家看就清楚了!

 

 

 

再补充一些:


1.网上一些资料给出的绘图步骤说第一步设置为扩充指令集0x34,其实这个根据实际情况来定,
  比如要播放视频或动画,开着绘图就很流畅

2. 打点法画图实在太慢了,不建议使用打点法进行全屏绘图

3.反白的一些方法
打点法反白矩形区还可以,建议矩形范围小一些,不然比较慢,
打点法反白文字效果很好,因为文字的矩形区比较小,速度很快,不闪动!
 不过绘图法反白文字效率更高,flash空间充裕的话建议用绘图法 ,

看到网上的一些代码,打点时一般先读出当前地址16位数据,和点合成后再分2个字节写进GDRAM,

其实我们可以提高点效率,读只要读一个字节,写也只要写一个字节,没必要把16位数据一起读出来再写进去

4.关于液晶显示文字
液晶显示英文和汉字时,应该做到一个函数里,做到2个函数里是完全没必要,也是不可取的
因为做到一个函数里可以直接输出全角和半角的字符,可以中英文加标点符号一起混合输出.

5.关于绘图清零,网上的代码中一般都是清256*32,下半屏都不清的,这是可以的
但是如果你要滚屏显示就要清,不清的话数据是随机的,一个个点随机出来向上冒

6.看到一个帖子,实现滚屏用了算法,
 其实只要搞清楚地址结构,重写个setScrollPos方法,也就是对setPos方法改几个地址就可实现循环滚动.

如果为了灵活的滚动,可以将setPos方法中的4个行坐标,扩展到8个行坐标,因为本来就应该有8个行坐标,

可视区4行,滚动可视区4行,而且他们是连续的


以上是我个人的一些实验结论! ,也画了其结构图, 方便新手理解, 不当之处敬请指出,谢谢!

由于不同的控制器,不同型号的液晶代码可能都不一样,网上的那些代码一般也不完全通用,

只要理解了控制器的地址结构与液晶的位置关系,就可以将常见的功能写出来,新手有问题直接跟帖吧,

大家一起交流.
 














  • 大小: 114 KB
0
0
分享到:
评论

相关推荐

    12864带字库(ST7920控制器)液晶学习+25页+1.4M

    ### 12864带字库(ST7920控制器)液晶学习 #### 一、基础知识概述 在深入探讨12864带字库(ST7920控制器)液晶的学习内容之前,我们先来了解一下相关的基础知识。12864液晶是一种常见的图形液晶显示器,它通常带有内置...

    51单片机教程实例106-字库ST7920 12864液晶基础显示

    本文将深入探讨“51单片机教程实例106”,该实例主要涉及如何使用ST7920控制器驱动12864液晶显示器进行基础显示操作。 ST7920是一款专为图形和字符显示设计的控制器,它能够支持128x64像素的LCD显示。这种控制器...

    51单片机驱动字库ST7920 12864液晶基础显示keil工程文件C源文件

    本文将深入探讨51单片机如何驱动ST7920芯片控制的12864液晶显示器,并基于提供的keil工程文件进行C语言编程。 51单片机是Intel公司8051系列的一种,它集成了CPU、RAM、ROM、定时器/计数器和串行通信接口等核心功能...

    106-字库ST7920 12864液晶基础显示(51单片机C语言实例Proteus仿真和代码)

    106-字库ST7920 12864液晶基础显示(51单片机C语言实例Proteus仿真和代码)106-字库ST7920 12864液晶基础显示(51单片机C语言实例Proteus仿真和代码)106-字库ST7920 12864液晶基础显示(51单片机C语言实例Proteus仿真和...

    带字库12864液晶(st7920)字幕滚动显示

    5. **编程实现**:使用ST7920驱动12864液晶进行字幕滚动,通常需要通过SPI或I2C等串行通信协议与主控器(如微处理器或单片机)交互。编程时,需配置控制指令,设定滚动速度、方向以及滚动方式。 6. **驱动库**:...

    51单片机驱动ST7565串行12864液晶带仿真

    在这个项目中,我们关注的是如何使用51单片机来驱动ST7565串行12864液晶显示器,并且带有仿真功能。这个设计对于开发嵌入式系统,特别是需要用户界面的应用,非常实用。 ST7565是一款低功耗的LCD控制器/驱动器,它...

    155-51单片机12864大液晶屏proteus仿真(51单片机C语言实例Proteus仿真和代码)

    155-51单片机12864大液晶屏proteus仿真(51单片机C语言实例Proteus仿真和代码)155-51单片机12864大液晶屏proteus仿真(51单片机C语言实例Proteus仿真和代码)155-51单片机12864大液晶屏proteus仿真(51单片机C语言实例...

    单片机C语言源码学习参考-字库ST7920 12864液晶基础显示.zip

    单片机C语言源码学习是嵌入式开发中的重要环节,ST7920是一款常用的控制器,用于驱动128x64像素的液晶显示屏。这个压缩包提供了基于ST7920的液晶显示的基础操作示例,帮助开发者理解和实践如何在单片机上实现文本和...

    26-51单片机LCD12864液晶显示实验.zip

    总之,通过51单片机和LCD12864液晶显示实验,你可以深入理解微控制器的硬件接口、通信协议以及控制逻辑,这对于进一步学习嵌入式系统和物联网技术有着重要的基础作用。通过实际操作,不仅可以增强动手能力,还能培养...

    单片机实例106-字库ST7920 12864液晶基础显示.rar

    标题中的“单片机实例106-字库ST7920 12864液晶基础显示”指的是一个单片机应用实例,重点在于使用ST7920控制器来驱动12864点阵液晶显示屏进行基础显示操作。这个实例可能是教学资料或者项目开发中的一个环节,包含...

    基于ST7920控制器的12864液晶屏图形点阵

    文章中还提到了与ST7920控制器连接的示例,其中使用了89C52单片机(MCU)来控制液晶屏。MCU与液晶屏之间的连接需要特定的信号线:P1口连接数据总线DB0至DB7,而P3.0、P3.1和P3.2分别连接RS、R/W和E信号线。通过这样...

    51单片机Proteus仿真实例 12864图形液晶滚动演示

    51单片机Proteus仿真实例 12864图形液晶滚动演示51单片机Proteus仿真实例 12864图形液晶滚动演示51单片机Proteus仿真实例 12864图形液晶滚动演示51单片机Proteus仿真实例 12864图形液晶滚动演示51单片机Proteus仿真...

    st7920芯片12864液晶串口 驱动程序(51版)

    ### ST7920芯片12864液晶串口驱动程序详解 #### 一、ST7920芯片概述 ST7920是一种专为128×64点阵图形液晶显示器设计的控制驱动芯片。它内部集成了显示控制器与驱动器功能,能够直接连接到MCU(如51系列单片机),...

    (STC)51单片机裸板开发的实战项目-ST7920LCD12864温室大棚监控系统.zip

    (STC)51单片机裸板开发的实战项目-ST7920LCD12864温室大棚监控系统STC (SinoTron) 51单片机是一个广泛应用在嵌入式系统的微控制器系列,其中包含了许多型号如STC89、SC12等。为了介绍一个基于STC 51单片机的实战...

    ST7920控制器51驱动程序

    ST7920是一款常用的图形点阵液晶控制器,常用于小型嵌入式系统,如51单片机的显示模块。这款控制器能提供高效率、低功耗的文本和图形显示功能,使得开发者能够轻松地在设备上创建清晰、直观的用户界面。本文将详细...

    ST7920控制器的12864图形液晶驱动程序

    ST7920控制器是一款广泛应用于图形液晶显示器(LCD)的微控制器,尤其适用于128x64像素分辨率的显示屏。它集成了显示驱动功能,可以高效地处理图形和文本数据,为嵌入式系统提供清晰的可视化界面。这款控制器通常与...

    242-字库LCD12864液晶测试(51单片机C语言实例Proteus仿真和代码)

    242-字库LCD12864液晶测试(51单片机C语言实例Proteus仿真和代码)242-字库LCD12864液晶测试(51单片机C语言实例Proteus仿真和代码)242-字库LCD12864液晶测试(51单片机C语言实例Proteus仿真和代码)242-字库LCD12864液晶...

    51单片机12864液晶坦克大战游戏

    【51单片机12864液晶坦克大战游戏】是嵌入式系统开发中的一个经典案例,它结合了微控制器技术、显示驱动和游戏编程等多方面知识。在这个项目中,开发者利用51系列单片机作为核心处理器,通过ST7920控制器驱动12864...

    基于51单片机的12864液晶显示汇编源程序

    "基于51单片机的12864液晶显示汇编源程序" 本文将详细介绍基于51单片机的12864液晶显示汇编源程序的实现方法,并对相关知识点进行详细的解释。 一、标题解释:"基于51单片机的12864液晶显示汇编源程序" 该标题...

Global site tag (gtag.js) - Google Analytics