基于PIC32MX的液晶触摸屏人机界面设计
时间:01-13
来源:互联网
点击:
引言
PIC32MX 是Microchip公司推出的新型32位高性能系列单片机。采用改进的哈佛架构、C编译器优化的指令集、流水线取指令方式,具有实用、指令集小、体积小、功耗低、速度高、功能强、抗干扰能力强等特点。除了本文主要介绍的8位/16位并行控制接口模块和10/12位的A/D转换器(500 Ksps)外,还提供了CAN、UART、SPI、I2C等丰富的外围接口,可以方便地与其他设备进行通信。彩色液晶触摸屏不仅可以显示字符、数字、图形、曲线及汉字,还具有触摸功能,用途十分广泛。
工业上用32位单片机PIC32MX460F512L来控制带触摸屏的液晶显示器是一种理想的方案。本文使用PIC32MX460F512L的并行接口模块,按照8080时序驱动所罗门公司的SSD1926芯片,实现了5.7 in TFT彩色液晶触模屏的触摸和显示功能。该方案在喷水织机控制应用中,已经整体实现了数据输入/输出、数据存储、数据处理及传输等一系列上位机功能,而且用户界面友好。
1 PIC32MX与SSD1926的接口电路
SSD1926是一款中小规模的显示控制芯片。采用128引脚LQFP封装,256 KB静态存储空间和2D图像引擎,可以支持单色和彩色LCD;32位内部数据通道,可以提供高带宽的显示内存,以实现快速的屏幕刷新;拥有MMC/SD接口,可以与SD卡等外部存储器件方便地进行数据交换;采用单电源供电和单时钟输入,具有很短的CPU访问延迟时间,可以支持无READY/WAIT信号的微处理器。这些特点能够极大地简化外围电路的设计。同时,SSD1926还具有强大的总线兼容性,可与多种类型的MCU连接,除了支持SRAM接口与 ARM系列连接、ISA接口与NEC系列连接外,还支持8/16位8080时序间接寻址方式,能够方便地与各种具有并口的MCU连接。本文使用:PIC32MX460F512L的8位/16位并行控制接口模块与SSD1926接口。硬件接口框图如图1所示。
CS为片选信号,RS为地址与数据选择信号,RESET为复位信号,都可以由通用I/O口进行控制,分别用RC1、RC2和RC3与其连接。数据总线 DB[15:0]与并行控制接口模块中的PMD[15:0]引脚分别对接。WR和RD为读写信号,由并行控制接口模块中的PMWR和PMRD引脚分别控制。SSD1926对接收到的数据进行处理之后,再通过与LCD的接口驱动TFT彩色液晶屏进行显示。
2 触摸功能的软硬件设计
电阻式触摸屏处于与外界完全隔离的工作环境,不怕灰尘和水汽,可以用任何物体来触摸,可以写字画图,广泛应用于工业控制领域中。触摸屏工作时,上下导体层可以看作电阻网络。当某一层电极加上电压时,会在该电阻网络上形成电压梯度。若外力使得上下两层电极在某一点相接触,则在电极未施加电压的另一层可以检测出接触点的电压,从而换算出接触点的坐标值。本文选用4线电阻式触摸屏,其电阻网络工作原理如图2所示。
系统工作时,首先把AN11/RB11、AN4/RB4复用引脚设置为I/O引脚。RB11输出高电平(+3.3 V),RB4引脚输出低电平(0 V),在顶层的电极X+、X-上即产生了3.3 V的电压。当有外力使得上下两层在某一点接触时,在底层Y+、Y-引脚上就会输出接触点处的电压。此时,AN10/RB10、AN5/RB5设置为A/D 输入通道。采样此引脚上的电压信号,即可得到Y+、Y-引脚上的电压值,根据下式可以计算出X坐标:
触点X坐标=X轴分辨率×X相电压采样值/1 024
本文为10位精度A/D采样,3.3 V输入时对应的采样值即为1 024。然后,改变4个引脚的输出定义,将A/D输入引脚RB10设置为I/O引脚输出高电平,RB5设置为I/O引脚输出低电平,将3.3 V电压切换到底层电极Y+、Y-上,设置AN11和AN4为A/D输入引脚。对X+、X-引脚进行A/D采样,测量得到接触点处的Y相电压,根据下式可以计算出Y坐标:
触点Y坐标=y轴分辨率×y相电压采样值/1 024
在工业应用中,由于A/D采样信号为模拟量输入,很容易受到现场环境的电磁干扰。除了在硬件上设计滤波电路等抗干扰措施外,还需要在软件中设计抗干扰算法,具体软件流程如图3所示。通过采样两次输入进行比较的方法,能够有效地减少由A/D采样模拟信号源带来的干扰。根据采样得到的X、Y坐标值,能够准确地知道触摸屏上接触点的位置,再根据X、Y坐标的历史值,还能够分析出接触点的状态是接触、移动,还是放开等状态。
3 显示触摸功能的综合实现
PIC32MX 系列的并行控制接口模块功能非常强大,只需要对其寄存器进行正确的初始化配置,即可自动适应各种并行接口的时序要求。当需要进行读写指令切换时,只需要改变读写状态寄存器的值,芯片就会根据初始化配置时设置的值自动产生时序电平。在进行写操作时,芯片也会根据设置的值,自动使数据信号达到所要求的建立电平和保持电平的时间。SSD1926相对应的寄存器配置如下:
并行接口数据传输时序如图4所示。
图4中,CS信号为片选信号,对SSD1926进行操作时在整个操作周期中保持高电平。RS信号为地址与数据选择信号,写地址时保持低电平,写数据时保持高电平。PMWR为写操作使能信号。当写操作开始时,首先等待1个外部时钟周期(B),确保PMD[15:0]上的数据或地址信号已稳定建立;然后保持3 个外部时钟周期的高电平(M),确保信号内容完全写入SSD1926;最后用1个外部时钟周期(E)结束写操作。BUSY信号为 PMMODEbits.BUSY寄存器的状态。进行读写操作时,BUSY信号自动置高;只有读到BUSY信号为低时(表示上一次操作已完成,总线空闲),程序才能开始下一次读写操作。把对应I/O口和寄存器的操作编程集成起来,编写为子程序,可方便地在主程序中实现PIC32MX系列单片机与 SSD1926之间的数据传输。人机界面主程序框图如图5所示。
当A/D采样得到的接触点X、Y坐标发生变化时,消息处理函数根据得到的消息发出相应的指令。除了进行数据输入/输出和与下位机通信外,当需要进行页面切换时,就更改页面状态,调用“新页面建立”函数,切换到新的页面;当需要进行页面内容更新时,就调用“页面更新”函数,更新当前页面的状态。
为了简化编程,软件中定义了几种常用的图形模块,如按键、静态图片、静态文字段、动态数据显示框等。每个模块都具有模块创建、模块更新和消息响应3个子程序。模块创建子程序根据模块的上下左右坐标、模块的颜色、模块的内容及状态等参数,在液晶显示器的对应位置上显示出模块的图案,并在对应的内存空间中记录下模块的状态。模块更新子程序定义了模块不同状态下图案的变化,比如按键模块当被触摸时即显示出3D效果的凹陷图案,未被触摸时即显示3D效果的凸出图案。消息响应子程序则根据A/D采样得到的接触点X、Y坐标,判断模块是处于触摸过程的接触、移动还是放开状态,并对状态进行响应。Microchip公司特别针对PIC32MX系列还开发了图形软件库(graphics library)。该软件可以方便地把各种语言、各种字体的文字以及位图格式的图片转化为能够在软件中直接使用的数组矩阵,极大地方便了用户。
PIC32MX 是Microchip公司推出的新型32位高性能系列单片机。采用改进的哈佛架构、C编译器优化的指令集、流水线取指令方式,具有实用、指令集小、体积小、功耗低、速度高、功能强、抗干扰能力强等特点。除了本文主要介绍的8位/16位并行控制接口模块和10/12位的A/D转换器(500 Ksps)外,还提供了CAN、UART、SPI、I2C等丰富的外围接口,可以方便地与其他设备进行通信。彩色液晶触摸屏不仅可以显示字符、数字、图形、曲线及汉字,还具有触摸功能,用途十分广泛。
工业上用32位单片机PIC32MX460F512L来控制带触摸屏的液晶显示器是一种理想的方案。本文使用PIC32MX460F512L的并行接口模块,按照8080时序驱动所罗门公司的SSD1926芯片,实现了5.7 in TFT彩色液晶触模屏的触摸和显示功能。该方案在喷水织机控制应用中,已经整体实现了数据输入/输出、数据存储、数据处理及传输等一系列上位机功能,而且用户界面友好。
1 PIC32MX与SSD1926的接口电路
SSD1926是一款中小规模的显示控制芯片。采用128引脚LQFP封装,256 KB静态存储空间和2D图像引擎,可以支持单色和彩色LCD;32位内部数据通道,可以提供高带宽的显示内存,以实现快速的屏幕刷新;拥有MMC/SD接口,可以与SD卡等外部存储器件方便地进行数据交换;采用单电源供电和单时钟输入,具有很短的CPU访问延迟时间,可以支持无READY/WAIT信号的微处理器。这些特点能够极大地简化外围电路的设计。同时,SSD1926还具有强大的总线兼容性,可与多种类型的MCU连接,除了支持SRAM接口与 ARM系列连接、ISA接口与NEC系列连接外,还支持8/16位8080时序间接寻址方式,能够方便地与各种具有并口的MCU连接。本文使用:PIC32MX460F512L的8位/16位并行控制接口模块与SSD1926接口。硬件接口框图如图1所示。
CS为片选信号,RS为地址与数据选择信号,RESET为复位信号,都可以由通用I/O口进行控制,分别用RC1、RC2和RC3与其连接。数据总线 DB[15:0]与并行控制接口模块中的PMD[15:0]引脚分别对接。WR和RD为读写信号,由并行控制接口模块中的PMWR和PMRD引脚分别控制。SSD1926对接收到的数据进行处理之后,再通过与LCD的接口驱动TFT彩色液晶屏进行显示。
2 触摸功能的软硬件设计
电阻式触摸屏处于与外界完全隔离的工作环境,不怕灰尘和水汽,可以用任何物体来触摸,可以写字画图,广泛应用于工业控制领域中。触摸屏工作时,上下导体层可以看作电阻网络。当某一层电极加上电压时,会在该电阻网络上形成电压梯度。若外力使得上下两层电极在某一点相接触,则在电极未施加电压的另一层可以检测出接触点的电压,从而换算出接触点的坐标值。本文选用4线电阻式触摸屏,其电阻网络工作原理如图2所示。
系统工作时,首先把AN11/RB11、AN4/RB4复用引脚设置为I/O引脚。RB11输出高电平(+3.3 V),RB4引脚输出低电平(0 V),在顶层的电极X+、X-上即产生了3.3 V的电压。当有外力使得上下两层在某一点接触时,在底层Y+、Y-引脚上就会输出接触点处的电压。此时,AN10/RB10、AN5/RB5设置为A/D 输入通道。采样此引脚上的电压信号,即可得到Y+、Y-引脚上的电压值,根据下式可以计算出X坐标:
触点X坐标=X轴分辨率×X相电压采样值/1 024
本文为10位精度A/D采样,3.3 V输入时对应的采样值即为1 024。然后,改变4个引脚的输出定义,将A/D输入引脚RB10设置为I/O引脚输出高电平,RB5设置为I/O引脚输出低电平,将3.3 V电压切换到底层电极Y+、Y-上,设置AN11和AN4为A/D输入引脚。对X+、X-引脚进行A/D采样,测量得到接触点处的Y相电压,根据下式可以计算出Y坐标:
触点Y坐标=y轴分辨率×y相电压采样值/1 024
在工业应用中,由于A/D采样信号为模拟量输入,很容易受到现场环境的电磁干扰。除了在硬件上设计滤波电路等抗干扰措施外,还需要在软件中设计抗干扰算法,具体软件流程如图3所示。通过采样两次输入进行比较的方法,能够有效地减少由A/D采样模拟信号源带来的干扰。根据采样得到的X、Y坐标值,能够准确地知道触摸屏上接触点的位置,再根据X、Y坐标的历史值,还能够分析出接触点的状态是接触、移动,还是放开等状态。
3 显示触摸功能的综合实现
PIC32MX 系列的并行控制接口模块功能非常强大,只需要对其寄存器进行正确的初始化配置,即可自动适应各种并行接口的时序要求。当需要进行读写指令切换时,只需要改变读写状态寄存器的值,芯片就会根据初始化配置时设置的值自动产生时序电平。在进行写操作时,芯片也会根据设置的值,自动使数据信号达到所要求的建立电平和保持电平的时间。SSD1926相对应的寄存器配置如下:
并行接口数据传输时序如图4所示。
图4中,CS信号为片选信号,对SSD1926进行操作时在整个操作周期中保持高电平。RS信号为地址与数据选择信号,写地址时保持低电平,写数据时保持高电平。PMWR为写操作使能信号。当写操作开始时,首先等待1个外部时钟周期(B),确保PMD[15:0]上的数据或地址信号已稳定建立;然后保持3 个外部时钟周期的高电平(M),确保信号内容完全写入SSD1926;最后用1个外部时钟周期(E)结束写操作。BUSY信号为 PMMODEbits.BUSY寄存器的状态。进行读写操作时,BUSY信号自动置高;只有读到BUSY信号为低时(表示上一次操作已完成,总线空闲),程序才能开始下一次读写操作。把对应I/O口和寄存器的操作编程集成起来,编写为子程序,可方便地在主程序中实现PIC32MX系列单片机与 SSD1926之间的数据传输。人机界面主程序框图如图5所示。
当A/D采样得到的接触点X、Y坐标发生变化时,消息处理函数根据得到的消息发出相应的指令。除了进行数据输入/输出和与下位机通信外,当需要进行页面切换时,就更改页面状态,调用“新页面建立”函数,切换到新的页面;当需要进行页面内容更新时,就调用“页面更新”函数,更新当前页面的状态。
为了简化编程,软件中定义了几种常用的图形模块,如按键、静态图片、静态文字段、动态数据显示框等。每个模块都具有模块创建、模块更新和消息响应3个子程序。模块创建子程序根据模块的上下左右坐标、模块的颜色、模块的内容及状态等参数,在液晶显示器的对应位置上显示出模块的图案,并在对应的内存空间中记录下模块的状态。模块更新子程序定义了模块不同状态下图案的变化,比如按键模块当被触摸时即显示出3D效果的凹陷图案,未被触摸时即显示3D效果的凸出图案。消息响应子程序则根据A/D采样得到的接触点X、Y坐标,判断模块是处于触摸过程的接触、移动还是放开状态,并对状态进行响应。Microchip公司特别针对PIC32MX系列还开发了图形软件库(graphics library)。该软件可以方便地把各种语言、各种字体的文字以及位图格式的图片转化为能够在软件中直接使用的数组矩阵,极大地方便了用户。
PIC Microchip 单片机 触摸屏 显示器 电路 LCD 总线 MCU ARM 电阻 电压 CAN总线 电子 嵌入式 相关文章:
- 提高实时系统数据采集质量的研究(04-09)
- 数字语音驱鸟器阵列声场聚焦系统设计(11-23)
- 基于TMS320C6416T的CPCI信号处理板设计(12-01)
- 高效的500W太阳能逆变器设计(12-22)
- dsPIC30F3013的CAN总线数据采集系统(01-17)
- 使用TEMIC感应卡技术的智能电子门锁系统(03-09)