计算机控制(第三章,键盘,LED)81856课件_第1页
计算机控制(第三章,键盘,LED)81856课件_第2页
计算机控制(第三章,键盘,LED)81856课件_第3页
计算机控制(第三章,键盘,LED)81856课件_第4页
计算机控制(第三章,键盘,LED)81856课件_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机控制技术

第三章人机交互接口技术一、键盘接口(一)概述

键盘是由一组按钮开关——键(一般为常开型)的组合,是计算机的输入设备,为计算机系统普遍使用的人机交互设备。用户通过键盘可以向CPU输入数据、地址和命令等。键盘按其结构形式可分为:独立式和矩阵式。键盘按功能可分为:编码式键盘和非编码式键盘两类。编码键盘能自动识别按下的键和提供该键所代表的信息代码,并以并行或串行信号输给CPU。键盘电路中设有专用的键盘编码器,并具有防抖和解决重键的功能。功能强,响应快,结构复杂。非编码键盘是一种便宜而广泛用于单片机系统的输入设备。这种键盘通常采用软件的方法,扫描键盘是否有键被按下,并用计算或查表的方式得到该键的键值,然后再送给CPU。键的功能分为字符键和控制键。键盘设计时需主要解决的以下几个问题:①按键的识别(按键的有无和位置);②重键和连击的处理;按键抖动信号波形③如何消除键的抖动(硬件和软件消抖方法):主程序如下: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个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。软件程序流程图见后面。程控扫描法程序流程图下面的程序是用行扫描法进行键扫描的程序,其中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;扫描1行INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;读入列值JBACC.0,LONEMOVA,#00HLJMPLKPLONE:JBACC.1,LTWO MOVA,#08H;(A)为行号值 LJMPLKPLTWO:JBACC.2,LTHR MOVA,#10H LJMPLKPLTHR:JBACC.3,NEXT MOVA,#18HLKP:ADDA,R4;行号和列号值相加和得到键值 PUSHACCLK3:LCALLKS1 JNZLK3 POPACC RETKS1: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数码管的结构及显示原理七段LED数码显示器各段码位的对应关系如下:(a段为最低位,dp点为最高位)LED显示字形编码表:(当然还能显示其它一些字母、符号等)单片机与1位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:求下一个位选码 RRCA MOVR2,A AJMPDISPY1D1MS:MOVR3,#7DH;延时1msDL1:NOPNOP DJNZR3,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,07HD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论