单片机如何写TFT彩屏的程序?

单片机如何写TFT彩屏的程序?,第1张

武汉 谷鑫科技专业从事单片机驱动TFT彩屏的研发和生产。

下面是TFT6448BS-5.7模块的驱动程序:

sfr AUXR = 0x8e//////////////////////////////////注意增加该语句。

#include <reg51.h>

#include <absacc.h>

#define X_ADDR XBYTE[0x0000]

#define Y_ADDR XBYTE[0x0100]

#define CMD XBYTE[0x0200]

#define DAT XBYTE[0x0300]

unsigned char code zk[32] = {//请

0x00, 0x47, 0x20, 0x23, 0x00, 0xEF, 0x20, 0x23, //left

0x22, 0x23, 0x22, 0x23, 0x2A, 0x32, 0x22, 0x02,

0x48, 0xFC, 0x40, 0xF8, 0x40, 0xFE, 0x08, 0xFC, //right

0x08, 0xF8, 0x08, 0xF8, 0x08, 0x08, 0x28, 0x10}

unsigned char code picture[]

main()

{

unsigned int x,y,x2,y2

unsigned int i

unsigned char key,x1,y1,j,k,z,m,n,bright

AUXR = 0x02//////////////////////////////////注意增加该语句。

bright = 8

key = 0//////////////////////////////////////选择液晶屏型号

//0:TFT2432

//1:TFT3224

//2:TFT480234

//3:TFT480272

//4:TFT6448

//5:TFT8048

//6:TFT8060

//7:TFT8060

if(P13==4)

{

if(key==0){x2=240y2=320x1=6y1=16goto loop1}//x1/32,y1/20

if(key==1){x2=320y2=240x1=8y1=12goto loop1}

if(key==2){x2=480y2=240x1=12y1=12goto loop1}

if(key==3){x2=480y2=272x1=12y1=14goto loop1}

if(key==4){x2=640y2=480x1=16y1=24goto loop1}

if(key==5){x2=800y2=480x1=20y1=24goto loop1}

if(key==6){x2=800y2=600x1=20y1=30goto loop1}

if(key==7){x2=800y2=600x1=20y1=30goto loop1}//亮度测试

}

loop1:

bright--if(bright==255)bright=7

CMD = 0x06

DAT = bright

///////////////////////以下是清屏功能///////////////////////////////////////

//用红色清屏

CMD = 0x04DAT = 0xe0//背景色

CMD = 0x08//启动填充 *** 作

for(y=0y<260*12y++)//延时16.6毫秒

CMD = 0x00//退出填充 *** 作

///////////////////////以上是清屏功能///////////////////////////////////////

while(key==7)

{

for(bright=7bright!=255bright--)

{

CMD = 0x06

DAT = bright

for(y=0y<15y++){x=1while(x!=0)x++}

}

CMD = 0x20//关断显示,poweroff

for(y=0y<15y++){x=1while(x!=0)x++}

key = P1&0x07

}

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//用红色清屏

CMD = 0x04DAT = 0x1c//背景色

CMD = 0x08//启动填充 *** 作

for(y=0y<260*12y++)//延时16.6毫秒

CMD = 0x00//退出填充 *** 作

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//用红色清屏

CMD = 0x04DAT = 0x03//背景色

CMD = 0x08//启动填充 *** 作

for(y=0y<260*12y++)//延时16.6毫秒

CMD = 0x00//退出填充 *** 作

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//用红色清屏

CMD = 0x04DAT = 0x00//背景色

CMD = 0x08//启动填充 *** 作

for(y=0y<260*12y++)//延时16.6毫秒

CMD = 0x00//退出填充 *** 作

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//用红色清屏

CMD = 0x04DAT = 0xff//背景色

CMD = 0x08//启动填充 *** 作

for(y=0y<260*12y++)//延时16.6毫秒

CMD = 0x00//退出填充 *** 作

///////////////////////以上是清屏功能///////////////////////////////////////

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

///////////////////////以下是测试8点写功能///////////////////////////////////////

//8点写模式下清屏DAT=0

CMD = 0x02DAT=0xff//前景色

CMD = 0x04DAT=0x00//背景色

CMD = 0x01

for( y=0y<y2y++ )//用前景色清屏

{

X_ADDR = 0

X_ADDR = 0

Y_ADDR = y

if( ((key==1)|(key==2))==0 )Y_ADDR = y/256

for( x=0x<(x2/8)x++ )DAT=0x55

}

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

for( y=0y<y2y++ )//用背景色清屏

{

X_ADDR = 0

X_ADDR = 0

Y_ADDR = y

if( ((key==1)|(key==2))==0 )Y_ADDR = y/256

for( x=0x<(x2/8)x++ )DAT=0x0f

}

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//8点写模式下写单色图片

CMD = 0x02DAT=0x00//前景色

CMD = 0x04DAT=0xff//背景色

CMD = 0x01

for (y=0y<80y++)

{

X_ADDR = 0

X_ADDR = 0

Y_ADDR = y

if( ((key==1)|(key==2))==0 )Y_ADDR = y/256

for ( n=0n<10n++) DAT = picture[y*10+n]

}

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//8点写模式下写汉字

CMD = 0x02DAT=0x00//前景色

CMD = 0x04DAT=0xff//背景色

CMD = 0x01

for ( n=0n<=15n++ )

{

X_ADDR = 0

X_ADDR = 0

Y_ADDR = n

if( ((key==1)|(key==2))==0 )Y_ADDR = y/256

DAT = zk[n]

DAT = zk[n+16]

}

for(y=0y<1y++){x=1while(x!=0)x++}

for(y=0y<1y++){x=1while(x!=0)x++}

//以下是测试单点写

CMD = 0x00

i=0

for(j=0j<x1j++)//20,x/40

{for (z=0z<y1z++)//24,y/20

{for (k=0k<20k++)

{x=j*40

y=z*20+k

X_ADDR = x

if(key!=0)X_ADDR = x/256

Y_ADDR = y

if( ((key==1)|(key==2))==0 )Y_ADDR = y/256

for (m=0m<40m++)DAT = i

}

i++

}

}

for(y=0y<1y++){x=1while(x!=0)x++}

http://tieba.baidu.com/club/10621043/p/14619152

分类: 电脑/网络

问题描述:

薄膜晶体管-液晶显示器制造技术

解析:

制造TFT-LCD主要有三个重要的流程:

1.阵列制程

2.组立制程

3.模组制程

最后就是我们看到的产品了.

1.阵列制程

1)一片表面光滑,没有任何杂质的玻璃,是制造TFT玻璃基板最主要的原料.在制作之前,需用特殊的冼净液,将玻璃洗得干干净净,然后脱水,甩干.

2)要使玻璃基板镀上金属薄膜,需先将金属材料放在真空室内,让金属上面的特殊气体产生电浆后,金属上的原子就会被撞向玻璃,然后就形成一层层的金属薄膜了.

3)镀完金属膜后,我们还要镀上一层不导电层与半导电层,在真空室内,先将玻璃板加温,然后由高压电的喷洒器喷洒特殊气体,让电子与气体产生电浆,经过化学反应后,玻璃上就形成了不导电层与半导体层。

4)薄膜形成后,我们要在玻璃上制作电晶体的图案。首先,要进入黄光室喷上感光极强的光阻液,然后套上光罩照射蓝紫光进行曝光,最后送到显影区喷洒显影液,这样可以去除照光后的光阻,还可以让光阻层定型哦。

5)光阻定型后,我们可用蚀刻进行湿式蚀刻,将没有用的薄膜露出,也可用电浆的化学反应进行干式蚀刻,蚀刻后再将留下的光阻以溜液去除,最后就产生电晶体所需要的电路图案了。

6)要形成可用的薄膜电晶体,需要重复清洗,镀膜,上光阻,曝光,显影,蚀刻,去光阻等过程,一般来说,要制造TFT-LCD,就要重复5到7次。

2.组立制程

1)完成薄膜电晶体玻璃基板后,我们就要进行液晶面板组合了,液晶面板是由电晶体玻璃基板与彩色滤光片组合而成,首先,我们要先将玻璃洗干净,再进行下一个步骤。TFT-LCD的整个制造过程都必须在无尘室内,这样才不会有杂质在显示器里面。

2)彩色滤光片是以化学涂布的方式,在玻璃上形成红、绿、蓝的颜色,整齐排列后再覆盖一层会导电的薄膜即完成。

3)在整个组合的过程中,首先我们要为布满电晶体的玻璃和彩色滤光片涂上一层化学薄膜,然后再进行配向的动作。

4)在组合二片玻璃板之前,我们要先平均布满类似球状的隙子固定间隔,以免液晶面板组合后,二片玻璃向内凹曲。通

常液晶面板在组合时,会留下一个或二个缺口,以利后续灌入液晶,接着就以框胶及导电胶封在二片玻璃边缘,如此就完成玻璃的组合了。

5)封完边框之后,就将液晶面板放到真空室,透过刚才预留的缺口把液晶面板的空气抽掉,然后籍助大气压力灌入液晶,再将缺口封闭,而液晶是一种介于固体和液体之间的化合物质,具有规则分子排列的特性。

6)最后再贴上二片垂直方向的偏光片,整片液晶面板即算完成。

3)在整个组合的过程中,首先我们要为布满电晶体的玻璃和彩色滤光片涂上一层化学薄膜,然后再进行配向的动作。

4)在组合二片玻璃板之前,我们要先平均布满类似球状的隙子固定间隔,以免液晶面板组合后,二片玻璃向内凹曲。通

常液晶面板在组合时,会留下一个或二个缺口,以利后续灌入液晶,接着就以框胶及导电胶封在二片玻璃边缘,如此就完成玻璃的组合了。

5)封完边框之后,就将液晶面板放到真空室,透过刚才预留的缺口把液晶面板的空气抽掉,然后籍助大气压力灌入液晶,再将缺口封闭,而液晶是一种介于固体和液体之间的化合物质,具有规则分子排列的特性。

6)最后再贴上二片垂直方向的偏光片,整片液晶面板即算完成。

3.模组制程

1)偏光片贴附完成后,我们即开始在液晶面板的两侧搭载DRIVE IC,DRIVE IC是很重要的驱动零件,是用来控制液晶颜色,亮度开关的。

2)然后再将DRIVE IC 的入力端与电路板藉着焊锡焊接导通。这样讯号就可以顺利发出,然后控制面板上的影像了。

3)液晶面板的光线就是从背光源发出来的,在组装背光源之前,我们会先检查组合完的液晶面板有无完善,然后再组装背光源,背光源就是液晶面板后的光线来源。

4)最后,再将CELL与铁框以螺丝锁定。

5)再来就进入了最后关键的测试过程,将组立完成的MODULE做老化测试,在通电及高温状态,筛选出品质不良的产品。

6)品质最优的产品,就可以包装出货了。

这样,液晶面板经过许多检验测试的程序,才能把最完美的产品交给客户,这样才算是真正的完成整个液晶显示器的制作过程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12121957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存