还剩31页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验13LCD编程实验
13.1实验目的
1.了解2440ALCD控制器与TFTLCD的__连接
2.学习2440ALCD控制器编程
3.学习LCD编程技术
13.2实验设备
1.硬件环境实验系统,PC机器
2.软件环境DNW,ADS
13.3实验内容
1.分析LCD控制器的初始化函数,分析程序中mytft.c中的子函数
2.实现一些花点、线、矩形的子函数graphic.c,并在__in.c中进行调用
3.实现显示英文字符的子函数chracter.c,并在__in.c中调用显示字符”helloworld!”
4.实现显示中文字符的子函数chinese.c,并在__in.c中调用显示中文字符“你好!”
13.4实验原理
1.液晶显示技术LiquidCircuitDisplay,LCD介绍1LCD原理介绍电视机所采用的CRT阴极射线管有着体积大、重量重、尺寸受限等缺点随着电子科技的发展,对__显示的要求越来越多,CRT的先天限制,让其小型化、行动化的理想受到阻碍这使得__新一代的显示器技术变得更有其必要!新一代的显示器讲求几个重点平面直角、画面显示不变形、轻薄短小耗能少,携带方便且同时要与现有的影像__技术兼容目前谈论到超薄型显示器技术,最普及当是TFTLCD的应用了,举凡数字相机、笔记型计算机、PDA等,需要显示复杂信息的电子产品通通少不了它TFTLCD技术又包含了,低温多硅晶TFTLCD、反射式TFTLCD等多项不同的显示技术,下面我们就要来一探LCD的历史与原理液晶的诞生来自于一项非常特殊物质的发现,早在1850年VirchowMettenheimer和Valentin这三个人就发现nervefibre的粹取物中含有这种不寻常的东西到了1877年德国物理学家OttoLeh__nn运用偏极化的显微镜首次观测到了液晶化的现象,但他对此一现象的成因并不了解直到公元1888年,奥地利的植物学家FriedrichReinitzer(1857-1927)发现了螺旋性甲苯酸盐的化合物(cholesterylbenzoate),确认了这种化合物在加热时具有两个不同温度的熔点,在这两个不同的温度点中,其状态介于一般液态与固态物质之间,类似胶状,但在某一温度范围内其又具有液体和结晶双方性质,由于其特殊的状态Reinitzer后来走访Leh__nn深入探讨这种物质的表现,其后两人便命名这种物质为「LiquidCrystal」,就是液态结晶物质的意思Reinitzer和Leh__nn这两人被誉为液晶之父2液晶显示器的种类超扭转式向列型(SuperTwistedNe__tic,简称STN)和薄膜式晶体管型(ThinFilmTransistor;TFT)为目前的主流液晶屏STN/DSTNSTN型的显示原理也类似,不同的是TN型的液晶分子是将入射光旋转90度,而STN则可将入射光旋转180~270度单纯的TN显示器本身只有明暗两种显示(或黑白),无法产生色彩的变化TNLCD采用的是“直接驱动”无法显示较多的像素,且画面的对比小,反应速度慢,视角更仅在+30度以下即观赏角度约60度,显示质量也较差;故TN型LCD主要用途在于简单的数字符与文字的显示,如电子表及电子计算器等STN的出现改善了视角狭小的缺点并提高对比率,STN以“多任务驱动”增加扫瞄线数提高画素显示,品质较TN来得高再搭配彩色滤光片的使用,将单色显示矩阵的任一像素(pixel)分成三个子像素(sub-pixel),分别透过彩色滤光片显示红、绿、蓝三原色,再经由三原色比例之调和,可以显示出逼近全彩模式的色彩由于STN显示的画面色彩对比度仍只达301对比愈小,画面愈不清楚;反应速度为150ms(毫秒),作为一般操作显示接口尚可,但若要播放电影速度仍然不够由于STN仍有不少缺点,后续的DSTN则通过双扫描方式来显示,由于DSTN采用双扫描技术,因此显示效果相对STN来说,有大幅度提高DSTN反应速度可达到100ms,但因它们都为“被动式驱动”,在电场反复改变电压的过程中,每一像素的恢复过程都较慢,在屏幕画面快速变化时,例如显示网球比赛的转播,就会产生所谓的“拖尾”现象特别是当网球选手击球的那一瞬间,你就可以看到拖屏幕上出现“球迹尾”现象不过,DSTN__便宜、功耗能低,一些PDA等,仍使用DSTN作为显示装置TFTTN与STN型液晶显示器都是使用场电压驱动方式,如果显示尺寸加大,中心部位对电极变化的反应时间就会拉长,显示器的速度就跟不上为了改善这个的问题,主动式矩阵(active-__trix)驱动被提出,主动式TFT型的液晶显示器的结构较为复杂包括了背光管、导光板、偏光板、滤光板、玻璃基板、配向膜、液晶材料和薄模式晶体管等等(如图3-2)在TFT型液晶显器中,导电玻璃上画上网状的细小线路,电极则由是薄膜式晶体管所排列而成的矩阵开关,在每个线路相交的地方配有控制闸,各显示点控制闸配合驱动讯号作动电极上之晶体管矩阵依显示讯号开启或关闭液晶分子的电压,使液晶分子轴转向而成“亮”或“暗”的对比,避免了显示器对电场效应的依靠,转以晶体管开启和关闭的速率作为决定步骤也因此,TFT-LCD的显示质量较TN/STN佳,画面显示对比可达1501以上,反应速度逼近30ms甚至更快同时又可以全彩甚至真彩效果显示,产品适用于PDA、笔记型计算机、液晶显示器、汽车导航系统、数字相机及液晶投影机3STN屏和TFT屏的对比STN/DSTN结构简单__低廉功耗低对比度和亮度差可视角度小最多支持4K色TFT反应速度快可视角度大色彩丰富分辨率高对比度亮度高__高功耗高4LCD屏的一些参数像素一个像素就是LCD上的一个点,是显示屏上所能控制的最小单位分辨率分辨率指LCD上象素的数目,用“横向点数×纵向点数”,如320×
240、640×480等色深是指在某一分辨率下,每一个像点可以有多少种色彩来描述,它的单位是“bit”(位),所以,也可以叫位深例如16位色深,即64K色色深和分辨率之积决定了显存的大小刷新频率是指图像在屏幕上更新的速度,也即屏幕上的图像每秒钟出现的次数,单位是赫兹物理尺寸LCD的外观尺寸对角线长度,单位为英寸一般为
1.8英寸、
3.5英寸等
2.EMDK300TFTLCD模块
3.S3C2440ALCD控制器介绍S3C2410A的内置LCD控制器支持单色、每象素2位(4级灰度)、每象素4位(16级灰度)的黑白屏;支持每象素8位(256色)和每象素12位(4096色)的彩色STNLCD;对于TFTLCD,支持每象素1位、每象素2位、每象素4位、每象素8位的调色显示,也支持每像素16位和每象素24位的非调色真彩显示LCD控制器可以通过编程选择支持不同的LCD屏的要求,例如行和列象素,数据总线宽度,接口时序和刷新频率LCD控制器的主要作用是将定位于系统存储器的显示缓冲区的LCD图像数据传送到外部LCD驱动器1S3C2410ALCD控制器的特性STNLCD屏支持3种类型的LCD面板4bit单扫描、4位双扫描和8位单扫描等三种类型面板;支持单色、4级灰度和16级灰度屏;支持256色和4096色彩色STN屏;支持多种分辨率的屏幕典型屏幕大小640*
480、320*
240、160*160像素以及其它规格;最大虚拟屏大小4Mbytes256色下最大虚拟屏大小4096*10242048*20481024*1024TFTLCD屏支持TFT彩屏的单色(1bpp)、4级灰度(2bpp)、256色(8bpp)调色显示支持TFT彩屏的64K(16bpp)和16M(24bpp)色非调色板显示支持多种分辨率的屏幕典型屏幕大小640*
480、320*
240、160*160像素以及其它规格;最大虚拟屏大小4Mbytes64K色下最大虚拟屏大小2048*1024和其他模式2LCD功能模块及工作原理S3c1440ALCD控制器功能模块如下图所示外部接口引脚描述VFRAME/VSYNC/STV:LCD控制器和LCD驱动器之间的帧同步__他通知LCD屏新的一帧显示,LCD控制器在一个完整帧的显示后发出VFRAME__VLINE/HSYNC/CPV:LCD控制器和LCD驱动器之间的同步脉冲__,LCD驱动器通过他来将水平移位寄存器中的内容显示到LCD屏上LCD控制器在一整行数据全部传输到LCD驱动去后,插入一个VLINE__VCLK/LCD_HCLK:此__为LCD控制器和LCD驱动器之间的象素时钟__,LCD控制器在VCLK的上升沿发送数据,LCD驱动器在VCLK的下降沿采样数据VM/VDEN/TP LCD驱动器所使用的交流__,LCD驱动器使用VM__改变用于打开或关闭象素的行和列电压的极性,从而控制象素点的显示或熄灭VM__可以与每个帧同步,也可以与可变数量的VLINE__同步VD[23:0]:LCD象素数据输出端口,也就是我们所说的RGB__线注意连接不同型号LCD时,管脚有不同的名字连接STNLCD时分别叫做VCLK、VLINE等;连接TFTLCD时分别叫做LCD_HCLK、HSYNC、VSYNC、VDEN等;另外一组名字针对于三星的SECLCD工作原理在上图中,REGBANK是LCD控制器的寄存器组,用来对LCD控制器的各项参数进行设置而LCDCD__则是LCD控制器专用的D__信道,负责将视频数据从显存显存是SDRAM中的一块区域,可利用REGBANK编程设定中取来,通过VIDPRCS从VD[23:0]发送给LCD屏同时TIMEGEN和LPC3600负责产生LCD屏所需要的控制时序,例如VSYNC、HSYNC、VCLK、VDEN等__,然后从VIDEOMUX送给LCD屏TIMEGEN包含可编程逻辑,通过程序设定,能产生不同LCD屏驱动电路所学要的时序__显存数据的拷贝流程FIFOmemoryispresentintheLCDCD__.WhenFIFOisemptyorpartiallyemptytheLCDCD__requestsdatafetchingfromtheframememorybasedontheburstmemorytransfermodeconsecutivememoryfetchingof4words16bytesperoneburstrequestwithoutallowingthebus__stershiptoanotherbus__sterduringthebustransfer.Whenthetransferrequestisac__ptedbybusarbitratorinthememorycontrollertherewillbefoursuc__ssiveworddatatransfersfromsystemmemorytointernalFIFO.ThetotalsizeofFIFOis28wordswhichconsistsof12wordsFIFOLand16wordsFIFOHrespectively.TheS3C2440AhastwoFIFOstosupportthedualscandisplaymode.IncaseofsinglescanmodeoneoftheFIFOsFIFOHcanonlybeused.外部引脚时序设置外部引脚用于和LCD屏连接,需要正确的设置LCD控制器寄存器的值,以产生LCD正常工作需要的时序__寄存器值决定的时序关系3显存的数据存储结构LCD上每一个象素点在FrameBuffer中有一块对应的区域,比如对于2bpp,一个象素点对应着2位区域,而对于4bpp,则对应着四位我们要使某个象素显示不同的颜色,向该象素在FrameBuffer在对应区域写入不同的颜色值即可下面以24bpp和16bp为例介绍显存的数据结构与屏幕像素点的对应关系24bpp的情况像素点跟FrameBuffer的映射关系24bpp的情况下,屏幕上的每一个像素点在显存中占据24bit的存储空间,从显存的起始地址开设,存储单元与屏幕像素点的对应关系如下表所示其中,P1,P2P3表示的是屏幕上的像素点,它们在LCD上的地理位置如下图所示像素占据的24位的意义每个像素占据24位,这24位按顺序分配给R、G、B三种颜色分量,如下表所示第2字节第1字节第0字节RedGreenBlue通过LCD控制器的数据线向LCD屏传送数据时,数据线与像素数据的对应关系16bpp的情况像素点跟FrameBuffer的映射关系16bpp的情况下,屏幕上的每一个像素点在显存中占据16bit的存储空间,从显存的起始地址开设,存储单元与屏幕像素点的对应关系如下表所示其中,P1,P2P3表示的是屏幕上的像素点,它们在LCD上的地理位置如下图所示像素占据的16位的意义在16bpp的情况下,由于每个像素包含RGB三个子像素,所以16个二进位无法平均分配,一般有5:5:5:I和5:6:5两种分配方法这两种分配方法下图所示下图对应BSWP=0HWSWP=0的情况;图中A[i]应修改为D[i],表示每个像素点在显存中的对应数据位通过LCD控制器的数据线向LCD屏传送数据时,数据线与像素数据的对应关系4相关寄存器描述LCD控制器寄存器1LCD控制器寄存器2LCD控制器寄存器3LCD控制器寄存器4LCD控制器寄存器5帧缓冲起始地址寄存器1帧缓冲起始地址寄存器2LCD中断申请寄存器LCD中断源指示寄存器LCD中断屏蔽寄存器
4.EMDK3000中LCD接口电路及编程在EMDK3000实验系统中,LCDPanel使用的是上面介绍的飞利浦的LCDPANEL,其功能和使用方式见上面的介绍要使LCDPanel正常工作,必须正确的设计硬件接口电路和初始化2440A的LCD控制器,在本实验中接口电路和2440LCD控制器的初始化见下面的描述1接口电路原理图2控制线的连接2440A LCDMODULELCD_HCLKDCLKHSYNCHSYNCVSYNCVSYNCVDENDE3数据线的连接2440A LCDMODULEVD
[2]~VD
[7]B
[0]~B
[8]VD
[10]~VD
[15]G
[0]~G
[8]VD
[18]~VD
[23]R
[0]~R
[8]4像素点颜色值、2440数据线、LCD屏数据线对应关系42440ALCD控制器的初始化显存的起始地址;16bpp;5:6:5格式;在我们的设置下,屏幕上的任何一个像素都对应着显存中的两个字节,改变这两个字节的内容,就可改变该像素的颜色
5.LCD显示原理1显示一个点在本实验例子中,LCD初始化完毕后,程序设置为使用16bpp、5:6:
5、BSWP=0HWSWP=1的显示方式,因此屏幕上的像素点与显存的对应关系就已经确定改变对应的显存数据,就能显示不同颜色的像素点2显示字符原理1)显示汉字这里的汉字编码采用16*16的点阵方式,即每个汉字在屏幕上占据16*16个像素的正方形区域,通过设置该区域内像素点的亮、暗,利用点亮的像素点的排列来组成汉字的形状本实验系统里采用的LCD屏是640*480像素的彩色屏,即一行有640个像素,一共480行每个汉字像素对应于本实验用的字库里的字模的编码有2*16个字节,每个字节的各位值代表了该位对应像素的亮、灭,从而共同组成了一个汉字显示时,先在x轴方向上显示2个字节编码数据,然后转到下一个像素行同一x轴位置,再显示两个字节,以此类推,直至显示2*16个字节,这样就显示出了一个完整的汉字显示汉字时,将LCD屏划分成了20*15个小区域,每个区域显示一个汉字,显示汉字时可以通过设置坐标(不是像素坐标,是汉字坐标,0=x=400=y=30)选择在哪个地方显示2)显示英文字母和符号英文字母和符号采用8*16点阵,其他显示方式设置和显示汉字类似,整个屏幕可以显示40*30个英文字母和符号3)画图对LCD屏操作的时候,可以只改变屏幕上一个像素点的亮、灭,这样在画图的时候,只要将组成图象的像素的点的坐标给出来,就可以一个像素一个像素地点亮,从而画出图案来3显示字符原理根据上述分析,要显示汉字或英文字母,关键是找出其在字库文件中的对应字模在字库中的偏移量1显示字母和符号计算字库偏移每个英文字母和符号有16个字节的编码(8*16点阵),在字库里,按照字母、符号的内码进行排列,每个字母、符号占据16个字节,因此,给定字母、符号的在字库里的偏移量为offset=ch*16(ch字母、符号的内码)在本实验中,程序中英文字母和符号字库文件为ascii.h,里面包含一个大数组staticunsignedcharASCII_FONT_BIT__P[],对于给定某个字符,设其内码为ch则改字符的编码在字库里的位置为adr=ASCII_FONT_BIT__P+ch*16对于程序中定义的字符charc;或者字符串char*str=“ab”其内码为unsignedintch=unsignedintcunsignedinch=unsignedintstr
[0];//a的内码unsignedinch=unsignedintstr
[1];//b的内码2显示汉字国家标准规定汉字库分94个区,每个区有94个汉字(以位作区别),每个汉字在汉字库中有确定的区和位编号,这就是汉字的区位码每个汉字在库中是以点阵字模形式存储的,一般采用16*16点阵(32字节)、24*24点阵(72字节),每个点用一个二进制位(0或1)表示,对应在屏幕上显示出来,就是相应的汉字本实验采用16*16点阵字库文件由于在中文环境下,输入的是汉字的内码,我们必须将之转换成区位码,算出偏移量,从字库中找到对应的汉字,将其字模显示即可内码转换成区位码方法如下qh=ch-0xa0(ch汉字第一个字节的内码)wh=cl-0xa0(cl汉字第二个字节的内码)其区位码就是qw=qh*0xff+wh该汉字在字库中离起点的位置是offset=qh-1*94+wh-1*32将qh、wh的值代入公式,即得offset=ch-0xa1*94+cl-0xa1*32例子若定义char*str=“你好”;则字符“你”的内码在内存中占两个字节str
[0]和str
[1],利用上述公式计算其编码在字库中的偏移可如下unsignedintchcl;ch=unsignedintstr
[0];cl=unsignedintstr
[1];offset=ch-0xa1*94+cl-0xa1*32;本实验中,汉字字符字库文件位于hzk16x
16.h中的staticunsignedcharGB2312_16X16_FONT_BIT__P[]中,因此字符在字库中的绝对位置如下char*Prt=GB2312_16X16_FONT_BIT__P+offset.
13.5代码分析本实验在tft_lcd目录下主函数执行流程如下关键函数分析ascii.h8*16英文字符字库文件hzk16x
16.h16*16汉字字库文件myTFT.c文件中的关键函数voidmyTFT_Initintvram_addrintwidthintheightintvirtual_widthintvirtual_height LCD初始化函数,vram_addr显存的起始地址,本实验中是0x33800000width LCD横向像素数,本实验中是640像素height LCD纵向像素数,本实验中是480像素virtual_width虚拟屏横向像素数,本实验中不使用虚拟屏,设为真实屏宽度像素virtual_height虚拟屏横向像素数,本实验中不使用虚拟屏,设为真实高度像素数voidmyTFT_Putpixelintxintyintcolor把x,y处的像素点点亮为color指定的颜色,请分析该函数Graphic.c文件图形函数库请实现其中的各个函数/**drawadotintheLCD*xy:coordinateofthepixeltobelightened*color:thecolorofthedot*/voiddraw_dotintxintyintcolor{}/*drawaverticalline*/voiddraw_vlineintxinty1inty2intcolor{}/*drawahorizontalline*/voiddraw_hlineintx1intx2intyintcolor{}/**start_xstart_y:coordinateofthetop-left-corneroftherectangle*end_xend_y:coordinateofthebottom-right-corneroftherectangle*/voiddraw_rectangleintstart_xintstart_yintend_xintend_yintcolor{}/**start_xstart_y:coordinateofthetop-left-corneroftherectangle*end_xend_y:coordinateofthebottom-right-corneroftherectangle*thisrectangleisfilledwithpixelswhichcoloristhesameastheframe*/voiddraw_fill_rectangleintstart_xintstart_yintend_xintend_yintcolor{}Character.c文件显示英文字符函数/**displayanasciicharacter*xy:coordinateofthestartpixel*ascii_codes:thepointerofthecharacterinthefontlib*thesizeoftheasciicharactersis8*16*color:thecolorofthecharacter*/voiddisplay_asciiunsignedintxunsignedintyunsignedchar*ascii_codesintcolor{}/**displayastringthestringcancontain*onlyasciicharacters**xy:thebeginningcoordinateofthestringtobedisplayed*0=x=39:eachlineholds80byteseachbytecontain8pixelshorizontally*0=y=14:eachlineholds32pixelsvertically**sothewholeLCDcandisplay80*30asciicharacters***color:thecolorofthestring*/voiddisplay_stringunsignedintxunsignedintychar*strintcolor{}Chinese.c文件显示汉字函数/**displayaChinesecharacter*xy:coordinateofthestartpixel*cnc_codes:thepointerofthecharactersencodeinthefontlib*thesizeoftheChinesecharactersis16*16*color:thecolorofthecharacter*/voiddisplay_cncunsignedintxunsignedintyunsignedchar*cnc_codesintcolor{}/**displayastringthestringcancontain*onlyChinesecharacters**xy:thebeginningcoordinateofthestringtobedisplayed*0=x=39:eachlineholds40chinesecharactereachcharactercontain16pixelshorizontally*0=y=19:eachlineholds20chinesecharctereachcharactercontain16pixelsvertically**sothewholeLCDcandisplay40*20chinesecharacters**color:thecolorofthestring*/voiddisplay_chineseunsignedintxunsignedintychar*strintcolor{}
13.6实验步骤
0.完成实验代码填充1.利用ADS打开实验项目,检查编译目标的汇编器、编译器、连接器等的设置请参照实验5的相关章节2.编译生成可执行映像3.利用
4.3节第3部分“利用DNW软件下载映像,并执行映像”所示方法,把产生的.bin映像文件下载到实验系统中运行4.观看LCD屏的输出实验14触摸屏编程实验
14.1实验目的
1.了解2440A触摸屏控制器的使用
2.掌握触摸屏控制电路的设计
3.掌握触摸屏编程技术
14.2实验设备
1.硬件环境实验系统,PC机器
2.软件环境DNW,ADS
14.3实验内容
1.编程实现触摸屏数据采集和触摸屏校准
2.编程实现触摸屏坐标到LCD坐标的转换
14.4实验原理
1.触摸屏介绍触摸屏是一套透明的绝对寻址系统它有两个明显特点
(1)触摸屏是透明的的定位和输入设备,而数字化仪、写字板、电梯开关等,虽然也都是轻触式操作方式,但它们都不是触摸屏
(2)触摸屏是一个以屏幕中心为原点的绝对坐标系,手指摸到哪儿就是哪儿,不需要第二个动作相比之下,鼠标则是一个相对的定位系统,当我们需要光标__到某个地方时,首先要知道现在在何处,然后往那个方向走 按照触摸屏的工作原理和传输信息的介质,触摸屏分为四种类型电阻式、电容感应式、红外线式和表面声波式电阻式触摸屏的历史最早,使用最多,而且其工作原理也极其简单在电阻式触摸屏的表面保护涂层和基层之间有两层透明导电层ITO(ITO氧化铟,弱导电体),分别对应X、Y轴,它们之间用细微透明的绝缘颗粒绝缘,触摸产生的压力会使两导电层接通,按压不同的点时,该点到输出端的电阻值也不同,因此会输出与该点位置相对应的电压__(模拟量)经A/D转换后即可获取X、Y的坐标值(下图) 后来又发展出一种电容式触摸屏,这种屏幕表面涂有透明电导层ITO,电压连接到四角,电荷分布于屏幕表面,形成均匀电场,用手触屏时,人体作为耦合电容的一极,电流从屏四角汇集形成耦合电容的另一极,通过控制器计算电流传到碰触位置的相对距离得到触摸处的坐标值 从使用角度看,电容式触控屏比电阻式触摸屏的性能更好由于轻触甚至不用接触就能感应,操作时无需尖锐的触控笔,直接用手指来操作,对屏幕表面几乎没有磨损,使用寿命更长iPhone和Su_____都使用了电容式触摸屏,我们相信,在未来的触控系统中,电容式触摸屏将会成为主流 红外触摸屏是利用X、Y方向上密布的红外线矩阵来检测操__的触摸动作的红外触摸屏在显示器的前面__了一个电路板外框,电路板在屏幕四边布置有红外发射管和红外接收管一一对应形成横竖交叉的红外线矩阵用户在触摸屏幕时,手指就会挡住经过该位置的横竖两条红外线,因而可以判断出触摸点在屏幕的位置任何触摸物体都可改变触点上的红外线而实现触摸屏操作 表面声波触摸屏的三个角分别粘贴着X、Y方向的发射和接收声波的换能器,四个边刻着反射表面超声波的反射条纹当手指或软性物体触摸屏幕,部分声波能量被吸收,于是改变了接收__,经过控制器的处理得到触摸的X、Y坐标
2.电阻式触摸屏工作原理很多LCD模块都采用了电阻式触摸屏http://___.ed-china.com/SEARCH/ART/%B5%E7%D7%E8%CA%BD%B4%A5%C3%FE%C6%C
1.HTM,这些触摸屏http://___.ed-china.com/SEARCH/ART/%B4%A5%C3%FE%C6%C
1.HTM等效于将物理位置转换为代表X、Y坐标的电压值的传感器通常有4线、5线、7线和8线触摸屏来实现触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相同表面电阻的透明阻性材料组成,五线和七线触摸屏由一个阻性层和一个导电层组成,通常还要用一种弹性材料来将两层隔开当触摸屏表面受到的压力如通过笔尖或手指进行按压足够大时,顶层与底层之间会产生接触所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压如上图所示,分压器是通过将两个电阻进行串联来实现的上面的电阻R1连接正参考电压VREF,下面的电阻R2接地两个电阻连接点处的电压测量值与下面那个电阻的阻值成正比为了在电阻式触摸屏上的特定方向测量一个坐标,需要对一个阻性层进行偏置将它的一边接VREF,另一边接地同时,将未偏置的那一层连接到一个ADC的高阻抗输入端当触摸屏上的压力足够大,使两层之间发生接触时,电阻性表面被分隔为两个电阻它们的阻值与触摸点到偏置边缘的距离成正比触摸点与接地边之间的电阻相当于分压器中下面的那个电阻因此,在未偏置层上测得的电压与触摸点到接地边之间的距离成正比四线触摸屏四线触摸屏包含两个阻性层其中一层在屏幕的左右边缘各有一条垂直总线,另一层在屏幕的底部和顶部各有一条水平总线,见图4为了在X轴方向进行测量,将左侧总线偏置为0V,右侧总线偏置为VREF将顶部或底部总线连接到ADC,当顶层和底层相接触时即可作一次测量为了在Y轴方向进行测量,将顶部总线偏置为VREF,底部总线偏置为0V将ADC输入端接左侧总线或右侧总线,当顶层与底层相接触时即可对电压进行测量图5显示了四线触摸屏在两层相接触时的简化模型对于四线触摸屏,最理想的连接方法是将偏置为VREF的总线接ADC的正参考输入端,并将设置为0V的总线接ADC的
3.S3C2440触摸屏控制器触摸屏的外接电路主要就是要控制上下两层导电层的通断情况以及如何取电压,取电压之后还需要将这个模拟量转换成数字量,这部分工作主要是靠S3C2410A芯片中的模数转换器部分来实现的即触摸屏的功能实现实际上分两部分,分别是触摸屏的外接电路部分和S3C2410A芯片自带的A/D转换控制部分S3C2410A芯片的A/D转换器有8个输入通道转换结果为10bit数字,转换的过程是在芯片的内部自动实现的,转换的结果可以直接从寄存器中取值出来,在进行一定的转后就可以得到触摸点的坐标触摸屏电路部分占用了ADC8个通道中的两个通道作为X、Y两个坐标轴方向的电压输入如下图所示,对触摸屏两个导电层的通断控制主要是通过4个外部晶体管来实现的,而这4个外部晶体管又受控于4个引脚NYPON、YMON、NXPON和XMONX、Y两个坐标轴方向的电压输入分别采用ADC的A
[7]和A
[5]两个输入通道触摸屏接口模式a.一般转换模式单独的转换模式一般使用来作为通用的ADC转换使用,这种模式可以通过初始化设置寄存器ADCCON,并且读写寄存器ADCDAT0来实现b.分别X/Y位置转换模式触摸屏控制器可以通过X/Y两个转换模式中的一个来完成,X位置模式写X位置转换数据到寄存器ADCDAT0,这时触摸屏接口产生中断源到中断控制器Y位置模式写Y位置转换数据到寄存器ADCDAT1,,这时触摸屏接口产生中断源到中断控制器c.自动X/Y位置转换模式自动X/Y位置转换模式的工作方式如下当触摸屏有触点触发时,触摸屏控制器依次转换X位置和Y位置在触摸屏控制器写X位置测试数据到寄存器ADCDAT0和写Y位置测试数据到寄存器ADCDAT1后,触摸屏接口产生中断源到中断控制器d.等待中断模式当有触摸笔按下的时候,触摸屏控制器会产生中断__(INT_TC)触摸屏控制器在等待模式时必须设置触摸屏接口XP、XM、YP、YM的状态
4.相关寄存器ADCCON――ADC控制寄存器BIT
[15]转换结果的标志位,是只读位,如果其值为0说明正处于模数转换过程中,如果其值为1,说明模数转换已经结束BIT
[14]ADC预置数分频器的使能位BIT
[136]ADC预置数分频器的分频值BIT
[53]选择通道位,选中的通道上的电压被连接到模数转换器BIT
[2]启动模式选择位BIT
[1]读ADC启动模式使能位BIT
[0]ADC启动使能位ADCTSC――ADC及触摸屏控制寄存器该寄存器主要是通过控制触摸屏的各个控制端来决定触摸屏的转换状态,使其进行坐标轴转换,或者是进入中断状态,等待触摸屏中断WhilewaitingforTouchscreenInterruptXP_SENbitshouldbesetto‘1’XPOutputdisableADCDAT0――ADC会话数据寄存器0BIT
[15]中断引脚状态标志位BIT
[1312]自动/手动转换顺序选择标志位BIT
[1110]状态选择标志位BIT
[90]转换结果位ADCDAT1――ADC会话数据寄存器1注意ADCDAT0和ADCDAT1是只读的寄存器,其中的控制位都是标志位和结果位ADCUPDN――触摸屏UP-DOWN中断状态寄存器ADCDLY――ADC等待寄存器注意BeforeADCconversionTouchscreenusesX-talclock
3.68MHz.DuringADCconversion__LK__x.50MHzisused
5.EMDK3000中触摸屏接口电路及编程1电路原理图引脚与EMDK3000实验板触摸屏的对应关系2获取触摸点X、Y采样值的方法见课堂PPT
14.5代码分析本实验程序执行流程如下所示相关实验代码见touchscreen目录下的程序
14.6实验步骤1.利用ADS打开实验项目,检查编译目标的汇编器、编译器、连接器等的设置请参照实验5的相关章节2.编译生成可执行映像3.利用
4.3节第3部分“利用DNW软件下载映像,并执行映像”所示方法,把产生的.bin映像文件下载到实验系统中运行4.按下触摸屏并保持,观看DNW中的输出;抬起手指,观看DNW中的输出;
14.7课后作业请编程实现如下功能程序当有笔__触摸屏时,通过 LCD在触摸点出画一个红色十字架,十字架大小自定R5~R0G5~G0B5~B0XPYMYPXM。