LCD 近年来越来越多地应用在单片机控制的仪器仪表中。仪表显示时良好的人机界面始终是人们的追求。近日用单片机控制成功地在EDM240128 图形LCD 上显示出图片。 1、液晶模块的特点: EDM240128 图形LCD 是大连神迅信息股份有限公司生产的240*128 点阵式LCD。 内置8K 的数据存储器,液晶显示控制芯片为东芝公司生产的T6963C。它的总线可以直接适配MCS51 总线。允许单片机随时访问显示缓冲区,甚至可以进行位操作,直接控制某一点。同时这款液晶还有读/写地址自动加/减1 的功能,为大量数据的传送编程提供了方便。 2、硬件实现: 采用89S52 单片机,其内部有8K的FLASH ROM,将需要显示的图片数据和程序直接存储在里面,使得此电路功能实现十分简单。 图1 是89S52 与LCD 显示器模块的并口方式下的接口电路。 P1.0 接LCD 的复位,VEE用来调节显示屏灰度,手册中给出电压范围是 8V~ -23V,在使用中发现超过 -15V显示颜色已经过深而看不清了。实际测试得到合适电压范围为-13.8V~-14.8V,调节该点电压可改变显示屏字符图形颜色的深浅。由于该点电流极小,用一个普通的电位器调节即可。 3、图片数据的提取 图片转化成字节类型的数据可采用专用的程序,文中采用PICtoCODE【图片数据生成器】V1.0,设计为 hy_zhangwang,此软件可从互联网上免费下载。 PICtoCODE 可以将黑白单色图片(支持BMP、JPEG、JPG、GIF 等格式)转换为A51、C51、HEX 等格式的数据文件。数据生成的顺序为从上至下,从左到右,左上角象素对应第1 个字节,右下脚对应最后一个字节。软件要求图片宽度必须为8 的整数倍,如果待处理的图片宽度不是8 的整数倍,需要先用图形编辑软件(如windows 系统自带的画图程序)作预处理。 如果图片不是黑白单色图片,可以用“彩色>>黑白...”功能将图片转换为黑白图片,然后再导出数据或代码。 4、软件设计 EDM240128 的控制指令可带两个参数、一个参数或者无参数。每条指令都是先送入参数,再送入指令代码。如果所送参数多于规定个数,最后送入的有效。每次操作前必须检测其状态字。由于状态位作用不同,因此执行不同的指令应检测不同的状态位。显示器上的240*128 点,每8 个点为一个字节的数据,都 一 一 对应显示缓冲区的数据。一点对应一个bit ,bit=1 该点显示黑点,bit=0则该点消失。 LCD 有一条display ON/OFF 指令,display ON 时显示缓冲区的数据对应显示画面,display OFF时则画面消失,但缓冲区的数据仍然存在,并没有丢失。有关命令请详细查阅T6963C使用手册。 软件采用C51 编写,大大提高了开发效率 单片机程序: #define ming 0x4000 //指令口地址 #define shuju 0x0000 //数据口地址 #include<at89x52.h> void delay(unsigned int i) //延时 {/*-----------*/} void writed(char a) // 写数据子程序 {/*----------*/} void writec(char a) //写指令子程序 {/*-----------*/} void busy() //判断标志位是否忙 {*/-----------*/} main() { unsigned char ji=0; code char seg[3840]={/*-----------*/};///要显示的图片数据 P1_0=0; delay(100); P1_0=1; busy(); writed(0x00); busy(); writec(0x24); busy(); writec(0xb0); /////设置自动写,地址加一 busy(); for(ji=0;ji<3840;ji++) { writed(seg[ji]); busy(); } writec(0xb3); // 自动写结束 busy(); writec(0x98); // 开显示 //----------------------------------- } 5、结束语 T6963C 控制芯片广泛应用在各种图形点阵LCD 上,除了大连神迅公司的EDM240128和EDM12864 图形LCD 采用此芯片外,金鹏奥可拉公司的OCM128*64、OCM240*128、深圳松山公司的CA12864A、信利公司的MPG240128A 等均采用这款芯片。我们可以很方便地作出各种友好的人机界面。
|