MSP430与液晶显示器的串行接口方案
void Set_Address(unsigned char column,unsigned char page){
unsigned char ColH,ColL;
//设页地址
ColH=page|0xB0;
Write_Command(ColH);
//设列地址
ColH=(column&0xF0)>>4;
ColH|=0x10;
ColL=column&0x0F;
Write_Command(ColH);
Write_Command(ColL);
}
2.4.2 字符显示屏上的曲线绘制程序
有了上述程序,就可以方便地在uPD16682A上指定位置显示设定的图案和字符了。如果用户需要动态地展示信号波形和曲线,还可设计出专用的画点和画线函数,从而大大提高了字符液晶显示屏的动态图形显示能力。通常而言,液晶显示屏上的一点对应液晶显示驱动器显示RAM中的一位。显示RAM中的某位为1,则在液晶显示屏上的相应点即为点亮状态;而要想实现在液显示屏上动态的显示点和曲线,必须用到显示RAM中的数据。通常的做法是读取指定点周围的数据,然后在这些点中的某个指定位置插入1位,从而将液晶显示屏上的指定点点亮,这就是基本的画点原理。但是,在串行方式下,uPD16682A不具备数据读出能力。为此,我们仿照显示RAM显示的方式,在MSP430F149的数据区开辟了一块和uPD16682A显示RAM同样大小的内存块,在向uPD16682A显示RAM写入显示数据的同时,也向该内存块的对应位置写入同样的数据,保证了该内存块的内容和uPD16682A显示RAM中的数据是同步刷新的。因此在画点函数中,我们直接从该内存块中取出需要的显示数据进行处理,然后再通过自定义串行总线送往uPD16682A进行显示。用这种方式,我们实现了在液晶显示屏的任意位置画出一个点,并且还可以利用这种方式编制自己的画线函数,这样就使uPD16682A具备了动态显示波形的能力,也就扩展了字符液晶显示屏动态曲线波形的显示功能。以下是uPD16682A编写的画点函数:
void DrawPointXY(unsigned char x,unsigned char y){
unsigned char page,dot,dat,CouL,CouH;
dot=0x01;
page=y/8; /*计算当前点页地址、列地址*/
r_page=page; /*点亮当前点并保持周围点信息不变*/
r_column=x;
page|=0xB0;
dat=y%8;
dot=dot<<dat;
CouH=(x&0xF0)>>4;
/*通过自定义串行总线向uPD16682A发送数据*/
CouH=CouH|0x10;
CouL=(x&0x0F);
《MSP430与液晶显示器的串行接口方案(第3页)》