首页 理论教育 单片机开发实例:LCD12864驱动设计

单片机开发实例:LCD12864驱动设计

时间:2023-10-23 理论教育 版权反馈
【摘要】:图6-9 STC89C51和LCD12864连接示意图2.LCD12864液晶显示器驱动程序LCD12864的驱动程序中主要有系统配置预处理、基本操作函数和应用操作函数。由于写过程中采用了延时,所以程序中省去了读状态操作;应用操作包括显示字符、显示汉字、显示图形等,因此LCD12864驱动中包含了字库和图形的文件。显示时,LCD12864每行可以显示128点阵,即16×8字节数据,共64行,因此图形库的文件实际就是把图形转换成16×64字节的数据。LCD12864图形取模如图6-10所示。

单片机开发实例:LCD12864驱动设计

1.参考电路

LCD12864和单片机的连接电路如图6-9所示,其中LCD12864的数据端D0~D7分别接单片机的P0口,并需加上拉电阻;WR接P24,RD接P2.3,CE接P2.2,C/D接P2.1,RST接P2.0;LCD12864的第4脚接多圈电位器,用来调节LCD12864显示的对比度。

978-7-111-43463-4-Chapter06-37.jpg

图6-9 STC89C51和LCD12864连接示意图

2.LCD12864液晶显示器驱动程序

LCD12864的驱动程序中主要有系统配置预处理、基本操作函数和应用操作函数。基本操作函数有:向LCD12864中写1B数据、写1B命令、写一个数据和一个命令,写两个数据和两个命令以及LCD12864基本设置函数、清屏函数以及延时函数。由于写过程中采用了延时,所以程序中省去了读状态操作;应用操作包括显示字符、显示汉字、显示图形等,因此LCD12864驱动中包含了字库和图形的文件。

基本操作类函数和应用操作类函数是LCD12864的基本程序,保存在f12864.c文件中,所使用的字库、图形文件实例分别存放在ziku.c和tuxing.c中。

基本操作程序如下:

978-7-111-43463-4-Chapter06-38.jpg

978-7-111-43463-4-Chapter06-39.jpg

978-7-111-43463-4-Chapter06-40.jpg

978-7-111-43463-4-Chapter06-41.jpg

978-7-111-43463-4-Chapter06-42.jpg

3.程序说明

(1)字库

字库中的每一个汉字都采用16×16点阵显示,因此需要通过字模工具软件把每一个要显示的汉字转换成一个32B数据。常用的字模软件可以通过网络下载,注意取模时生成的代码为C51程序代码,并且是横向取模。本项目汉字和图像取模采用zim0221软件,字符库ziku.c内容如下:(www.xing528.com)

978-7-111-43463-4-Chapter06-43.jpg

978-7-111-43463-4-Chapter06-44.jpg

978-7-111-43463-4-Chapter06-45.jpg

978-7-111-43463-4-Chapter06-46.jpg

(2)图形库

这里显示的图形例子是128×64点阵黑白图形。显示时,LCD12864每行可以显示128点阵,即16×8字节数据,共64行,因此图形库的文件实际就是把图形转换成16×64字节的数据。有的字模程序具有图形取模功能,需要生成图形库文件时,先把一副图形通过画图工具保存成128×64点阵的黑白位图(*.bmp),然后把这个图形文件导入到字模程序中生成C51代码即可。LCD12864图形取模如图6-10所示。

978-7-111-43463-4-Chapter06-47.jpg

图6-10 LCD12864显示图形取模

(3)字符显示

在基本操作中定义了文本显示的点阵大小即文本区宽度,比如8×8点阵,那么在显示文本时,每一个字符显示区就占用8×8点阵。我们可以把LCD12864屏的左上角定为原点,向左为屏宽,128点阵;向下为高,64点阵。可以显示字符横向为16个,纵向为8个,即共有16×8个字符显示区。

显示字符时需要先在显示屏上定位,即设定字符显示缓存地址。文本显示对应的地址用x、y坐标的代数式表示,x为横向字符区间隔,也是一个光标宽度,单位大小为8点阵,显示屏从左到右共16字符,x取值范围为0~15;y为纵向一个字符间隔,取值范围为0~8,但y每增加1行,地址值增加16×1个单位,则定位地址为address=x+y×16。注意字符显示时,写入的字符ASCⅡ码需减去0x20才能和LCD12864的字符库地址对应。

数字显示也是字符显示,其定位方法与字符定位一样。本程序采用了一次显示两位数字函数,显示数字比较方便。

(4)汉字显示

汉字显示为图形显示,一个汉字占用16×16点阵。由于汉字取模方式为左右横向,汉字显示时,每一点阵行要同时写入一个汉字的左部右部两字节。图形显示定位也采用x、y坐标的表达式表示,x为一个光标宽度,单位为8点阵,但纵向为一个点阵单位,横向增加16个单位,纵向单位值加1,所以每增加一行汉字,y增加16×16,所以地址address=0x0800+16×16×y+x。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈