键盘显示器接口_第1页
键盘显示器接口_第2页
键盘显示器接口_第3页
键盘显示器接口_第4页
键盘显示器接口_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

PC机除了主机以外还需要哪些部分呢?单片机电路有时候也需要键盘、显示等外设。键盘、显示器接口编码式的:由其内部硬件逻辑电路自动产生被按键的编码。使用方便,键盘码产生速度快,占用CPU时间少,但对按键的检测与消除抖动干扰是靠硬件电路来完成的,硬件电路复杂、成本高。非编码式的:主要由软件产生被按键的编码。硬件电路简单,成本低,但占用CPU的时间较长。(单片机系统中普遍使用非编码式键盘。)6.3键盘接口键盘分类介绍此独立式按键矩阵式按键矩阵式按键我们实验用的非编码键盘独立式按键

硬件方案——双稳态去抖电路一、键盘接口需要解决的问题是否有键按下按键识别:键抖动及消除:机械按键抖动时间在5ms~10ms之间

软件方案——延时10ms~20ms后再次判断消除方法:求键号闭合断开前沿抖动后沿抖动键按下闭合稳定键释放QQP键被按下去抖动后的按键输出波形+5VR按键开关P键按下,S、R=01,触发器置1,P=0。按键前后,SR=10,触发器置0,P=1。P+5VPRR去抖动电路SR触点抖动跳开时,S、R=11,触发器保持,P仍=0。*在此期间,CPU对一次键入做多次键处理双稳态去抖电路这里的抖动指触点跳开前沿抖动后沿抖动键按下闭合稳定键释放去抖电路2键盘的工作方式有3种:查询法(程序控制扫描)定时扫描法中断扫描法二、非编码独立式按键结合ME830实验,重点讲此法接口电路:特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。实际上,51单片机的P1-P3口都有内部上拉电阻,这些电阻、电源可以不接。见ME830实验板。1.查询法

查询法是指单片机在空闲时,才调用键盘扫描子程序,并反复地扫描键盘,直到用户从键盘上输入命令或数据。而在执行键入命令或处理键入数据过程中,CPU将不再响应键入要求,直到CPU重新扫描键盘为止。

定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。2.定时扫描方式

为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。3.中断扫描方式ME830独立式摁键查询法原理----当任何一个键被按下时,与其相连的输入线被置成“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.6,P6F;查询6号键JNBACC.7,P7F;查询7号键LJMPSTART键盘扫描07P0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…..;0号键功能程序PROM7:…..;7号键功能程序…..LJMPSTART;0号键处理完返回键盘扫描LJMPSTART;7号键处理完返回键盘扫描…...... ORG0000HKB: MOVP1,#0FFH MOVA,P1;第一次读键

CPLA ANLA,#0FH JZKBACK;A=0(无键摁下)转

LCALLD10MS;防止抖动

MOVA,P1;再次读键

CPLA ANLA,#0FH JZKBACK;无键按下转

;******************有键按下

CJNEA,#01H,KB01;不等转

LCALLPGM1 SJMPKBACKKB01: CJNEA,#02H,KB02 LCALLPGM2 SJMPKBACKKB02: CJNEA,#04H,KB LCALLPGM3KBACK:LJMPKB;循环检测键

END例子:按三个按键中的任一键均对应相应的一个特定功能PGMi。对应的数字叫键号1、2、4类似ME830中的例程三123三、非编码矩阵式按键结构关键问题:摁键的识别“行扫描法”与“线反转法”课本P195

①行扫描法:基本思想:由程序对键盘进行逐行扫描,通过检测到的列的输出状态来确定闭合键。

先行全0,读列值,全1无摁键,非全1有键摁下;

有键摁下时:

逐行输出0,查列值:有0则该行该列交叉处即为摁键位置.

②线反转法(行反转法):行反转法需要两个双向I/O口分别接行、列线。该方法比扫描法速度快,但硬件上要复杂一些。基本思想:通过行列互换两次扫描来识别闭合键。识别键摁下的两种方法①行扫描法图(c)扫描第0行(d)扫描第1行(e)扫描第2行(f)扫描第3行确定为3行2列有键摁下课本P195(a)无键摁下(b)有键摁下粗略判断有无键摁下:有,再详细判断;无,则CPU仍做自己的工作有键摁下,详细判断是哪行哪列?abcdef行列确定第2列有键摁下②线反转法

AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5vP202图6-280行1行2行3行0列1列2列3列原理:@由行线输出全“0”,读入列线,判有无键按下。@若有键按下,再将读入的列线值由列线输出,读进行线的值。@第一步读进的列线值与第二步读进的行线值相加,从而得到代表此键的唯一的特征值。@线反转法因输入与输出线反过来用而得名。@优点是判键速度快,两次即可。线反转法图例AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5vMOVP1,#0F0H;低位送全“0”MOVA,P1;读进P1口电平

ANLA,#0F0H;保留高4位

CJNEA,#0F0H,MK3;若有键按下则P1.4—P1.7必有“0”位,跳转到MK3去处理;

若无键按下则退出键扫描。0行1行2行3行0列1列2列3列设:第3行/第1列结点有键按下首先:“11110000”→P1然后读P1:P1←“1101xxxx”只留高4位:A=“11010000”因为有键按下,A≠11110000P202图6-28AT89C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5vMOVP1,#0F0H;低位送全“0”MOVA,P1;读进P1口电平

ANLA,#0F0H;保留高4位

CJNEA,#0F0H,MK30行1行2行3行0列1列2列3列此时:R2←“11010000”然后:A←“11011111”返送P1口:“11011111”→P1再读P1口:P1←“xxxx0111”只留低4位:A←“00000111”特征值:A+R2=“11010111”

MK3:

MOVR2,A;暂存回R2ORLA,#0FH;高4位保留;

低4位充“1”MOVP1,A;新值返送P1口

MOVA,P1;再读进P1口电平

ANLA,#0FH;只留低4位

ADDA,R2;得到键特征值P202图6-28线反转法图例ME830矩阵式摁键(线反转法)P1口,是一个双向口低4位作为列线高4位作为行线0123456789AbCdEF实验八源程序线反转法P68P1口:低4位作为列线高4位作为行线(特征值)01234CDFE0123456789AbCDEF-B中应是特征值查特征值表的次数=键值从键值得到段码1.矩阵键盘定义(接口引脚定义)2.建表:内存中建好键编码表(特征值表)和段码表3.通过线反转法得到相应的特征值4.通过查找该特征值的查表次数得到相应键值5.通过该键值得到相应段码6.送该段码显示键值实验总结重点!特点:键的特征值唯一自动解决了重键问题1.LED显示器结构与原理图7段LED数码显示器6.4显示器接口ME830为共阳极表十六进制数及空白与P的显示段码数电里讲过LED的结构和显示原理静态显示方式动态显示方式动态显示的实现动态显示方式显示器接口技术包括重点学习静态显示方式连接

所有LED的位选均共同连接到+VCC或GND,每个LED的8根段选线分别连接一个8位并行I/O口,从该I/O口送出相应的字型码显示字型。

特点原理简单;显示亮度强,无闪烁;占用I/O资源较多。分别用1个IO口动态显示方式连接

所有LED的段选线共

温馨提示

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

评论

0/150

提交评论