这部分是说明如何驱动液晶和实际屏面规划的。
确定了接口方式和满足时序的方法后,就要考虑算法实现液晶显示。SED1335有系统设置、显示设置、光标设置、描点等丰富的指令集。采用软件编程控制驱动液晶时,先写入指令,再写入指令对应参数,即可完成一个方面的设置。具体流程见图43。
图43 液晶驱动流程图<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
如图43所示,DSP编程驱动液晶先要完成DSP初始化,包括显示用常量的设置。图形点阵式液晶的RAM区中每个字节的数据直接被送到液晶显示模块上,每个位的电平状态决定显示屏上一个点是否点亮,“1”为亮,“0”为不亮。所以相当于一个字节对应显示屏上一个1行×8列点陈。汉字、数字其实都可以看作是由若干个这样的点阵组成的。用“LCD仿真器”将需要显示的字符转换成代码,存成只读型数组需要时调用即可。
接着,进行液晶初始化,包括LCD的时间常数、点行数、一行所占字节数、显示区首地址、显示区合成方式等。由于需要实时显示频率、角差、比差的数据,还要实现波形的动态显示,所以设置了两个显示区,两个显示区都完全覆盖整个液晶屏,二者之间是逻辑“或”的关系。这样,始终不变的显示内容,如网格和汉字设置在同一显示区,其他需要实时变化的内容,如波形和数据设置到另一显示区。连续运行时,不断刷新动态显示区即可。
初始化完成后,清除显示RAM,然后开显示,设置光标显示方式。
最后执行相应的显示,包括汉字、数字和波形。显示时只需设置好光标相对于屏上点的地址和光标移动方向。在写入数据后,光标地址即根据光标移动方向参数自动修改光标地址,实现连续描点。
规划显示屏时,首先考虑波形显示。在实际工程中,采样数据与液晶屏显示范围不吻合,16位AD得到的数据范围是0~65535,而液晶模块的纵坐标最大值为240,所以必须对采样数据进行“归一化”处理,也就是说将采样结果按显示范围重新划分。考虑校验仪获得的信号不会达到10V的满量程,最大电压为5V的120%,所以选取归一化值为256,即AD转换结果向右移8位,所得结果为相对液晶屏上坐标轴零点的距离。这样,显示区范围定为250×200,校验仪满量程显示时,纵坐标上范围最大也只有150行,适合液晶屏显示。考虑采样方式为每周期0.02s获得78个点,每次计算和显示时只需采集4个周期的点,选取其中连续的250个在动态显示区内描出,然后将各点连线组成曲线[37]。
人的视觉暂留的时间为62.5ms到83.4ms,所以每秒钟图形需刷新12到16次。采集4个周期的数据,然后进行信号处理、清动态显示区,通过设定延时时间来满足视觉暂留时间。因此,校验仪不需要将波形平移,每次现实的波形都为新采集到的数据。
用户117124 2009-5-4 15:50
用户1631176 2007-3-20 09:48
我使用的是LCM,本身已经有驱动器、RAM、ROM,外加微处理器之需要提供相应读写电平和数据线即可。所以用单片机和DSP都可以,而且单片机驱动更容易。
使用DSP是因为这是个完整的项目,液晶只是其中显示部分,前面需要完成信号处理运算,所以需要DSP。
谢谢楼上关注,大家一起讨论。
用户79920 2007-3-18 19:24
用dsp驱动液晶是不是有点大材小用了?可以用专门的液晶驱动芯片代替啊!