12864液晶显示屏驱动详解

需积分: 9 6 下载量 133 浏览量 更新于2024-09-29 收藏 489KB DOC 举报
"从零学习12864液晶" 12864液晶屏是一种常见的显示设备,特别适用于嵌入式系统和单片机应用中的人机交互界面。它的名称来源于其显示能力:128列点和64行点,总共可以显示128x64=8192个点。这种液晶屏有两种类型,一种带有内置字库,另一种则不带。在本文中,我们将主要关注使用ST7920作为主控芯片的12864液晶屏,因为该型号的液晶屏在很多项目中被广泛使用。 ST7920是一款支持并行和串行通信的控制器,适用于驱动128x64点阵液晶显示器。金鹏的OCMJ4X8C液晶模块就是基于ST7920设计的。在实际应用中,我们需要了解液晶屏的硬件连接,包括8位并行数据线、RS(指令/数据选择)、RW(读写控制)和E(使能)线。这些控制线用于向液晶屏发送指令和数据,实现显示功能。 驱动12864液晶屏的关键在于理解其工作时序。对于并行模式,有写时序和读时序两种。写时序用于将数据或指令写入液晶屏,而读时序则用于从液晶屏内部RAM读取数据。时序图提供了正确操作液晶屏的精确时间点,包括高电平和低电平持续的时间,以及在何时改变数据线上的值。 在写时序中,首先设置RS和RW线,然后拉低E线,接着在规定时间内将数据线上的数据稳定,最后释放E线,完成一次写操作。读时序类似,但需要在特定时刻读取数据线上的值。 12864液晶屏的指令集分为基本指令集和扩充指令集。基本指令集涵盖了初始化、显示控制、光标移动等基本操作;扩充指令集则涉及图形绘制,如画点、画线、填充等。编写驱动程序时,需要根据这些指令集来构造合适的指令序列,以实现所需的功能。 例如,画点函数就需要利用读时序来确定当前点的状态,然后根据需要修改并写回数据。忙检测函数也是基于读时序,确保在发送下一个指令之前,液晶屏已经完成了当前操作。 总结来说,从零学习12864液晶屏涉及理解其物理结构、接口信号、工作时序和指令集。通过这些知识,我们可以编写出完整的驱动程序,实现对液晶屏的各种操作,包括显示字符、图形和自定义图像。在实际项目中,掌握这些技能对于创建直观、用户友好的单片机应用至关重要。