资源描述:
《《显示键盘接口》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章单片机与显示器和键盘的接口8.1键盘接口键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。键盘按其结构形式可分为:编码式键盘和非编码式键盘两类。单片机系统中普遍使用非编码式键盘,这类键盘主要解决以下几个问题:①键的识别;②如何消除键的抖动;③键的保护。1.非编码式键盘工作原理非编码式键盘识别按键的方法有两种:一是行扫描法,二是线反转法。1)行扫描法通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全
2、“1”信号。为了防止双键或多键同时按下,往往从第0行一直扫描到最后1行,若只发现1个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。2)线反转法线反转法也是识别闭合键的一种常用方法,该法比行扫描速度快,但在硬件上要求行线与列线外接上拉电阻。先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值,然后将行线和列线的输入输出关系互换,并且将刚才读到的列线值从列线所接的端口输出,再读取行线的输入值。那么在闭合键所在的行线上值必为0。这样,当一个键被按下时,必定可读到一对唯一的行列值
3、。2.键盘接口电路图8.1采用8155的键盘接口电路下面的程序是用行扫描法进行键扫描的程序,其中KS1为判键闭合的子程序。有键闭合时(A)~=0。DIR为数码显示器扫描显示子程序,执行一遍的时间约6ms。程序执行后,若键闭合,键值存入A中,键值的计算公式是:键值=行号×4+列号;若无键闭合,则A中存入标志FFH。KEY1:LCALLKS1;检查有无闭合键?JNZLK1;(A)~=0,有键闭合则转LJMPLK8;无闭合键则返回LK1:LCALLDIR;延时12msLCALLDIR;清抖LCALLLS1;再检查有键闭合否?JNZ
4、LK2;有键闭合则转LJMPLK8;无键闭合则返回LK2:MOVR3,#00H;行号初值送R3MOVR2,#FEH;行扫描初值送R2LK3:MOVDPTR,#0101H;指向8155口AMOVA,R2;行扫描值送AMOVX@DPTR,A;扫描1行INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;读入列值ANLA,#0FH;保留低4位MOVR4,A;暂存列值CJNZA,#0FH,LK4;列值非全“1”则转MOVA,R2;行扫描值送AJNBACC.7,LK8;扫至最后一行则转RLA;未扫完,则移至
5、下一行MOVR2,A;行值存入R2中INCR3;行号加1SJMPLK3;转至扫描下一行LK4:MOVA,R3;行号送入AADDA,R3;行号×2MOVR5,AADDA,R5;行号×4MOVR5,A;存入R5中MOVA,R4;列值送ALK5:RRCA;右移一位JNCLK6;该位为0则转INCR5;列号加1SJMPLK5;列号未判完则继续LK6:MOV20H,R5;存键值LK7:LCALLDIR;扫描一遍显示器LCALLKS1;发扫描信号JNZLK7;键未释放等待LCALLDIR;键已释放LCALLDIR
6、;延时12ms,清抖MOVA,20H;键值存入A中KND:RETLK8:MOVA,#FFH;无键标志FFH存入A中RETKS1:MOVDPTR,#0101H;判键子程序MOVA,#00H;全扫描信号MOVX@DPTR,A;发全扫描信号INCDPTRINCDPTR;指向8155口CMOVXA,@DPTR;读入列值ANLA,#0FH;保留低4位ORLA,#F0H;高4位取“1”CPLA;取反,无键按下则全“0”RET最简单的键盘、指示灯扩展法8.2LED显示器接口1.LED显示器结构与原理图8.27段LED数码显示
7、器各段码位的对应关系如下:表8.1十六进制数及空白与P的显示段码2.LED显示器接口电路图8.36位动态显示器接口图8.4显示子程序流程图程序清单如下:DIR:MOVR0,#79H;显示缓冲区首址送R0MOVR3,#01H;使显示器最右边位亮MOVA,R3LD0:MOVDPTR,#0101H;扫描值送PA口MOVX@DPTR,AINCDPTR;指向PB口MOVA,@R0;取显示数据ADDA,#12H;加上偏移量MOVXA,@A+PC;取出字形MOVX@DPTR,A;送出显示ACALLDL1;延时INCR0;缓冲区
8、地址加1MOVA,R3;JBACC.5,LD1;扫到第6个显示位了吗?RLA;没有,R3左环移一位,扫描下一个显示位MOVR3,AAJMPLD0LD1:RETDSEG:DB3FH,06H,5B