CN104795033A - 一种分页式lcd的显示方法 - Google Patents

一种分页式lcd的显示方法 Download PDF

Info

Publication number
CN104795033A
CN104795033A CN201510183897.0A CN201510183897A CN104795033A CN 104795033 A CN104795033 A CN 104795033A CN 201510183897 A CN201510183897 A CN 201510183897A CN 104795033 A CN104795033 A CN 104795033A
Authority
CN
China
Prior art keywords
current
lcd
line
character
height
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510183897.0A
Other languages
English (en)
Other versions
CN104795033B (zh
Inventor
陆舟
于华章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201510183897.0A priority Critical patent/CN104795033B/zh
Publication of CN104795033A publication Critical patent/CN104795033A/zh
Application granted granted Critical
Publication of CN104795033B publication Critical patent/CN104795033B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Control Of Indicators Other Than Cathode Ray Tubes (AREA)

Abstract

本发明公开了一种分页式LCD的显示方法,属于液晶显示领域。所述方法包括为涉及多行字符的LCD页开辟第二显存;开辟缓存区,初始化当前行字符的起始行、当前起始行和当前结束行,若存在与当前起始行和当前结束行所在的LCD页对应的第二显存,则将点阵数据的当前起始行至当前结束行部分对应拷贝到所述第二显存,显示所述第二显存中的数据到LCD,否则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述缓存区,显示所述缓存区中的数据到LCD,更新当前行字符的起始行、当前起始行和当前结束行,重复上述过程直至所有行字符显示完成。本发明的有益效果在于占用较小的显存空间即可实现在LCD的显示范围内显示任意大小的字体。

Description

一种分页式LCD的显示方法
技术领域
本发明涉及液晶显示领域,尤其涉及一种分页式LCD的显示方法。
背景技术
分页式LCD纵向每8个点阵为一个LCD页,例如,一个分页式LCD的大小为128*64点,则该分页式LCD每个LCD页的大小为128*8点。现有技术中分页式LCD通常只能显示纵向所占点数为8的整数倍的字体,可以显示的字体的大小和样式较为单一。目前解决上述问题的方法是,在内存中定义一块显存,显存的大小等于甚至大于分页式LCD的大小,当需要显示特殊字体(这里说的特殊字体指的是纵向所占点数不为8的整数倍的字体)时,相应改变显存中的数据,然后再把显存中的数据输出到分页式LCD上完成显示,但这个方法至少存在占用显存空间较大的缺陷。
发明内容
本发明的目的是克服现有技术的缺陷,提供一种分页式LCD的显示方法。
本发明方法是通过下述技术方案实现的:
一种分页式LCD的显示方法,包括初始化流程和显示流程;
所述初始化流程包括:根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存;所述第一参数包括字符高度、LCD页高度和LCD总高度;
所述显示流程包括:根据第二参数和所述第一参数执行以下步骤,所述第二参数包括点阵数据、显示起始行、显示结束行、显示起始列和显示结束列:
步骤S1、开辟高度等于所述LCD页高度的缓存区,初始化当前行字符的起始行为所述显示起始行,初始化当前起始行为当前行字符的起始行,初始化当前结束行为当前起始行所在的LCD页的结束行;
步骤S2、判断是否存在与当前起始行和当前结束行所在的LCD页对应的第二显存,是则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述第二显存,显示所述第二显存中的数据到LCD,执行步骤S3;否则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述缓存区,显示所述缓存区中的数据到LCD,执行步骤S3;
步骤S3、更新当前起始行为当前结束行的下一行,将当前结束行递增所述LCD页高度,判断当前起始行和当前结束行是否位于同一LCD页,是则执行步骤S4,否则将当前结束行更新为当前起始行所在的LCD页的结束行,执行步骤S4;
步骤S4、判断当前行字符是否显示完成,若显示完成则将当前行字符的起始行递增所述字符高度,执行步骤S5;若未显示完成则判断当前结束行是否超出了当前行字符的范围,若超出了则更新当前结束行为当前行字符的结束行,返回步骤S2,若未超出则直接返回步骤S2;
步骤S5、判断所有行字符是否均显示完成,是则结束,否则返回步骤S2。
进一步地,所述初始化流程还包括:记录开辟的第二显存对应的起始行和结束行;所述判断是否存在与当前起始行和当前结束行所在的LCD页对应的第二显存,具体包括:判断当前起始行和当前结束行是否同时落入任一第二显存对应的起始行和结束行的范围内,是则存在与当前起始行和当前结束行所在的LCD页对应的第二显存,否则不存在与当前起始行和当前结束行所在的LCD页对应的第二显存;
所述判断当前起始行和当前结束行是否位于同一LCD页,可以具体包括:判断当前起始行除以所述LCD页高度所得的商,和当前结束行除以所述LCD页高度所得的商是否相等,是则当前起始行和当前结束行位于同一LCD页,否则当前起始行和当前结束行不位于同一LCD页;
所述判断当前结束行是否超出了当前行字符的范围,可以具体包括:判断当前结束行是否小于当前行字符的起始行与所述字符高度的和,是则当前结束行未超出当前行字符的范围,否则当前结束行超出了当前行字符的范围。
所述判断当前行字符是否显示完成,可以具体包括:判断当前起始行是否小于当前行字符的起始行与所述字符高度的和,是则当前行字符未显示完成,否则当前行字符显示完成;
所述判断所有行字符是否均显示完成,可以具体包括:判断当前行字符的起始行是否小于所述显示结束行,是则所有行字符未显示完成,否则所有行字符均显示完成;
所述第二参数中还包括取模方式;所述显示流程中,执行所述步骤S2之前还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则执行所述步骤S2;否则将所述点阵数据按照LCD的显示刷新方向重新组合,并将所述点阵数据更新为组合得到的数据后,执行所述步骤S2。
进一步地,所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存,可以具体包括:
步骤a1、设置当前初始化结束行等于所述字符高度;
步骤a2、判断当前初始化结束行是否超过所述LCD总高度,是则结束,否则执行步骤a3;
步骤a3、判断当前初始化结束行是否为所述LCD页高度的整数倍,是则执行步骤a4,否则为当前初始化结束行所在的LCD页开辟第二显存,执行步骤a4;
步骤a4、将当前初始化结束行递增所述字符高度,返回步骤a2;
更进一步地,所述初始化流程中,执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存之前,还可以包括:检查所述字符高度和LCD页高度,若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度,则顺序执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存;
当所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度时,还可以包括:设置显示模式为第三模式;所述显示流程中,所述步骤S1之前还包括:步骤S0、检查显示模式,若显示模式为第三模式,则顺序执行所述步骤S1;
所述初始化流程中还可以包括:若所述字符高度为所述LCD页高度的整数倍,则设置显示模式为第一模式;所述步骤S0中还包括:若显示模式为第一模式,则显示所述点阵数据到LCD;
一方面,所述第二参数中还包括取模方式;所述显示流程中,执行所述显示所述点阵数据到LCD之前,还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则继续执行所述显示所述点阵数据到LCD;否则将所述点阵数据按照所述LCD的显示刷新方向重新组合后显示到LCD;
另一方面,所述第一参数还可以包括:LCD总宽度;所述初始化流程中还包括:若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度小于所述LCD页高度,则设置显示模式为第二模式,并根据所述LCD总高度和LCD总宽度开辟相应大小的第一显存,所述第一显存中的数据与LCD上的点一一对应;所述步骤S0中还包括:若显示模式为第二模式,则拷贝所述点阵数据到所述第一显存,并将所述第一显存中与所述点阵数据所占的LCD页对应的数据的所述显示起始列至所述显示结束列部分显示到LCD;
所述第二参数中还可以包括取模方式;所述显示流程中,执行所述拷贝所述点阵数据到所述第一显存之前,还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则继续执行所述拷贝所述点阵数据到所述第一显存;否则将所述点阵数据按照所述LCD的显示刷新方向重新组合后拷贝到所述第一显存,并将所述第一显存中与重新组合后的点阵数据所占的LCD页对应的数据的所述显示起始列至所述显示结束列部分显示到LCD。
本发明方法的有益效果在于占用较小的显存空间即可实现在LCD的显示范围内显示任意大小的字体。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分页式LCD的显示方法中的初始化流程图;
图2为初始化流程中开辟第二显存的具体流程图;
图3为本发明实施例提供的一种分页式LCD的显示方法中的显示流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种分页式LCD的显示方法。所述方法包括初始化流程和显示流程两部分,其中:
初始化流程包括:根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存;所述第一参数包括字符高度、LCD页高度和LCD总高度;
显示流程包括:根据第二参数和所述第一参数执行以下步骤,所述第二参数包括点阵数据、显示起始行、显示结束行、显示起始列和显示结束列:
步骤S1、开辟高度等于所述LCD页高度的缓存区,初始化当前行字符的起始行为所述显示起始行,初始化当前起始行为当前行字符的起始行,初始化当前结束行为当前起始行所在的页的结束行;
步骤S2、判断是否存在与当前起始行和当前结束行所在的LCD页对应的第二显存,是则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述第二显存,显示所述第二显存中的数据到LCD,执行步骤S3;否则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述缓存区,显示所述缓存区中的数据到LCD,执行步骤S3;
步骤S3、更新当前起始行为当前结束行的下一行,将当前结束行递增所述LCD页高度,判断当前起始行和当前结束行是否位于同一LCD页,是则执行步骤S4,否则将当前结束行更新为当前起始行所在的LCD页的结束行,执行步骤S4;
步骤S4、判断当前行字符是否显示完成,若显示完成则将当前行字符的起始行递增所述字符高度,执行步骤S5;若未显示完成则判断当前结束行是否超出了当前行字符的范围,若超出了则更新当前结束行为当前行字符的结束行,返回步骤S2,若未超出则直接返回步骤S2;
步骤S5、判断所有行字符是否均显示完成,是则结束,否则返回步骤S2。
进一步地,本实施例中,所述初始化流程中,执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存之前,还包括:检查所述字符高度和LCD页高度,若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度,则顺序执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存。
更进一步地,当所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度时,还包括:设置显示模式为第三模式;所述显示流程中,所述步骤S1之前还包括:步骤S0、检查显示模式,若显示模式为第三模式,则顺序执行所述步骤S1。
再进一步地,所述初始化流程中还包括:若所述字符高度为所述LCD页高度的整数倍,则设置显示模式为第一模式;所述步骤S0中还包括:若显示模式为第一模式,则显示所述点阵数据到LCD;
所述第一参数还包括:LCD总宽度;所述初始化流程中还包括:若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度小于所述LCD页高度,则设置显示模式为第二模式,并根据所述LCD总高度和LCD总宽度开辟相应大小的第一显存,所述第一显存中的数据与LCD上的点一一对应;所述步骤S0中还包括:若显示模式为第二模式,则拷贝所述点阵数据到所述第一显存,并将所述第一显存中与所述点阵数据所占的LCD页对应的数据的显示起始列至显示结束列部分显示到LCD。
实施例二
本发明实施例二提供一种分页式LCD的显示方法。所述方法包括初始化操作和显示操作两部分,具体可以为:当初始化函数被调用时,根据初始化函数被调用时传入的参数进行初始化操作;当显示函数被调用时,根据显示函数被调用时传入的参数进行显示操作。
如图1所示,当初始化函数被调用时,初始化函数根据初始化函数被调用时传入的参数执行以下操作,其中,初始化函数被调用时传入的参数包括字符高度、LCD页高度、LCD总高度和LCD总宽度:
步骤101、检查字符高度和LCD页高度,若字符高度为LCD页高度的整数倍,则执行步骤102;若字符高度不为LCD页高度的整数倍且字符高度小于LCD页高度,则执行步骤103;若字符高度不为LCD页高度的整数倍且字符高度大于LCD页高度,则执行步骤104;
步骤102、设置显示模式为第一模式,初始化结束;
步骤103、设置显示模式为第二模式,并开辟和初始化LCD大小的第一显存,初始化结束;
例如,LCD总宽度为128个点,LCD总高度为64个点,则开辟大小为128位*64位的第一显存;本实施例中,优选地,将第一显存中的每一位都初始化为0;
步骤104、设置显示模式为第三模式,为涉及多行字符的LCD页开辟和初始化对应的一页大小的第二显存,并分别记录所开辟的第二显存对应的起始行和结束行,初始化结束;
如图2所示,为涉及多行字符的LCD页开辟和初始化对应的一页大小的第二显存,并分别记录所开辟的第二显存对应的起始行和结束行,具体包括:
步骤1-1、设置当前初始化结束行等于字符高度;
步骤1-2、判断当前初始化结束行是否超过LCD总高度,是则初始化结束,否则执行步骤1-3;
步骤1-3、判断当前初始化结束行是否等于LCD页高度的整数倍,是则执行步骤1-5,否则执行步骤1-4;
步骤1-4、开辟和初始化一块一页大小的第二显存,并计算和记录本次所开辟的第二显存对应的起始行和结束行,执行步骤1-5;
步骤1-5、将当前初始化结束行递增字符高度,返回步骤1-2;
本实施例中,优选地,将所开辟的第二显存中的每一位都初始化为0;第二显存对应的起始行=|当前初始化结束行/LCD页高度|*LCD页高度,第二显存对应的结束行=第二显存对应的起始行+LCD页高度-1。
例如,字符高度为12,LCD页高度为8,LCD总高度为48,则共开辟两块一页大小的第二显存,其中一块第二显存对应的起始行和结束行分别为8和15,另一块第二显存对应的起始行和结束行分别为32和39。
如图3所示,当显示函数被调用时,显示函数根据显示函数被调用时传入的参数执行以下操作,其中显示函数被调用时传入的参数包括点阵数据、字符高度、显示起始行、显示结束行、显示起始列、显示结束列、LCD页高度和取模方式:
步骤201、检查显示模式,若为第一模式则执行步骤202,若为第二模式则执行步骤205;若为第三模式则执行步骤209;
步骤202、判断取模方式是否与LCD的显示刷新方向一致,是则执行步骤203,否则执行步骤204;
本实施例中,LCD的显示刷新方向为LCD的一个属性,包括纵向和横向。
步骤203、将点阵数据对应显示到LCD,结束;
具体地,依据显示起始行、显示起始列、显示结束行和显示结束列将传入参数中的点阵数据对应显示到LCD;
例如,传入参数中的显示起始行为0,显示结束行为15,显示起始列为0,显示结束列为7,当LCD页高度为8时,将传入参数中的点阵数据显示到LCD的第1至2页的第0至7列。
步骤204、将点阵数据按照LCD的显示刷新方向重新组合后对应显示到LCD,结束;
例如,取模方式为横向,LCD的显示刷新方向为纵向,则将点阵数据纵向排列后对应显示到LCD;
步骤205、判断取模方式是否与LCD的显示刷新方向一致,是则执行步骤206,否则执行步骤207;
步骤206、将点阵数据对应拷贝到第一显存,执行步骤208;
具体地,依据显示起始行、显示起始列、显示结束行和显示结束列,将点阵数据对应拷贝到第一显存;
例如,显示起始行为60,显示结束行为67,显示起始列为30,显示结束列为33,则将点阵数据拷贝到第一显存的第60至67行的第30至33列。
步骤207、将点阵数据按照LCD的显示刷新方向重新组合后对应拷贝到第一显存,执行步骤208;
具体地,显示点阵数据按照LCD的显示刷新方向重新组合后依据显示起始行、显示起始列、显示结束行和显示结束列拷贝对应到第一显存。
步骤208、将第一显存中与点阵数据所占的LCD页对应的数据的显示起始列至显示结束列部分对应显示到LCD,结束;
具体地,依据显示起始行、显示起始列、显示结束行和显示结束列,将第一显存中与点阵数据所占的LCD页对应的数据的显示起始列至显示结束列部分对应显示到LCD;
例如,显示起始行为60,显示结束行为67,显示起始列为30,显示结束列为33,当LCD页高度为8时,将第一显存的第56至第71行的第30至第33列的数据显示到LCD的第8至9页的第30至33列。
步骤209、根据LCD页高度开辟并初始化缓存区;
具体地,步骤209包括开辟并初始化高度等于LCD页高度的缓存区;
优选地,本实施例中,初始化高度等于LCD页高度,宽度等于显示结束列-显示起始列+1的缓存区;例如,LCD页高度为8,显示起始列为0,显示结束列为11,则开辟大小为8*12的缓存区。
步骤210、初始化当前行字符的起始行、当前起始行和当前结束行;
具体地,初始化当前行字符的起始行=显示起始行;例如,显示起始行为0,则初始化当前行字符的起始行为0;
具体地,初始化当前起始行=显示起始行,当前结束行=|(当前起始行+LCD页高度)/LCD页高度|*LCD页高度-1;例如,当前行字符的起始行为0,LCD页高度为8,则设置当前起始行=0,设置当前结束行=|(0+8)/8|*8-1=7。
步骤211、判断取模方式是否与LCD的显示刷新方向一致,是则执行步骤213,否则执行步骤212;
步骤212、按照LCD的显示刷新方向重新组合点阵数据,并将点阵数据更新为组合得到的数据,执行步骤213;
例如,传入参数中的点阵数据为
0000 0000 0000
0000 0000 0000
0001 0000 0000
0011 1111 1110
0000 0000 0000
0000 0000 0000
0000 0000 0000
0000 0000 0000
0001 0000 0000
0011 1111 1110
0000 0000 0000
0000 0000 0000
0000 0000 0000
0001 1111 1100
0010 0000 0010
0010 0000 0010
0001 1111 1100
0000 0000 0000
0000 0000 0000
0001 1111 1100
0010 0000 0010
0010 0000 0010
0001 1111 1100
0000 0000 0000
传入参数中的取模方式为横向,LCD的显示刷新方向为纵向,则将传入参数中的点阵数据按照LCD的显示刷新方向重新组合后得到的数据为:
000000  000000
000000  000000
000100  000100
001100  001100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000000  000000
000000  000000
000000  000000
001100  001100
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
001100  001100
000000  000000
步骤213、根据当前起始行和当前结束行判断是否存在相应第二显存,是则执行步骤216,否则执行步骤214;
例如,在初始化过程中,共开辟了两块第二显存,其中一块第二显存对应的起始行和结束行分别为8和15,另一块第二显存对应的起始行和结束行分别为32和39,当前起始行为8,当前结束行为11,则存在相应第二显存,相应第二显存为对应的起始行和结束行分别为8和15的第二显存。
步骤214、将点阵数据中的当前起始行至当前结束行部分拷贝到缓存区;
例如,当前起始行为0,当前结束行为7,点阵数据为
000000  000000
000000  000000
000100  000100
001100  001100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000100  000100
000000  000000
000000  000000
000000  000000
001100  001100
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
010010  010010
001100  001100
000000  000000
则将点阵数据的第0至7行,即
000000  000000
000000  000000
000100  000100
001100  001100
000100  000100
000100  000100
000100  000100
000100  000100
拷贝到缓存区。
步骤215、将缓存区中的数据对应显示到LCD,执行步骤218;
具体地,根据当前起始行、当前结束行和显示起始列、显示结束列将缓存区中的数据显示到LCD的相应位置;例如,当前起始行为0,当前结束行为7,传入参数中的显示起始列为0,显示结束列为11,当LCD页高度为8时,将缓存区中的数据显示到LCD的第1页的第0至11列。
步骤216、将点阵数据的当前起始行至当前结束行部分拷贝到相应的第二显存,执行步骤217;
具体地,若当前起始行=相应的第二显存的页开始坐标,则将点阵数据的当前起始行至当前结束行部分拷贝到相应的第二显存的0至(当前结束行-当前起始行)部分,若当前结束行=相应的第二显存的页结束坐标,则将点阵数据的当前起始行至当前结束行部分拷贝到相应的第二显存的(LCD页高度-(当前结束行-当前起始行)-1)至(LCD页高度-1)部分;
例如,当前起始行为8,当前结束行为11,则将点阵数据的第8至11行拷贝到相应的第二显存的第0至3行。
步骤217、将所述相应的第二显存中的数据对应显示到LCD;
具体地,根据所述相应的第二显存对应的起始行和结束行,以及传入参数中的显示起始列和显示结束列将所述相应的第二显存中的数据显示到LCD;
例如,所述相应的第二显存对应的起始行为8,结束行为15,传入参数中的显示起始列为0,显示结束列为11,当LCD页高度为8时,将所述相应的第二显存中的数据显示到LCD的第2页的第0至11列。
步骤218、更新当前起始行为当前结束行的下一行,将当前结束行递增LCD页高度;
例如,当前起始行为0,当前结束行为7,则更新当前起始行=8,更新当前结束行=15。
步骤219、判断当前起始行和当前结束行是否位于同一LCD页,是则执行步骤224,否则执行步骤220;
具体地,判断当前起始行和当前结束行是否位于同一LCD页,可以具体包括:判断|当前起始行/LCD页高度|与|当前结束行/LCD页高度|是否相等,是则当前起始行和当前结束行位于同一LCD页,否则当前起始行和当前结束行不位于同一LCD页;
例如,当前起始行为12,当前结束行为19,则当前起始行和当前结束行部位与同一LCD页。
步骤220、更新当前结束行为当前起始行所在LCD页的结束行;
具体地,获取当前起始行所在LCD页的结束行的方法可有多种:
例如,当前起始行所在LCD页具体为LCD的第n页,其中,n=|当前起始行/LCD页高度|,当前起始行所在LCD页的结束行=(n+1)*LCD页高度-1;
又例如,当前起始行所在LCD页的结束行=当前结束行-当前结束行%LCD页高度-1;
本实施例中对如何获得当前起始行所在LCD页的结束行不做具体限定。
例如,当前结束行为19,则更新当前结束行为15。
步骤221、判断当前行字符是否显示完成,是则执行步骤224,否则执行步骤222;
本实施例中,判断当前行字符是否显示完成可以具体包括:判断当前起始行是否小于当前行字符的起始行+字符高度,是则当前行字符未显示完成,否则当前行字符显示完成;
例如,当前起始行为12,当前行字符的起始行为0,字符高度为12,则当前行字符显示完成。
步骤222、判断当前结束行是否超出当前行字符的范围,是则执行步骤223,否则返回步骤213;
本实施例中,判断当前结束行是否超出当前行字符的范围,可以具体包括:判断当前结束行是否小于当前行字符的起始行+字符高度,是则当前结束行未超出当前行字符的范围,否则当前结束行超出当前行字符的范围;
例如,当前结束行为15,当前行字符的起始行为0,字符高度为12,则当前结束行超出当前行字符的范围。
步骤223、更新当前结束行为当前行字符的结束行,返回步骤213;
本实施例中,更新当前结束行为当前行字符的结束行,可以具体包括:更新当前结束行=当前行字符的起始行+字符高度-1;
例如,当前结束行为15,当前行字符的起始行为0,字符高度为12,则更新当前结束行为11。
步骤224、将当前行字符的起始行递增字符高度;
例如,当前行字符的起始行为0,字符高度为12,则将当前行字符递增为12。
步骤225、判断所有行字符是否均显示完成,是则结束,否则返回步骤213;
本实施例中,判断所有行字符是否均显示完成,可以具体包括:判断当前行字符的起始行是否小于显示结束行,是则所有行字符未显示完成,否则所有行字符显示完成;
例如,当前行字符的起始行为36,显示结束行为35,则所有行字符显示完成。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (14)

1.一种分页式LCD的显示方法,其特征在于,包括初始化流程和显示流程;
所述初始化流程包括:根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存;所述第一参数包括字符高度、LCD页高度和LCD总高度;
所述显示流程包括:根据第二参数和所述第一参数执行以下步骤,所述第二参数包括点阵数据、显示起始行、显示结束行、显示起始列和显示结束列:
步骤S1、开辟高度等于所述LCD页高度的缓存区,初始化当前行字符的起始行为所述显示起始行,初始化当前起始行为当前行字符的起始行,初始化当前结束行为当前起始行所在的LCD页的结束行;
步骤S2、判断是否存在与当前起始行和当前结束行所在的LCD页对应的第二显存,是则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述第二显存,显示所述第二显存中的数据到LCD,执行步骤S3;否则将所述点阵数据的当前起始行至当前结束行部分对应拷贝到所述缓存区,显示所述缓存区中的数据到LCD,执行步骤S3;
步骤S3、更新当前起始行为当前结束行的下一行,将当前结束行递增所述LCD页高度,判断当前起始行和当前结束行是否位于同一LCD页,是则执行步骤S4,否则将当前结束行更新为当前起始行所在的LCD页的结束行,执行步骤S4;
步骤S4、判断当前行字符是否显示完成,若显示完成则将当前行字符的起始行递增所述字符高度,执行步骤S5;若未显示完成则判断当前结束行是否超出了当前行字符的范围,若超出了则更新当前结束行为当前行字符的结束行,返回步骤S2,若未超出则直接返回步骤S2;
步骤S5、判断所有行字符是否均显示完成,是则结束,否则返回步骤S2。
2.如权利要求1所述的方法,其特征在于,所述初始化流程还包括:记录开辟的第二显存对应的起始行和结束行;
所述判断是否存在与当前起始行和当前结束行所在的LCD页对应的第二显存,具体包括:判断当前起始行和当前结束行是否同时落入任一第二显存对应的起始行和结束行的范围内,是则存在与当前起始行和当前结束行所在的LCD页对应的第二显存,否则不存在与当前起始行和当前结束行所在的LCD页对应的第二显存。
3.如权利要求1所述的方法,其特征在于,所述判断当前起始行和当前结束行是否位于同一LCD页,具体包括:判断当前起始行除以所述LCD页高度所得的商,和当前结束行除以所述LCD页高度所得的商是否相等,是则当前起始行和当前结束行位于同一LCD页,否则当前起始行和当前结束行不位于同一LCD页。
4.如权利要求1所述的方法,其特征在于,所述判断当前结束行是否超出了当前行字符的范围,具体包括:判断当前结束行是否小于当前行字符的起始行与所述字符高度的和,是则当前结束行未超出当前行字符的范围,否则当前结束行超出了当前行字符的范围。
5.如权利要求1所述的方法,其特征在于,所述判断当前行字符是否显示完成,具体包括:判断当前起始行是否小于当前行字符的起始行与所述字符高度的和,是则当前行字符未显示完成,否则当前行字符显示完成。
6.如权利要求1所述的方法,其特征在于,所述判断所有行字符是否均显示完成,具体包括:判断当前行字符的起始行是否小于所述显示结束行,是则所有行字符未显示完成,否则所有行字符均显示完成。
7.如权利要求1所述的方法,其特征在于,所述第二参数中还包括取模方式;
所述显示流程中,执行所述步骤S2之前还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则执行所述步骤S2;否则将所述点阵数据按照LCD的显示刷新方向重新组合,并将所述点阵数据更新为组合得到的数据后,执行所述步骤S2。
8.如权利要求1所述的方法,其特征在于,所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存,具体包括:
步骤a1、设置当前初始化结束行等于所述字符高度;
步骤a2、判断当前初始化结束行是否超过所述LCD总高度,是则结束,否则执行步骤a3;
步骤a3、判断当前初始化结束行是否为所述LCD页高度的整数倍,是则执行步骤a4,否则为当前初始化结束行所在的LCD页开辟第二显存,执行步骤a4;
步骤a4、将当前初始化结束行递增所述字符高度,返回步骤a2。
9.如权利要求8所述的方法,其特征在于,所述初始化流程中,执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存之前,还包括:检查所述字符高度和LCD页高度,若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度,则顺序执行所述根据第一参数确定涉及多行字符的LCD页,并为涉及多行字符的LCD页开辟第二显存。
10.如权利要求9所述的方法,其特征在于,当所述字符高度不为所述LCD页高度的整数倍,且所述字符高度大于所述LCD页高度时,还包括:设置显示模式为第三模式;
所述显示流程中,所述步骤S1之前还包括:
步骤S0、检查显示模式,若显示模式为第三模式,则顺序执行所述步骤S1。
11.如权利要求10所述的方法,其特征在于,所述初始化流程中还包括:若所述字符高度为所述LCD页高度的整数倍,则设置显示模式为第一模式;
所述步骤S0中还包括:若显示模式为第一模式,则显示所述点阵数据到LCD。
12.如权利要求11所述的方法,其特征在于,所述第二参数中还包括取模方式;
所述显示流程中,执行所述显示所述点阵数据到LCD之前,还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则继续执行所述显示所述点阵数据到LCD;否则将所述点阵数据按照所述LCD的显示刷新方向重新组合后显示到LCD。
13.如权利要求10所述的方法,其特征在于,所述第一参数还包括:LCD总宽度;
所述初始化流程中还包括:若所述字符高度不为所述LCD页高度的整数倍,且所述字符高度小于所述LCD页高度,则设置显示模式为第二模式,并根据所述LCD总高度和LCD总宽度开辟相应大小的第一显存,所述第一显存中的数据与LCD上的点一一对应;
所述步骤S0中还包括:若显示模式为第二模式,则拷贝所述点阵数据到所述第一显存,并将所述第一显存中与所述点阵数据所占的LCD页对应的数据的所述显示起始列至所述显示结束列部分显示到LCD。
14.如权利要求13所述的方法,其特征在于,所述第二参数中还包括取模方式;
所述显示流程中,执行所述拷贝所述点阵数据到所述第一显存之前,还包括:判断所述取模方式是否与LCD的显示刷新方向一致,是则继续执行所述拷贝所述点阵数据到所述第一显存;否则将所述点阵数据按照所述LCD的显示刷新方向重新组合后拷贝到所述第一显存,并将所述第一显存中与重新组合后的点阵数据所占的LCD页对应的数据的所述显示起始列至所述显示结束列部分显示到LCD。
CN201510183897.0A 2015-04-17 2015-04-17 一种分页式lcd的显示方法 Active CN104795033B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510183897.0A CN104795033B (zh) 2015-04-17 2015-04-17 一种分页式lcd的显示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510183897.0A CN104795033B (zh) 2015-04-17 2015-04-17 一种分页式lcd的显示方法

Publications (2)

Publication Number Publication Date
CN104795033A true CN104795033A (zh) 2015-07-22
CN104795033B CN104795033B (zh) 2017-03-22

Family

ID=53559795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510183897.0A Active CN104795033B (zh) 2015-04-17 2015-04-17 一种分页式lcd的显示方法

Country Status (1)

Country Link
CN (1) CN104795033B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106157866A (zh) * 2016-06-08 2016-11-23 深圳瀚星翔科技有限公司 电子雾化装置中点阵型显示器的显示驱动方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445194A (en) * 1980-11-20 1984-04-24 International Business Machines Corporation Multidirectional cursor motion
CN101662616A (zh) * 2009-09-17 2010-03-03 北京中科智网传媒技术有限公司 一种文字滚动显示方法
CN101727882A (zh) * 2009-12-07 2010-06-09 青岛海信宽带多媒体技术有限公司 一种滚动显示字符串的方法
CN103886845A (zh) * 2014-02-28 2014-06-25 浪潮软件集团有限公司 一种通过缓存管理实现对单色液晶显示屏操作的方法
CN103984563A (zh) * 2014-06-09 2014-08-13 中科创达软件股份有限公司 一种应用图标显示方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445194A (en) * 1980-11-20 1984-04-24 International Business Machines Corporation Multidirectional cursor motion
CN101662616A (zh) * 2009-09-17 2010-03-03 北京中科智网传媒技术有限公司 一种文字滚动显示方法
CN101727882A (zh) * 2009-12-07 2010-06-09 青岛海信宽带多媒体技术有限公司 一种滚动显示字符串的方法
CN103886845A (zh) * 2014-02-28 2014-06-25 浪潮软件集团有限公司 一种通过缓存管理实现对单色液晶显示屏操作的方法
CN103984563A (zh) * 2014-06-09 2014-08-13 中科创达软件股份有限公司 一种应用图标显示方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106157866A (zh) * 2016-06-08 2016-11-23 深圳瀚星翔科技有限公司 电子雾化装置中点阵型显示器的显示驱动方法及装置
CN106157866B (zh) * 2016-06-08 2019-03-08 深圳瀚星翔科技有限公司 电子雾化装置中点阵型显示器的显示驱动方法及装置

Also Published As

Publication number Publication date
CN104795033B (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
EP2893529B1 (en) Method and device for selective display refresh
US7889202B2 (en) Transparent multi-buffering in multi-GPU graphics subsystem
WO2019154197A1 (zh) 电子书手写笔记的显示方法、计算设备及计算机存储介质
CN103177709A (zh) 字符显示方法和装置
CN104765595A (zh) 一种显示图形用户界面的方法及装置
CN104731821A (zh) 用于异步请求模式的网页遮罩方法
CN105786308A (zh) 字符串的显示方法和装置
CN105205019B (zh) 基于高通平台手机的nv参数读写系统及方法
CN103400565B (zh) 一种基于gdi的界面分块刷新方法
CN102446082A (zh) 窗口刷新方法与装置
CN106157866B (zh) 电子雾化装置中点阵型显示器的显示驱动方法及装置
US20130271493A1 (en) Intelligent axis labels
CN105242895A (zh) 一种点阵文字显示方法及装置
CN103886845A (zh) 一种通过缓存管理实现对单色液晶显示屏操作的方法
CN103793233A (zh) 一种基于uboot实现用户界面图形显示的方法
CN104795033A (zh) 一种分页式lcd的显示方法
CN104503954A (zh) 一种文字组合显示方法及显示系统
US8982134B2 (en) Area-based dependency chain analysis of shaders and command stream
CN103543974A (zh) 一种提高字体清晰度的方法及系统
CN106933931A (zh) 一种网页数据的显示方法及装置
EP2530640B1 (en) Image copying method and device
CN103309878A (zh) 用于网页显示中的排版的方法和装置
CN100349203C (zh) 支持比例字形的同屏显示装置及其方法
US7598954B2 (en) Adapting and rendering graphic effects
CN101814286B (zh) 阿拉伯字符显示的修复方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant