单片机键盘原理和实现_第1页
单片机键盘原理和实现_第2页
单片机键盘原理和实现_第3页
单片机键盘原理和实现_第4页
单片机键盘原理和实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

8.3 键盘接口技术一、 键盘输入应解决的问题键盘是一组按键的集合,它是最常用的单片机输入设备操作人员可以通过键盘输入数据或命令,实现简单的人机通讯。键是一种常开型按钮开关,平时(常态)键的二个触点处于断开状态,按下键时它们才闭合(短路)。键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件译码器实现并产生编号或键值的称为编码键盘,如:ASC码键盘、BCD码键盘等;靠软件识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中用得最多的是非编码键盘。本节着重讨论非编码键盘的原理、接口技术和程序设计。键盘中每个按键都是个常开关电路,如图所示。1. 按键的确认: P1.7=1 无按键; P1.7=0 有按键;2. 去抖动 去抖动的方法: 硬件去抖动 采用RS触发器: 优点: 速度快,实时, 缺点: 增加了硬件成本 软件去抖动 采用延时方法 延时510ms 延时510ms P1.7=0 确认P1.7=0 P1.7=1(去前沿抖动) (去后沿抖动) 二、 独立式键盘 每个I/O口连接一个按,S1 P1.0S2 P1.1.S8 P1.7 软件: START: MOV P1,#0FFH ;置P1口为高电平JNB P1.0, RS1 ; S1按下,程序去执行RS1JNB P1.1, RS2 ; S2按下,程序去执行RS2JNB P1.2, RS3 ; S3按下,程序去执行RS3JNB P1.3, RS4 ; S4按下,程序去执行RS4JNB P1.4, RS5 ; S5按下,程序去执行RS5JNB P1.5, RS6 ; S6按下,程序去执行RS6JNB P1.6, RS7 ; S7按下,程序去执行RS7JNB P1.7, RS8 ; S8按下,程序去执行RS8AJMPSTART ; 继续扫描按键.RS1:AJMP PK1 ;RS2:AJMP PK2;RS3:AJMP PK3;RS4:AJMP PK4;RS5:AJMP PK5;RS6:AJMP PK6;RS7:AJMP PK7;RS8:AJMP PK8;AJMP START ; 无键按下,继续扫描PK1:. ; 按键S1功能处理程序 AJMP START ; 处理S1按键后, 继续扫描PK2:. ; 按键S2功能处理程序 AJMP START .PK8: ; 按键S8功能处理程序 AJMP START ; 处理S8按键后, 继续扫描优点: 连线简单,程序容易.缺点: 太浪费资源适用于按键较少、I/O口空闲的场合。三、行列式非编码键盘接口方法 按键较多时,一般采用行列式键盘.采用扫描方式,软件扫描方式有三种: 程序扫描方式: 当CPU空闲时,扫描键盘,判断有无键按下. 定时扫描方式: 利用CPU的定时器,每隔一定时间扫描一次键盘. 中断扫描方式: 在硬件上采用中断,有键按下时,产生中断, 由中断服务程序来处理.下面是16个按键,构成的44键盘 行线: 四根,接P1.0-P1.3 列线: 四根,接P1.4-P1.7 程序扫描法原理: P1.0-P1.3输出低电平,读P1.4P1.7,若全为1,无键按下若不全为1,有键按下 在有键按下的情况下,进一步判断是那个键按下 使P1.0-P1.3依次输出低电平,读P1.4-P1.7判断有无键按下子程序, 程序名: KAP键盘查询子程序KAP:MOV P1,#0F0H ;行线输出低电平,列线输出高电平 MOVA,P1 ;P1口读入ACPL A ;取反ANL A,#0F0H ;取高四位,即P1.4-P1.7RET程序出口: A=0, 则无键按下. A0 则有键按下.去抖动-延时10ms子程序: 程序名D10MSD10MS:MOVR6, #14H;DL:MOV R7,#0FFH; DJNZ R7,$DJNZ R6,DLRETKINP:LCALLKAP; 调键盘查询子程序,JNZKP1; A0,有键按下SJMP END_KINP ; A=0,无键按下,退出按键查询程序KP1:LCALLD10MS;延时10MS,去抖动LCALLKAP;再次查询键盘,JNZKP2; A0,确认有键按下SJMPEND_KINP; A=0,误操作,重新查询KP2为取键值子程序KP2:MOVR2,#0FEH; R2为行扫描值MOVR4,#00H; R4初值为第0行行首键号CLRF0; F0=0表示正在扫描键盘KP4:MOV P1,R2; 扫描行为低MOV A,P1; 读P1JBACC.4, L1; 第0列不为低,则检查第1列MOVA,#00H; 为低,则行首键值送入AAJMPKP5; KP5L1:JB ACC.5,L2; 检查第一列MOVA,#04H; 第一列行首键值送入AAJMPKP5L2:JB ACC.6 ,L3 ; 检查第二列MOVA,#08H; 第二列行首键值送入AAJMPKP5L3:JB ACC.7 , NEXT; 检查第三列,若为1,则检查下一行MOVA,#0CH; 第三列行首键值送入AKP5:ADDA , R4; A A+R4,键值调整PUSHA; KP3:LCALLD10MS; 后沿去抖动LCALLKAP; 查询按键是否释放JNZKP3; A0 未释放,继续查询POPA; 键已释放,弹出键值RETNE

温馨提示

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

评论

0/150

提交评论