您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 计算机控制(第三章,键盘,LED)
计算机控制技术第三章人机交互接口技术(一)概述键盘是由一组按钮开关——键(一般为常开型)的组合,是计算机的输入设备,为计算机系统普遍使用的人机交互设备。用户通过键盘可以向CPU输入数据、地址和命令等。键盘按其结构形式可分为:独立式和矩阵式。键盘按功能可分为:编码式键盘和非编码式键盘两类。编码键盘能自动识别按下的键和提供该键所代表的信息代码,并以并行或串行信号输给CPU。键盘电路中设有专用的键盘编码器,并具有防抖和解决重键的功能。功能强,响应快,结构复杂。非编码键盘是一种便宜而广泛用于单片机系统的输入设备。这种键盘通常采用软件的方法,扫描键盘是否有键被按下,并用计算或查表的方式得到该键的键值,然后再送给CPU。键的功能分为字符键和控制键。键盘设计时需主要解决的以下几个问题:①按键的识别(按键的有无和位置);②重键和连击的处理;按键抖动信号波形③如何消除键的抖动(硬件和软件消抖方法):(二)少量功能键的接口技术即独立式非编码键盘在控制对象比较专一,控制功能简单时,需要按键较少,可用独立式键盘接口。独立接口方式,每个按键接一根输入线,各键的工作状态互不影响。采用硬件中断或软件查询的方法实现其键盘接口。电路简单,占用I/O口线较多,键盘处理程序较简单。可直接用单片机的I/O口或用8155、8255并行I/O接口芯片。如下图的八功能键中断方式接口电路:主程序如下:ORG0000HAJMPMAIN;上电后自动转向主程序ORG0003H;外部中断0入口地址AJMPKEYJMP;指向键处理中断服务程序ORG0100HMAIN:SETBIT0;选择边沿触发方式SETBEX0;允许外部中断0SETBEA;允许CPU中断MOVDPTR,#0EF00H;指向8155命令口MOVA,#02H;控制字MOVX@DPTR,A;控制字写入命令寄存器HERE:AJMPHERE;模拟主程序中断服务程序为:ORG0200HKEYJMP:MOVR3,#08H;设循环次数MOVDPTR,#0EF01H;指向8155A口MOVR4,#00H;计数寄存器清零MOVXA,@DPTR;读入状态字KYAD1:RRCAJNCKYAD2;PA0=0,转向KYAD2INCR4;计数器加1DJNZR3,KYAD1RETIKYAD2:MOVDPTR,#JMPTABLMOVA,R4RLAJMP@A+DPTR;转到响应功能键入口地址表指针JMPTABL:AJMPSB0;分别转到8个功能键响应入口地址AJMPSB1………AJMPSB7键盘矩阵结构示意图矩阵式键盘实际上是由排列成矩阵形式的一系列按键开关组成,下图所示。常应用于按键数目比较多的系统中。矩阵键盘与微机的连接,常采用I/O接口芯片,如8255、8155等。非编码式键盘处理程序,关键是如何识别按键键码。采用“扫描”的方法,过程步骤是:(1)测试有无键按下,包括消抖;(2)行(列)扫描法寻找按键位置,计算键值;(3)等待键释放,运行相应的键处理程序。扫描方法又分为几种,主要有行扫描法,线反转法1下图用8255A连接的4×8键盘。通过某行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。为了防止双键或多键同时按下,往往从第0行一直扫描到最后1行,若只发现1个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。软件程序流程图见后面。程控扫描法程序流程图实例键盘接口电路采用8155的键盘接口电路下面的程序是用行扫描法进行键扫描的程序,其中KS1为判键闭合的子程序。有键闭合时(A)=0。DIR为数码显示器扫描显示子程序,执行一遍的时间约6ms。程序执行后,若键闭合,键值存入A中,键值的计算公式是:键值=行号×8+列号;若无键闭合,则A中存入标志FFH。KEY1:LCALLKS1;检查有无闭合键JNZLK1;(A)=0,LJMPKEY1;无闭合键则返回LK1:LCALLT12MS;延时12msLCALLKS1;清抖,再检查有键闭合否?JNZLK2;LJMPKEY1;无键闭合则返回LK2:MOVR4,#00H;首列号初值送R4MOVR2,#0FEH;首行扫描初值字送R2LK4:MOVDPTR,#0101H;指向8155口AMOVA,R2;行扫描值送AMOVX@DPTR,A;扫描1INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;JBACC.0,LONEMOVA,#00HLJMPLKPLONE:JBACC.1,LTWOMOVA,#08H;(A)为行号值LJMPLKPLTWO:JBACC.2,LTHRMOVA,#10HLJMPLKPLTHR:JBACC.3,NEXTMOVA,#18HLKP:ADDA,R4;行号和列号值相加和得到键值PUSHACCLK3:LCALLKS1JNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.7,KNDRLAMOVR2,ALJMPLK4KND:LJMPKEY1KS1:MOVDPTR,#0101H;MOVA,#00H;MOVX@DPTR,A;INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;ANLA,#0FHORLA,#0F0H;高4位取“1”保持低4位CPLA;取反,无键按下则(A)=全“0”RET2、定时扫描法由CPU隔一定时间执行键盘扫描程序一次。3、中断扫描法中断扫描方式原理图见下图按键时由外部中断0向CPU中断申请,CPU开始执行键盘扫描程序一次,大大提高计算机的工作效率。4、线反转法二、LED显示接口技术(一)概述常见显示器有:CRT显示器;LED显示器;LCD显示器。各自的特点、应用在嵌入式单片机系统中,主要应用的是LED显示器和LCD显示器,我们本课程主要介绍LED数码管显示器LED显示器常见有:七段“8”字型LED数码管;14段“米”字型LED数码管;m×n矩阵式显示器制造材料的不同,可发出红、黄、蓝、紫等颜色,使LED显示器有单色和彩色之分。(二)LED数码管的结构及显示原理七段LED数码显示器各段码位的对应关系如下:(a段为最低位,dp点为最高位)LED显示字形编码表:(当然还能显示其它一些字母、符号等)eVCCfdgch+ibAaBVCRLEDVSSC8031P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7abcdfgdp(a)(b)单片机与1位LED数码管的连接,有位选线和段选线之分(三)LED数码管的显示方式和接口1、多位LED数码管的显示方式静态显示动态显示多位LED的显示,每位LED数码管有位选线和段选线两种显示方式的各自特点:静态显示方式,各位显示相对独立,各位显示需经8位锁存器锁存字型码,编程简单,管理容易,占用口线较多(尤其在显示位数很多时)。亮度较动态显示的大。动态显示占用口线较少,线路简单,但程序复杂,微机必须不断地执行显示程序,才能保持LED的显示,占用CPU机时较多,不宜应用于工业控制等复杂控制系统中。(3)接口注意问题:锁存、驱动、译码、限流等问题按译码方法的不同分为软件译码和硬件译码现成的集锁存器、译码器、驱动器和显示器四位一体的显示器件较多。动态和静态的LED显示接口电路又有并行和串行接口2、动态显示的串行接口电路串行口工作于方式0,用了串入并出的移位寄存器74LS1643、动态显示及其接口电路目前国内的许多单片机开发系统和仿真器均采用LED的动态显示。以下着重讲解并行接口动态显示电路及程序设计。一个典型实例见下图,它为常用的并行6位动态显示电路,6位LED均连接为共阴显示方式。74LS07为6位驱动器,七段LED数码管需用2片进行驱动。75452为2位缓冲器/驱动器,有反相驱动作用,6位LED需用3片提供位选信号。动态显示亮度除与导通电流有关外,还与点亮时间占空比例有关(如位数多时亮度降低)。用8155的PA口输出8位字型码,6位PB口线输出位选码。设显示缓冲区为地址30H~35H。用软件译码的方式查表字型码。读后面的程序流程图和相应的程序动态显示子程序清单如下:ORG3000HDISPLY:MOVA,#03H;设置8155A、B口均为输出方式MOVDPTR,#0FD00HMOVX@DPTR,AMOVR0,#30H;显示缓冲区地址送R0MOVR2,#20H;位选码指向最左一位DISPY1:MOVA,@R0;取出要显示的数MOVDPTR,#SEGTAB;指向换码表首址MOVCA,@A+DPTR;取出显示码MOVDPTR,#0FD01H;从8155A口输出显示码MOVX@DPTR,AMOVA,R2;从8155B口输出位选码INCDPTRMOVX@DPTR,AACALLD1MS;延时1msMOVA,R2JNBACC.0,DISPY2;6位都显示完了吗?未完,继续显示RETDISPY2:INCR0;求下一位待显示的数的存放地址MOVA,R2:求下一个位选码RRCAMOVR2,AAJMPDISPY1D1MS:MOVR3,#7DH;延时1msDL1:NOPNOPDJNZR3,DL1RETSEGTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DHDB07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H该动态显示子程序DISPLY仅是一次扫描而已,欲使字符稳定显示,需不断连续调用该子程序.4、静态显示及其接口电路一个典型实例见下图,它为常用的6位BCD码的静态并行显示电路。(图中省略了RAM和EPROM的扩展)6位LED均连接为共阴显示方式。74LS144为总线驱动器,6位数字显示公用同一组总线。WR和P2.7同时为低电平时由P0口传送出数据。每位LED配用一个锁存器74LS377,锁存待显示数据,受控于译码器74LS138的输出。读图知6位LED显示器从左到右的地址为:4000H,4100H,4200H,4300H,4400H,4500H静态显示方式,只有送来新的数据时,显示值才更新。与动态显示方式相比,节省CPU的机时。读后面的静态显示程序说明:显示缓冲区单元中为压缩BCD码数,一个字节单元中为两位BCD码数,需用两位LED数码管显示。每个377相当于扩展的一个简单输出接口。ORG8000HSIXDPY:MOVR0,#30HMOV33H,#03HMOVDPTR,#4000HLOOP:MOVA,@R0ANLA,#0F0HRRARRARRARRAADDA,#10HMOVCA,@A+PCMOVX@DPTR,AMOVA,@R0ANLA,#0FHINCDPHADDA,#08HMOVCA,@A+PCMOVX@DPTR,AINCR0INC.DPHDJNZ33H,LOOPRETSEGTAB:DB3FH,06H,5BH,4FH,66H,6D,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71HDB80H,40H,00H,73H三、键盘显示器接口82798279是一种可编程键盘/显示器专用接口芯片,可实现CPU与键盘、LED数码显示器之间进行信息交换。它能接收和识别来自键盘阵列的输入数据并完成预处理,还能显示数据和对数码显示器的自动扫描控制。8279与MCS-51单片机的接口简单,控制方便,在单片机应用系统中得到广泛应用。四、其它常见的人机接口电路BCD拨码盘LCD显示器等等,能用到或感兴趣的可参考相关资料自学
本文标题:计算机控制(第三章,键盘,LED)
链接地址:https://www.777doc.com/doc-3381120 .html