4.3寸TFT的MSP430程序
扫描二维码
随时随地手机看文章
一、TFT简介
TFT(触摸屏)Thin Film Transistor (薄膜场效应晶体管),是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动,从而可以做到高速度高亮度高对比度显示屏幕信息, TFT触摸屏薄膜晶体管液晶显示器,是多数液晶显示器的一种在众多的平板显示器激烈竞争中,TFT触摸屏能够脱颖而出,成为新一代的主流显示器决不是偶然的,是人类科技发展和思维模式发展的必然。液晶先后避开了困难的发光问题,利用液晶作为光阀的优良特性把发光显示器件分解成两部分,即光源和对光源的控制。作为光源,无论从发光效率、全彩色,还是寿命,都已取得了辉煌的成果,而且还在不断深化之中。LCD发明以来,背光源在不断地进步,由单色到彩色,由厚到薄,由侧置荧光灯式到平板荧光灯式。在发光光源方面取得的最新成果都会为TFT触摸屏提供新的背光源。随着光源科技的进步,会有更新的更好的光源出现并为TFT触摸屏所应用。余下的就是对光源的控制,把半导体大规模集成电路的技术和工艺移植过来,研制成功了薄膜晶体管(TFT)生产工艺,实现了对液晶光阀的矩阵寻址控制,解决了液晶显示器的光阀和控制器的配合,从而使液晶显示的优势得以实现。
应用领域:要应用于计算机、视频终端、通讯及仪器仪表等行业。主要应用领域有笔记本电脑、台式计算机监视器、工作站、工业监视器、全球卫星定位系统(GPS)、个人数据处理、游戏机、可视电话、便携式VCD、DVD及其它一些便携装置。
二、TFT基本驱动
4.3寸TFT(Thin-Film Transistor)的读写时序和1.8、2.4大小的几乎一样(毋宁说就是一样)。
数据写入模式可在16位和8位数据位选择。
MSP430使用首先配置引脚的输入输出方向,进而分配引脚。
时序控制引脚的分配
LCD_RS_H时数据写入,LCD_RS_L时命令写入。
void LCD_Writ_Bus(unsigned int VH,unsigned int VL) //并行数据写入函数
{
LCD_CMDOUT;
LCD_DataH_Out;
LCD_DataL_Out;
LCD_CS_L;
//LCD_RS_H; //RS=1;高写数据
LCD_WR_L;
DataH_OUT = VH;
DataL_OUT = VL;
LCD_WR_H;
LCD_CS_H;
}
void LCD_WR_DATA8(unsigned int VH,unsigned int VL) //发送数据-8位参数
{
LCD_RS_H; //RS=1;高写数据
LCD_Writ_Bus(VH,VL);
}
void LCD_WR_Data(unsigned int da)
{
LCD_RS_H; //RS=1;高写数据
LCD_Writ_Bus(da>>8,da);
}
void LCD_WR_REG(unsigned int da)
{
LCD_RS_L; //RS=0;低写命令
LCD_Writ_Bus(da>>8,da);
}
LCD驱动芯片采用SSD1960,对照其Datasheet操作相关寄存器。
//初始化函数
void TFT_Init(void)
{
LCD_WR_REG(0x00E2); //PLL multiplier, set PLL clock to 120M
LCD_WR_Data(0x0023); //N=0x36 for 6.5M, 0x23 for 10M crystal
LCD_WR_Data(0x0002);
LCD_WR_Data(0x0004);
LCD_WR_REG(0x00E0); //PLL enable
LCD_WR_Data(0x0001);
delay_time(1);
LCD_WR_REG(0x00E0);
LCD_WR_Data(0x0003);
delay_time(5);
LCD_WR_REG(0x0001); // software reset
delay_time(5);
LCD_WR_REG(0x00E6); //PLL setting for PCLK, depends on resolution
LCD_WR_Data(0x0001);
LCD_WR_Data(0x0033);
LCD_WR_Data(0x0032);
LCD_WR_REG(0x00B0); //LCD SPECIFICATION
LCD_WR_Data(0x0018);
LCD_WR_Data(0x0000);
LCD_WR_Data((HDP>>8)&0X00FF); //Set HDP
LCD_WR_Data(HDP&0X00FF);
LCD_WR_Data((VDP>>8)&0X00FF); //Set VDP
LCD_WR_Data(VDP&0X00FF);
LCD_WR_Data(0x0000);
LCD_WR_REG(0x00B4); //HSYNC
LCD_WR_Data((HT>>8)&0X00FF); //Set HT
LCD_WR_Data(HT&0X00FF);
LCD_WR_Data((HPS>>8)&0X00FF); //Set HPS
LCD_WR_Data(HPS&0X00FF);
LCD_WR_Data(HPW); //Set HPW
LCD_WR_Data((LPS>>8)&0X00FF); //Set HPS
LCD_WR_Data(LPS&0X00FF);
LCD_WR_Data(0x0000);
LCD_WR_REG(0x00B6); //VSYNC
LCD_WR_Data((VT>>8)&0X00FF); //Set VT
LCD_WR_Data(VT&0X00FF);
LCD_WR_Data((VPS>>8)&0X00FF); //Set VPS
LCD_WR_Data(VPS&0X00FF);
LCD_WR_Data(VPW); //Set VPW
LCD_WR_Data((FPS>>8)&0X00FF); //Set FPS
LCD_WR_Data(FPS&0X00FF);
LCD_WR_REG(0x00F0); //pixel data interface
LCD_WR_Data(0x0003);
LCD_WR_REG(0x0021); //进入图形颜色翻转模式
LCD_WR_REG(0x00BC); //重要Set the image post processor
LCD_WR_Data(0x0080); //对比度Set the contrast value
LCD_WR_Data(0x0080); //亮度Set the brightness value
LCD_WR_Data(0x0080); //饱和度值Set the saturation value
LCD_WR_Data(0x0001); //处理机允许Post Processor Enable
delay_time(5);
TFT_CLEAR(0X07FF); //GBLUE
LCD_WR_REG(0x0029); //display on
}
void TFT_CLEAR(uint color)
{
unsigned int l=480,w;
LCD_WR_REG(0x002A);
LCD_WR_Data(0);
LCD_WR_Data(0);
LCD_WR_Data(HDP>>8);
LCD_WR_Data(HDP&0x00ff);
LCD_WR_REG(0x002B);
LCD_WR_Data(0);
LCD_WR_Data(0);
LCD_WR_Data(VDP>>8);
LCD_WR_Data(VDP&0x00ff);
LCD_WR_REG(0x002C);
while(l--)
{
for(w=0;w<272;w++)
LCD_WR_Data(color);
}
}