![基于单片机的LCD液晶显示器控制原理系统设计_[当文网提供][1]_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/31/fcf153d5-051b-4bca-90f0-714f29125e64/fcf153d5-051b-4bca-90f0-714f29125e641.gif)
![基于单片机的LCD液晶显示器控制原理系统设计_[当文网提供][1]_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/31/fcf153d5-051b-4bca-90f0-714f29125e64/fcf153d5-051b-4bca-90f0-714f29125e642.gif)
![基于单片机的LCD液晶显示器控制原理系统设计_[当文网提供][1]_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/31/fcf153d5-051b-4bca-90f0-714f29125e64/fcf153d5-051b-4bca-90f0-714f29125e643.gif)
![基于单片机的LCD液晶显示器控制原理系统设计_[当文网提供][1]_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/31/fcf153d5-051b-4bca-90f0-714f29125e64/fcf153d5-051b-4bca-90f0-714f29125e644.gif)
![基于单片机的LCD液晶显示器控制原理系统设计_[当文网提供][1]_第5页](http://file3.renrendoc.com/fileroot_temp3/2021-12/31/fcf153d5-051b-4bca-90f0-714f29125e64/fcf153d5-051b-4bca-90f0-714f29125e645.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 摘摘 要要本文围绕设计以单片机作为 LCD 液晶显示系统控制器为主线,基于单片机 8051,采用的液晶显示控制器的芯片是 SED1520,主要实现中文显示、滚屏以及左右移动功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。本系统是以单片机的汇编语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。使硬件在软件的控制下协调运作。其次阐述了部分程序的流程图和实现过程。本文撰写的主导思想是软、硬件
2、相结合,以硬件为基础,来进行各功能模块的编写。最后对我所开发的用单片机实现 LCD 液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。关键字:关键字:单片机、液晶显示、8051、SED1520、2 目目 录录1 绪 论.21.1 单片机液晶显示系统设计课题背景 .21.2 开发单片机液晶显示系统的意义 .21.3 课题完成的功能 .32 单片机与 C8051F020 单片机实验系统.42.1 单片机技术的发展特点.42.2 C8051F020 单片机实验系统.52.3 CIP-51TMCPU.73 液晶显示控制器 KS0108.103.1 KS0108 的特点.103.2 KS0108
3、 管脚.103.3 KS0108 受控引脚.113.4 KS0108 的时序4.113.4.1 KS0108 与 68 系列微处理器直接接口的时序.113.4.2 复位时序 .123.5 KS0108 显示 RAM 地址结构.133.6 KS0108 指令系统4.134 图形动态显示.154.1 图形点阵式液晶显示控制原理 .154.2 液晶显示模块外部接口 .154.3 图形点阵液晶显示编码规则 .174.3.1 汉字编码规则.174.3.2 图形编码规则 .194.4 程序流程 .194.5 功能实现 .205 系统实验仿真.235.1 平台及操作 .235.2 仿真及结果 .23参考文献
4、.25致 谢.2631 绪 论1.1 单片机液晶显示系统设计课题背景单片机液晶显示系统主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统。液晶显示器与 CRT(cathode-ray tube,阴极射线管)、LED (light-emitting diode,发光二级管)或等离子显示器相比是一种低功耗的平面显示器件。它在车内广告、在型智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。老式七段 LCD(Liquid Crystal Display 液晶显示屏)显示的字符数量有限,只能用于简单显示,而对于比较复杂的字符、图形无法表达。然而在现代工业控制和
5、一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。由于物探仪器的多功能化、智能化、并且普遍采用人机对话的交互方式,需要能够显示更丰富信息和通用性较强的显示器,便于开发和应用,并要求其体积小、重量轻、功耗小。图形点阵式 LCD 不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动、分区开窗口、反转、闪烁、位操作等功能,可以显示用户自定义的任意符号以及曲线、图形等,是信息处理、信息输出的重要手段之一,具有广泛的应用前景。1.2 开发单片机液晶显示系统的意义社会意义:液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。近几年
6、来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。液晶显示器分为字符型 LCD 显示模块和点阵型 LCD 显示模块。字符型 LCD 是一种用 57点阵图形来显示字符的液晶显示器。点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字 BP 机、手机上的显示屏就是点阵型 LCD。点阵型LCD 是现代单片机应用系统中最常用的人机交互界面之一。4现实意义:我选择的单片机液晶显示系统的开发,是基于 KS0108 液晶显示控制器,
7、在C8051F020 单片机实验系统上实现。KS0108 是点阵型液晶显示控制器,C8051F020 单片机是美国 Silabs 公司推出的完全集成的混合信号系统芯片(SOC)。利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计,我希望能够触类旁通,灵活应用其他型号的液晶显示控制器。将来如果有机会从事这方面的工作,要运用的液晶显示控制器不一定是 KS0108,但这次毕业设计中学到的东西为此打下了良好的基础,相信自己能做好这方面的工作。1.3 课题完成的功能所选的单片机液晶显示系统设计,是在 C8051F020 系统实验设备上实现的。C8051F020 中有内藏 KS0108 控制器
8、的液晶模块 CGM12864B。KS0108,12864 个点阵,与行控制器 KS0107 配合使用,组成液晶显示驱动控制系统。我最主要是用 KS0108 来设计图形动态显示。在显示屏上的显示点是以字节数和位数为显示单元的,单元内为“1”的位在屏幕上反应是亮点,为“0”的位不亮。在字节中能够显示的位数可编程设置,范围是116。如果小于等于 8 位,则用一个字节,每个字节的低位不起显示作用。例如,设置显示单元为 6,每个字节显示 6 位,那么屏幕上的显示单元为 16 点;如果大于 8位则用两个字节,低字节的低位不起显示作用。屏幕上同一行的显示单元从左到右地排列,对应着显示内存中的地址是从高到低,
9、同一列中的显示单元从上到下,对应显示内存中的地址相差一定的值,称作行地址间隔,可用程序设置。显示内存(RAM,Random Access Memory 随机存储器)中的地址与屏幕上的显示位置一一对应。在液晶显示屏上显示图形实际上是将对应的图形显示数据写入显示 RAM 的相应位置。显示图形首先需要将图形转换为图形字模,然后根据该图形的显示位置将图形字模写入对应的显示 RAM 区地址。在图形显示过程中,按列扫描,显示完一页后,要送一个页面地址加 1 指令,让单片机将数据传送到显示 RAM 的下一页。除了实现图形简单的整屏显示外,根据单片机编程控制灵活的特点,还可以实现图形的左右或上下滚动。实现图形
10、左右滚屏的基本思想是让后一列的数据写住前一列的显示 RAM,直至整屏都往右移一列;实现上下滚屏的基本思想是每显示完整屏数据后,显示起始行地址加 1,再显示原整屏数据,这样就实现了上下滚屏的效果。2 单片机与 C8051F020 单片机实验系统52.1 单片机技术的发展特点1自单片机出现至今,单片机技术已走过了近 20 年的发展路程。纵观 20 年来单片机发展里程可以看出,单片机技术的发展以微处理器(MPU,Microprocessor Unit)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出比微处理器更具个性的发展趋势。 单片机寿命长 一般说来,单片机开发的产品可以稳定可
11、靠地工作 10 年、20 年;另外,与微处理器相比,单片机的长寿命表现在它不会像 386、486、586 等 MPU 一样,随着半导体技术的飞速发展,更新换代的速度越来越快,很短的时间内就被淘汰出局。传统的单片机如 68HC05、8051 等年龄已有十几年的历史,但产量仍是上升的,这是因为它们在其对相应应用领域的适应性强,并且与之兼容的 I/O 功能模块的扩展接口技术也层出不穷。 8 位、16 位与 32 位单片机共同发展 这是单片机技术发展的另一个动向。长期以来,单片机技术的发展是以 8 位机为主的。随着移动通信、网络技术、多媒体技术等高科技产品进入家庭,32 位单片机应用得到了长足的发展,
12、而 16 位单片机的发展无论从品种和产量方面,近年来也有较大幅度的增长。 单片机的速度越来越快 MPU 发展中表现出来的速度越来越快是以时钟频率越来越高为标志的。而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺牲运算速度是单片机技术发展之追求。一些 8051 单片机兼容厂商改善了单片机的内部时序,在不提高时钟频率的条件下,使运算速度提高了许多。 低电压与低功耗 自 80 年代中期以来,NMOS 工艺单片机逐渐被 CMOS(互补金属氧化物半导体)工艺所代替,功耗得以大幅度下降,随着超大规模集成电路技术由 3m 工艺发展1.5、1.2、0.8、0.5、0.35 进而实现了
13、0.2m 工艺,全静态设计使时钟频率从直流电到数十 MHz 任选,都使功耗不断下降。几乎所有的单片机都有 Wait、Stop 等省电运行方式。允许使用的电源电压范围也越来越宽。一般单片机都能在 36V 范围内工作,对电池供电的单片机不再需要对电源采取稳压措施。低电压供电的单片机电源下限已由 2.7V 降至 2.2V、1.8V、0.9V 供电的单片机已经问世。 低噪声与高可靠性技术 为提高单片机系统的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁6兼容性方面更高标准的要求,各单片机商家在单片机内部电路中采取了一些新的技术措施。OTP 与掩膜 OTP 是一次性写入的单片机。过去认为一个单片机
14、产品的成熟是以投产掩膜型单片机为标志的。由于掩膜需要一定的生产周期,而 OTP 型单片机价格不断下降,使得近年来直接使用 OTP 完成最终产品制造更为流行。它较之掩膜具有生产周期短、风险小的特点。近年来,OTP 型单片机需量大幅度上扬,为适应这种需求许多单片机都采用了在片编程技术(In system Programming) 。未编程的 OTP 芯片可采用裸片 Bonding 技术或表面贴装技术,先焊在印刷板上,然后通过单片机上的编程线、串行数据、时钟线等对单片机编程,解决了批量写 OTP 芯片时容易出现的芯片与写入器接触不好的问题,使 OTP 的裸片得以广泛应用,降低了产品的成本。编程线与
15、I/O 线共用,不增加单片机的额外引脚。而一些生产厂商推出的单片机不再有掩膜型,全部为有 ISP 功能的 OTP。 MTP 向 OTP 挑战 MTP 是可多次编程的意思。一些单片机厂商以 MTP 的性能、OTP 的价位推出他们的单片机,如 ATMEL AVR 单片机,片内采用 FLASH,可多次编程。华帮公司生产的 8051兼容的单片机也采用了 MTP 性能,OTP 的价位。这些单片机都使用了 ISP 技术,等安装到印刷板线路板上以后再下载程序。2.2 C8051F020 单片机实验系统2C8051F020 器件是完全集成的混合信号系统级 MCU(微程序控制器)芯片,具有 64个数字 I/O
16、引脚。下面列出了一些主要特性:高速、流水线结构的 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 个捕捉/
17、比较模块的可编程计数器/定时器阵列7片内看门狗定时器、VDD 监视器和温度传感器具有片内 VDD 监视器、看门狗定时器和时钟振荡器的 C8051F020 是真正能独立工作的片上系统。所有模拟和数字外设均可由用户固件配置为使能或禁止。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新 8051 固件。片内 FTAG 调试电路允许使用安装在最终应用系统上的产品 MCU 进行非侵入式(不占用片内资源)、全速、在系统调试.该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用 JTAG 调试时,所有的模拟和数字外设都可全功能运行。每个 M
18、CU 都可在工业温度范围(-45+85)内用 2.7V3.6V 的电压工作。端CoCo口 I/O、/RST、和 JTAG 引脚都容许 5V 的输入信号电压。C8051020 为 100 脚 TQFP 封装(见图 2.1)。图 2.1 C8051F020 原理框架2.3 CIP-51CPUTM与 8051 完全兼容C8051F020 系列器件使用 Cygnal 的专利 CIP-51 微控制器内核。CIP-51 与 MCS-51指令集完全兼容,可以使用标准 803x/805x 的汇编器和编译器进行软件开发。CIP-51TM内核具有标准 8052 的所有外设部件,包括 5 个 16 位的计数器/定时
19、器、两个全双工UART、256 字节内部 RAM、128 字节特殊功能寄存器(SFR)地址空间及 8/4 个字节宽的8I/O 端口。速度提高CIP-51 采用流水线结构,与标准的 8051 结构相比指令执行速度有很大的提高。在一个标准的 8051 中,除 MUL 和 DIV 以外所有指令都需要 12 或 24 个系统时钟周期,最大系统时钟频率为 1224MHz。而对于 CIP-51 内核,70的指令的执行时间为 1 或 2个系统时钟周期,只有 4 条指令的执行时间大于 4 个系统时钟周期。增加的功能C8051F202 系列 MCU 在 CIP-51 内核和外设有几项关键性的改进,提高了整体性能
20、,更易于在最终应用中使用。扩展的中断系统向 CIP-51 提供 22 个中断源(标准 8051 只有 7 个中断源),允许大量的模拟和数字外设中断微控制器,一个中断驱动的系统需要较小的 MCU 干预,因而有更高的执行效率。在设计一个多任务实时系统时,这些增加的中断源是非常有用的。MCU 可有多达 7 个复位源:一个片内 CDD 监视器、一个看门狗定时器、一个时钟丢失检测器、一个由比较器 0 提供的电压检测器、一个软件强制复位、CNVSTR 引脚及/RST 引脚。MCU 内部有一个独立运行的时钟发生器,在复位后被默认为系统时钟。如果需要,时钟源可以在运行时切换到外部振荡器,外部振荡器可以使用晶体
21、、陶瓷谐振器、电容、RC 或外部时钟源产生系统时钟。 片内存储器3CIP-51 有标准的 8051 程序和数据地址配置。它包括 256 字节的数据 RAM,其中高128 字节为双映射。用间接寻址访问通用 RAM 的高 128 字节,用直接寻址访问 128 字节的 SFR 地址空间。数据 RAM 的低 128 字节可用直接或间接寻址方式访问。前 32 个字节为 4 个通用寄存器区,接下来的 16 个字节既可以按字节寻址也可以按位寻址。MCU 的程序存储器包含 64K 字节的 FLASH。该存储器以 512 字节为一个扇区,可以在系统编程,且不需要特别的编程电压。从 0 xFE00 到 0 xFF
22、FF 的 512 字节被保留,由工厂使用。还有一个位于地址 0 x100000 x1007F 的 128 字节的扇区,该扇子区可作为一个小的软件常数表使用。图 2.2 给出了 MCU 系统的存储器结构。9图 2.2 片内存储器组织JTAG 调试和边界扫描C8051F020 系列具有片内 JTAG 边界扫描和调试电路,通过 4 脚 JTAG 接口并使用安装在最终应用系统中的产品器件就可以进行非侵入式、全速的在系统调试。该 JTAG 接口完全符合 IEEE1149.1 规范,为生产和测试提供完全的边界扫描功能。Cygnal 的调试系统支持观察和修改存储器和寄存器,支持断点、观察点、堆栈指示器和单步
23、执行。不需要额外的目标 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
24、) 。具有标准复用数字 I/O 的微控制器不同,这种结构可支持所有的功能组合。10图 2.4 数字交叉开关原理框图可编程计数器阵列除了 5 个 16 位的通用计数器/定时器之外,C8051F020 MCU 系列还有一个片内可编程计数器/定时器阵列(PCA) 。PCA 包括一个专用的 16 位计数器/定时器时间基准和 5个可编程的捕捉/比较模块。时间基准的时钟可以是下面的 6 个时钟源之一:系统时钟/12、系统时钟/4、定时器 0 溢出、外部时钟输入(ECI) 、系统时钟和外部振荡器源频率/8。C8051F020 还有更多的优势,需要详细了解的请参考文献9。本节主要讲了单片机的特点和 C8051
25、F020 单片机实验系统的特性。C8051F020 与8051 完全兼容,指令采用流水线结构提高了系统速度,有可编程数字 I/O 和交叉开关,增加了一些功能器件,提高了 C8051F020 整体性能。113 液晶显示控制器 KS0108KS0108是一种带有驱动输出的点阵型液晶显示控制器,它可直接与8位微处理器相连,它可与KS0107配合对液晶显示控制器进行行、列驱动,组成液晶显示驱动控制系统。3.1 KS0108 的特点(1).内藏6464=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;(2).KS0108是列驱动器,具有64路列驱动输出;(3).KS0108读、写
26、操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;(4).KS0108的占空比为1/481/64;(5).具有专用指令集,可完成文本显示或图形显示的功能设置,以及实现画面滚动、光标、闪烁和位操作等功能;(6).KS0108可管理64KB显示RAM。其中,图形方式为64KB;字符方式为4KB。3.2 KS0108 管脚4KS0108的管脚见图3.1所示:12图3.1 KS0108管脚图3.3 KS0108 受控引脚KS0108的引脚功能见表1表1 引脚功能引脚符号状态引脚名称功能CS1,CS2,CS3输入芯片片选端CS1和CS2低电平选通,CS3高电平选通E输入读写使能信号
27、在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,使之不起作用。133.4 KS0108 的时序43.4.1 KS0108 与 68 系列微处理器直接接口的时序各种信号波形对照见表2:表2 信号波形MPU读时序见图3.2:图3.2 读时序MPU写时序见图3.3:图3.
28、3 写时序143.4.2 复位时序复位后,KA0108显示关闭,显存地址归零。复位条件见表3和图3.4:表3 复位条件项目符号最小值典型值最大值单位复位时间Trs1.0微秒上升时间Tr200纳秒图3.4 复位条件3.5 KS0108 显示 RAM 地址结构 KS0108中的显示RAM共有64行,64列,其结构见图3.5图3.5 显示RAM地址结构3.6 KS0108 指令系统4KS0108的指令系统比较简单,总共只有七种。现分别介绍如下:3.6.1 显示开/关指令见表4表4 显示开/关指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0150 00 0 1 1 1 1
29、 1 1/0当DBO=1时,LCD显示RAM中的内容;DBO=0时,关闭显示。3.6.2 显示起始行(ROW)设置指令见表5表5 显示起始行指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 1 显示起始行(0-63)该指令设置了对应液晶屏最一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果。3.6.3 页(RAGE)设置指令见表6表6 页设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 01 0 1 1 1 页号(0-7)显示RAM共64行,分8页,每页8行。3.6.4 列地址(Y Addre
30、ss)设置指令见表7表7 列地址设置指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 00 1 显示列地址(0-63)设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MPU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。3.6.5 读状态指令见表8表8 读状态指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 0BUSY 0 ON/OFF REST 0 0 0 0该指令用来查询KS0108的状态,各参量含义如下:BUSY:1-内部在工作 0-正常状态ON/OFF:1-显示关闭 0-显示打开REST: 1
31、-复位状态 0-正常状态在BUSY和REST状态时,除读状态指令外,其它指令均不对KS0108产生作用。在对KS0108操作之前要查询BUSY状态,以确定是否可以对KS0108进行操作。3.6.6 写数据指令见表9表9 写数据指令R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB00 1 写 数 据3.6.7读数据指令见表10表10 读数据指令16R/W RSDB7 DB6 DB5 DB4 DB3 DB2 DB1 DB01 1 读 显 示 数 据读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读、写操作之前,必须有一次空读操作,紧接着再读才会读出
32、所要读的单元中的数据。本节主要是介绍液晶显示控制器KS0108的特点、外部部分引脚功能、时序、显示RAM地址结构及指令集,为单片机液晶显示系统设计打下基础。174 图形动态显示4.1 图形点阵式液晶显示控制原理C8051F020实验板中使用的是内置液晶显示模块CGM12864B的液晶屏。CGM12864B内部没有振荡器电路,它必须由外部提供一个时序发生器作为振荡源方可工作,它由两片带有64列驱动控制器KS0108和一片带有64行驱动控制器KS0107组合而成。另外还可以附加负压发生电路。显示是以一12864 个点的液晶屏显示。图形液晶显示模块KS0108将显示区分为左右半屏,整个屏从上到下64
33、 行分为8 页,每页8 行,页地址范围为:B8HBFH。列地址范围为:40H7FH。数据为纵向读写,即每页的第一行对应D0 第八行对应D7。左、右半屏由CS1、CS2选择。控制器KS0108 的指令相对简单,总共七条指令:显示开关设定(3EH/ 3FH),显示起始行设定(C0H /FFH),页地址设定(B8H/ BFH),列地址设定(40H/ 7FH)状态读取,写数据,读数据。12864 点阵式液晶模块的逻辑图见图 4.14图4.1 液晶模块逻辑图4.2 液晶显示模块外部接口外部接口信号见表 11表 11 外部接口信号管脚号管脚名称LEVER管脚功能描述1Vss0电源地2Vdd+0.5V电源电
34、压3V0液晶显示器驱动电压4D/IH/LD/I=“H” ,表示 DB7DB0 为显示数据18D/I=“L” ,表示 DB7DB0 为显示指令数据5R/WH/LR/W=“H” ,E=“H”数据被读到 DB0DB7R/W=“H” ,E=“HL”数据被写到 IR 或 DR6EH/LR/W=“L” ,E 信号下降沿锁存 DB7DB0R/W=“H” ,E=“H”DDRAM 数据读到 DB7DB07DB0H/L数据线8DB1H/L数据线9DB2H/L数据线10DB3H/L数据线11DB4H/L数据线12DB5H/L数据线13DB6H/L数据线14DB7H/L数据线15CS1H/LH:选择芯片(右半屏)信号
35、16CS2H/LH:选择芯片(左半屏)信号17RSTH/L复位信号,低电平复位18Vee-10VLCD 驱动负电压19LED-LED 背光板电源20LED+-LED 背光板电源12864A接口定义及其与C8051F020的接口电路图见图4.2图4.2 接口电路KS0108采用8位数据传送,间接控制方式。19所谓间接控制方式就是通过单片机的并行接口与液晶显示模块直接连接,单片机通过对这些接口的操作,实现对液晶显示模块的控制,完成相应的显示,可以显示数字、字母、图形符号及自定义符号。使用LCD做数据显示,一旦数据写入LCD,数据就会一直显示在液晶屏上,不必像数码管显示那样要定时扫描才能将数据显示,
36、其显示效果远远超过数码管显示。4.3 图形点阵液晶显示编码规则4.3.1 汉字编码规则一般地,常用点阵液晶显示模块的汉字字模是直接从中文系统汉字字库中提取的,然后经过格式上的调整和转换,可以得到欲显示的汉字字模。在毕业设计中,我用的汉字不是从字库中提取字模,而是采用了一个字模软件来取模(将图形点阵转换为计算机内部显示缓冲单元的数据) 。字模软件的界面见图 4.3。图 4.3 字模软件界面图这个字模软件使用起来相当简单和方便。LCD 显示模块显示中文字符串中,显示汉字(1616 点阵)必须使用图形方式。在使用 KS0108 图形方式时,显示缓冲区单元与显示屏的对应关系见图 4.4 所示。图 4.
37、4 显示缓冲区单元与显示屏的关系520图 4.4 所示的显示格式与我们的习惯正好相反,如想在显示屏上显示 10010110,则须向 RAM 中写入 01101001。这适应人们的习惯,在字模软件取模时设置“字节倒序” ,字模软件在取模的参数设置见图 4.5 所示。1616 汉字共有 32 个字节。这 32 字节存放方式见表 11 所示:表 11 32 字节存放方式1172181632图 4.5 取模参数设置在取模时,须设置取模参数如图 4.5 所示:纵向取模、字节倒序。在对字符取模时,可以根据个人需要设置不同字体和字号。不同字体和字号,取模之后得到的对应字阵的宽和高不同,但建议最好用 1616
38、 字阵,这是为了在显示过程中便于控制写数据。例如:取模得到“湖”字的编码为:/*- 文字: 湖 -*/*- 宋体 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在一个字符显示过程中,扫描方式是按列扫描。2
39、14.3.2 图形编码规则图形与字符的编码规则一样。但在图形取模时,要求是位图(文件的扩展名为BMP) ,其它类型图形无法取模。位图的大小为 128*64,不能超出这个范围。例如下图(图 4.6)取模后所得编码在附录:程序代码里 KS0108.C 部分 char code sreen3中已列出。图 4.6 位图图形转换为机内字模之后,跟字符显示原理一样。在图形的上下滚动上,是将显示起始行地址在显示完本屏之后增加 1;在图形的左右移动上,相对而言要复杂得多:起始行地址不变,但由于液晶屏的列是由两块 KS0108 分左、右屏控制的,必须注意左、右屏的分开控制:当在起始列在左半屏时,先从左半屏的起始
40、列写数据,写到左半屏的第 64 列,然后从左半屏的第一列开始写数据直到左半屏的第 64 列;当起始列在右半屏时,左半屏不需要驱动,直接从起始列中减去 64 而得到对应右半屏的第多少列,然后从右半屏的第多少列驱动。4.4 程序流程程序流程见图4.7和图4.822 初始化时钟初始化定时器 0初始化 IO 口初始化 SPIO使能比较器 1使能片内参考电压使能 DAC0开中断调用显示子程序开始结束图4.7 主程序流程图 实现位图左右移动静态显示文字实现位图上下滚动静态显示位图字符从右向左移动字符从上到下移动开始图4.8 LCD测试流程图4.5 功能实现LCD 初始化:void InitLCD(void
41、)/初始化 LCDchar i,j;LCD_RST=0;23Delay1ms(1);LCD_RST=1;LCD_WriteCommand1(0 xc0);LCD_WriteCommand2(0 xc0);LCD_WriteCommand1(0 x3f); /开显示LCD_WriteCommand2(0 x3f);for (j=0;j8;j+) /清屏LCD_WriteCommand1(0 xB8+j); /清左半屏LCD_WriteCommand1(0 x40);for (i=0;i64;i+)LCD_WriteData1(0 x00);LCD_WriteCommand2(0 xB8+j);
42、/清右半屏LCD_WriteCommand2(0 x40);for (i=0;i64;i+)LCD_WriteData2(0 x00); 单个汉字显示:void LCD_Write_A_HZ(char x,char y,char *Dot) /显示 16*16 点阵汉字 char i;for (i=0;i32;i+) if (x+i%16)64)LCD_WriteCommand1(0 xB8+y+i/16);LCD_WriteCommand1(0 x40+x+i%16);LCD_WriteData1(Doti);else LCD_WriteCommand2(0 xB8+y+i/16);LCD_
43、WriteCommand2(0 x40+x-64+i%16);LCD_WriteData2(Doti);静态显示一幅位图:24void DispBmp(char *buf) /显示一幅位图 int i,j;for (j=0;j8;j+) /显示位图 LCD_WriteCommand1(0 xB8+j); LCD_WriteCommand1(0 x40);for (i=0;i64;i+)LCD_WriteData1(buf(j*2)*64+i); LCD_WriteCommand2(0 xB8+j);LCD_WriteCommand2(0 x40);for (i=0;i64;i+)LCD_Wri
44、teData2(buf(j*2+1)*64+i);位图上下滚动实现:Void DispBmp_Roll(char *buf)char *Buffer; int i; Buffer=buf; DispBmp(Buffer);for (i=0;i64;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; /显示位图 fo
45、r (row=0;row128;row+) Delay1ms(50); for (eight=0;eight8;eight+) if (row64) LCD_WriteCommand1(0 xB8+eight); LCD_WriteCommand1(0 x40+row);25 for (line=0;line+row64;line+) LCD_WriteData1(buf(eight*2)*64+line); LCD_WriteCommand2(0 xB8+eight); LCD_WriteCommand2(0 x40); for (line0=0;line0+row64;line0+) LC
46、D_WriteData2(buf(eight*2)*64+line+line0); else LCD_WriteCommand2(0 xB8+eight); LCD_WriteCommand2(0 x40+row-64); for (line0=0;line0+row-6464;line0+) LCD_WriteData2(buf(eight*2)*64+line0); 关于汉字的上下、左右移动较简单,请参照附录:程序代码。5 系统实验仿真我们在许多地方可以看到 LCD 显示屏的应用。例如空调,车内广告,可视电话,显示仪表盘等等,它们都是一个小型的单片机控制液晶显示系统。在日常生活中,我们也可
47、以看到一些类似的由单片机控制的显示系统,如火车站售票大厅的候车信息显示屏,在这些屏幕上,可以显示各种不同的图形、汉字等,并且可以实现上下滚屏与左右移动等。5.1 平台及操作平台准备:在确认连线已接好时,将拨码开关 S1 和 S2 置于 ON 位置操作流程:建立一个新的项目文件,将程序加到这个项目文件中,编译连接后,将程序下载到 C8051F020 中。打开 RAM 观察窗口,运行程序。运行程序时,可单步执行或在送数指令后加断点观察 RAM 存储单元的变化,观察加法结果是否正确。265.2 仿真及结果在 C8051F020 系统实验箱上的液晶显示屏上,我实现了这些动态显示功能,特设计了以下几个显
48、示场景:(1)场景一:第一个场景是在液晶显示屏上静态显示位图,如图 5.1 所示: 图 5.1 位图上下滚动在这个场景中,是对位图 128*64 的模仿上下滚动。(2)场景二:第二个场景显示的内容较少,只有几个字“湖南理工学院计算机与信息工程系单片机液晶显示系统设计-图形动态显示研究” ,是静态的显示效果如图 5.2 所示:号 图 5.2 汉字(3)场景三第三个场景是图形动态显示模拟,它们是从左向右推出的,一直移动到显示屏最右端。具体如图 5.3 所示: 图 5.3 位图右移 (4)场景四第四个场景是静态显示一幅位图如图 5.4 27图 5.4 位图显示(5)场景五这个场景是实现对字符的动态显示如图 5.5。我用的是“湖南”与“湘”这三个汉字来模仿的。让“湖南”两个字纵向排列,从右向左移动;“湘”字从上下落到液晶屏的底部。在这些场景中,液晶显示屏上显示的汉字,我是把它当作图形来显示的,汉字和图形的字模我是借助字模软件取模的,并没有自己去设计汉字和图形的字模。当然这样做省了不少的事,就我个人来看,把大量的时间分配在接口的编程上和如何利用 C 语言实现接口是更有价值的。 图 5.5 字符串移动由于这种型号液晶屏的观察角度不同,一般采用成 45 度的角度来观察为最好,直视比较黑而且图像不明显,所以在系统仿真实验中,我没有取到最佳图形。总 结液晶显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四下语文第七八单元教学课件
- 2025员工兼职合同范本
- 2025授权书合同模板
- 彩色的树绘画课件
- 2025高级工程师职称聘用合同
- 2025高中物理教师课标考试模拟试卷附参考答案(三套)
- 《2025年个人住房贷款合同填写指南》
- 2025年大型设备租赁合同
- 2025员工保密合同模板下载
- 2025物业装修工程委托审价合同样本
- 2012年7月国家开放大学专本科《法律文书》期末纸质考试试题及答案
- 统编版语文六年级下册第一单元“民风民俗”作业设计
- 双全日培训课件
- 甲油胶行业报告
- 医务人员职业暴露与防护讲课
- 山东省莱西市2024-2025学年高一语文下学期3月月考试题含解析
- 康复科人员岗位考核制度(3篇)
- 实验动物生物样本质量控制规范
- 智能机器人配送行业现状分析及未来三至五年行业发展报告
- 炎症性肠病的外科治疗
- 复变函数与积分变换课程教案讲义
评论
0/150
提交评论