数据曲线的生成与显示方法及系统与流程

文档序号:17089246发布日期:2019-03-13 23:14阅读:500来源:国知局
数据曲线的生成与显示方法及系统与流程

本发明涉及曲线的生成方法,特别提供了一种高效的数据曲线的生成与显示方法,可广泛应用到单片机图形可视化、显示驱动程序中,可大大提高系统的显示效率,降低系统功耗。



背景技术:

随着科技的进步和发展,对许多产品的可视化提出了更高的需求,在以往低端单片机系统中,由于运行速度和资源的限制,无法将传感器采集的数据经过整理,运算,波形化后显示出来,就是显示出来效果也不理想。现有技术中数据波形化并显示的实现方法通常如下:首先,有效数据/数组顺序经过位置化后生成坐标数组,之后,将各个点的坐标引用画直线函数链接,最后,整理出图形数据,送到显示器显示。该方法中,由于数据的坐标数组化,调用直线函数,最终的曲线生成需要执行大量代码,这对于低速低功耗的设备来讲是沉重负担,将导致整个系统反应迟钝,最终影响用户体验,甚至影响整个设计方案。这也正是低速低端单片机(如51系列的单机系统)中很少采用曲线显示方式来反应数据变化趋势的原因。

因此,提出一种数据曲线的生成与显示方法及系统,以提高连续量化数据的波形的生成效率,成为人们亟待解决的问题。



技术实现要素:

鉴于此,本发明的目的在于提供一种数据曲线的生成与显示方法及系统,以至少解决现有的数据曲线的生成与显示方法运算量大、不适合低速低端单片机的问题。

本发明一方面提供了一种数据曲线的生成与显示方法,包括如下步骤:

s1:实时接收原始数据,其中,所述原始数据表示与待显示数据对应的偏移像素数量;

s2:依次计算与s1中的原始数据对应的32位偏移后数据并存储,其中,与原始数据对应的32位偏移后数据通过将参照数据以该原始数据值作为移位位数进行移位后得到,所述参照数据为32位二进制数,且只有一位为1,其余为0;

s3:依次生成曲线图形中的每一列并实时显示,其中,曲线图形中的第i列与第i个原始数据、第i个偏移后数据一一对应,曲线图形中第i列的生成方法如下:

s31:判断是否存在第i+1个偏移后数据,若存在,执行s32,若不存在,执行s35;

s32:判断第i个偏移后数据与第i+1个偏移后数据的大小关系,若第i个偏移后数据大于第i+1个偏移后数据,执行s33,若第i个偏移后数据小于第i+1个偏移后数据,则执行s34,若第i个偏移后数据等于第i+1个偏移后数据,则执行s35;

s33:将第i个偏移后数据减去第i+1个偏移后数据得到的32位二进制数左移一位后顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮;

s34:将第i+1个偏移后数据减去第i个偏移后数据得到的32位二进制数顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮;

s35:将第i个偏移后数据中的各位顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮。

优选,所述原始数据为-16~+15,所述参照数据为二进制数00000000000000010000000000000000。

进一步优选,s1前还包括将外界待显示数据转换为原始数据的步骤,该步骤如下:

原始数据值=外界待显示数据值/x,其中,x表示显示屏中纵向相邻两像素对应的间隔量值。

进一步优选,所述数据曲线的生成与显示方法还包括设置x值的步骤,其中,x=m/16,其中,m表示预设的可显示的最大数的绝对值。

本发明还提供了一种数据曲线的生成与显示系统,包括:

原始数据接收单元,用于实时接收原始数据,其中,所述原始数据表示与待显示数据对应的偏移像素数量;

运算单元,用于计算与接收到的原始数据对应的32位偏移后数据及与偏移后数据对应的映射数据,其中,与原始数据对应的32位偏移后数据通过将参照数据以该原始数据值作为移位位数进行移位后得到,所述参照数据为32位二进制数,且只有一位为1,其余为0,第i个映射数据计算方法如下,其中,第i个映射数据与第i个原始数据、第i个偏移后数据一一对应:

s31:判断是否存在第i+1个偏移后数据,若存在,执行s32,若不存在,执行s35;

s32:判断第i个偏移后数据与第i+1个偏移后数据的大小关系,若第i个偏移后数据大于第i+1个偏移后数据,执行s33,若第i个偏移后数据小于第i+1个偏移后数据,则执行s34,若第i个偏移后数据等于第i+1个偏移后数据,则执行s35;

s33:将第i个偏移后数据减去第i+1个偏移后数据得到的32位二进制数左移一位后作为该列映射数据;

s34:将第i+1个偏移后数据减去第i个偏移后数据得到的32位二进制数作为该列映射数据;

s35:将第i个偏移后数据作为该列映射数据;

存储器,用于存储原始数据、偏移后数据和映射数据;

显示屏,纵向为32个像素点,用于顺次显示曲线图形中的每一列,其中,曲线图形的每一列均和与该列对应的映射数据的每一位对应,即:映射数据中值为1的位对应像素为亮。

优选,所述原始数据为-16~+15,所述参照数据为二进制数00000000000000010000000000000000。

进一步优选,所述数据曲线的生成与显示系统还包括处理器,用于将外界待显示数据转换为原始数据,其中,转换方法如下:

原始数据值=外界待显示数据值/x,其中,x表示显示屏中纵向相邻两像素对应的间隔量值。

进一步优选,所述处理器还用于计算x的值,其中,x=m/16,m表示预设的可显示的最大数的绝对值。

本发明提供的数据曲线的生成与显示方法运算量小、效率高、稳定性高,适用于低速低端单片机通过曲线图形实时显示数据的变化趋势。

附图说明

下面结合附图及实施方式对本发明作进一步详细的说明:

图1为本发明提供的数据曲线的生成与显示方法的流程图。

具体实施方式

下面将结合具体的实施方案对本发明进行进一步的解释,但并不局限本发明。

如图1所示,本发明提供了一种数据曲线的生成与显示方法,包括如下步骤:

s1:实时接收原始数据,其中,所述原始数据表示与待显示数据对应的偏移像素数量;

s2:依次计算与s1中的原始数据对应的32位偏移后数据并存储,其中,与原始数据对应的32位偏移后数据通过将参照数据以该原始数据值作为移位位数进行移位后得到,所述参照数据为32位二进制数,且只有一位为1,其余为0;

s3:依次生成曲线图形中的每一列并实时显示,其中,曲线图形中的第i列与第i个原始数据、第i个偏移后数据一一对应,曲线图形中第i列的生成方法如下:

s31:判断是否存在第i+1个偏移后数据,若存在,执行s32,若不存在,执行s35;

s32:判断第i个偏移后数据与第i+1个偏移后数据的大小关系,若第i个偏移后数据大于第i+1个偏移后数据,执行s33,若第i个偏移后数据小于第i+1个偏移后数据,则执行s34,若第i个偏移后数据等于第i+1个偏移后数据,则执行s35;

s33:将第i个偏移后数据减去第i+1个偏移后数据得到的32位二进制数左移一位后顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮;

s34:将第i+1个偏移后数据减去第i个偏移后数据得到的32位二进制数顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮;

s35:将第i个偏移后数据中的各位顺次映射至纵向为32个像素点的显示屏的第i列上,且位值为1映射为像素为亮。

该数据曲线的生成与显示方法在生成曲线的过程仅需单片机采用通用的移位和减法指令,数据可以边接收边转换,效率较传统的坐标描点法快数倍,可极大地提高低速51系统的可视化效率,提高51单片机在高端领域中的生存空间。

为了保证显示屏中显示的曲线的中心位置大致对应原始数据中的0值,优选,所述原始数据为-16~+15,所述参照数据为二进制数00000000000000010000000000000000,所述原始数据也可以为-15~+16,此时,所述参照数据为二进制数00000000000000001000000000000000。

其中,s1前还包括将外界待显示数据转换为原始数据的步骤,该步骤如下:

原始数据值=外界待显示数据值/x,其中,x表示显示屏中纵向相邻两像素对应的间隔量值。

该步骤可由外部系统处理,通常情况下,采用本方法的系统直接对转换后的原始数据进行处理。

为了保证转换后的原始数据基本都能显示在显示屏上,作为技术方案的改进,所述数据曲线的生成与显示方法还包括设置x值的步骤,其中,x=m/16,其中,m表示预设的可显示的最大数的绝对值,理论上,外界待显示数据的绝对值小于m。

下面给出结合具体案例说明本发明提供的数据曲线的生成与显示方法,但不用于限制本发明的保护范围。

s1:实时接收原始数据a1-a7,分别为3,5,2,-1,-3,1,4;

s2:依次计算与a1-a7对应的32位偏移后数据并存储,其中,与a1-a7对应的32位偏移后数据b1-b7通过将参照数据以(a1-a7)作为移位位数进行移位后得到,即:b1-b7分别通过将参照数据(二进制数00000000000000010000000000000000)移(3,5,2,-1,-3,1,4)位得到,正数表示左移,负数表示右移,得到的b1-b7分别为00000000000010000000000000000000,00000000001000000000000000000000,00000000000001000000000000000000,00000000000000001000000000000000,00000000000000000010000000000000,00000000000000100000000000000000,00000000000100000000000000000000;

s3:依次生成曲线图形中的每一列并实时显示

曲线图形中第1列的生成方法如下:

b2>b1,b2-b1=00000000000110000000000000000000,之后将该二进制数顺次映射至显示屏的第1列上,0表示灭,1表示亮;

曲线图形中第2列的生成方法如下:

b3<b2,b2-b3=00000000000111000000000000000000,左移一位,得到00000000001110000000000000000000,之后将该二进制数顺次映射至显示屏的第2列上,0表示灭,1表示亮;

曲线图形中第3列的生成方法如下:

b4<b3,b3-b4=00000000000000111000000000000000,左移一位,得到00000000000001110000000000000000,之后将该二进制数顺次映射至显示屏的第3列上,0表示灭,1表示亮;

曲线图形中第4列的生成方法如下:

b5<b4,b4-b5=00000000000000000110000000000000,左移一位,得到00000000000000001100000000000000,之后将该二进制数顺次映射至显示屏的第4列上,0表示灭,1表示亮;

曲线图形中第5列的生成方法如下:

b6>b5,b6-b5=00000000000000011110000000000000,之后将该二进制数顺次映射至显示屏的第5列上,0表示灭,1表示亮;

曲线图形中第6列的生成方法如下:

b7>b6,b7-b6=00000000000011100000000000000000,之后将该二进制数顺次映射至显示屏的第6列上,0表示灭,1表示亮;

曲线图形中第7列的生成方法如下:

不存在第8列偏移后数据,故将b7(00000000000100000000000000000000)中的各位顺次映射至显示屏的第7列上,0表示灭,1表示亮。

本发明还提供了一种数据曲线的生成与显示系统,包括:

原始数据接收单元,用于实时接收原始数据,其中,所述原始数据表示与待显示数据对应的偏移像素数量;

运算单元,用于计算与接收到的原始数据对应的32位偏移后数据及与偏移后数据对应的映射数据,其中,与原始数据对应的32位偏移后数据通过将参照数据以该原始数据值作为移位位数进行移位后得到,所述参照数据为32位二进制数,且只有一位为1,其余为0,第i个映射数据计算方法如下,其中,第i个映射数据与第i个原始数据、第i个偏移后数据一一对应:

s31:判断是否存在第i+1个偏移后数据,若存在,执行s32,若不存在,执行s35;

s32:判断第i个偏移后数据与第i+1个偏移后数据的大小关系,若第i个偏移后数据大于第i+1个偏移后数据,执行s33,若第i个偏移后数据小于第i+1个偏移后数据,则执行s34,若第i个偏移后数据等于第i+1个偏移后数据,则执行s35;

s33:将第i个偏移后数据减去第i+1个偏移后数据得到的32位二进制数左移一位后作为该列映射数据;

s34:将第i+1个偏移后数据减去第i个偏移后数据得到的32位二进制数作为该列映射数据;

s35:将第i个偏移后数据作为该列映射数据;

存储器,用于存储原始数据、偏移后数据和映射数据;

显示屏,纵向为32个像素点,用于顺次显示曲线图形中的每一列,其中,曲线图形的每一列均和与该列对应的映射数据的每一位对应,即:映射数据中值为1的位对应像素为亮。

为了保证显示屏中显示的曲线的中心位置大致对应原始数据中的0值,优选,所述原始数据为-16~+15,所述参照数据为二进制数00000000000000010000000000000000,所述原始数据也可以为-15~+16,此时,所述参照数据为二进制数00000000000000001000000000000000。

作为技术方案的改进,所述数据曲线的生成与显示系统还包括处理器,用于将外界待显示数据转换为原始数据,其中,转换方法如下:

原始数据值=外界待显示数据值/x,其中,x表示显示屏中纵向相邻两像素对应的间隔量值。

作为技术方案的改进,所述处理器还用于计算x的值,其中,x=m/16,m表示预设的可显示的最大数的绝对值。

本发明的具体实施方式是按照递进的方式进行撰写的,着重强调各个实施方案的不同之处,其相似部分可以相互参见。

上面结合附图对本发明的实施方式做了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1