|
(以DMD32240B 为例)
1 需求
在工业测控设备上,往往需要动态滚动显示测控量的状态,以实现“示波器”的效果。
2 实现方法
2.1 窗口平移补点
窗口平移补点方法的原理是把整个显示曲线的“视窗”向右平移,然后在“视窗”的最左边置点显示
当前值。
使用0x63 和0x51 指令。
示例代码参考如下(假设视窗左上角位置为(10,10),右下角为(100,100)):
for(;;;)
{adtran(); /*A/D 采集*/
*cmd={0xaa,0x80,0x09,0xaa,0x63,0x00,0x0a,0x0a,0x00,0x64,0x64,0x01}; /*窗口平移*/
txlcd(*cmd);
txlcd(0x05);
txlcd(0xaa);
txlcd(0x51); /*置点*/
txlcd(0x00);
txlcd(0x0a);
txlcd(value_ad);/*显示的参数*/
delay(); /*采样间隔*/
}
这种方法算法非常简单直观,但执行速度慢,往往用在比较小尺寸的单色显示终端上。
2.2 动态曲线法
动态曲线方法的原理是让显示点移动起来,类似模拟示波器的点扫描,但是在即将显示的坐标上肯定
会有原来的显示点,为了让旧的显示点去掉,在显示新的点前就把显示窗口当前显示位置先垂直清一条线,
再显示当前点。
使用0x74 指令。
示例代码参考如下(假设视窗左上角位置为(10,10),右下角为(100,100)):
x=10;
for(;;;)
{adtran(); /*A/D 采集*/
txlcd(0xaa); /*动态曲线显示指令*/
txlcd(0x74);
txlcd(x); /*当前显示位置x 坐标*/
txlcd(0x0a); /*垂直线的起始位置*/
txlcd(0x64); /*垂直线的终点位置*/
txlcd(value_ad);/*显示的参数*/
txlcd(0xff); /*背景是白色*/
txlcd(0x03); /*显示曲线颜色是蓝色*/
delay(); /*采样间隔*/
x++;
if(x>100)
{x=10;}
}
这种方法算法可以实现和模拟示波器类似的效果,由于终端对0x74 指令优化,执行速度也非常快,往
往用在大尺寸的彩色显示终端上。
2.3 关于多条曲线的实现
在彩色显示终端上,往往需要同时显示不同颜色的多条曲线,不管哪种方法,每增加一条曲线,只需 要增加一条颜色设置(0x40 指令)和置点(0x51)指令即可。 北京迪文:杨云超 电话:010-62102630-709 邮件:yangyunchao1980@sina.com 技术交流:QQ群:61319639 QQ:563328262
|