




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘摘 要要 本文围绕设计以单片机作为 LCD 液晶显示系统控制器为主线 基于单片机 8051 采 用的液晶显示控制器的芯片是 SED1520 主要实现中文显示 滚屏以及左右移动功能 同时也对部分芯片和外围电路进行了介绍和设计 并附以系统结构框图加以说明 着 重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程 并详细阐 述了程序的各个模块 本系统是以单片机的汇编语言来进行软件设计 指令的执行速 度快 节省存储空间 为了便于扩展和更改 软件的设计采用模块化结构 使程序设 计的逻辑关系更加简洁明了 使硬件在软件的控制下协调运作 其次阐述了部分程序 的流程图和实现过程 本文撰写的主导思想是软 硬件相结合 以硬件为基础 来进 行各功能模块的编写 最后对我所开发的用单片机实现 LCD 液晶显示器控制原理的设 计思想和软 硬件调试作了详细的论述 关键字 关键字 单片机 液晶显示 8051 SED1520 目目 录录 1 绪 论 2 1 1 单片机液晶显示系统设计课题背景 2 1 2 开发单片机液晶显示系统的意义 2 1 3 课题完成的功能 3 2 单片机与 C8051F020 单片机实验系统 4 2 1 单片机技术的发展特点 4 2 2 C8051F020 单片机实验系统 5 2 3 CIP 51 TM CPU 7 3 液晶显示控制器 KS0108 10 3 1 KS0108 的特点 10 3 2 KS0108 管脚 10 3 3 KS0108 受控引脚 11 3 4 KS0108 的时序 4 11 3 4 1 KS0108 与 68 系列微处理器直接接口的时序 11 3 4 2 复位时序 12 3 5 KS0108 显示 RAM 地址结构 13 3 6 KS0108 指令系统 4 13 4 图形动态显示 15 4 1 图形点阵式液晶显示控制原理 15 4 2 液晶显示模块外部接口 15 4 3 图形点阵液晶显示编码规则 17 4 3 1 汉字编码规则 17 4 3 2 图形编码规则 19 4 4 程序流程 19 4 5 功能实现 20 5 系统实验仿真 23 5 1 平台及操作 23 5 2 仿真及结果 23 参考文献 25 致 谢 26 1 绪 论 1 1 单片机液晶显示系统设计课题背景 单片机液晶显示系统主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组 成的一个显示系统 液晶显示器与 CRT cathode ray tube 阴极射线管 LED light emitting diode 发光二级管 或等离子显示器相比是一种低功耗的平面显示 器件 它在车内广告 在型智能广告 可视电话 仪表盘 空调 洗衣机和其它低功 耗电子产品中得到广泛应用 老式七段 LCD Liquid Crystal Display 液晶显示屏 显示的字符数量有限 只能用于简单显示 而对于比较复杂的字符 图形无法表达 然而在现代工业控制和一些智能化仪器仪表中 越来越多的场所需要用点阵图形显示 器显示汉字 由于物探仪器的多功能化 智能化 并且普遍采用人机对话的交互方式 需要能够显示更丰富信息和通用性较强的显示器 便于开发和应用 并要求其体积小 重量轻 功耗小 图形点阵式 LCD 不仅可以显示字符 数字 还可以显示各种图形 曲线及汉字 并且可以实现屏幕画面滚动 分区开窗口 反转 闪烁 位操作等功能 可以显示用户自定义的任意符号以及曲线 图形等 是信息处理 信息输出的重要手 段之一 具有广泛的应用前景 1 2 开发单片机液晶显示系统的意义 社会意义 液晶显示器 LCD 具有功耗低 体积小 重量轻 超薄等许多其它显示器无法相比 的优点 近几年来被广泛用于单片机控制的智能仪器 仪表和低功耗电子产品中 液 晶显示器分为字符型 LCD 显示模块和点阵型 LCD 显示模块 字符型 LCD 是一种用 5 7 点阵图形来显示字符的液晶显示器 点阵型液晶可显示用户自定义的任意符号和图形 并可卷动显示 它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于 实时检测和显示的仪器仪表中 支持汉字显示的点阵型液晶在现代单片机应用系统中 是一种十分常用的显示设备 汉字 BP 机 手机上的显示屏就是点阵型 LCD 点阵型 LCD 是现代单片机应用系统中最常用的人机交互界面之一 现实意义 我选择的单片机液晶显示系统的开发 是基于 KS0108 液晶显示控制器 在 C8051F020 单片机实验系统上实现 KS0108 是点阵型液晶显示控制器 C8051F020 单片 机是美国 Silabs 公司推出的完全集成的混合信号系统芯片 SOC 利用单片机控制液 晶显示系统的原理 完成单片机液晶显示系统的设计 我希望能够触类旁通 灵活应 用其他型号的液晶显示控制器 将来如果有机会从事这方面的工作 要运用的液晶显 示控制器不一定是 KS0108 但这次毕业设计中学到的东西为此打下了良好的基础 相 信自己能做好这方面的工作 1 3 课题完成的功能 所选的单片机液晶显示系统设计 是在 C8051F020 系统实验设备上实现的 C8051F020 中有内藏 KS0108 控制器的液晶模块 CGM12864B KS0108 128 64 个点阵 与行控制器 KS0107 配合使用 组成液晶显示驱动控制系统 我最主要是用 KS0108 来 设计图形动态显示 在显示屏上的显示点是以字节数和位数为显示单元的 单元内为 1 的位在屏幕 上反应是亮点 为 0 的位不亮 在字节中能够显示的位数可编程设置 范围是 1 16 如果小于等于 8 位 则用一个字节 每个字节的低位不起显示作用 例如 设 置显示单元为 6 每个字节显示 6 位 那么屏幕上的显示单元为 1 6 点 如果大于 8 位则用两个字节 低字节的低位不起显示作用 屏幕上同一行的显示单元从左到右地 排列 对应着显示内存中的地址是从高到低 同一列中的显示单元从上到下 对应显 示内存中的地址相差一定的值 称作行地址间隔 可用程序设置 显示内存 RAM Random Access Memory 随机存储器 中的地址与屏幕上的显示位置一一对应 在液晶显示屏上显示图形实际上是将对应的图形显示数据写入显示 RAM 的相应位置 显示图形首先需要将图形转换为图形字模 然后根据该图形的显示位置将图形字模写 入对应的显示 RAM 区地址 在图形显示过程中 按列扫描 显示完一页后 要送一个 页面地址加 1 指令 让单片机将数据传送到显示 RAM 的下一页 除了实现图形简单的 整屏显示外 根据单片机编程控制灵活的特点 还可以实现图形的左右或上下滚动 实现图形左右滚屏的基本思想是让后一列的数据写住前一列的显示 RAM 直至整屏都往 右移一列 实现上下滚屏的基本思想是每显示完整屏数据后 显示起始行地址加 1 再 显示原整屏数据 这样就实现了上下滚屏的效果 2 单片机与 C8051F020 单片机实验系统 2 1 单片机技术的发展特点 1 自单片机出现至今 单片机技术已走过了近 20 年的发展路程 纵观 20 年来单片 机发展里程可以看出 单片机技术的发展以微处理器 MPU Microprocessor Unit 技术及超大规模集成电路技术的发展为先导 以广泛的应用领域拉动 表现出比微处 理器更具个性的发展趋势 单片机寿命长 一般说来 单片机开发的产品可以稳定可靠地工作 10 年 20 年 另外 与微处理 器相比 单片机的长寿命表现在它不会像 386 486 586 等 MPU 一样 随着半导体技 术的飞速发展 更新换代的速度越来越快 很短的时间内就被淘汰出局 传统的单片 机如 68HC05 8051 等年龄已有十几年的历史 但产量仍是上升的 这是因为它们在其 对相应应用领域的适应性强 并且与之兼容的 I O 功能模块的扩展接口技术也层出不 穷 8 位 16 位与 32 位单片机共同发展 这是单片机技术发展的另一个动向 长期以来 单片机技术的发展是以 8 位机为 主的 随着移动通信 网络技术 多媒体技术等高科技产品进入家庭 32 位单片机应 用得到了长足的发展 而 16 位单片机的发展无论从品种和产量方面 近年来也有较大 幅度的增长 单片机的速度越来越快 MPU 发展中表现出来的速度越来越快是以时钟频率越来越高为标志的 而单片机则 有所不同 为提高单片机抗干扰能力 降低噪声 降低时钟频率而不牺牲运算速度是 单片机技术发展之追求 一些 8051 单片机兼容厂商改善了单片机的内部时序 在不提 高时钟频率的条件下 使运算速度提高了许多 低电压与低功耗 自 80 年代中期以来 NMOS 工艺单片机逐渐被 CMOS 互补金属氧化物半导体 工 艺所代替 功耗得以大幅度下降 随着超大规模集成电路技术由 3m 工艺发展 1 5 1 2 0 8 0 5 0 35 进而实现了 0 2m 工艺 全静态设计使时钟频率从直流电 到数十 MHz 任选 都使功耗不断下降 几乎所有的单片机都有 Wait Stop 等省电运行 方式 允许使用的电源电压范围也越来越宽 一般单片机都能在 3 6V 范围内工作 对电池供电的单片机不再需要对电源采取稳压措施 低电压供电的单片机电源下限已 由 2 7V 降至 2 2V 1 8V 0 9V 供电的单片机已经问世 低噪声与高可靠性技术 为提高单片机系统的抗电磁干扰能力 使产品能适应恶劣的工作环境 满足电磁 兼容性方面更高标准的要求 各单片机商家在单片机内部电路中采取了一些新的技术 措施 OTP 与掩膜 OTP 是一次性写入的单片机 过去认为一个单片机产品的成熟是以投产掩膜型单片 机为标志的 由于掩膜需要一定的生产周期 而 OTP 型单片机价格不断下降 使得近 年来直接使用 OTP 完成最终产品制造更为流行 它较之掩膜具有生产周期短 风险小 的特点 近年来 OTP 型单片机需量大幅度上扬 为适应这种需求许多单片机都采用了 在片编程技术 In system Programming 未编程的 OTP 芯片可采用裸片 Bonding 技 术或表面贴装技术 先焊在印刷板上 然后通过单片机上的编程线 串行数据 时钟 线等对单片机编程 解决了批量写 OTP 芯片时容易出现的芯片与写入器接触不好的问 题 使 OTP 的裸片得以广泛应用 降低了产品的成本 编程线与 I O 线共用 不增加 单片机的额外引脚 而一些生产厂商推出的单片机不再有掩膜型 全部为有 ISP 功能 的 OTP MTP 向 OTP 挑战 MTP 是可多次编程的意思 一些单片机厂商以 MTP 的性能 OTP 的价位推出他们的 单片机 如 ATMEL AVR 单片机 片内采用 FLASH 可多次编程 华帮公司生产的 8051 兼容的单片机也采用了 MTP 性能 OTP 的价位 这些单片机都使用了 ISP 技术 等安装 到印刷板线路板上以后再下载程序 2 2 C8051F020 单片机实验系统 2 C8051F020 器件是完全集成的混合信号系统级 MCU 微程序控制器 芯片 具有 64 个数字 I O 引脚 下面列出了一些主要特性 高速 流水线结构的 8051 兼容的 CIP 51 内核 可达 25MIPS Million Instructions Per Second 每秒百万条指令 全速 非侵入式的在系统调试接口 片内 真正 12 位 100ksps 的 8 通道 ADC 带 PGA 和模拟多路开关 两个 12 位 DAC 可编程更新时序 64K 字节可在系统编程的 FLASH 存储器 4352 4096 256 字节的片内 RAM 可寻址 64K 字节地址空间的外部数据存储器接口 硬件实现的 SPI SMBus I2C 和两个 UART 串行接口 5 个通用的 16 位定时器 具有 5 个捕捉 比较模块的可编程计数器 定时器阵列 片内看门狗定时器 VDD 监视器和温度传感器 具有片内 VDD 监视器 看门狗定时器和时钟振荡器的 C8051F020 是真正能独立工 作的片上系统 所有模拟和数字外设均可由用户固件配置为使能或禁止 FLASH 存储器 还具有在系统重新编程能力 可用于非易失性数据存储 并允许现场更新 8051 固件 片内 FTAG 调试电路允许使用安装在最终应用系统上的产品 MCU 进行非侵入式 不 占用片内资源 全速 在系统调试 该调试系统支持观察和修改存储器和寄存器 支 持断点 观察点 单步及运行和停机命令 在使用 JTAG 调试时 所有的模拟和数字外 设都可全功能运行 每个 MCU 都可在工业温度范围 45 85 内用 2 7V 3 6V 的电压工作 端C o C o 口 I O RST 和 JTAG 引脚都容许 5V 的输入信号电压 C8051020 为 100 脚 TQFP 封装 见图 2 1 图 2 1 C8051F020 原理框架 2 3 CIP 51CPU TM 与 8051 完全兼容 C8051F020 系列器件使用 Cygnal 的专利 CIP 51 微控制器内核 CIP 51 与 MCS 51 指令集完全兼容 可以使用标准 803x 805x 的汇编器和编译器进行软件开发 CIP 51 TM 内核具有标准 8052 的所有外设部件 包括 5 个 16 位的计数器 定时器 两个全双工 UART 256 字节内部 RAM 128 字节特殊功能寄存器 SFR 地址空间及 8 4 个字节宽的 I O 端口 速度提高 CIP 51 采用流水线结构 与标准的 8051 结构相比指令执行速度有很大的提高 在 一个标准的 8051 中 除 MUL 和 DIV 以外所有指令都需要 12 或 24 个系统时钟周期 最 大系统时钟频率为 12 24MHz 而对于 CIP 51 内核 70 的指令的执行时间为 1 或 2 个系统时钟周期 只有 4 条指令的执行时间大于 4 个系统时钟周期 增加的功能 C8051F202 系列 MCU 在 CIP 51 内核和外设有几项关键性的改进 提高了整体性能 更易于在最终应用中使用 扩展的中断系统向 CIP 51 提供 22 个中断源 标准 8051 只有 7 个中断源 允许大 量的模拟和数字外设中断微控制器 一个中断驱动的系统需要较小的 MCU 干预 因而 有更高的执行效率 在设计一个多任务实时系统时 这些增加的中断源是非常有用的 MCU 可有多达 7 个复位源 一个片内 CDD 监视器 一个看门狗定时器 一个时钟丢 失检测器 一个由比较器 0 提供的电压检测器 一个软件强制复位 CNVSTR 引脚及 RST 引脚 MCU 内部有一个独立运行的时钟发生器 在复位后被默认为系统时钟 如果 需要 时钟源可以在运行时切换到外部振荡器 外部振荡器可以使用晶体 陶瓷谐振器 电容 RC 或外部时钟源产生系统时钟 片内存储器 3 CIP 51 有标准的 8051 程序和数据地址配置 它包括 256 字节的数据 RAM 其中高 128 字节为双映射 用间接寻址访问通用 RAM 的高 128 字节 用直接寻址访问 128 字节 的 SFR 地址空间 数据 RAM 的低 128 字节可用直接或间接寻址方式访问 前 32 个字节 为 4 个通用寄存器区 接下来的 16 个字节既可以按字节寻址也可以按位寻址 MCU 的程序存储器包含 64K 字节的 FLASH 该存储器以 512 字节为一个扇区 可以 在系统编程 且不需要特别的编程电压 从 0 xFE00 到 0 xFFFF 的 512 字节被保留 由 工厂使用 还有一个位于地址 0 x10000 0 x1007F 的 128 字节的扇区 该扇子区可作为 一个小的软件常数表使用 图 2 2 给出了 MCU 系统的存储器结构 图 2 2 片内存储器组织 JTAG 调试和边界扫描 C8051F020 系列具有片内 JTAG 边界扫描和调试电路 通过 4 脚 JTAG 接口并使用安 装在最终应用系统中的产品器件就可以进行非侵入式 全速的在系统调试 该 JTAG 接 口完全符合 IEEE1149 1 规范 为生产和测试提供完全的边界扫描功能 Cygnal 的调试系统支持观察和修改存储器和寄存器 支持断点 观察点 堆栈指 示器和单步执行 不需要额外的目标 RAM 程序存储器 定时器或通信通道 在调试时 所有的模拟和数字外设都正常运行 以保持同步 图 2 3 给出了调试环境示意图 图 2 3 调试环境示意图 可编程数字 I O 和交叉开关 该系列 MCU 具有标准 8051 的端口 0 1 2 和 3 在 C8051F020 中有 4 个附加的 端口 4 5 6 和 7 因此共有 64 个通用端口 I O 这些端口 I O 的工作情况与标准 8051 相似 但有一些改进 可能最独特的改进是引入了数字交叉开关 这是一个大的数字开关网络 允许将 内部数字系统资源映射到 P0 P1 P2 和 P3 的端口 I O 引脚 见图 2 4 具有标准复 用数字 I O 的微控制器不同 这种结构可支持所有的功能组合 图 2 4 数字交叉开关原理框图 可编程计数器阵列 除了 5 个 16 位的通用计数器 定时器之外 C8051F020 MCU 系列还有一个片内可编 程计数器 定时器阵列 PCA PCA 包括一个专用的 16 位计数器 定时器时间基准和 5 个可编程的捕捉 比较模块 时间基准的时钟可以是下面的 6 个时钟源之一 系统时钟 12 系统时钟 4 定时器 0 溢出 外部时钟输入 ECI 系统时钟和外部振荡器源频 率 8 C8051F020 还有更多的优势 需要详细了解的请参考文献 9 本节主要讲了单片机的特点和 C8051F020 单片机实验系统的特性 C8051F020 与 8051 完全兼容 指令采用流水线结构提高了系统速度 有可编程数字 I O 和交叉开关 增加了一些功能器件 提高了 C8051F020 整体性能 3 液晶显示控制器 KS0108 KS0108是一种带有驱动输出的点阵型液晶显示控制器 它可直接与8位微处理器相 连 它可与KS0107配合对液晶显示控制器进行行 列驱动 组成液晶显示驱动控制系 统 3 1 KS0108 的特点 1 内藏64 64 4096位显示RAM RAM中每位数据对应LCD屏上一个点的亮 暗状 态 2 KS0108是列驱动器 具有64路列驱动输出 3 KS0108读 写操作时序与68系列微处理器相符 因此它可直接与68系列微处 理器接口相连 4 KS0108的占空比为1 48 1 64 5 具有专用指令集 可完成文本显示或图形显示的功能设置 以及实现画面滚 动 光标 闪烁和位操作等功能 6 KS0108可管理64KB显示RAM 其中 图形方式为64KB 字符方式为4KB 3 2 KS0108 管脚 4 KS0108的管脚见图3 1所示 图3 1 KS0108管脚图 3 3 KS0108 受控引脚 KS0108的引脚功能见表1 表1 引脚功能 引脚符号状态引脚名称功能 CS1 CS2 CS 3 输入芯片片选端CS1和CS2低电平选通 CS3高电平选通 E输入读写使能信号在E下降沿 数据被锁存 写 入KS0108 在 E高电平时 数据被读出 R W输入读写选择信号R W 1 为读选通 R W 0为写选通 RS 也习惯叫 做D I 输入数据 指令选择 信号 RS 1为数据操作 RS 0为写指令或读状态 DB0 DB7三态数据总线 RST输入复位信号低电平有效 复位信号有效时 关闭液晶显 示 使显示起始终不渝行为0 RST可跟MPU相 连 由MPU控制 也右直接接VDD 使之不起 作用 3 4 KS0108 的时序 4 3 4 1 KS0108 与 68 系列微处理器直接接口的时序 各种信号波形对照见表2 表2 信号波形 MPU读时序见图3 2 图3 2 读时序 MPU写时序见图3 3 图3 3 写时序 3 4 2 复位时序 复位后 KA0108显示关闭 显存地址归零 复位条件见表3和图3 4 表3 复位条件 项目符号最小值典型值最大值单位 复位时间 Trs1 0 微秒 上升时间 Tr 200 纳秒 图3 4 复位条件 3 5 KS0108 显示 RAM 地址结构 KS0108中的显示RAM共有64行 64列 其结构见图3 5 图3 5 显示RAM地址结构 3 6 KS0108 指令系统 4 KS0108的指令系统比较简单 总共只有七种 现分别介绍如下 3 6 1 显示开 关指令见表4 表4 显示开 关指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 00 0 1 1 1 1 1 1 0 当DBO 1时 LCD显示RAM中的内容 DBO 0时 关闭显示 3 6 2 显示起始行 ROW 设置指令见表5 表5 显示起始行指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 显示起始行 0 63 该指令设置了对应液晶屏最一行的显示RAM的行号 有规律的改变显示起始行 可 以使LCD实现显示滚屏的效果 3 6 3 页 RAGE 设置指令见表6 表6 页设置指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 0 1 1 1 页号 0 7 显示RAM共64行 分8页 每页8行 3 6 4 列地址 Y Address 设置指令见表7 表7 列地址设置指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 1 显示列地址 0 63 设置了页地址和列地址 就唯一确定了显示RAM中的一个单元 这样MPU就可以用 读 写指令读出该单元中的内容或向该单元写进一个字节数据 3 6 5 读状态指令见表8 表8 读状态指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 0BUSY 0 ON OFF REST 0 0 0 0 该指令用来查询KS0108的状态 各参量含义如下 BUSY 1 内部在工作 0 正常状态 ON OFF 1 显示关闭 0 显示打开 REST 1 复位状态 0 正常状态 在BUSY和REST状态时 除读状态指令外 其它指令均不对KS0108产生作用 在对 KS0108操作之前要查询BUSY状态 以确定是否可以对KS0108进行操作 3 6 6 写数据指令见表9 表9 写数据指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 写 数 据 3 6 7读数据指令见表10 表10 读数据指令 R W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 读 显 示 数 据 读 写数据指令每执行完一次读 写操作 列地址就自动增一 必须注意的是 进行读 写操作之前 必须有一次空读操作 紧接着再读才会读出所要读的单元 中的数据 本节主要是介绍液晶显示控制器KS0108的特点 外部部分引脚功能 时序 显示 RAM地址结构及指令集 为单片机液晶显示系统设计打下基础 4 图形动态显示 4 1 图形点阵式液晶显示控制原理 C8051F020实验板中使用的是内置液晶显示模块CGM12864B的液晶屏 CGM12864B内 部没有振荡器电路 它必须由外部提供一个时序发生器作为振荡源方可工作 它由两 片带有64列驱动控制器KS0108和一片带有64行驱动控制器KS0107组合而成 另外还可 以附加负压发生电路 显示是以一128 64 个点的液晶屏显示 图形液晶显示模块KS0108将显示区分为左右半屏 整个屏从上到下64 行分为8 页 每页8 行 页地址范围为 B8H BFH 列地址范围为 40H 7FH 数据为纵向读写 即每页的第一行对应D0 第八行对应D7 左 右半屏由CS1 CS2选择 控制器KS0108 的指令相对简单 总共七条指令 显示开关设定 3EH 3FH 显 示起始行设定 C0H FFH 页地址设定 B8H BFH 列地址设定 40H 7FH 状 态读取 写数据 读数据 128 64 点阵式液晶模块的逻辑图见图 4 1 4 图4 1 液晶模块逻辑图 4 2 液晶显示模块外部接口 外部接口信号见表 11 表 11 外部接口信号 管脚号管脚名称LEVER管脚功能描述 1Vss0电源地 2Vdd 0 5V电源电压 3V0 液晶显示器驱动电压 4D IH LD I H 表示 DB7 DB0 为显示数据 D I L 表示 DB7 DB0 为显示指令数据 5R WH LR W H E H 数据被读到 DB0 DB7 R W H E HL 数据被写到 IR 或 DR 6EH LR W L E 信号下降沿锁存 DB7 DB0 R W H E H DDRAM 数据读到 DB7 DB0 7DB0H L数据线 8DB1H L数据线 9DB2H L数据线 10DB3H L数据线 11DB4H L数据线 12DB5H L数据线 13DB6H L数据线 14DB7H L数据线 15CS1H LH 选择芯片 右半屏 信号 16CS2H LH 选择芯片 左半屏 信号 17RSTH L复位信号 低电平复位 18Vee 10VLCD 驱动负电压 19LED LED 背光板电源 20LED LED 背光板电源 12864A接口定义及其与C8051F020的接口电路图见图4 2 图4 2 接口电路 KS0108采用8位数据传送 间接控制方式 所谓间接控制方式就是通过单片机的并行接口与液晶显示模块直接连接 单片机 通过对这些接口的操作 实现对液晶显示模块的控制 完成相应的显示 可以显示数 字 字母 图形符号及自定义符号 使用LCD做数据显示 一旦数据写入LCD 数据就会一直显示在液晶屏上 不必像 数码管显示那样要定时扫描才能将数据显示 其显示效果远远超过数码管显示 4 3 图形点阵液晶显示编码规则 4 3 1 汉字编码规则 一般地 常用点阵液晶显示模块的汉字字模是直接从中文系统汉字字库中提取的 然后经过格式上的调整和转换 可以得到欲显示的汉字字模 在毕业设计中 我用的 汉字不是从字库中提取字模 而是采用了一个字模软件来取模 将图形点阵转换为计 算机内部显示缓冲单元的数据 字模软件的界面见图 4 3 图 4 3 字模软件界面图 这个字模软件使用起来相当简单和方便 LCD 显示模块显示中文字符串中 显示汉 字 16 16 点阵 必须使用图形方式 在使用 KS0108 图形方式时 显示缓冲区单元与 显示屏的对应关系见图 4 4 所示 图 4 4 显示缓冲区单元与显示屏的关系 5 图 4 4 所示的显示格式与我们的习惯正好相反 如想在显示屏上显示 10010110 则须向 RAM 中写入 01101001 这适应人们的习惯 在字模软件取模时设置 字节倒序 字模软件在取模的参数设置见图 4 5 所示 16 16 汉字共有 32 个字节 这 32 字节存 放方式见表 11 所示 表 11 32 字节存放方式 117 218 1632 图 4 5 取模参数设置 在取模时 须设置取模参数如图 4 5 所示 纵向取模 字节倒序 在对字符取模 时 可以根据个人需要设置不同字体和字号 不同字体和字号 取模之后得到的对应 字阵的宽和高不同 但建议最好用 16 16 字阵 这是为了在显示过程中便于控制写数 据 例如 取模得到 湖 字的编码为 文字 湖 宋体 12 此字体下对应的点阵为 宽 x 高 16x16 0 x10 0 x21 0 x86 0 x60 0 x90 0 x90 0 xFF 0 x90 0 x90 0 x00 0 xFE 0 x92 0 x92 0 xFE 0 x00 0 x00 0 x04 0 xFC 0 x03 0 x00 0 x1F 0 x10 0 x10 0 x90 0 x5F 0 x30 0 x0F 0 x40 0 x80 0 x7F 0 x00 0 x00 在一个字符显示过程中 扫描方式是按列扫描 4 3 2 图形编码规则 图形与字符的编码规则一样 但在图形取模时 要求是位图 文件的扩展名为 BMP 其它类型图形无法取模 位图的大小为 128 64 不能超出这个范围 例如下图 图 4 6 取模后所得编码在附录 程序代码里 KS0108 C 部分 char code sreen3 中 已列出 图 4 6 位图 图形转换为机内字模之后 跟字符显示原理一样 在图形的上下滚动上 是将显 示起始行地址在显示完本屏之后增加 1 在图形的左右移动上 相对而言要复杂得多 起始行地址不变 但由于液晶屏的列是由两块 KS0108 分左 右屏控制的 必须注意左 右屏的分开控制 当在起始列在左半屏时 先从左半屏的起始列写数据 写到左半屏 的第 64 列 然后从左半屏的第一列开始写数据直到左半屏的第 64 列 当起始列在右 半屏时 左半屏不需要驱动 直接从起始列中减去 64 而得到对应右半屏的第多少列 然后从右半屏的第多少列驱动 4 4 程序流程 程序流程见图4 7和图4 8 初始化时钟 初始化定时器 0 初始化 IO 口 初始化 SPIO 使能比较器 1 使能片内参考电压 使能 DAC0 开中断 调用显示子程序 开始 结束 图4 7 主程序流程图 实现位图左右移动 静态显示文字 实现位图上下滚动 静态显示位图 字符从右向左移动 字符从上到下移动 开始 图4 8 LCD测试流程图 4 5 功能实现 LCD 初始化 void InitLCD void 初始化 LCD char i j LCD RST 0 Delay1ms 1 LCD RST 1 LCD WriteCommand1 0 xc0 LCD WriteCommand2 0 xc0 LCD WriteCommand1 0 x3f 开显示 LCD WriteCommand2 0 x3f for j 0 j 8 j 清屏 LCD WriteCommand1 0 xB8 j 清左半屏 LCD WriteCommand1 0 x40 for i 0 i 64 i LCD WriteData1 0 x00 LCD WriteCommand2 0 xB8 j 清右半屏 LCD WriteCommand2 0 x40 for i 0 i 64 i LCD WriteData2 0 x00 单个汉字显示 void LCD Write A HZ char x char y char Dot 显示 16 16 点阵汉字 char i for i 0 i 32 i if x i 16 64 LCD WriteCommand1 0 xB8 y i 16 LCD WriteCommand1 0 x40 x i 16 LCD WriteData1 Dot i else LCD WriteCommand2 0 xB8 y i 16 LCD WriteCommand2 0 x40 x 64 i 16 LCD WriteData2 Dot i 静态显示一幅位图 void DispBmp char buf 显示一幅位图 int i j for j 0 j 8 j 显示位图 LCD WriteCommand1 0 xB8 j LCD WriteCommand1 0 x40 for i 0 i 64 i LCD WriteData1 buf j 2 64 i LCD WriteCommand2 0 xB8 j LCD WriteCommand2 0 x40 for i 0 i 64 i LCD WriteData2 buf j 2 1 64 i 位图上下滚动实现 Void DispBmp Roll char buf char Buffer int i Buffer buf DispBmp Buffer for i 0 i 64 i Delay1ms 50 LCD WriteCommand1 0 xc0 i 64 设置起始行 实现向上滚动 LCD WriteCommand2 0 xc0 i 64 位图从左到右移动实现 void DispBmp Move char buf 左右移动一幅位图 int line line0 row eight 显示位图 for row 0 row 128 row Delay1ms 50 for eight 0 eight 8 eight if row 64 LCD WriteCommand1 0 xB8 eight LCD WriteCommand1 0 x40 row for line 0 line row 64 line LCD WriteData1 buf eight 2 64 line LCD WriteCommand2 0 xB8 eight LCD WriteCommand2 0 x40 for line0 0 line0 row 64 line0 LCD WriteData2 buf eight 2 64 line line0 else LCD WriteCommand2 0 xB8 eight LCD WriteCommand2 0 x40 row 64 for line0 0 line0 row 64 64 line0 LCD WriteData2 buf eight 2 64 line0 关于汉字的上下 左右移动较简单 请参照附录 程序代码 5 系统实验仿真 我们在许多地方可以看到 LCD 显示屏的应用 例如空调 车内广告 可视电话 显示仪表盘等等 它们都是一个小型的单片机控制液晶显示系统 在日常生活中 我 们也可以看到一些类似的由单片机控制的显示系统 如火车站售票大厅的候车信息显 示屏 在这些屏幕上 可以显示各种不同的图形 汉字等 并且可以实现上下滚屏与 左右移动等 5 1 平台及操作 平台准备 在确认连线已接好时 将拨码开关 S1 和 S2 置于 ON 位置 操作流程 建立一个新的项目文件 将程序加到这个项目文件中 编译连接后 将程序下载到 C8051F020 中 打开 RAM 观察窗口 运行程序 运行程序时 可单步 执行或在送数指令后加断点观察 RAM 存储单元的变化 观察加法结果是否正确 5 2 仿真及结果 在 C8051F020 系统实验箱上的液晶显示屏上 我实现了这些动态显示功能 特设 计了以下几个显示场景 1 场景一 第一个场景是在液晶显示屏上静态显示位图 如图 5 1 所示 图 5 1 位图上下滚动 在这个场景中 是对位图 128 64 的模仿上下滚动 2 场景二 第二个场景显示的内容较少 只有几个字 湖南理工学院计算机与信息工程 系单片机液晶显示系统设计 图形动态显示研究 是静态的显示效果如图 5 2 所示 号 图 5 2 汉字 3 场景三 第三个场景是图形动态显示模拟 它们是从左向右推出的 一直移动到显示屏最 右端 具体如图 5 3 所示 图 5 3 位图右移 4 场景四 第四个场景是静态显示一幅位图如图 5 4 图 5 4 位图显示 5 场景五 这个场景是实现对字符的动态显示如图 5 5 我用的是 湖南 与 湘 这三个汉 字来模仿的 让 湖南 两个字纵向排列 从右向左移动 湘 字从上下落到液晶 屏的底部 在这些场景中 液晶显示屏上显示的汉字 我是把它当作图形来显示的 汉字和图形的字模我是借助字模软件取模的 并没有自己去设计汉字和图形的字模 当然这样做省了不少的事 就我个人来看 把大量的时间分配在接口的编程上和如何 利用 C 语言实现接口是更有价值的 图 5 5 字符串移动 由于这种型号液晶屏的观察角度不同 一般采用成 45 度的角度来观察为最好 直 视比较黑而且图像不明显 所以在系统仿真实验中 我没有取到最佳图形 总 结 液晶显示器 LCD 具有图形显示功耗低 体积小 质量轻 超薄等诸多其它显示 器无法比拟的优点 被广泛用于智能型仪器和低功耗电子产品中 图形点阵式 LCD 不 仅可以显示字符 数字 还可以显示各种图形 曲线及汉字 并且可以实现屏幕上下 左右滚动 动画 闪烁 文本特征显示等功能 用途十分广泛 本文介绍采用新华龙 分司的内置两片 KS0108 驱动控制器的点阵型液晶显示模块 CMG12864B 与 C8051F020 接 口的性能特点 硬件电路接口时序和接口软件编程思路及其接口调试 DSP 数字信号处理 系统液晶模块的使用 在硬件方面 关键要满足液晶的接口 时序 在软件方面 要正确进行初始化 这样就可以随心所欲显示信息了 参考文献 1 李朝青 单片机原理及接口技术 M 北京 北京航空航天大学出版李朝青 单片机原 理及接口技术 M 北京 北京航空航天大学出版社 1999 3 11 67 2 吴金戌 8051 单片机实践与应用 M 北京 清华大学出版社 2001 9 266 293 3 李秉操 单片机接口技术及其在工业控制中的应用 M 陕西 陕西电子编辑部 1991 3 314 336 4 薛栋梁 MCS 51 151 251 单片机原理与应用 M 北京 中国水利水电出版社 2001 6 177 202 5 新华龙有限公司 C8051F020 单片机实验系统使用说明书 6 刘乐善 微型计算机接口技术及应用 M 武汉 华中科技大学出版社 2000 4 167 177 7 应自炉 一种 8031 单片机控制的液晶汉字显示系统 五邑大学学报 自然科学版 1995 第 9 卷 第 3 期 8 童长飞编著 C8051F 系列单片机开发与 C 语言编程 M 北京 北京航空航天大学出 版社 2005 428 444 9 潘琢金 施国君编著 C8051F 高速 Soc 单片机原理及应用 M 北京 北京 航空航天大学出版社 2005 11 M Morris Mano Charles R Kime Logic and Computer Design Fundamentals Second Edition Updated 北京 电子工业出版社 2002 7 391 396 12 李维 郭强编著 液晶显示应用技术 M 北京 电子工业出版社 1999 10 54 139 13 马忠梅 籍顺心等编著 单片机的 C 语言应用程序设计 第 3 版 M 北京 北 京航空航天大学出版社 2003 11 致 谢 首先 我要感谢我的导师 副教授 我的论文自始至终都是在 的关心和指导下 完成的 从进入实验室起 一直以他渊博的知识指导我的学习 同时 严谨的研 究作风 谦虚的工作态度也深深地感染了我 让我在毕设的路上始终能够健康成长 在此 我对 对我的培养 教育 关心和爱护表示我深深的谢意 同时 我要感谢同实验室的同学 他们和我互相帮助 共克难关 进行了许多有 益的学术探讨 给我提供了大量合理化建议 并帮助我完成了与论文相关的一些实验 在与他们的合作中 不仅拓宽了我的知识面 增长了学术水平 并且让我在实验室的 生活也过得充实而精彩 最后 我谨以此文献给我最敬爱的父母 在 学院的 4 年时间弹指一挥间 父母 却为了我的生活 学习而增添了丝丝白发 这种含辛茹苦的爱 这种望子成龙的期盼 和远离身边的牵挂一直是我生活的精神支柱和前行的基石 袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇薄罿膄芃薃虿羆艿薃袁节膅薂羄肅蒃薁蚃芀荿薀螆肃芅蕿袈芈膁蚈羀肁蒀蚇蚀袄莆蚇螂肀莂蚆羅袂芈蚅蚄膈膄蚄螇羁蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀螁螃羇葿螀袅膃蒅蝿肈羆莁螈螇芁芇莄袀肄膃莄羂艿蒂莃蚂肂莈蒂螄芈芄蒁袆肀膀蒀罿袃薈葿螈聿蒄葿袁羁莀蒈羃膇芆蒇蚃羀膂蒆螅膅蒁薅袇羈莇袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿 蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护士证试题及答案
- 2025年防城港市金湾小学招聘教师考试笔试试题(含答案)
- 煤炭资源勘探开发合同
- 北京消防安全知识培训课件
- 护理相关知识考核试题及答案
- 2025上半年教资作文真题幼儿园含答案
- 2025《药品网络销售监督管理办法》考核题(含答案)
- 2006年7月国开电大法律事务专科《刑法学(2)》期末纸质考试试题及答案
- 2025年【G1工业锅炉司炉】作业考试题库及G1工业锅炉司炉考试试题(含答案)
- 北京地铁消防知识培训课件
- 城市发展史起源演变和前景概述课件
- 麻醉术后护理业务学习
- 人教版高二语文必修四《中华文化精神》教学设计
- 初中数学-综合与实践 哪一款“套餐”更合适教学课件设计
- 采油采气井控题库
- Cpk 计算标准模板
- 精选浙江省普通高中生物学科教学指导意见(2023版)
- “魅力之光”核电知识竞赛试题答案(二)(110道)
- 外科学课件:食管癌
- 汽机专业设备运行日常点检
- GB/T 2820.12-2002往复式内燃机驱动的交流发电机组第12部分:对安全装置的应急供电
评论
0/150
提交评论