版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章人机交互接口电路设计智能仪器设计基础1键盘输入·LED/LCD显示·触摸屏输入本章学习问题地图人机交互接口电路01按键识别按键类型、读取方式02键盘结构独立式、矩阵式、触摸按键.....03LED显示共阴/共阳、静态vs动态04LCD显示1602/12864/TFT_LCD05触摸屏原理电阻/电容/红外/声表面波06触摸控制器XPT2046/GT9147目录第7章人机交互接口电路设计
7.1键盘与接口 7.1.1按键及接口 7.1.2键盘 7.2LED显示器 7.2.1段码式LED显示器及接口7.2.2点阵式LED及接口 7.3LCD显示器 7.3.1LCD显示器工作原理 7.3.2笔段式LCD显示器接口 7.3.3点阵式LCD显示器接口 7.4触摸屏技术 7.5触摸屏控制器 7.5.1电阻触摸屏控制器 7.5.2电容触摸屏控制器
习题737.1键盘与接口4
键盘作为常见的输入接口,主要输入设备参数和控制指令。
按键分为独立式键盘和矩阵键盘。按照按键的机械锁定记忆功能可以分为自锁和非自锁两种,前者在按下去后会锁定按下的状态,再次按下之后才恢复,比如电源开关、开关机按键等;后者按下去松开后会自动弹回原来状态,实际上提供一个脉冲信号,比如数字按键。多样化的键盘7.1.1
按键及接口5
按键接口包括硬件和软件部分。硬件部分主要实现按键状态的高、低电平转化,软件部分实现按键状态读取和功能实现,对按键状态监测、识别、按键编码等过程称为识键,功能的实现即根据键的编码完成相应的键处理程序,称为键值分析。1.按键电路按键接口电路,将按键的断开和闭合,转化为高低电平,实现“0”和“1”的输入。一个按键表示一位二进制数。图7-1为典型的开关逻辑电路,(a)为上拉电阻电路,(b)为下拉电阻电路。7.1.1
按键及接口62.按键的识别与读取(1)按键消抖
一个完整的按键过程包括按下、保持和释放,软件必须能够识别按键的复位和按下状态,以及按下和释放的两个动作。根据人的动作与按键的机械结构,一次完整的按键时间一般大于100ms(10次/s),按键按下和释放时会发生抖动,如图7-2所示,抖动时间大约持续5~10ms。
通常有两种方法消抖:硬件和软件。硬件方法是利用RS触发器,实现按键消抖,这种方法能够输出较好的矩形波形,但按键较多时会增加硬件成本。软件方法是在检测到按下动作时,等待10~20ms,避开抖动过程,等待按键稳定后再次读取按键状态。软件方法实现简单,应用灵活,在智能仪器中普遍使用。7.1.1
按键及接口7(3)按键读取
按键有开、关状态之分,对应输出高低电平;同时按键也要按压和释放动作之分,对应的下降沿和上升沿。因此,按键可以根据状态和动作,来实现对应的按键功能。按键的软件读取有3种方法,分别是软件扫描、定时查询和中断扫描。(a)软件扫描方式。
假设按键接口电路电阻上拉,按键复位的默认状态为高电平。首先读取按键状态是否为0。若KEY_UP值为0,表示按键按下,否则继续读取按键状态。然后延迟10ms,再次读取按键值。若KEY_UP仍为0,说明按键确实被按下,且保持在闭合状态,是一次有效地按键动作,然后执行对应的按键功能程序;否则为无效的按键动作,继续读取按键状态。7.1.1
按键及接口8
软件查询或软件扫描方式,需要CPU一直读取按键状态,一方面占用了CPU资源,另一方面不能及时响应按键动作。比如CPU在执行别的一段程序时,按键发生动作,并且在CPU没有执行完这段程序时,按键释放掉,这样CPU就无法读取到按键动作。
(b)定时扫描方式。定时扫描方式是CPU每隔一定时间对键盘进行扫描一次,一般利用CPU内的定时器实现,按键状态读取程序在定时器的中断函数中。CPU在执行其他程序时,不会读取按键,只有在定时到后才跳入中断函数读取按键,并转入相应的处理程序。为了不漏掉按键,定时器的定时时间应与一次完整按键的时间相适应,定时时间小于一次按键时间并大于消抖时间。
(c)中断扫描方式。在正常情况下,CPU执行其它程序,只有当有键按下时,键盘电路才产生中断信号,使CPU发生中断,CPU在中断程序中对键盘进行扫描,识别按键并获取键码,转入相应的处理程序。7.1.1
按键及接口9
中断信号的产生可以是将矩阵式键盘的行线或列线相与后与单片机的外部中断引脚相连,目前多数单片机的GPIO都具有中断功能,也可以利用相应的GPIO中断,实现按键的中断扫描。
由于智能仪器或控制器在运行过程中,并不需要经常进行按键操作,软件扫描和定时扫描方式会占用较多CPU时间,而且是空扫描,中断扫描方式在无键按下时不进行扫描,并能对按键进行及时响应,提高CPU的效率,因此中断扫描是常用的方式。7.1.1
按键及接口10(3)按键连击的处理1)连击的消除。上述方法实际上是读取的按键动作和按下状态,由于按键按下状态可能维持较长时间,CPU读取的按键值时有可能发生误动作。若是在CPU执行完按键功能的程序后,主程序再返回到按键读取程序的过程中,按键没有放开,CPU还会跳入到按键读取的子程序,有可能会被误认为一次新的按键动作,称为连击。有效的解决办法是在按键读取基础上,添加按键释放动作的读取语句:“while(KEY_UP==0);”。这条语句若放置在按键功能程序执行前,则是按下后执行功能,执行完后等待按键松开,这样程序及时响应;若放在按键功能程序执行,则是等待松开按键后,执行按键功能程序。7.1.1
按键及接口11(4)长短键动作
在一些仪器设备中,有一些按键具有两种功能,短按是一种,长按则进入第二功能,这是按键的长短键功能。这种方式也常用在智能仪器中,将长短、按键分别赋予不同的功能,这样可以节约按键数目和控制面板尺寸。长短按键的处理方法是一旦按键按下,则键值KEY_UP=0,通过延时一定的时间后,进行计数,如用i进行计数,判断KEY_UP是否为0,如不为0则表示按键已释放。释放之后将计时值i与设定的TimeN比较。若i<TimeN,则是短按,否则是长按。7.1.2键盘12
键盘有多个按键组成,分为编码键盘和非编码键盘。编码键盘设有编码器,对每个按键设置一个键值,同时具有防抖和解决连击的功能,处理速度快,我们用的电脑键盘就是典型的编码键盘。非编码键盘分为独立式键盘和矩阵键盘。非编码键盘直接与单片机的IO连接,需要设计读取程序,对按键扫描读取,通过计算或查表方法获得键值。非编码键盘,适合小规模,成本较低,在智能仪器中应用普遍。1.独立式键盘
独立式键盘是将每个按键分别连接在一个单片机的IO口上,如图7-3所示。KEY0~KEY3分别于单片机的P1.0~P1.3口连接,每个按键有一个上拉电阻。当按键按下时,对应的引脚输入低电平。独立式键盘读取时,可以用软件扫描、定时扫描和中断扫描方式。独立式键盘仅适用于按键较少情况,按键较多时会占用较多IO口引脚,会增加单片机的硬件成本。7.1.2键盘13
以软件扫描方式为例,首先读取P1.0的值,判断是否按下,若是按下则执行对应的功能。接着依次读取P1.1~P1.3的值,如果有按键按下,分别执行对应程序。多个按键同时按下时,上述步骤可能会产生丢键的情况。比如在同时按下四个按键时,若KEY0~KEY2对应功能程序执行的时间较长,执行完后可能KEY3已经放开,这样KEY3的操作就会丢掉。为此,在功能不冲突情况下,可以先读P1端口的值作为键值,然后根据键值判断哪些按键按下,统一执行相应程序。
在用中断扫描方法时,有两种方案。若单片机的IO引脚具有中断功能,则可以分别设置中断,甚至区分中断优先级别。若中断功能的引脚较少时,可将所有IO引脚连连接与门。有按键按下,则与门输入端必然有低电平,输出低电平,用于触发中断。7.1.2键盘14
由于独立式键盘占用的IO资源较多,在单片机的IO引脚紧张的情况下,还有一种单线的解决办法。如图所示,在分压串联电阻上设置开关按键,闭合的按键不同,分压大小不同,最后由单片机的一个ADC通道引入到模数转换模块,根据ADC的电压值区分按键。当没有按键按下时,ADC引脚有上拉电阻R0,为高电平。当某一个按键KEYN按下时,ADC测量的电压为VADC=VCC(1-R0/Rall),Rall为串联在电路中的总电阻。
这种方式仅用了单片机的一个ADC通道,不必占用太多IO引脚。但是必须注意,相对于IO引脚,单片机的ADC模块功耗要值得考虑。7.1.2键盘152.矩阵键盘
图7-5为4×4矩阵键盘,4行线为D0~D3,4列线为D4~D7。在行列交叉点上有开关按键,编号为0~15开关。列线连接上拉电阻,无按键按下时为高电平;若有按键按下时,列线与按键对应行线连接。比如按键6按下时,D1和D6连在一起。矩阵按键的读取方法有扫描法和线反转法,以下分别介绍基本原理。7.1.2键盘16(1)扫描法:(a)先判断有无按键按下。单片机给行线D3~D0输出低电平0000B,读取列线D7~D4的值。若D7~D4为1111B,则没有键按下,否则表示有按键按下。(b)如有键按下,消抖延时10ms,再次重复(a)。(c)若有键按下,逐行扫描判断哪个按键。先让第一行线为低电平D3~D0=1110B,读取列线D7~D4的值。若D7~D4还是高电平1111B,说明该行没有按下,若列线有0值出现,说明该列对应的按键按下。比如“2”键按下,扫描到第一行时,D7~D4=1011B。依次扫描到最后一行,读取列线值,可以得到其它按键的状态,这个方法也可读取多个按键同时按下的情况。7.1.2键盘17(2)线反转法
线反转法矩阵键盘电路如图7-6所示。(a)单片机给行线D3~D0输出低电平0000B,读取列线D7~D4的值。按下的按键对应的列线输出必然为低电平,可以确定按键所在的列。(b)列和行输入、输出反转,单片机给列线D7~D4输出低电平0000B,读取行线D3~D0的值。按下的按键所在的行线必然为0。只需要两步就可也确定按键所在的行和列,从而确定具体的按键。7.1.2键盘183.编码式键盘
编码式键盘通过硬件电路完成按键的状态监测、识别、按键编码以及产生中断信号等,CPU只需根据中断信号对按键的编码进行读取即可,节省了CPU对键盘的扫描和编码时间等。编码式键盘通常都需要相应的专用的键盘识别芯片,有些还可以带有显示控制等,如ZLG7290、CH452A等。以下分别介绍一种利用优先编码器的编码式键盘。
7.1.2键盘193.编码式键盘
利用优先编码器可以实现一种简单的编码式键盘,这里利用8线-3线优先编码器实现,例如用sn74HC148可以构成一种编码式键盘,可以实现8个按键的编码。图7-7给出了利用优先编码器sn74HC148实现的简单编码式键盘。S0-S7分别产生编码111H-000H。该电路需要在中断程序中去抖动,无法处理同时有多个按键按下的情况。该电路也适用于3.3V的ARM微控制器。这种简单的编码式键盘,不适用按键较多的应用。7.1.2键盘204.电容触摸式键盘
电容式触摸键盘是近年来出现的一种键盘实现方式,通过检测按键电容的变化,检测是否有触摸操作,没有机械结构,轻触即可,不需要用力按压,具有较好的手感,一般是在PCB电路板上制做铜焊盘作为电容,面积为手指大小,表面涂覆绝缘材料或用绝缘板隔开。其原理如图7-8所示,通过R1C0构成的RC电路的充放电时间,检测电容大小的变化,手指相当于一个电容,其大小为Cp,当手指触摸焊盘P时,原有的电容C0变为C0+Cp,充电时间变长,由此可以检测是否有触摸。开关K1是充放电开关,一般可以通过MCU的IO控制。也可以将VCC改为交流输入,测量V1的幅值大小。7.1.2键盘21
电容触摸式键盘可以通过专用的芯片进行检测,专用的检测芯片有TTP224/226/229等,分别可以检测4、8、16个按键,可以通过并行或串行与CPU连接。这里以TTP226为例说明其应用。有8个输入引脚I7-I10分别与作为按键的金属片相连,内部集成有检测电容变化的电路,当手指触摸时,检测到电容变化,内部集成有去抖动电路。对应有8个输出引脚Q7-Q0,当有触摸时,对应的引脚电平发生变化,表示有键按下。图7-9给出了TTP226触摸按键的主要电路连接。7.1.2键盘22
5.键值分析(键处理)
键值分析程序对键盘的操作做出识别并调用相应的功能程序模块,完成预定的任务。智能仪器与控制器中,按键可以有单义键和多义键。单义键即一键一义,CPU只需根据键码执行相应的程序,主要适用于功能比较简单的仪器系统,多义键即一键具有两个或两个以上的含义,需做键语分析,按照规定的键语语法,把由键序组合成的输入序列的含义译出后执行相应的键盘处理程序。7.2LED显示器23
对简单的信息可以用独立的指示灯显示或声音指示,比如电源指示、报警信息等,接口较为简单。当要显示测量结果、仪器状态和参数时,就需要显示器实现。常用的显示器有LED显示器、LCD显示器、TFT-LCD显示器。
LED(LightEmitingDecode:发光二极管)显示器是一种利用发光二极管构成的显示器,LED是一种半导体PN结,具有二极管的特性。当LED正向偏置时会发出明亮的光。LED的工作压降是固定的,在1.5V~3.0V范围不等,工作电流几到十几mA,电流越大,亮度越高。LED显示器具有工作电压低,体积小,寿命长,响应速度快的优点。7.2LED显示器24
LCD(LiquidCrystalDisplay:液晶显示屏)是液晶材料制成的显示器,利用液晶分子的可极化和旋光性工作。不加电压时,LCD的液晶材料是透明的,不显示数字或图案。当施加电压后,由透明电极构成的数字或图案不再透明,就显示出来。LCD不会发光,因此黑暗环境无法看到,需要有背光照明,LCD是电压显示器件,具有功耗低的优势。
TFT-LCD(Thinfilmtransistorliquidcrystaldisplay:薄膜晶体管液晶显示器)是近年来广泛应用的一种主动式LCD显示器,可以显示更加丰富的色彩和画面,在智能仪器与控制器的设计中也得到广泛应用。
7.2.1段码式LED显示器及接口25
LED显示器有有段码式数码管显示器和点阵式显示器2种。本小节介绍段码式LED显示器接口,下一小节介绍点阵式LED显示接口。
在数码管中,将多个LED按照一定字符图像排列,封装成一个显示单元。数码管中每一个LED称为一段,常见的有“日”字型的7段数码管(加上小数点,也称为8段数码管)、方框内“米”字型的16段数码管。按照LED的连接方式,可以分为共阳极和共阴极两种方式,如图7-10所示。共阳极数码管的正极连在一起,形成公共端,共阴极数码管则负极连在一起。若点亮共阴极数码管的某一段,需要给高电平;反之,若点亮共阴极数码管,则要给低电平。7.2.1段码式LED显示器及接口26
数码管常显示的字型为0~9、A~F,共16个,按照顺序g~a的段码如下表所示。若共阴极数码管显示“5”,则段码为6DH,即01101101B,a、c、d、f、g段LED亮。每个字符对应的共阴极和共阳极段码之和为FFH。在程序中通常将这些段码预先保存数组中,显示的字符和数组下标对应。7.2.1段码式LED显示器及接口27LED数码管的显示,可以通过静态方式显示,也可以通过动态方式显示。2种显示方式的电路不同,控制方式也不同。(1)静态方式显示静态方式显示,需要每位数码管都要有各自的驱动电路,一般用带有锁存器的元件将显示信息锁存,然后显示在数码管上。静态方式显示在每次显示输出后,需要够保持显示不变,仅在待显示数码需要改变时,才更新显示锁存器中的内容。在显示某一字符时,相应段的LED始终是导通或截止,所显示段连续发光。静态显示的优点是亮度高,控制程序简单,显示稳定可靠,没有闪烁感。不足在于当显示的位数较多时,占用的I/O口较多,需要的驱动器较多,功耗比较大。7.2.1段码式LED显示器及接口28
如图7-11是一种静态显示电路,用89C51单片机控制2位8段数码管显示,单片机的数据总线P0口,与2个8位D型锁存器74HC573的D输入端相连,(省略了单片机及上拉电阻电路)。LE为锁存器的时钟信号,高电平期间,内部的D触发器在跟随状态,输出Q的值与输入D保持一致。LE低电平时,D触发器保持状态,D怎么变化都不会影响输出。因此给LE下降沿,可以把输入数据锁存在寄存器内。两个锁存信号LE分别与P1.0和P1.1连接,用于控制数据的锁存。7.2.1段码式LED显示器及接口29
开始时,两个LE为低电平,锁存器数据保存不变。在更新数码管时,单片机先将数码管1的段码输出到总线上,然后拉高U1的LE(P1.0=1),等待输出数据稳定后,拉低LE(P1.0=0),锁存数码管1的数据,之后数码管1显示保持。这个过程中锁存器U2在保持状态(P1.1=0),输入信号变化不会影响输出,数码管2保持不变。同样的方法更新数码管2的数据。这样我们用单片机的P0和P2口,至少可以控制8个数码管,大大节约了IO引脚资源。数码管静态显示方法,显示的数据可以保存在锁存器中,不在占用CPU。但当数码管较多时,硬件开销成本增加。7.2.1段码式LED显示器及接口30
开始时,两个LE为低电平,锁存器数据保存不变。在更新数码管时,单片机先将数码管1的段码输出到总线上,然后拉高U1的LE(P1.0=1),等待输出数据稳定后,拉低LE(P1.0=0),锁存数码管1的数据,之后数码管1显示保持。这个过程中锁存器U2在保持状态(P1.1=0),输入信号变化不会影响输出,数码管2保持不变。同样的方法更新数码管2的数据。这样我们用单片机的P0和P2口,至少可以控制8个数码管,大大节约了IO引脚资源。数码管静态显示方法,显示的数据可以保存在锁存器中,不在占用CPU。但当数码管较多时,硬件开销成本增加。7.2.1段码式LED显示器及接口31(2)动态方式显示动态显示是利用人眼的视觉暂留现象和LED的余辉效应,每次使一位数码管显示一段时间,多位数码管轮流显示,一般每秒钟显示24次以上,人眼看到的就是连续的显示,次数少时会有闪烁现象。
在电路上,所有数码管的相同笔段(a、b、…、g)并联在一起,位线(com)作为数码管的选通控制。每次选通一个数码管,将显示数据从笔段线传送给数码管,延时1ms~5ms后关掉。如此扫描所有数码管后,继续从头开始,往复循环。尽管每个数码管只显示1ms~5ms,但观察到的整体效果是所有数码管都在显示。7.2.1段码式LED显示器及接口32
多位数码管显示时,利用动态显示可以节省CPU的IO口。多位数码管的动态显示,可以采用多位合1数码管,例如5合1、4合1、3合1数码管等,多合1数码管将多位数码管封装在一个器件内,内部段线均连在一起,外部只有一组段线引脚和每一位的com引脚,com引脚做为位选择w,如图7-12所示,这种数码管简化了外部电路设计,目前有5、4、3、2位的多位合1数码管可选用,这种数码管只能用于动态显示。7.2.1段码式LED显示器及接口33
图7-13为共阴极数码管动态显示的接口电路,为了简化,图中省去了51单片机P0口的上拉电阻和单片机的其它电路。数码管为5合1数码管,内部a、b、c、d、e、f、g、dp笔段都已并联在一起,只引出一组笔段线。用2个锁存器74HC573分别控制位选择wi(i=1-5)和笔段线。P0口将段码送到数据总线,通过P1.1将显示码锁存到U2中,然后再将位选择数据从P0口送出,需要显示的一位数码管的wi为低,其它为高,通过P1.0将位选择锁存到U1中,对应的数码管显示,保持1ms~5ms后,将该位的位选择拉高,关掉显示。然后接着下一位显示,循环不断,数据就可以连续显示在数码管上。7.2.1段码式LED显示器及接口34
图7-13为共阴极数码管动态显示的接口电路7.2.1段码式LED显示器及接口35
对动态显示电路设计,限流电阻需要根据显示器特点进行确定,一般为几百Ω,对高亮显示器,电阻可以大一些。由于上述电路中两个锁存器内部输出均有限流电阻,另外LED数码管有一定压降,因此电阻可以小一些,不加限流电阻也可以,亮度会大一些。
数码管的大小有0.36、0.56、0.8英寸等,体积大的,需要的电流会大一些。
LED显示接口往往会占用较多CPU的IO口和时间,利用一些可编程的LED接口芯片,可以简化电路设计、减轻CPU负担。MAX7219是一种比较有代表性的LED驱动芯片,MAX7219可以驱动8个8段共阴极数码管,能够自动动态扫描显示,
如图7-14所示。通过编程可以控制显示位数,通过SPI串行接口与微控制器连接,兼容3.3V和5V微控制器。可以直接输入段码(字型码)显示,也可以输入BCD码进行译码后显示。电阻R1可以调节数码管的亮度。7.2.1段码式LED显示器及接口36
MAX7291的LED接口电路7.2.1段码式LED显示器及接口37
MAX7291的LED接口电路在软件上,MAX7291内部有8个字节的RAM,可以保存显示的数据,还有5个控制寄存器用于控制是否译码、亮度、扫描位数等,数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027年陕西地矿综合地质大队有限公司招聘(12人)考试参考题库及答案解析
- 2026北京大学医学部总务处校园管理中心招聘4人考试备考试题及答案解析
- 2026福建厦门市翔安招商集团有限公司招聘3人(第四期)考试备考题库及答案解析
- 环形滴灌施工方案范本(3篇)
- 基坑检测专项施工方案(3篇)
- 玩具营销方案活动目的(3篇)
- 企业应急预案建议要素(3篇)
- Babycare2027届校园招聘浙江大学宣讲会考试参考题库及答案解析
- 2026年钯金贵金属催化剂行业洞察报告及未来五至十年发展趋势报告
- 2026年榴莲糖行业洞察报告及未来五至十年发展趋势报告
- 2026年中国电信应届生校园招聘笔试真题(含详细答案解析)
- 2026年中国联通网络技术岗校园招聘笔试题及答案
- 电动机的正反转控制公开课
- 2027年山西大同市高职单招职业技能考试题库【有一套】附答案详解
- 人教版初中八年级上册体育教案全套
- 投资项目财务监理服务方案投标文件(技术标)
- 2024 土工合成材料 塑料土工格室
- 护理部针刺伤职业暴露应急演练脚本
- 医美连锁公司顾客满意度提升管理制度
- 2024年全国统一高考数学试卷(理科)(甲卷)
- 厦门国有资本运营有限责任公司招聘笔试题库2026
评论
0/150
提交评论