LCD显示的触摸屏控制器的制作

合集下载

触控显示设备的制作流程

触控显示设备的制作流程

图片简介:本技术公开一种触控显示装置,其包括第一及第二基板与夹设其间的液晶层。

第一基板有第一及第二表面。

第二表面上有多个开口区及环绕开口区的非开口区,还有黑色矩阵层、彩色滤光层、保护层、触控电极层、第一平坦层、图案化视角控制透明电极层及第二平坦层。

图案化视角控制透明电极层有多个控制电极部、多个第一及第二连接电极部,控制电极部对应开口区设置,第一连接电极部对应非开口区沿第一方向设置并连接控制电极部,且第二连接电极部对应非开口区沿第二方向设置并连接第一连接电极部。

第二基板朝向第二表面的一侧上有像素电极、绝缘层及共通电极。

技术要求1.一种触控显示装置,包括:第一基板,具有第一表面及第二表面,其中该第二表面上设有多个开口区及一非开口区,且该非开口区环绕该多个开口区设置,该第一基板包括:黑色矩阵层,对应该非开口区设置于该第一基板的该第二表面上;彩色滤光层,设置于该第一基板的该第二表面上;保护层,覆盖该黑色矩阵层及该第一基板的该第二表面;触控电极层,对应该非开口区设置于该保护层上;第一平坦层,覆盖该保护层及该触控电极层,其中该触控电极层设置于该保护层以及该第一平坦层之间;图案化视角控制透明电极层,设置于该第一平坦层上,该图案化视角控制透明电极层具有多个控制电极部、多条第一连接电极部及多条第二连接电极部,其中该多个控制电极部对应该多个开口区设置,该多个第一连接电极部对应该非开口区沿一第一方向延伸设置并电连接该多个控制电极部,且该多个第二连接电极部对应该非开口区沿一第二方向延伸设置并电连接该多个第一连接电极部;以及第二平坦层,设置于该图案化视角控制透明电极层上;第二基板,与该第一基板的第二表面相对设置,其中该第二基板包括像素电极层、绝缘层及共通电极层设置于该第二基板邻近该第一基板的第二表面的一侧上,且该绝缘层设置于该像素电极与该共通电极之间;以及液晶层,设置于该第一基板的该第二平坦层与该第二基板之间。

2.如权利要求1所述的触控显示装置,其中该彩色滤光层设置于该黑色矩阵以及该保护层之间。

液晶控制模块的制作

液晶控制模块的制作

Part One
液晶控制模块的概 述
液晶控制模块的定义
液晶控制模块是一种用于控制液晶显示器的电子设备 主要功能包括:显示图像、文字、视频等 由液晶面板、驱动电路、控制电路等部分组成 广泛应用于各种电子设备,如手机、电脑、电视等
液晶控制模块的应用
家电领域:如电视、冰箱、洗衣机等 通信设备:如手机、平板电脑等 汽车电子:如车载导航、仪表盘等 工业控制:如自动化生产线、机器人等
液晶控制模块的制作
,a click to unlimited possibilities
汇报人:
目录
01 液 晶 控 制 模 块 的 概 述
03 液 晶 控 制 模 块 的 制
作流程
05 液 晶 控 制 模 块 的 未
来发展
02 液 晶 控 制 模 块 的 组 成
04 液 晶 控 制 模 块 的 制 作难点与注意事项
Part Five
液晶控制模块的未 来发展
技术创新方向
智能化:实现人机交互,提高用户体验 节能环保:降低功耗,减少对环境的影响 集成化:将多个功能集成到一个模块中,提高效率 模块化:模块化设计,便于维护和升级
市场发展趋势
智能化:随着 人工智能技术 的发展,液晶 控制模块将更 加智能化,能 够更好地满足
Part Two
液晶控制模块的组 成
液晶显示模块
液晶面板:显 示图像和文字
的主要部件
背光源:提供 背光,使液晶 面板能够正常
显示
驱动电路:控 制液晶面板的 显示效果和亮

控制电路:接 收和处理来自 外部的信号, 控制液晶面板
的显示内容
控制电路
信号处理:接收和处理来自 外部的信号

触屏显示一体机的控制系统的制作流程

触屏显示一体机的控制系统的制作流程

图片简介:本技术介绍了触屏显示一体机的控制系统,包括一体机主体、与一体机主体电性连接的控制器模块、设于一体机主体上用以识别用户身份的用户身份识别模块、设于一体机主体上用以识别管理人身份的管理人身份识别模块、设于一体机主体上用以驱动一体机主体移动的移动驱动模块和设于一体机主体上用以驱动一体机主体升降的升降驱动模块,且所述用户身份识别模块、管理人身份识别模块、升降驱动模块、移动驱动模块均与控制器模块电性连接,本技术能方便用户以及管理人员控制一体机主体进行升降和移动,确保一体机主体使用起来比较方便。

技术要求1.触屏显示一体机的控制系统,其特征在于,包括一体机主体、与一体机主体电性连接的控制器模块、设于一体机主体上用以识别用户身份的用户身份识别模块、设于一体机主体上用以识别管理人身份的管理人身份识别模块、设于一体机主体上用以驱动一体机主体移动的移动驱动模块和设于一体机主体上用以驱动一体机主体升降的升降驱动模块,且所述用户身份识别模块、管理人身份识别模块、升降驱动模块、移动驱动模块均与控制器模块电性连接。

2.根据权利要求1所述的触屏显示一体机的控制系统,其特征在于,所述用户身份识别模块采用卡片识别装置/人脸识别装置/条形码识别装置。

3.根据权利要求1所述的触屏显示一体机的控制系统,其特征在于,所述管理人控制模块采用员工卡识别装置/密码输入装置。

4.根据权利要求1所述的触屏显示一体机的控制系统,其特征在于,所述升降驱动模块具体为电动缸装置,且电动缸装置固设在一体机主体与移动驱动模块的中间。

5.根据权利要求1所述的触屏显示一体机的控制系统,其特征在于,所述移动驱动模块具体采用智能行走小车,所述智能行走小车与电动缸装置固定。

6.根据权利要求1所述的触屏显示一体机的控制系统,其特征在于,所述一体机主体上设有数据交换器,且数据交换器用以与管理人终端通过通过APP软件建立通讯连接。

技术说明书触屏显示一体机的控制系统技术领域本技术涉及智能设备技术领域,尤其涉及触屏显示一体机的控制系统。

液晶触摸屏控制系统设计5.12

液晶触摸屏控制系统设计5.12

南阳理工学院本科生毕业设计(论文)学院(系):电子与电气工程系专业:电子科学与技术学生:杨重良指导教师:胡冬梅完成日期 2014 年 5 月南阳理工学院本科生毕业设计(论文)液晶触摸屏控制系统设计Design of The LCD Touch Screen Control System总计:毕业设计(论文)22页表格: 1 个插图: 15 幅南阳理工学院本科毕业设计(论文)液晶触摸屏控制系统设计Design of The LCD Touch Screen Control System学院(系):电子与电气工程系专业:电子科学与技术学生姓名:杨重良学号:105090840008指导教师(职称):石明吉(副教授)评阅教师:完成日期:南阳理工学院Nanyang Institute of Technology液晶触摸屏控制系统设计电子科学与技术专业杨重良[摘要]触摸屏控制系统的原理是从触摸点检测装置上接收触摸信息,并将它转换为触点坐标发送给CPU,它同时能接受CPU发来的命令并加以执行。

本课题控制设计是基于单片机80C51,通过数字电位器X9221的串行通信来实现触摸控制音量的加减以及液晶显示。

本文阐述了触摸屏控制单元、LCD液晶显示单元和数字电位器控制单元三大模快的设计,对编码程序也做了设计说明。

通过最终验证分析,实现了液晶显示以及触摸控制音量大小的精准性要求。

[关键词] 触摸屏;数字电位器;串行通信;单片机;Design of The LCD Touch Screen Control SystemElectronic Science and Technology Specialty Yang Zhong-liang Abstract: Principle touch screen control system is to receive information from the touch point touch detection device, and convert it to contact coordinates sent to CPU, it also can accept the command sent to the CPU and executed. This paper is based on single-chip control design 80C51, via serial communication X9221 digital potentiometer to achieve a touch volume control and LCD subtraction. This paper describes the touch screen control unit, LCD liquid crystal display unit and the control unit of the three digital potentiometer die quickly design, coding procedures also done a design specification. By the final validation analysis, to achieve the required precision LCD and touch to control the volume size.Key words:Touch screen; digital potentiometer ; SCM ;singlechip目录1 引言 (1)1.1 本课题研究的目的及意义 (1)1.2 本课题国内外研究现状 (1)1.3 本课题的主要研究工作 (1)2 系统工作原理及结构流程 (2)2.1 系统工作原理 (2)2.2 工作流程 (2)3 LCD液晶显示单元 (4)3.1 LCD液晶显示模块概述 (4)3.2 液晶驱动电源模块的设计 (6)3.3 液晶显示接口电路设计 (7)3.4 液晶显示控制程序设计 (8)4 触摸屏控制单元设计 (10)4.1 触摸屏的选择 (11)4.2 电阻式触摸屏的测量原理 (11)4.3 电阻式触摸屏与液晶屏的坐标转换 (12)4.4 触摸屏控制设计 (13)4.4.1 触摸屏控制芯片 (13)4.4.2 触摸屏控制单元电路设计 (13)4.4.3 触摸屏控制单元程序流程图 (14)5 数字电位器控制单元 (14)5.1 数字电位器的通信设计 (15)5.1.1 串行总线和串行接口 (15)5.1.2 数字电位器的指令结构 (16)5.2 数字电位器控制单元电路设计 (18)5.3 数字电位器控制单元程序设计 (19)6 总结与展望 (20)参考文献 (21)致谢 (22)1 引言1.1 本课题研究的目的及意义传统个人计算机或工作站的输入界面有其先天上的限制,无法达到快速传递与交换信息的目的,其原因是必须使用键盘或鼠标来促成人与计算机之间的沟通,这项输入设备对不具备计算机操作技巧的人来说是项严重的进入障碍,这将使信息交流的目的大打折扣。

LCD控制器的设计和实现

LCD控制器的设计和实现

LCD控制器的设计和实现1. 引言随着液晶技术的日益成熟,液晶显示器在显示技术中得到了越来越广泛的应用.当前LCD 显示技术已经成为新一代平板技术显示技术的主流.LCD 显示屏幕主要包括液晶屏幕,驱动电路以及控制驱动电路的系统。

我们设计的LCD 控制器主要是用来控制RGB 模式的数据以及MCU 模式的命令,参数的传输,实现LCD 的控制功能. RGB 模式主要有16bit 输入,16bit 输出; 16bit 输入, 18bit 输出; 18bit 输入,16bit 输出;18bit 输入,18bit 输出;4 种模式的传输。

本文就LCD 的驱动进行分析,介绍,提出硬件电路的设计以及验证方法。

2. LCD 驱动器的介绍2.1 整体结构LCD 的控制系统是采用ARM 公司的ARM926EJ-S,根据需求通过APB 总线来控制LCD 驱动电路的寄存器并设置相应的值,从而驱动LCD 的显示屏幕。

根据LCD 显示屏的需求,LCD 的驱动电路设计了2 种接口模式:RGB 和MCU。

RGB 在传输时,采用的同步方式,由LCD 驱动电路产生象素时钟,处理数据的速度比较快,多用于同步通信中。

MCU 在传输时采用的是异步处理方式,处理数据的速度相比RGB 而言要慢一些。

500)this.style.width=500;”border=“0” />2.2 驱动器的内部结构LCD 驱动电路的内部如图2 所示,APB 总线是由ARM 系统输出的控制信号线来配置整个LCD 驱动电路的寄存器,实现输出信号的控制。

IRQ 和ACK 等几根信号是跟DMA 相连的,主要是中断的产生及清楚,如一帧发送完毕,FIFO 里面数据为空,都会产生中断信号。

FIFO 主要用来存储并转发数据,由于ARM 的时钟在频率上要比LCD 驱动的时钟信号快很多。

FIFO 就先把ARM 写的数据存储起来.然后再根据LCD 驱动的要求把数据转发出去。

单片机实验——LCD的驱动控制及触屏驱动实验

单片机实验——LCD的驱动控制及触屏驱动实验

单片机实验——LCD的驱动控制及触屏驱动实验浙江大学城市学院实验报告课程名称:嵌入式操作系统实验实验名称:LCD的驱动控制及触屏驱动实验学生姓名:黄丽平专业:电科1201 学号:31202417同组学生姓名:范易宵31202425 郭琪琛31202428指导老师:朱胜成绩:一、实验目的1.了解LCD基本概念与原理。

2.理解LCD的驱动控制。

3.熟悉用总线方式驱动LCD模块。

4.熟悉用ARM内置的LCD控制器驱动LCD。

5.了解触屏基本概念与原理。

6.理解触摸屏与LCD的密切配合。

7.编程实现对触摸屏的控制。

二、实验内容学习LCD显示器的基本原理,理解其驱动控制方法。

掌握两种LCD驱动方式的基本原理和方法。

并用编程实现;1.用总线方式直接驱动带有驱动模块的LCD。

2.用ARM内置的LCD控制器驱动LCD。

3.学习触摸屏的基本原理,理解对触摸屏进行输出的标定、与LCD显示器配合的过程。

三、实验设备1.硬件:ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上。

2.软件:PC操作系统WIN2000或WINXP、ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

四、实验步骤1.新建工程,将“LCD的驱动控制实验”中的文件添加到工程中,这些是启动时所需要的文件。

2.修改程序,使其实现以下功能:(1)将LCD分为三块,分别显示三种颜色(2)将LCD分为四块田字型,分别显示四种颜色(3)设计清屏程序(4)显示圆环(5)显示正弦函数(6)创意设计3.修改组合程序,实现以下功能:(1)使坐标原点改为左下角(2)改变分辨率(3)在触摸屏上单击,以单击位置为原点画一个圆(4)在触摸屏上点两次,以第一次点为圆心,两点间距离为半径画圆分三块程序:#include "44b.h"#include"uhal.h"#include "option.h"#include"def.h"#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting extern U32 LCDBuffer[240][320];int main(void){int i,j,k;U32 jcolor;ARMTargetInit(); //开发版初始化LCD_Init(); //LCD初始化for (i=0;i<3;i++){ switch (i){ case 0: jcolor=0x000000e0;break;case 1: jcolor=0x0000d0e0;break;case 2: jcolor=0x00e000e0;break;}for (k=0;k<240;k++)for (j=i*107;j<i*107+107;j++)< p=""> LCDBuffer[k][j]=jcolor;}//jcolor=0x000000ff;//for (i=0;i<240;i++)// {if (i==80||i==160)// jcolor<<=8;//for (j=288;j<320;j++)// LCDBuffer[i][j]=jcolor;// }LCD_Refresh() ;while(1);return 0;}分四块主程序:int main(void){int i,j,k;U32 jcolor;ARMTargetInit(); //开发版初始化LCD_Init(); //LCD初始化//jcolor=0x000000ff;for (i=0;i<240;i++){if(i<=120){for(j=0;j<160;j++)LCDBuffer[i][j]=0x0000000e0;for(j=160;j<320;j++)LCDBuffer[i][j]=0x000e000e0;}if(i>=120){for(j=0;j<160;j++)LCDBuffer[i][j]=0x000e0e0e0;for(j=160;j<320;j++)LCDBuffer[i][j]=0x00000d0e0;}}LCD_Refresh() ;while(1);return 0;}清屏程序:int i,j,k;void LCD_change(u32 a){for (k=0;k<240;k++){ for (j=0;j<320;j++)LCDBuffer[k][j]=a;}}圆环程序:void LCD_yuan(int x,int y,int r0,int r1,u32 color){for (k=0;k<240;k++){ for (j=0;j<320;j++)if(sqrt((j-x)*(j-x)+(k-y)*(k-y))<=r1&&sqrt((j-x)*(j-x)+(k-y)*(k-y))>=r0){LCDBuffer[k][j]=color;}}LCD_Refresh() ;}正弦函数程序(未完成):void LCD_sin(u32 color){for (k=0;k<240;k++){ for (j=0;j<320;j++)if(20*sin(j*100)<=(k-120)){LCDBuffer[k][j]=color;}}LCD_Refresh() ;}单击画圆程序:void LCD_yuan(int r0,u32 color){int x;int y;int i,j,k;U32 mode;for(;;){mode=TchScr_GetOSXY(&x, &y);if(mode==TCHSCR_ACTION_CLICK) {for (k=0;k<240;k++){for (j=0;j<320;j++)if(sqrt((j-x)*(j-x)+(k-y)*(k-y))<=r0) {LCDBuffer[k][j]=color;}}LCD_Refresh();}Delay(10000);}}点两个点画圆程序:void LCD_yuan2(u32 color){int x1,x2,y1,y2,x,y;int i,j,k;U32 mode1,mode2;for(;;){mode1=TchScr_GetOSXY(&x, &y); x1=x;y1=y;Delay(3);mode2=TchScr_GetOSXY(&x, &y);x2=x;y2=y;if(mode1==TCHSCR_ACTION_CLICK&&mode2==TCHSCR_ ACTION_CLICK) {for (k=0;k<240;k++){for (j=0;j<320;j++)if(sqrt((j-x1)*(j-x1)+(k-y1)*(k-y1))<=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))){LCDBuffer[k][j]=color;}}LCD_Refresh();</i*107+107;j++)<>。

基于单片机的液晶显示触摸屏控制设计

基于单片机的液晶显示触摸屏控制设计

基于单片机的液晶显示触摸屏控制设计来源:大比特半导体器件网摘要:在分析液晶触摸屏的工作原理基础上,分析触摸屏专用控制器ADS7846 的工作原理与控制方式。

通过ADS7846 与MCU 的SPI 接口,给出AT89S51 的测量子程序流程图,提出触摸屏触点坐标的获得方法与液晶屏显示实现同步的算法,以提高设计触摸屏与液晶屏的效率,满足控制精度。

1 引言嵌入式触摸屏装置是人机交互设备,一般将触摸屏安装在液晶显示屏上面,利用微处理器对触摸屏与液晶显示屏进行控制,实现触摸屏对液晶显示屏的控制,方便、直观,取代了传统的键盘输入,成为嵌入式计算机系统的输入设备,广泛应用于电子产品与工业控制中。

由于触摸屏边缘电阻不均匀,不易找到变化规律,难于实现触摸屏坐标与点阵式液晶显示屏相互对应,会出现触摸点与液晶显示屏显示信息错位,造成触摸控制信息不灵敏。

本文基于AT89C51 单片机和ADS7846芯片,辅以点阵式液晶显示屏,进行嵌入式触摸屏输入与显示系统的软硬件设计,实现触点测量与液晶屏上像素相对应,实现预期的控制功能,提高触摸控制的灵敏度。

2 液晶显示触摸屏的硬件设计液晶触摸屏包含图形液晶显示模块和附着在显示屏上的触摸屏两部分,借助于触摸屏控制器ADS7846 与微处理器A T89S51 实现软硬件接口,通过检测用户在触摸屏上的触摸位置,实现显示与控制功能。

2. 1 触摸屏的工作原理触摸屏从工作原理上可以分为电阻式、电容式、红外线式、声表面波式、矢量压力传感器式等多种形式,本文采用目前使用最为普遍的四线电阻式触摸屏。

电阻式触摸屏由4 层透明的复合薄膜组成,底层是玻璃或有机玻璃构成的基层,顶层则是经过硬化处理的光滑防刮塑料层,底层、顶层内表面间为两层铟锡氧化物( ITO) 透明导电层,形成触摸屏的两个工作面,在每个工作面的两端各涂有一条银胶,称为该工作面的一对电极,若在一个工作面的电极对上施加电压,则在该工作面上就会形成均匀连续的平行电压分布。

具有触摸屏的LCD液晶显示模组以及移动终端的制作流程

具有触摸屏的LCD液晶显示模组以及移动终端的制作流程

本技术公开了一种具有触摸屏的LCD液晶显示模组,该显示模组包括一外框、以及设置于外框内且依次叠层设置的背框、背光模组、LCD显示屏和触摸屏;其中,所述LCD显示屏与触摸屏通过泡棉胶粘接在一起,所述泡棉胶放置于外框的台阶面以及背框的侧壁上,所述泡棉胶的一端延伸至所述LCD显示屏上;其中,所述泡棉胶上,沿着外框的长度方向上依次开设有多个切口,该些切口位于所述背框的侧壁上方。

该LCD液晶显示模组既保持了现有技术中整机厚度减薄、成本低廉、售后维修方便等优点,又具有良好的抗静电性能。

权利要求书1.一种具有触摸屏的LCD液晶显示模组,该显示模组包括一外框、以及设置于外框内且依次叠层设置的背框、背光模组、LCD显示屏和触摸屏;其中,所述LCD显示屏与触摸屏通过泡棉胶粘接在一起,所述泡棉胶放置于外框的台阶面以及背框的侧壁上,所述泡棉胶的一端延伸至所述LCD显示屏上;其特征在于,所述泡棉胶上,沿着外框的长度方向上依次开设有多个切口,该些切口位于所述背框的侧壁上方;其中,所述切口的形状为方形,其长度为5mm±0.5mm,宽度为0.5mm±0.15mm;相邻两个切口的间距不大于所述泡棉胶的宽度。

2.根据权利要求1所述的具有触摸屏的LCD液晶显示模组,其特征在于,所述背框的材料为金属材料。

3.根据权利要求1所述的具有触摸屏的LCD液晶显示模组,其特征在于,所述背光模组的光源为LED光源。

4.一种移动终端,其特征在于,包括如权利要求1-3任一所述的具有触摸屏的LCD液晶显示模组。

5.根据权利要求4所述的移动终端,其特征在于,该移动终端为智能手机或平板电脑。

技术说明书具有触摸屏的LCD液晶显示模组以及移动终端技术领域本技术涉及电子设备领域,尤其涉及一种具有触摸屏的LCD液晶显示模组以及移动终端。

背景技术随着社会的发展手机、平板电脑等移动终端已经成为人们生活和工作中不可或缺的一部分。

同时,由于技术的进步以及移动终端的普及,人们对此类移动终端的要求也越来越高。

miniSTM32F103开发版LCD显示实验和触摸屏实验文档[1]

miniSTM32F103开发版LCD显示实验和触摸屏实验文档[1]

16.1 TFTLCD 简介
本章我们将通过 STM32 的普通 IO 口模拟 8080 总线来控制 TFTLCD 的显示。TFT-LCD 即 薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄 膜晶体管(TFT) ,可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关, 因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。 上一章介绍了 OLED 模块,本章,我们给大家介绍 ALIENTEK TFTLCD 模块,该模块有 如下特点: 1,2.4’/2.8’/3.5’/4.3’/7’ 5 种大小的屏幕可选。 2,320×240 的分辨率(3.5’分辨率为:320*480,4.3’和 7’分辨率为:800*480) 。 3,16 位真彩显示。 4,自带触摸屏,可以用来作为控制输入。 本章,我们以 2.8 寸的 ALIENTEK TFTLCD 模块为例介绍,该模块支持 65K 色显示,显示 分辨率为 320×240,接口为 16 位的 80 并口,自带触摸屏。 该模块的外观图如图 16.1.1 所示:
各位描述 HEX RS WR D15~D8 D7 D6 D5 D4 D3 D2 D1 D0 指令 0 ↑ XX 0 0 1 0 1 0 1 0 2AH 参数 1 1 ↑ XX SC15 SC14 SC13 SC12 SC11 SC10 SC9 SC8 SC 参数 2 1 ↑ XX SC7 SC6 SC5 SC4 SC3 SC2 SC1 SC0 参数 3 1 ↑ XX EC15 EC14 EC13 EC12 EC11 EC10 EC9 EC8 EC 参数 4 1 ↑ XX EC7 EC6 EC5 EC4 EC3 EC2 EC1 EC0 表 16.1.4 0X2A 指令描述 在默认扫描方式时, 该指令用于设置 x 坐标, 该指令带有 4 个参数, 实际上是 2 个坐标值: SC 和 EC,即列地址的起始值和结束值,SC 必须小于等于 EC,且 0≤SC/EC≤239。一般在设 置 x 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SC 即可,因为如果 EC 没有变化, 我们只需要设置一次即可(在初始化 ILI9341 的时候设置) ,从而提高速度。 与 0X2A 指令类似,指令:0X2B,是页地址设置指令,在从左到右,从上到下的扫描方式 (默认)下面,该指令用于设置纵坐标(y 坐标) 。该指令如表 16.1.5 所示: 顺序

LCD显示控制器原理

LCD显示控制器原理

754
658
图3 行同步状态机状态转移图
Timing implementation
场同步状态机有v_video,v_front,v_sync, v_back四 种状态,它根据场行数计数器的计数值来进行状态翻转。
494
492
图5 场同步状态机状态转移图
Frame memory module
帧存控制模块原理如图5所示。
--- 翁开胜
content
1 LCD introduction 2 Controller principle 3 Controller module 4 Experiment
LCD introduction
LCD (Liquid Crystal Display) ,即液晶显示器。 可分为被动矩阵式及主动矩阵式两种不同的控制方 式。主动矩阵式也称TFT(Thin Film Transistor)。
帧存控制模块实现2个显存的“乒乓”切换,当DSP向其 中一个显存写显示信息时,由FPGA构成的帧存控制模块将 另一个显存的控制权交给LCD显示控制器图像处理模块,反 之亦然。
DSP访问显存的地址总线与FPGA 内LCD 显示控制器 图像处理模块的地址总线之间的切换通过多路选择器MUX 实现, DSP的数据总线与LCD显示控制器图像处理模块的数 据总线通过三态门挂在显存SRAM的数据总线上, 2路数据 总线的切换由切换信号SEL控制。
图2 VGA(640X480,60Hz)图像格式信号时序图
Timing implementation
VGA时序信号模块包括行点数计数器h_cnt、场行数计数器 v_cnt、行同步产生状态机h_state和场同步产生状态机v_state 等。行同步状态机有 h_video,h_front,h_sync,h_back四 种状态。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LCD显示的触摸屏控制器的制作1.问题的引入现代社会随着信息及电子设备产品市场的迅速壮大,以及人们对电子产品智能化、人性化要求的不断提高,触摸屏作为一种便捷的输入接口,得到了广泛的应用。

现在市面上已有的触摸屏控制器普遍价格比较高且性能相对比较固定,一些场合下无法满足用户的实际需求。

基于这些原因,我们设计并制作了最基本的基于51单片机的触摸屏控制器。

为了更好的学习51单片机,在制作控制器时,我们尽量的驱动了更多的外围模块。

使用12864液晶及LED数码管动态扫描作为显示模块;AT24C02作为掉电保护存储模块;4*4矩阵键盘作为输入控制模块。

2.方法的研究2.1系统总设计方案图:系统的总设计方案图如图1所示。

2.2主要模块的设计:2.2.1 51单片机采用89C52作为单片机控制芯片。

89C52有8K程序存储器,256字节数据存储器,32条I/O口线,2个可编程定时/计数器,5个中断源,2个优先级,一个全双工串行通信口,片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。

最高振荡频率为12M。

2.2.212864液晶12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。

我们采用并行的方式传输数据,接口的时序如图所示:MPU写资料到模块MPU从模块读出资料按照其时序可编程实现,12864液晶的显示。

还应当注意汉字显示的坐标:2.2.3 XPT2046触摸屏控制芯片XPT2046内部有一个由多个模拟开关组成的供电测量电路网络和12位的A/D转换。

XPT2046根据微控制器发来的不同测量命令导通不同的模拟开关,以便向工作面电极对提供电压,并把相应测量电极上的触点坐标位置所对应的电压模拟量引入A/D 转换器。

我们采用的是差动控制模式,可根据XPT2046芯片的典型电路和时序图进行电路的连接和软件的编程控制。

系统总设计方案图:信息采集、A/D转换触屏信号控制核心信息处理信息显示图1 系统总设计方案图输入控制3.算法的实现3.1 电路原理图3.2程序流程图4.程序设计及运行结果4.1程序的设计见附录14.2运行结果:5.结果分析与设计体会5.1结果分析实现了触摸屏控制器的基本功能。

即在触摸屏上点击一点,将在12864液晶上显示该点的X,Y坐标(为量化了的坐标,范围在0到100之间),数码管上也将动态扫描显示该坐标值。

在触摸屏上点击若干次,将存储以前点击的14次坐标值。

当按动1到14号按键时,将在12864液晶及数码管上显示相应的14次坐标值(是前14次记录的坐标值)。

当按动第15号按键时将显示点击的次数(掉电后仍然存在)。

当按动第16号按键时,当前坐标值、存储坐标的数组及点击次数将清零,液晶将显示“系统复位!”要实现触摸屏更复杂的功能,需要更进一步地进行设计。

5.2设计体会学习了单片机的基本原理,收获了不少东西,但是只是学习书本上的东西是远远不够的,要不断地实践,多做实验,调通单片机外围电路最基本的模块,这样才能够学好。

不仅如此,还要学会设计单片机的外围电路,学会使用画图软件,画出电路板,这样才能够学有所获。

在制作该触摸屏控制器时,也让我知道了单独调通单片机的每个模块不是很难,但是同时进行多个模块设计时,编程的结果不一定能在实际中正确地调试出来。

实际的结果和自己想象的理想结果有一定的差距,所以要多多编写程序,注意编程和程序调试时的一些技巧。

通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

设计结果能够符合题意,们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。

同时在具体的制作过程中我发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题,这让我们无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大。

通过这次实践使我更深刻的体会到了理论联系实际的重要性,我们在今后的学习工作中会更加的注重实际,避免称为只会纸上谈兵的赵括。

总之,这次单片机课程的设计让我受益匪浅,以后我会更加注重自己的实践能力。

附录:1.程序的设计:#include<reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar b,c,d,i,a1,a2,bai,shi,ge,bai1,shi1,ge1;uint ADS_Y,ADS_X;sbit PEN=P1^7; //XPT2046引脚sbit DCLK=P1^3;sbit CS=P1^4;sbit DIN=P1^5;sbit DOUT=P1^6;sbit scl=P1^1; //AT24C02引脚sbit sda=P1^2;sbit wp=P1^0;sbit rs=P2^4; //12864引脚sbit rw=P2^5;sbit en=P2^6;uchar code table_led[]={//数码管编码表0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3f};/uchar cunchushu1[15]={0};uchar cunchushu2[15]={0};uchar table_12864[]={0x58,0x3a,0,0,0,0x20,0x20,0x59,0x3a,0,0,0};//12864显示{X: Y: };uchar code table_wenzi1[]={"触摸屏坐标:"};//12864显示文字各种情况uchar code table_wenzi2[]={"触摸屏点击次数:"};uchar code table_wenzi3[]={"系统复位! "};uchar table_wenzi4[]={"触摸屏历史记录"};uchar table_wenzi5[]={" "};uchar table_wenzi6[]={" "};//子函数的申明uchar keyscan1(void);uchar keyscan();void delay(uint x);void led_display();void delay_10us(void);init_A T24C();start();stop();void delay_50us(uint);write(uchar);uchar read();respon();norespon();write1(uchar,uchar);uchar read1(uchar);write_com(uchar);write_date(uchar);display_12864();init_12864();display_wenzi1();display_wenzi2();display_wenzi3();display_wenzi4();display_wenzi5();display_wenzi6();void Write_2046(uchar);uint Read_2046();void XPT2046();init_bianliang()//初始化变量{bai=shi=ge=bai1=shi1=ge1=0;b=c=d=a1=a2=i=0;for(i=0;i<15;i++){cunchushu1[i]=0;}for(i=0;i<15;i++){cunchushu2[i]=0;}wp=0;table_12864[2]=0x30;table_12864[3]=0x30;table_12864[4]=0x30;table_12864[9]=0x30;table_12864[10]=0x30;table_12864[11]=0x30;ADS_X=0;ADS_Y=0;}main(){ init_12864();init_bianliang();display_wenzi1();//第一行显示"触摸屏坐标:"display_12864(); //第三行显示"X: Y: "XPT2046();while(1){if(b==1)//触摸屏是否有新的点击(是否有笔中断){ b=0;//如果有则进行数据处理,得到在12864和bai=ADS_X/100;//数码管上显示的数据bai1=ADS_Y/100;table_12864[2]=bai+0x30;table_12864[9]=bai1+0x30;shi=ADS_X%100/10;shi1=ADS_Y%100/10;table_12864[3]=shi+0x30;table_12864[10]=shi1+0x30;ge=ADS_X%10;ge1=ADS_Y%10;table_12864[4]=ge+0x30;table_12864[11]=ge1+0x30;display_12864();}led_display();//进行数码管上的动态扫描显示if(PEN==0) //是否有触摸屏的点击(是否有笔中断){ XPT2046();//如果有,则控制XPT2046b=1; //进行电压的模数转换,ADS_X/=40;//得到横纵坐标的数字电压,并进行处理ADS_Y/=40;//得到横纵坐标值cunchushu1[0]=ADS_X;for(i=14;i>0;i--){cunchushu1[i]=cunchushu1[i-1];} //将处理的横纵坐标值存储到数组中cunchushu2[0]=ADS_Y;for(i=14;i>0;i--){cunchushu2[i]=cunchushu2[i-1];}a1=1;while(PEN==0);//等待笔触中断结束}d=keyscan();//进行键盘扫描if(d!=0){ if((d!=15)&&(d!=16))//按下1到14号键在{ADS_X=cunchushu1[d];//12864和数码管上分别显示ADS_Y=cunchushu2[d]; //以往14次记录的点击坐标值display_wenzi4();}b=1;if(d==15) //按下15号键显示点击的次数{a2=read1(2); display_wenzi2();display_wenzi6();bai1=bai=a2/100;shi1=shi=a2%100/10;ge1=ge=a2%10;b=0;}if(d==16) //按下16号键,进行系统复位{ a2=0; //即12864显示系统复位wp=0; //数码管显示的值为零write1(2,a2); //将存储下来的14次记录值清零wp=1; //将存放在24C02中的点击次数值清零for(i=0;i<15;i++){cunchushu1[i]=0;cunchushu2[i]=0;}display_wenzi3();display_wenzi5();bai=0;shi=0;ge=0;bai1=0;shi1=0;ge1=0;b=0;}}if(a1==1) //将点击次数存储到AT24C02{a1=0;a2=read1(2);a2++;wp=0;write1(2,a2);wp=1;display_wenzi1();}}}void led_display()//数码管动态扫描显示子程序{ P2=0x89;P0=table_led[bai];delay(2);P2=0x8a;P0=table_led[shi];delay(2);P2=0x8b;P0=table_led[ge];delay(2);P2=0x8d;P0=table_led[bai1];delay(2);P2=0x8e;P0=table_led[shi1];delay(2);P2=0x8f;P0=table_led[ge1];delay(2);}uchar keyscan()//键盘子函数{uchar key;key=keyscan1(); //调用键盘扫描,switch(key) // 按下相应的键显示相对应的码值{case 0x7e:c=4;break;case 0x7d:c=8;break;case 0x7b:c=12;break;case 0x77:c=16;break;case 0xbe:c=3;break;case 0xbd:c=7;break;case 0xbb:c=11;break;case 0xb7:c=15;break;case 0xde:c=2;break;case 0xdd:c=6;break;case 0xdb:c=10;break;case 0xd7:c=14;break;case 0xee:c=1;break;case 0xed:c=5;break;case 0xeb:c=9;break; case 0xe7:c=13;break;case 0xff:c=0;break; }return c;}uchar keyscan1(void) //键盘扫描函数,使用行列反转扫描法{uchar cord_h,cord_l;//行列值中间变量P3=0x0f; //行线输出全为0cord_h=P3&0x0f; //读入列线值if(cord_h!=0x0f) //先检测有无按键按下{ cord_h=P3&0x0f; //读入列线值P3=cord_h|0xf0; //输出当前列线值cord_l=P3&0xf0; //读入行线值return(cord_h+cord_l);//键盘最后组合码值}return(0xff); //返回该值}//延时子函数void delay(uint x){ unsigned char a,b,c;for(;x>0;x--){for(c=1;c>0;c--)for(b=142;b>0;b--)for(a=2;a>0;a--);}}void delay_50us(uint x){ for(;x>0;x--){unsigned char a,b;for(b=1;b>0;b--)for(a=22;a>0;a--);}}void delay_10us(void) //误差0us{ unsigned char a,b;for(b=1;b>0;b--)for(a=2;a>0;a--);}//AT24C02子程序I2C时序write1(uchar add,uchar date){init_A T24C();start();write(0xae);respon();write(add);respon();write(date);respon();stop();}uchar read1(uchar add){uchar a;init_A T24C();start();write(0xae);respon();write(add);respon();start();write(0xaf);respon();a=read();norespon();stop();return a;}start(){sda=1;delay_10us();scl=1;delay_10us();sda=0;delay_10us();}stop(){sda=0;delay_10us();scl=1;delay_10us();sda=1;delay_10us();}write(uchar x){uchar i;for(i=0;i<8;i++){scl=0;delay_10us();x=x<<1;sda=CY;delay_10us();scl=1;delay_10us();}scl=0;delay_10us();sda=1;delay_10us();}uchar read(){ uchar i,x;scl=0;delay_10us();sda=1;delay_10us();for(i=0;i<8;i++){scl=1;delay_10us();x=(x<<1)|sda;scl=0;delay_10us();}return x;}respon(){uchar i;scl=1;delay_10us();while((sda==1)&&(i<250))i++;scl=0;delay_10us();}norespon(){ scl=1;delay_10us();sda=1;delay_10us();scl=0;delay_10us();}init_A T24C(){ scl=1;delay_10us();sda=1;delay_10us();}//液晶12864write_com(uchar com)//写指令{ rs=0;en=0;P0=com;en=1;delay_50us(1);en=0;}write_date(uchar date)//写数据{ rs=1;en=0;P0=date;en=1;delay_50us(1);en=0;}display_12864()//显示所需文字{ uchar i;write_com(0x88);for(i=0;i<12;i++){write_date(table_12864[i]);}}display_wenzi1(){ uchar i;write_com(0x90);for(i=0;i<16;i++){write_date(table_wenzi1[i]);}}display_wenzi2(){ uchar i;write_com(0x90);for(i=0;i<16;i++){write_date(table_wenzi2[i]);}}display_wenzi3(){ uchar i;write_com(0x90);for(i=0;i<16;i++){write_date(table_wenzi3[i]);}}display_wenzi4(){ uchar i;write_com(0x90);for(i=0;i<14;i++){write_date(table_wenzi4[i]);}if(d<10){write_date(0x30+d);}if(d>9){write_date(0x30+d+7);}}display_wenzi5(){ uchar i;write_com(0x88);for(i=0;i<16;i++){write_date(table_wenzi5[i]);}}display_wenzi6(){ uchar i;write_com(0x88);table_wenzi6[3]=a2/100+0x30;table_wenzi6[4]=a2%100/10+0x30;table_wenzi6[5]=a2%10+0x30;for(i=0;i<16;i++){write_date(table_wenzi6[i]);}}init_12864()//初始化12864{rw=0;delay(10);write_com(0x30);write_com(0x30);write_com(0x0c);write_com(0x01);delay(10);write_com(0x06);}//XPT2046void Write_2046(uchar num)//向2046写指令{ uchar count=0;DCLK=0;for(count=0;count<8;count++){num<<=1;DIN=CY;DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效DCLK=1; _nop_();_nop_();_nop_();}}uint Read_2046() //从2046中读出数据{ uchar count=0;uint Num=0;for(count=0;count<12;count++){Num<<=1;DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效DCLK=0; _nop_();_nop_();_nop_();if(DOUT) Num++;} for(count=0;count<4;count++) //无用的四个时钟{DCLK=1; _nop_();_nop_();_nop_();DCLK=0; _nop_();_nop_();_nop_();}return(Num);}void XPT2046()//读X坐标读Y坐标{ CS=0;Write_2046(0x90); //送控制字10010000即用差分方式读X坐标DCLK=1; _nop_();DCLK=0; _nop_();ADS_Y=Read_2046(); //读Y值Write_2046(0xD0); //送控制字11010000即用差分方式读Y坐标DCLK=1; _nop_();DCLK=0; _nop_();ADS_X=Read_2046(); //读X值CS=1;}。

相关文档
最新文档