第6章单片机应用系统的接口技术键盘及显示器接口设计A/D和D/A转换接口技术开关量输出接口技术2020/1/29单片机原理及其应用2(一)键盘概述键盘是由若干个按键组成的开关矩阵,它是一种廉价的输入设备。一个键盘,通常包括有数字键(0~9),字母键(A~Z)以及一些功能键。操作人员可以通过键盘向计算机输入数据,地址、指令或其它控制命令,实现人机对话。键盘按其结构形式可分为两类:1、编码键盘,即键盘上闭合键的识别由专用的硬件来实现;2、非编码键盘,即键盘上闭合键的识别由软件来识别。也可分为:1、独立式键盘,即每个按键都直接占用一位I/O口线;2、矩阵式键盘,即每个按键接在I/O口线组成的行列线的交点上。6.1键盘工作原理与接口电路2020/1/29单片机原理及其应用3单片机系统中普遍使用非编码键盘,键盘接口应具备以下功能:(1)键扫描功能,即检测是否有键按下;(2)产生相应的键代码(键值);(3)消除按键抖动及多键按下;计算机测控系统常见键盘:通用键盘:84键,101键,102键,104键等。含单片机,串行输出(扫描码)。专用键盘:根据需要自己设计键盘。按键:即无锁开关,有机械按键,电容按键,导电橡胶按键,薄膜按键。6.1键盘工作原理与接口电路2020/1/29单片机原理及其应用4按键开关的集合。(二)键盘的特点按键过程前跳沿后跳沿识别区图3、按键过程5~10ms5~10ms100ms键的闭合/断开是机械触点的通断。会产生抖动。按键的确认需要消除抖动。硬件消抖RS触发器或双稳态电路软件消抖:软件延时10ms。Vcc6.1键盘工作原理与接口电路2020/1/29单片机原理及其应用5(三)键盘接口1、独立式键盘各键相互独立,每个按键占用一根I/O口线,且各按I/O口线上按键的工作状态互不影响,具有电路配置灵活、软件结构和编程简单等优点。P10P118051K1P12P13P14P15K2K3K4K5K6键盘驱动程序步骤1)查键:扫描有否键按下,若无键按下,返回2)有键按下软件去抖:延时10mS3)找键:逐位右移4)等键释放5)软件去抖6.1键盘工作原理与接口电路2020/1/29单片机原理及其应用6独立式键盘的结构原理每个按键互相独立地接通一条数据线并输出键的通断状态。当按键Si闭合时,数据线直接接地,因而输出键Si的状态Di=0;当按键Si断开时,数据线通过上拉电阻接到正电源,因而输出键Si的状态Di=1。2020/1/29单片机原理及其应用7独立式键盘的结构原理(1)可以将各按键的数据输出线和单片机I/O口相连,通过CPU对相关I/O口线状态的检测,即可知道键盘上是否有键按下和哪个键按下,并可根据各键的功能定义进行相关的键功能处理。(2)也可以用扩展的I/O口如8155、8255芯片或三态缓冲器与按键的数据输出线相连,把按键当作外部RAM的某一工作单元的位来对待,通过读片外RAM的方法,识别按键的工作状态。下面以常用的直接与单片机I/O相连的接口电路为例,介绍查询方式和中断方式这两种键盘管理程序。2020/1/29单片机原理及其应用81.查询方式如图6-3,接成独立式键盘查询法接口电路。该接口电路实现的功能应为:查询检测是否有键按下,如有键闭合,则消除抖动,再判断键号,然后转入相应的键处理。采用查询方式时,必须保证CPU每隔一定时间主动地去扫描按键一次,该时间间隔的上限应小于快速两次按键的时间间隔,否则会有按键不响应的情形。一般按键扫描的时间间隔不大于10mS。显然这种方式占用CPU时间比较多。2020/1/29单片机原理及其应用9KEY:MOVP1,#0FFH;向P1口输出1,置P1口为输入状态KEY1:MOVA,P1;输入P1口的状态CPLA;取反,无键按下P1.0-P1.7为0ANLA,#0FH;屏蔽无用的高4位JZKEY1;若A=0转移至KEY1继续检测LCALLD12MS;延时12msMOVA,P1;再次输入P1口的状态CPLA;ANLA,#0FHJZKEY1;如无按键按下,转移继续检测JBACC.0,PR0;若S0键按下,转PR0处理JBACC.1,PR1;若S1键按下,则转PR1处理JBACC.2,PR2JBACC.3,PR32020/1/29单片机原理及其应用10AJMPKEY1;按键处理完后返回KEY1继续检测P1口;状态PR0:…………;S0键处理程序PR1:…………PR2:…………PR3:…………;S3键处理程序D12MS:…………2020/1/29单片机原理及其应用112.中断方式以3个按键为例,如图所示。在上述查询法接口电路的基础上,按键S0、S1、S2的数据输出线再共同经过一个与门后与单片机的外部中断请求信号输入端相连,以保证任意一个按键按下时,即可向CPU提出中断申请,CPU响应中断后执行键盘中断服务子程序。显然,CPU对按键而言是被动方式,在无键按下时不占用CPU时间。2020/1/29单片机原理及其应用12注意:在上图所示的电路中,任何一个按键的抖动都将造成一次中断,因此,当中断服务程序执行完毕、返回主程序之前,必须保证三个按键稳定地处于断开状态。否则可能引起按一次按键引起多次进入按键服务子程序的情况发生。处理此问题的方法是:当按键服务子程序执行时间较短、小于一次按键的时间,在退出中断服务程序之前,必须用软件清除外部中断源0的中断请求标志“EX0”(CLREX0)。键盘中断服务子程序,与查询方式相似:首先去抖动,然后识别键号,再转入键功能处理程序,最后中断返回。程序流程如下图所示。2020/1/29单片机原理及其应用132020/1/29单片机原理及其应用14MAIN:SETBEASETBEX0SETBIT0……ORG0003HAJMPKEYKEY:CLREXOLCALLD12MSJBP3.2,NOKEYMOVA,P1CPLA2020/1/29单片机原理及其应用15JBACC.0,PR0JBACC.1,PR1JBACC.2,PR2NOKEY:SETBEX0RETIPR0:……SETBEX0RETIPR1:2020/1/29单片机原理及其应用162.行列式键盘(矩阵式键盘)2020/1/29单片机原理及其应用17(1)确定键盘中是否有键按下。方法:向所有行线发出低电平信号,即送出全扫描字,然后读入列电平信号,如果行线所连接的键没有按下,则列线所接的端口得到的全是“1”信号,如果有键按下,则得到非全“1”信号。(2)确定具体是哪个键按下。方法:逐行给行线送低电平,即行扫描,并查所有列线的状态,如全为1,则所按下之键不在此行;否则必在此行。(3)确定具体的键值,然后转到对应的处理程序。闭合键的键号=输入为低电平行线的首键号+输出为低电平列线的列号识别按键的方法:行扫描法2020/1/29单片机原理及其应用18键盘的工作方式:(1)编程扫描工作方式。即查询扫描方式,采用编程方法每隔一定时间调用键盘扫描子程序,查询是否有键输入。(2)定时扫描工作方式。是采用单片机内部的定时器每隔一定时间产生定时中断,CPU响应中断后执行一次键盘扫描子程序。(3)中断扫描方式。只要有键闭合,立即产生中断信号使CPU装入中断处理程序,进行按键的处理。2020/1/29单片机原理及其应用192020/1/29单片机原理及其应用20矩阵式键盘的程序设计方法:分析:8155的PA口为输出,PC口为输入,在主程序中需要设置相应命令字00000001B,即01H控制寄存器地址:7F00HPA口地址:7F01HPC口地址:7F03H说明:在子程序出口,若键扫描程序检测无键按下,则将FFH送累加器A返回。若有键按下,则将键号送A返回。2020/1/29单片机原理及其应用21程序清单:MAIN:MOVDPTR,#7F00HMOVA,#01HMOVX@DPTR,A……KEY:LCALLKSIJNZLK1EXIT:MOVA,#0FFHRETLK1:LCALLD12MSLCALLKSIJZEXIT2020/1/29单片机原理及其应用22LK2:MOVR2,#0FEH;首列扫描字R2MOVR4,#00H;首列号送R4LK4:MOVDPTR,#7F01HMOVA,R2MOVX@DPTR,A;列扫描字送PA口MOVDPTR,#7F03HMOVXA,@DPTR;读入行线状态JBACC.0,L1MOVA,#00H;0行有键按下,送行;首键号至ALJMPLKP;计算键号2020/1/29单片机原理及其应用23L1:JBACC.1,L2MOVA,#08HLJMPLKPL2:JBACC.2,L3MOVA,#10HLJMPLKPL3:JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4;计算键号PUSHACC2020/1/29单片机原理及其应用24NEXT:INCR4;列号加1MOVA,R2;JNBACC.7,EXITRLAMOVR2,A;准备继续扫描下一列LJMPLK4LK3:LCALLKSI;等待键释放JNZLK3POPACCRET2020/1/29单片机原理及其应用25;键扫描子程序KSI:MOVDPTR,#7F01HMOVA,#00HMOVX@DPTR,AMOVDPTR,#7F03HMOVXA,@DPTRCPLAANLA,#0FHRETD12MS:……RET2020/1/29单片机原理及其应用266.2.1显示器的结构及工作原理(1)显示器件简介常用的显示器件有显示记录仪、发光二极管(LED)显示器、液晶(LCD)显示器、大屏幕显示器和图形CRT显示器终端等。LED显示器由于具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高等优点,目前已被微型计算机控制系统及智能化仪表广泛采用。LCD则以其功耗极低的特点,占据了从电子表到计算器,从袖珍仪表到便携式微型计算机等应用场合。CRT显示器:单显、CGA、EGA、VGA、SVGA,有标准的硬件规范,驱动程序较多,可有触摸屏。体积大、耗电多。6.2LED显示器的工作原理和接口方法2020/1/29单片机原理及其应用27(2)LED显示器结构aabcdgbcdefgdpcomdpefcomabcdefgdpcom共阴极共阳极abcdefgdpcom6.2.1显示器的结构及工作原理2020/1/29单片机原理及其应用28aabcdgbcdefgdpcomdpefaabcdgbcdefgdpdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpefaabcdgbcdefgdpcomdpef数码段选码hgfedcba十六进制数码段选码hgfedcba十六进制011000000C0H51001001092H111111001F9H61000001082H210100100A4H711111000F8H310110000B0H81000000080H41001100199H91001000090H显示字型(字模)编码表(共阳极)取反共阴极字段码取反译码:将要显示的字符转换成对应段选码的过程。分为硬件译码和软件译码。6.2.1显示器的结构及工作原理2020/1/29单片机原理及其应用29abcdefgdpgdpaCOMabcdefgdpgdpaCOMabcdefgdpgdpaCOMabcdefgdpgdpaCOMI/O口1I/O口