当前位置:首页 > 显示光电 > 显示光电
[导读] 液晶显示器(liquid crystal display,lcd )具有功耗低、体积小、质量轻、超薄和可编程驱动等其他显示无法比拟的优点,不仅可以显示数字、字符,还可以显示汉字及各种图形、图片,可实现屏幕上下左右滚动、动画、反

      液晶显示器(liquid crystal display,lcd )具有功耗低、体积小、质量轻、超薄和可编程驱动等其他显示无法比拟的优点,不仅可以显示数字、字符,还可以显示汉字及各种图形、图片,可实现屏幕上下左右滚动、动画、反转显示、显示闪烁多种功能,日益成为智能仪器仪表和测试设备的首选显示器件。目前常用的lcm12864系列的液晶模块,一般都没有图形驱动模块,而图形作为一种更为生动的表现方式,是用户需求的重点和设计的亮点。如何在这种点阵式液晶显示器中显示任意静态图片以及动画, 成为困扰设计者大量应用lcd的问题。我们现在可以通过互联网、图形处理软件及扫描仪等很方便地获得各种各样的图像、图片,这样可以通过比较简单的方法把任意图片移植到液晶显示器lcd上。文章通过分析bmp图像的存储格式和128 64点阵lcd上图像显示的原理,设计了一个lcd图片数据转换及模拟显示的软件,并介绍了实现lcd意图片的显示方法。


bmp图片格式及lcd显示原理

   bmp位图是微软公司(microsoft)和国际商用机器公司(ibm)共同倡导的一种图片格式。它按点阵排列顺序,将每个像素的色彩值以规定的方式把整个图片记录下来。根据色彩位深度不同,windows bmp文件像素描述部分差别较大,如256色每个像素需要8位(即1个字节)来描述,而16色的图片每个像素描述者只需4 位(即半个字节)。对于绝大部分电子设计者来说,最常用的是黑白二色的点阵式液晶显示器。因此,这里仅分析对microsoft windows类型1位(bit)描述的黑白二色bmp图片文件的处理。

   一幅128 64点阵的黑白bmp图片文件的总长度为1086字节,前62个字节是文件头,用于表示文件类别、长度、图像的行数以及列数等信息,地址为 00h~3dh;后1024字节则对应画面的点阵数据,地址为3eh~43dh。bmp文件的中字节排列与点阵数据对应关系如图1 所示,bmp点阵数据块第0个字节对应图片中左下角第63行的第0到7列,第15个字节对应图片中第63行的第112到127列,也就是按照从左至右,从下到上的顺序,bmp数据块最后一个字节对应第0行的112到127列。因此,要想实现将bmp图片文件转化为供模块直接显示的数据,不但涉及到各个数据排列的先后顺序,还涉及到字节中各个位的重组。

   对于rt12864hz汉字图形点阵液晶显示模块,它可显示汉字及图形,内置8192个中文汉字(16 16点阵)、128个字(8 16点阵)及绘图显示ram(gdram)。绘图显示ram提供128 8个字节的记忆空间,在更改绘图ram时,先连续写入水平与垂直的坐标值,再写入两个字节的数据到绘图ram,而地址计数器(ac)会自动加一;在写入绘图ram的期间,绘图显示必须关闭,整个写入绘图ram的步骤如下:

(1) 关闭绘图显示功能。
(2) 先将水平的位元组坐标(x)写入绘图ram地址;再将垂直的坐标(y)写入绘图ram地址;将d15~d8写入到ram中;将d7~d0写入到ram中。
(3) 打开绘图显示功能。

   绘图显示的缓冲区与图形点阵对应分布参考图2所示(水平方向x以字节单位,垂直方向y以位为单位)。

   windows中的画图软件为图片编辑提供了放大、网格、旋转、定位、定幅等强大、实用而灵活的功能,同时有输入各种字体及大小的汉字的功能,是编辑画面的理想工具。打开菜单[图像]下的[属性]项,设置任意图片宽度为128,高度为64,单位为像素,颜色为黑白。保存的bmp文件经过下面 delphi编写的函数s_copyfile()便可转换为lcd模块显示的点阵数据,数据以单片机数据表定义的格式放在memo1中,可以直接拷贝至 lcm控制汇编程序中当数据表用,如图3所示。另外使用了heckbox1控件来使图片反白。

函数s_copyfile()的源程序如下[4]:
function s_copyfile(filesou:string;filedes:string):boolean;
var
fromf, tof: file;
s,t:string;
i,j,numread, numwritten: integer;
tem: array[1..62] of char;
buf: array[1..16] of char;
begin
{$i-}
s_copyfile:=false;
if not fileexists(filesou) then
begin
showmessage(没有发现源文件+#13+filesou);
exit;
end;
assignfile(fromf,filesou);
assignfile(tof,filedes);
reset(fromf,1);{ record size = 1 }
main.memo1.clear;
main.memo3.clear;
blockread(fromf, tem, sizeof(tem), j);
j:=1;
repeat
s:= db ;
t:=;
blockread(fromf, buf, sizeof(buf), numread);
for i:=1 to numread do
begin
if main.checkbox1.checked then buf[i]:=chr
(255-ord(buf[i]));
appendstr(t,inttohex(ord(buf[i]),2));
if ord(buf[i])>159 then
appendstr(s,0+inttohex(ord(buf[i]),2)
+h,)
else
appendstr(s,inttohex(ord(buf[i]),2)
+h,);
end;
delete(s,length(s),1);
main.memo1.lines.append(s);
main.memo3.lines.append(t);
inc(j);
until (numread = 0);
main.memo1.lines.delete(main.memo1.lines.
capacity-1);
closefile(fromf);
closefile(tof);
s_copyfile:=true;
end;
lcd模拟显示



  对于如图4所示的一张128 64的bmp图片,其模拟显示如图5所示,反白后显示如图6所示。

  有的lcm数据是奇偶行交错的,也可以通过使用隔行来改变。模拟显示的源程序主要是采用在画布上画矩形框的方法,语句如下:


image1.canvas.fillrect(rect(16*s_col+4*i,
4*s_row,16*s_col+4*i+3,4*s_row+3));
  其中s_col为行坐标(1~64),s_row为列坐标(0~31),每个字节分高4位与低4位分别来画矩形框。当高4位或低4位值为1~f时,对应的i分别如表1所示。

lcd显示控制程序设计

  lcm内部带有8k字节的ram缓存区,往ram缓存区写入数据,则在lcd 显示屏上产生显示。通过改变显示缓存区首地址可实现屏幕滚动、屏幕换页等功能。

graphic_disp:

lcall clear_graphic ;清除图形显示ram单元(gdram)
mov g_row, #80h ;设定图形显示起始行单元
mov g_column, #80h ;设定图形显示起始列单元

gra_disp:

mov a, #34h ;选择扩充指令集,关闭图形显示
lcall input
mov a, g_row ;输入图形显示起始行地址
lcall input
mov a, g_column ;输入图形显示起始列地址
lcall input
mov a, #30h ;重新选择基本指令集
lcall input
clr a
movc a, @a+dptr ;输入显示数据(横向高8位数据)
lcall displ
inc dptr
clr a
movc a, @a+dptr ;输入显示数据(横向低8位数据)
lcall displ
inc dptr
inc g_column ;列地址加一
mov a, g_column
cjne a, #90h, gra_disp ;最后一列地址为90h(共计16列)
mov g_column, #80h
inc g_row ;行地址加一
mov a, g_row
cjne a, #0a0h, gra_disp ;最后行地址为0a0h
mov g_column, #80h
mov g_row, #80h
mov a, #36h ;打开图形显示
lcall input
ret

   在上面程序中,是与图2所示的gram映射的点阵坐标一样,分成0~15列,每列写2个字节数据,共有32行。clear_graphic为清除图形显示cgram的子程序,input为写指令子程序,displ为写数据子程序,这里不再详细列出。另外硬件设计时,注意空脚(nc)应悬空,不能接地。调试时,适当调整液晶显示偏压信号v0,使之在一合适电压,这一电压若设置不当,lcm 无法正常工作。


结束语

  按照上面分析的方法,可以方便的在液晶上显示任意图片。点阵的lcd模块还可实现屏幕合成、滚动、动画、闪烁等功能,正越来越受到广泛的应用和关注。需要指出的是,由点阵液晶显示器件与相应的控制器、驱动器装配成的显示模块的种类较多,其功能、指令、接口定义及引脚并无统一标准,具体使用时应加以选择。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭