### LCD驱动、菜单编程思路 #### 一、点阵LCD驱动显控原理 点阵LCD是一种常见的显示设备,广泛应用于各种电子设备中。本章节主要介绍点阵LCD的驱动原理和显控方法,并以MZL02模块为例,详细介绍其结构、接口方式以及驱动流程。 ##### 1.1 改版修订说明 自2007年发布第一版以来,本书不断根据读者反馈和技术进步进行修订。修订的主要目的是增强驱动程序的通用性和可用性,使其能够适用于更多的微控制器(MCU),如传统的MCS51系列、增强型51系列(STC、C8051等)、AVR单片机,以及更高级别的处理器如ARM7(NXP的LPC系列)和ARM Cortex-M3(例如STM32系列)。 ##### 1.2 本书更适合什么样的LCD模块? 本书主要关注的是单色点阵液晶屏(LCD)。这类LCD通常集成了驱动控制IC和显示存储器(RAM)。虽然本书主要针对这类LCD,但其中的一些驱动编程方法同样适用于其他类型的LCD,比如字符型和段码型LCD。 ##### 1.3 这里的LCD驱动程序更适合于什么样的MCU? 本驱动程序特别适合于拥有足够处理能力和内存资源的MCU。这些MCU需要能够支持一定的I/O操作,以实现对LCD的控制。例如: - **传统MCS51系列**:适合基础应用,具有一定的通用性和成本优势。 - **增强型51系列**(如STC、C8051等):提供了更多的外设和更快的速度,适用于需要更高性能的应用场景。 - **AVR单片机**:以其低功耗和高性能著称,适用于电池供电的便携式设备。 - **ARM7(NXP LPC系列)**:具备强大的处理能力,适用于复杂应用,如图形用户界面(GUI)。 - **ARM Cortex-M3(如STM32系列)**:提供了更先进的特性和更高的性能,适用于高性能嵌入式系统开发。 ##### 1.4 为什么用C语言 C语言是一种高效的编程语言,非常适合用于嵌入式系统的开发。它提供了对硬件的直接访问能力,同时又有良好的可移植性。对于LCD驱动程序来说,C语言可以很好地平衡效率和灵活性,使得程序既高效又易于维护。 #### 二、以MZL02 LCD模块为例 ##### 2.1 LCD模块的结构 MZL02 LCD模块是一款集成驱动控制器的单色点阵液晶显示屏。它采用标准的6800/8080总线接口和SPI串行接口,适用于多种MCU。 - **结构示意**:LCD面板由像素点组成,通过驱动电路控制每个像素点的状态,从而实现图像的显示。 - **总线选择及时序图示意**:提供了6800、8080总线接口以及SPI串行接口的选择,每种接口都有相应的时序图以确保数据传输的正确性。 ##### 2.2 LCD模块总线选择及时序图示意 - **6800并行总线接口**:适用于速度较低的MCU,时序图展示了数据传输的时序关系。 - **8080并行总线接口**:适用于速度较高的MCU,时序图同样展示了数据传输的具体时序。 - **SPI串行接口**:适用于对带宽有较高要求的应用,时序图展示了串行数据传输的过程。 ##### 2.3 LCD的6800总线接口 6800总线接口是一种较老的标准,但在一些低端MCU中仍然常见。它提供了一种简单有效的方式来进行数据交换。 ##### 2.4 LCD控制器特性 LCD控制器负责管理LCD的显示内容,其特性包括: - 显示RAM区映射:显示内容被保存在显示RAM中,控制器负责将RAM中的内容映射到屏幕上。 - 行、列地址:用于定位屏幕上的特定位置。 - 其他特性:如显示模式、对比度调节等。 #### 三、点阵LCD的驱动与显控 ##### 3.1 基本驱动程序(LCD_Driver_User) 这部分介绍了LCD驱动程序的基本框架,包括端口配置、时序控制等关键组件。 - **端口配置头文件LCD_Portconfig**:定义了与MCU端口相关的配置参数。 - **MCU与LCD基本时序控制程序**:确保LCD驱动程序与MCU之间的通信正确无误。 ##### 3.2 LCD的初始化 LCD的初始化过程包括设置显示模式、清除屏幕、设置对比度等步骤,确保LCD能够正常工作。 ##### 3.3 绘点子程序 - **基本绘点函数**:用于在LCD上绘制单个像素点。 - **扩展的基础功能函数**:提供了更多高级绘图功能,如绘制线条、矩形等。 ##### 3.4 驱动配置头文件LCD_Config 该文件包含了LCD驱动的各种配置参数,如分辨率、颜色深度等。 ##### 3.5 LCD驱动功能接口程序(LCD_Dis) 这部分介绍了LCD驱动的核心接口函数,包括绘图和字符显示等功能。 - **基本绘图功能函数**:提供了绘制点、线、矩形等基本图形的功能。 - **字符显示功能函数**:用于显示文本字符。 ##### 3.6 字符显示原理 - **字符与字模**:字符显示依赖于预先定义好的字模。 - **字模与字库**:字模被组织成字库,以便于检索和使用。 - **用绘点来绘制字符**:通过调用绘点子程序来绘制字符。 #### 四、Mz_MenuGUI菜单应用 Mz_MenuGUI是一个基于MZL02 LCD模块的菜单系统,适用于创建用户友好的图形界面。 ##### 4.1 Mz_MenuGUI Mz_MenuGUI提供了一系列用于创建菜单和按钮的工具。 ##### 4.2 Mz_MenuGUI的源码分析 - **Menu_Resource.c菜单资源定义**:定义了菜单资源,如图标、按钮等。 - **Menu_GUI_Config.h菜单GUI配置头文件**:包含了配置参数,如字体大小、颜色等。 - **Menu_GUI.c菜单接口函数**:实现了菜单的创建、更新和销毁等功能。 ##### 4.3 定制自己的Menu菜单界面 - **参考的GUI响应控制代码**:提供了示例代码,指导如何实现菜单项的点击响应。 - **订制一个有二级菜单的工程**:演示了如何创建包含多级菜单的项目。 #### 五、移植通用版LCD驱动程序 这部分介绍了如何将LCD驱动程序移植到不同的硬件平台,如LPC的ARM7。 ##### 5.1 修改驱动中的底层代码 - **修改LCD_PortConfig.h的端口配置**:调整端口配置以适应新的MCU。 - **修改底层驱动功能函数**:确保驱动程序能够在新的硬件平台上运行。 ##### 5.2 与编译器相关的修改 可能需要对编译器设置进行调整,以确保代码能够在新的编译环境中正确编译。 #### 结论 通过本文章的介绍,我们不仅了解了点阵LCD的驱动原理和显控方法,还学习了如何为不同类型的MCU开发LCD驱动程序,以及如何使用Mz_MenuGUI创建菜单系统。这些知识对于嵌入式系统开发人员来说是非常有价值的,可以帮助他们在实际项目中更加高效地利用LCD显示设备。




























剩余86页未读,继续阅读


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 091-甲供材料(设备)采购及管理工作程序.doc
- 单片机课程实施方案数字温度计.doc
- Windows-XP操作系统基础讲解.ppt
- [山东]地下卷材防水工程技术交底.doc
- 发电机冷却和密封系统取源部件和敏感元件安装报验申请表.doc
- Linux环境下DNS服务器安装与配置.doc
- 小区网络监控系统施工组织设计.doc
- 混凝土结构中几个主要受力部位的裂缝分析及控制.doc
- 假设检验070924.ppt
- 木窗帘盒、金属安装.doc
- 购销合同(工矿产品3).doc
- 消防(3)自动喷水系统.ppt
- 从杂交育种到基因工程.doc
- 第四讲-建筑基础构造.ppt
- 制造企业自动化立体仓库配送管理与优化.doc
- 浅谈路灯安全运行的几项措施.doc


