自己用的LPC1768的开板带有一块2.4寸的TFT五颜六色液晶屏,尽管自己工作中还用不过显现屏,可是晚上闲着也是闲着,所以持续玩咱的LPC1768吧。
我的开发板上的液晶屏的用的是SPI接口,当然你也能够把它规划成并行口,其接口电路如下所示:
话说这个液晶屏的驱动芯片是ILI9325,在网上下载了该芯片的数据手册,好家伙有111页,满是E文呀,没办法,谁让咱是小电工呢,就渐渐啃吧。ILI9325这个芯片的寄存器比较多,不过不要紧,咱们暂时用到的不是太多,这儿只需扼要的总结,剩余的仍是日后用到了再好好研讨吧。
1、寄存器03H(Entry Mode),该寄存器首要设置图画的显现形式,包含屏幕的扫描方法(水平扫描或笔直扫描),这直接影响到img2lcd软件(这是个取模软件)的扫描方法操控项。
2、寄存器04H(Resizing Control Register)从头调整巨细 寄存器,经过装备该寄存器,能够调整所显现图片的巨细。
3、寄存器07H(Display Control 1),装备该寄存器可翻开或封闭图形。
4、水平缓笔直方位的RAM地址(R50h,R51h,R52h,R53h)
看手册上寄存器不少,不过操控方法不一样,所用到的寄存器不一样,这儿不再罗列寄存器,想做驱动,必定要看芯片的手册,并且必定要细心的研讨它的手册。话说写液晶驱动不显现图片什么的形似对不住LCD,当然这次懒猫这次写的驱动也有图片显现,想图片显现当然少不了取模软件,懒猫这次用的取模软件是img2lcd,这个软件功用不错,用起来也比较简单,假如不会用能够检查一下它自带的帮助文件。
留意:LCD的装备方法不同,所设置的扫描方法也不同。
好了,贴上咱写的这个驱动;
void GLCD_clear (unsigned short color)
{
unsigned int i;
wr_reg(0x20, 0); // 1st line GRAM Data(AD0-AD7)
wr_reg(0x21, 0); // 1st line GRAM Data(AD8-AD16)
wr_cmd(0x22);
for(i = 0; i < (WIDTH*HEIGHT); i++){
wr_dat(color); // Set color of background
}
}
void GLCD_bitmap (unsigned int x, unsigned int y, unsigned int w, unsigned int h, unsigned char *bitmap)
{
unsigned int i;
unsigned int len = w*h;
unsigned short *bitmap_ptr = (unsigned short *)bitmap;
wr_reg(0x50, y);
wr_reg(0x51, y+h-1);
wr_reg(0x52, x);
wr_reg(0x53, x+w-1);
wr_reg(0x20, y);
wr_reg(0x21, x);
wr_cmd(0x22);
for (i = 0; i < len; i++) {
wr_dat(*bitmap_ptr++);
}
}
因为原代码比较多,这儿只贴上部分函数,详细的代码,请参阅附件,这儿上传几张效果图,懒猫已把液晶屏显现字符,显现汉字,画圆,画线等的程序写好了,改天收拾一下也发上来,下一步弄一下SD卡,USB方面的东东,今日先写这么多吧。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/263335.html