资源描述:
《单片机 键盘 显示器接口》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。键盘、显示器接口编码式的:由其内部硬件逻辑电路自动产生被按键的编码。使用方便,键盘码产生速度快,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,硬件电路复杂、成本高。非编码式的:主要由软件产生被按键的编码。硬件电路简单,成本低,但占用CPU的时间较长。(单片机系统中普遍使用非编码式键盘。)6.3键盘接口键盘分类介绍此独立式按键矩阵式按键矩阵式按键非编码键盘独立式按键硬件方案——双稳态去抖电路一、键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~
2、10ms之间软件方案——延时10ms~20ms后再次判断消除方法:求键号闭合断开前沿抖动后沿抖动键按下闭合稳定键释放QQP抖动抖动键被按下按键输出波形P键被按下去抖动后的按键输出波形+5VR按键开关P键按下,S、R=01,触发器置1,P=0。按键前后,SR=10,触发器置0,P=1。P+5VPRR去抖动电路SR触点抖动跳开时,S、R=11,触发器保持,P仍=0。*在此期间,CPU对一次键入做多次键处理主要知识点:查询法定时扫描法中断法二、非编码独立式按键结合ME830实验,重点讲此法接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。实际上,
3、51单片机的P1-P3口都有内部上拉电阻,这些电阻、电源可以不接。见ME830实验板。查询法ME830独立式摁键P1.4-1.7P3.2-3.5查询法原理----当任何一个键被按下时,与其相连的输入线被置成“0”,平时该线为“1”。键处理程序ORG2000HSTART:MOVA,#0FFH;先置P1口为“1”MOVP1,AMOVA,P1;输入键状态JNBACC.0,P0F;查询0号键JNBACC.1,P1F;查询1号键JNBACC.2,P2F;查询2号键JNBACC.3,P3F;查询3号键JNBACC.4,P4F;查询4号键JNBACC.5,P5F;查询5号键JNBACC
4、.6,P6F;查询6号键JNBACC.7,P7F;查询7号键LJMPSTART键盘扫描P0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…………………..;0号键功能程序PROM7:…………………..;7号键功能程序…………………..LJMPSTART;0号键处理完返回键盘扫描LJMPSTART;7号键处理完返回键盘扫描…………………......ORG0000HKB:MOVP1,#0FFHMOVA,P1;第一次读键CPLAANLA,#0FHJZKBACKLCALLD10MSMOVA,P1;再
5、次读键CPLAANLA,#0FHJZKBACKCJNEA,#01H,KB01LCALLPGM1SJMPKBACKKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBACKKB02:CJNEA,#04H,KBLCALLPGM3KBACK:LJMPKBEND例子:按三个按键中的任一键均对应相应的一个特定功能。对应的数字叫键号类似ME830中的例程三三、非编码矩阵式按键结构关键问题:摁键的识别“行扫描法”与“线反转法”课本P195①行扫描法:该方法的基本思想是,由程序对键盘进行逐行扫描,通过检测到的列的输出状态来确定闭合键。先行全0,读列值,全1无摁键,非全1
6、有键摁下;有键摁下时:逐行输出0,查列值:有0则该行该列交叉处即为摁键位置.②线反转法:该方法的基本思想是通过行列颠倒两次扫描来识别闭合键。先行输出0,读列,全1则无摁键,有0有摁键--得列值再输出此列值,读行得行值—此列值+行值=闭合键的特征值识别键摁下的两种方法详见下页图行列互换,原理一样行列互换,原理一样行扫描法图(c)扫描第0行(d)扫描第1行(e)扫描第2行(f)扫描第3行确定为0行2列有键摁下课本P195(a)无键摁下(b)有键摁下粗略判断有无键摁下:有,再详细判断;无,则CPU仍做自己的工作有键摁下,详细判断是哪行哪列?键按下/释放判断KS:MOVA,#00
7、HMOVP1,A;全扫描字#00H送P1口MOVP1,#0FH;保留第4位(行)MOVA,P1;读入P1口状态ANLA,#0FH;取低4位RET;返回,A=0表示有键按下3210476511109815141312+5VP1.4P1.3P1.0P1.7P1.6P1.5P1.2P1.1MCS-51P1.0--1.3作为输入口P1.4--1.7作为输出口定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按