一種分頁(yè)式lcd的顯示方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及液晶顯示領(lǐng)域,尤其涉及一種分頁(yè)式IXD的顯示方法。
【背景技術(shù)】
[0002]分頁(yè)式IXD縱向每8個(gè)點(diǎn)陣為一個(gè)IXD頁(yè),例如,一個(gè)分頁(yè)式IXD的大小為128*64點(diǎn),則該分頁(yè)式LCD每個(gè)LCD頁(yè)的大小為128*8點(diǎn)?,F(xiàn)有技術(shù)中分頁(yè)式LCD通常只能顯示縱向所占點(diǎn)數(shù)為8的整數(shù)倍的字體,可以顯示的字體的大小和樣式較為單一。目前解決上述問(wèn)題的方法是,在內(nèi)存中定義一塊顯存,顯存的大小等于甚至大于分頁(yè)式LCD的大小,當(dāng)需要顯示特殊字體(這里說(shuō)的特殊字體指的是縱向所占點(diǎn)數(shù)不為8的整數(shù)倍的字體)時(shí),相應(yīng)改變顯存中的數(shù)據(jù),然后再把顯存中的數(shù)據(jù)輸出到分頁(yè)式LCD上完成顯示,但這個(gè)方法至少存在占用顯存空間較大的缺陷。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是克服現(xiàn)有技術(shù)的缺陷,提供一種分頁(yè)式LCD的顯示方法。
[0004]本發(fā)明方法是通過(guò)下述技術(shù)方案實(shí)現(xiàn)的:
[0005]一種分頁(yè)式IXD的顯示方法,包括初始化流程和顯示流程;
[0006]所述初始化流程包括:根據(jù)第一參數(shù)確定涉及多行字符的LCD頁(yè),并為涉及多行字符的IXD頁(yè)開(kāi)辟第二顯存;所述第一參數(shù)包括字符高度、IXD頁(yè)高度和IXD總高度;
[0007]所述顯示流程包括:根據(jù)第二參數(shù)和所述第一參數(shù)執(zhí)行以下步驟,所述第二參數(shù)包括點(diǎn)陣數(shù)據(jù)、顯示起始行、顯示結(jié)束行、顯示起始列和顯示結(jié)束列:
[0008]步驟S1、開(kāi)辟高度等于所述LCD頁(yè)高度的緩存區(qū),初始化當(dāng)前行字符的起始行為所述顯示起始行,初始化當(dāng)前起始行為當(dāng)前行字符的起始行,初始化當(dāng)前結(jié)束行為當(dāng)前起始行所在的LCD頁(yè)的結(jié)束行;
[0009]步驟S2、判斷是否存在與當(dāng)前起始行和當(dāng)前結(jié)束行所在的LCD頁(yè)對(duì)應(yīng)的第二顯存,是則將所述點(diǎn)陣數(shù)據(jù)的當(dāng)前起始行至當(dāng)前結(jié)束行部分對(duì)應(yīng)拷貝到所述第二顯存,顯示所述第二顯存中的數(shù)據(jù)到LCD,執(zhí)行步驟S3 ;否則將所述點(diǎn)陣數(shù)據(jù)的當(dāng)前起始行至當(dāng)前結(jié)束行部分對(duì)應(yīng)拷貝到所述緩存區(qū),顯示所述緩存區(qū)中的數(shù)據(jù)到LCD,執(zhí)行步驟S3 ;
[0010]步驟S3、更新當(dāng)前起始行為當(dāng)前結(jié)束行的下一行,將當(dāng)前結(jié)束行遞增所述LCD頁(yè)高度,判斷當(dāng)前起始行和當(dāng)前結(jié)束行是否位于同一 LCD頁(yè),是則執(zhí)行步驟S4,否則將當(dāng)前結(jié)束行更新為當(dāng)前起始行所在的LCD頁(yè)的結(jié)束行,執(zhí)行步驟S4 ;
[0011]步驟S4、判斷當(dāng)前行字符是否顯示完成,若顯示完成則將當(dāng)前行字符的起始行遞增所述字符高度,執(zhí)行步驟S5 ;若未顯示完成則判斷當(dāng)前結(jié)束行是否超出了當(dāng)前行字符的范圍,若超出了則更新當(dāng)前結(jié)束行為當(dāng)前行字符的結(jié)束行,返回步驟S2,若未超出則直接返回步驟S2 ;
[0012]步驟S5、判斷所有行字符是否均顯示完成,是則結(jié)束,否則返回步驟S2。
[0013]進(jìn)一步地,所述初始化流程還包括:記錄開(kāi)辟的第二顯存對(duì)應(yīng)的起始行和結(jié)束行;所述判斷是否存在與當(dāng)前起始行和當(dāng)前結(jié)束行所在的LCD頁(yè)對(duì)應(yīng)的第二顯存,具體包括:判斷當(dāng)前起始行和當(dāng)前結(jié)束行是否同時(shí)落入任一第二顯存對(duì)應(yīng)的起始行和結(jié)束行的范圍內(nèi),是則存在與當(dāng)前起始行和當(dāng)前結(jié)束行所在的LCD頁(yè)對(duì)應(yīng)的第二顯存,否則不存在與當(dāng)前起始行和當(dāng)前結(jié)束行所在的LCD頁(yè)對(duì)應(yīng)的第二顯存;
[0014]所述判斷當(dāng)前起始行和當(dāng)前結(jié)束行是否位于同一 LCD頁(yè),可以具體包括:判斷當(dāng)前起始行除以所述LCD頁(yè)高度所得的商,和當(dāng)前結(jié)束行除以所述LCD頁(yè)高度所得的商是否相等,是則當(dāng)前起始行和當(dāng)前結(jié)束行位于同一 LCD頁(yè),否則當(dāng)前起始行和當(dāng)前結(jié)束行不位于同一 LCD頁(yè);
[0015]所述判斷當(dāng)前結(jié)束行是否超出了當(dāng)前行字符的范圍,可以具體包括:判斷當(dāng)前結(jié)束行是否小于當(dāng)前行字符的起始行與所述字符高度的和,是則當(dāng)前結(jié)束行未超出當(dāng)前行字符的范圍,否則當(dāng)前結(jié)束行超出了當(dāng)前行字符的范圍。
[0016]所述判斷當(dāng)前行字符是否顯示完成,可以具體包括:判斷當(dāng)前起始行是否小于當(dāng)前行字符的起始行與所述字符高度的和,是則當(dāng)前行字符未顯示完成,否則當(dāng)前行字符顯不完成;
[0017]所述判斷所有行字符是否均顯示完成,可以具體包括:判斷當(dāng)前行字符的起始行是否小于所述顯示結(jié)束行,是則所有行字符未顯示完成,否則所有行字符均顯示完成;
[0018]所述第二參數(shù)中還包括取模方式;所述顯示流程中,執(zhí)行所述步驟S2之前還包括:判斷所述取模方式是否與LCD的顯示刷新方向一致,是則執(zhí)行所述步驟S2 ;否則將所述點(diǎn)陣數(shù)據(jù)按照LCD的顯示刷新方向重新組合,并將所述點(diǎn)陣數(shù)據(jù)更新為組合得到的數(shù)據(jù)后,執(zhí)行所述步驟S2。
[0019]進(jìn)一步地,所述根據(jù)第一參數(shù)確定涉及多行字符的LCD頁(yè),并為涉及多行字符的IXD頁(yè)開(kāi)辟第二顯存,可以具體包括:
[0020]步驟al、設(shè)置當(dāng)前初始化結(jié)束行等于所述字符高度;
[0021]步驟a2、判斷當(dāng)前初始化結(jié)束行是否超過(guò)所述LCD總高度,是則結(jié)束,否則執(zhí)行步驟a3 ;
[0022]步驟a3、判斷當(dāng)前初始化結(jié)束行是否為所述LCD頁(yè)高度的整數(shù)倍,是則執(zhí)行步驟a4,否則為當(dāng)前初始化結(jié)束行所在的LCD頁(yè)開(kāi)辟第二顯存,執(zhí)行步驟a4 ;
[0023]步驟a4、將當(dāng)前初始化結(jié)束行遞增所述字符高度,返回步驟a2 ;
[0024]更進(jìn)一步地,所述初始化流程中,執(zhí)行所述根據(jù)第一參數(shù)確定涉及多行字符的LCD頁(yè),并為涉及多行字符的LCD頁(yè)開(kāi)辟第二顯存之前,還可以包括:檢查所述字符高度和LCD頁(yè)高度,若所述字符高度不為所述LCD頁(yè)高度的整數(shù)倍,且所述字符高度大于所述LCD頁(yè)高度,則順序執(zhí)行所述根據(jù)第一參數(shù)確定涉及多行字符的LCD頁(yè),并為涉及多行字符的LCD頁(yè)開(kāi)辟第二顯存;
[0025]當(dāng)所述字符高度不為所述LCD頁(yè)高度的整數(shù)倍,且所述字符高度大于所述LCD頁(yè)高度時(shí),還可以包括:設(shè)置顯示模式為第三模式;所述顯示流程中,所述步驟Si之前還包括:步驟S0、檢查顯示模式,若顯示模式為第三模式,則順序執(zhí)行所述步驟SI ;
[0026]所述初始化流程中還可以包括:若所述字符高度為所述LCD頁(yè)高度的整數(shù)倍,則設(shè)置顯示模式為第一模式;所述步驟SO中還包括:若顯示模式為第一模式,則顯示所述點(diǎn)陣數(shù)據(jù)到LCD ;
[0027]一方面,所述第二參數(shù)中還包括取模方式;所述顯示流程中,執(zhí)行所述顯示所述點(diǎn)陣數(shù)據(jù)到LCD之前,還包括:判斷所述取模方式是否與LCD的顯示刷新方向一致,是則繼續(xù)執(zhí)行所述顯示所述點(diǎn)陣數(shù)據(jù)到LCD ;否則將所述點(diǎn)陣數(shù)據(jù)按照所述LCD的顯示刷新方向重新組合后顯示到IXD ;
[0028]另一方面,所述第一參數(shù)還可以包括:IXD總寬度;所述初始化流程中還包括:若所述字符高度不為所述LCD頁(yè)高度的整數(shù)倍,且所述字符高度小于所述LCD頁(yè)高度,則設(shè)置顯示模式為第二模式,并根據(jù)所述LCD總高度和LCD總寬度開(kāi)辟相應(yīng)大小的第一顯存,所述第一顯存中的數(shù)據(jù)與IXD上的點(diǎn)一一對(duì)應(yīng);所述步驟SO中還包括:若顯示模式為第二模式,則拷貝所述點(diǎn)陣數(shù)據(jù)到所述第一顯存,并將所述第一顯存中與所述點(diǎn)陣數(shù)據(jù)所占的LCD頁(yè)對(duì)應(yīng)的數(shù)據(jù)的所述顯示起始列至所述顯示結(jié)束列部分顯示到LCD ;
[0029]所述第二參數(shù)中還可以包括取模方式;所述顯示流程中,執(zhí)行所述拷貝所述點(diǎn)陣數(shù)據(jù)到所述第一顯存之前,還包括:判斷所述取模方式是否與LCD的顯示刷新方向一致,是則繼續(xù)執(zhí)行所述拷貝所述點(diǎn)陣數(shù)據(jù)到所述第一顯存;否則將所述點(diǎn)陣數(shù)據(jù)按照所述LCD的顯示刷新方向重新組合后拷貝到所述第一顯存,并將所述第一顯存中與重新組合后的點(diǎn)陣數(shù)據(jù)所占的LCD頁(yè)對(duì)應(yīng)的數(shù)據(jù)的所述顯示起始列至所述顯示結(jié)束列部分顯示到LCD。
[0030]本發(fā)明方法的有益效果在于占用較小的顯存空間即可實(shí)現(xiàn)在IXD的顯示范圍內(nèi)顯示任意大小的字體。
【附圖說(shuō)明】
[0031]為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0032]圖1為本發(fā)明實(shí)施例提供的一種分頁(yè)式LCD的顯示方法中的初始化流程圖;
[0033]圖2為初始化流程中開(kāi)辟第二顯存的具體流程圖;
[0034]圖3為本發(fā)明實(shí)施例提供的一種分頁(yè)式LCD的顯示方法中的顯示流程圖。
【具體實(shí)施方式】
[0035]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0036]實(shí)施例一
[0037]本發(fā)明實(shí)施例一提供一種分頁(yè)式LCD的顯示方法。所述方法包括初始化流程和顯示流程兩部分,其中:
[0038]初始化流程包括:根據(jù)第一參數(shù)確定涉及多行字符的LCD頁(yè),并為涉及多行字符的IXD頁(yè)開(kāi)辟第二顯存;所述第一參數(shù)包括字符高度、IXD頁(yè)高度和IXD總高度;
[0039]顯示流程包括:根據(jù)第二參數(shù)和所述第一參數(shù)執(zhí)行以下步驟,所述第二參數(shù)包括點(diǎn)陣數(shù)據(jù)、顯示起始行、顯示結(jié)束行、顯示起始列和顯示結(jié)束列:
[0040]步驟S1、開(kāi)辟高度等于所述LCD頁(yè)高度的緩存區(qū),初始化當(dāng)前行字符的起始行為所述顯示起始行,初始化當(dāng)前起始行為當(dāng)前行字符的起始行,初始化當(dāng)前結(jié)束行為當(dāng)前起始行所在的頁(yè)的結(jié)束行;<