史静 李煜
【摘 要】本文充分利用LCD1602的相关特性和指令集,通过数学化的编程思想使用线性函数和对比判断的方法,利用LCD1602所提供的读取忙指令,实现了自动换行换页延时顺序显示,从而解决了在较小的LCD1602液晶显示屏上显示大段文本的问题。
【关键词】单片机;液晶显示;LCD1602
中图分类号: TP274 文献标识码: A 文章编号: 2095-2457(2017)20-0061-002
A Multi-line Text Display Method Based on Single Chip Microcomputer and LCD1602
SHI Jing LI Yu
(Xian University of Technology,Xian Shanxi 710048,China)
【Abstract】This paper makes full use of the related characteristics and instruction set of LCD1602,and uses the linear function and the contrast judgment method through the mathematical programming idea.By using the read busy command provided by LCD1602,In a small LCD1602 LCD display a large section of the text of the problem.
【Key words】Single ChipMicrocomputer;Liquid crystal Display;LCD1602
0 引言
液晶显示器的尺寸也是越做越大,价格也是越来越低,但是并不是所有的场合都可以使用大尺寸的液晶屏幕,例如智能水电表,可穿戴智能设备等需要在有限的屏幕尺寸上显示大量的信息。对于超长的文本采用定义多个数组手工分组定位来显示,没充分利用LCD1602提供的硬件特性,算法较为简陋,多个循环执行效率较低。本文通过对现有LCD1602液晶显示器软件显示算法的改进,来实现对于超长文本的自动换行换页显示,充分利用LCD1602硬件本身所提供的功能,来实在较小的液晶屏幕上显示较多的文字信息。
1 设计方案
本文软件采用结构化的开发方法,并在开发算法过程中引入数学思想,逐个函数编写并测试寄存器变量变化后进行集成,最后进行了总体测试。编写过程中函数和变量的命名严格按照命名方法命名,符合良好的编程规范。
硬件测试电路使用AT89C51单片机和LCD1602设计。软件采用Keil uVision5编程,功能仿真使用Proteus8完成。
2 方案实现
2.1 硬件系统设计
本系统硬件以2AT89C51单片机为核心,其内部结构包括中央处理器(CPU)、内部数据存储器(RAM)、内部程序存储器(ROM)、定时器/计数器、并行I/o口、全双工串行口、中断控制系统、时钟电路等。
2.2 液晶显示器
LCD1602是目前使用较为广泛的一种字符型液晶显示模块。本文测试使用该显示器。LCD1602通常有14个引脚或16个引脚,16个引脚的是多出了2条背光电源线和地线的型号。每行可以显示16个字符,共有两行。
2.3 硬件电路的设计
本文硬件电路的组成:AT89C51单片机,时钟电路,电源电路和LCD1602显示电路。本文测试电路的系统框图,如图1所示,硬件系统电路图如图2所示。
2.4 软件系统设计
本文通过充分利用LCD1602的相关特性和指令集,通过数学化的编程思想使用一次函数来表明显示屏中行列像素的位置关系,再利用对比判断的方法,从而实现了自动换行换页延时顺序显示,继而解决了在较小的LCD1602液晶显示屏上显示大段文本的问题。
3 调试与仿真
3.1 调试仿真
本文使用KeiluVision5作为编译和调试的软件,没有使用内置的文本编辑器,而使用了其自定义工具功能调用了外部文本编辑器Notepad++作为编辑环境,Notepad++相对于自带的编辑工具而言,具有了语法和系统关键词高亮,语法错误提醒和多种快捷操作方式,不光提升了编程效率,还可以避免在一些小错误上浪费大量的调试时间。
仿真测试采用Proteus 8 Professional软件,该软件对于Proteus7来说有了重大的改进,界面更加友好,并且可以通过VSM和Keil Monitor 51实现程序和硬件的联合仿真,弥补了Proteus无法实施查看寄存器变量、对应程序的缺点和Keil无法直观查看程序结果的不足。
3.2 测试结果
运行仿真测试程序后,完成所提算法的功能,实现了多行文本的自动换行换页延时显示的效果。效果如图3,图4所示。
4 结论
本文对于单片机和LCD1602显示方法改进的设计,从研究背景,现实需求到单片机和LCD1602编程所需的硬件原理,硬件设计,功能指令,再到通过数学的思想和方法来改进算法,到最后编程、仿真、测试都进行了全面详细的阐述。本所提供的方法可进一步拓展至其他尺寸的LCD屏幕中,还可进一步的通过汇编语言实现本算法,从而节约单片机系统资源。
【参考文献】
[1]Atmel,AT89C51元件手册.
[2]彭芬.单片机C语言应用技术,2012,西安电子科技大学出版社:109,111-116.
[3]杨宏丽.单片机应用技术(第三版),2013,西安电子科技大学出版社:161.
[4]杨欣.实例解读51单片机完全学习与应用,2011,电子工业出版社:349.
[5]LCD1602元件手册.
[6]KeiuVision5軟件帮助.
[7]K.N.King,C语言程序设计现代方法(第二版),2010,人民邮电出版社:295.
[8]Proteus8软件帮助.endprint