浅谈键盘技术应用及实现方案Word文件下载.docx
- 文档编号:15759013
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:14
- 大小:293.79KB
浅谈键盘技术应用及实现方案Word文件下载.docx
《浅谈键盘技术应用及实现方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《浅谈键盘技术应用及实现方案Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
随着计算机技术的不断发展,如今鼠标应用越来越广泛,但在文字输入领域,键盘依旧有着不可动摇的地位。
作为重要的输入工具,键盘并不因循守旧,为了顺应潮流,向着多媒体、多功能和人体工程学方向不断研发,凭借新奇、实用、舒适,不断巩固着输入设备巨人的地位。
本论文简单说明键盘的应用与实现方案。
本文简单介绍了键盘的发展史及键盘的工作原理。
概述了8086、AT89C51作为CPU如何接,进行了键盘扫描电路的硬件设计,介绍按键式和编码式两种方法。
着重就矩阵式键盘做了详细说明,设计了主程序及子程序。
关键词:
键盘;
矩阵式;
键盘扫描电路;
程序设计。
一、引言
1873年的肖尔斯打字机以“QwERTY”布局排列键盘最初只是为了减慢打字的速度,而在推广这种打字机的时候,发明者们说这是最科学的排列方法,能够有效地提高打字速度。
这一谣言被人们相信了接近100年之久。
早期键盘实物图见图1。
图1早期键盘图
今天的计算机键盘虽然无论是材质还是原理都和打字机相差甚远,但是键位的排列是相同的。
这种现象被叫做“路径依赖”:
当人们一旦做出了某种选择,惯性的力量就会让选择不断自我强化。
即便有更好的方案,也因为改变的成本太高而不得不被放弃。
今天的键盘布局,可以追溯到140年之前的灵机一动和120年前的一次意外,但是它们却能够决定了今天数十亿人的使用习惯。
计算机键盘和打字机之间的血缘关系一望可知。
今天的键盘看起来和IBM公司在上世纪50年代开发的电动打字机键盘十分相似,而再向前追溯,则是更早的机械打字机。
它的历史可以追溯到18世纪早期——为了让盲人也能够书写,1714年,一位名叫亨利·
米尔的英国人申请了打字机的专利。
可惜他的专利文献和设计图现在都已经遗失,我们再也无缘看见世界上第一部打字机是什么样子。
显然,这种小众工具没能流行开来。
那个时代的人们依然满足于用手书写,他们对速度和整齐的要求似乎还不是很高。
直到资本主义变得越来越成熟,人们对文字的需求越来越大的时候,打字机的市场才真正开始培育起来。
在十九世纪,人们已经设计出了数十种打字机:
从能够打出精美的印刷字体的到模仿手工书写的,一应俱全。
早期的打字机有一个问题。
当按下一个按键后,会拉动一根钢丝,钢丝连接着上方字盘中的杠杆,每个杠杆末端都有一个字母的凸模,把字母像是盖章那样敲在纸面上。
如果打字速度过快的话,上方的杠杆往往来不及弹回,就会卡住。
不得不承认,解决这个问题的办法很有创意。
肖尔斯找到了他的妹夫詹姆斯-登斯莫尔帮忙,而这位数学老师建议减慢打字的速度,以尽可能避免卡键的状况。
他认为把字母乱序排列会有好处。
事实上这种以“QWERTY”布局排列的打字机的确减少了卡键的发生,而在推广这种打字机的时候,发明者们说这是最科学的排列方法,能够有效地提高打字速度。
英国打字机博物馆馆长、《打字机世纪》一书的作者威尔弗雷德·
比彻声称,“这种所谓科学安排以减少手指移动距离的说法,是彻头彻尾的谎言。
”,而且,“对字母的任何一种随机性的安排,都会比现在这种安排合理。
”虽然今天的卡键问题早已不存在了,但是这种布局已经固定了下来。
直到今天,我们还会在大多数英文键盘上看到它,完全无法想象,在过去的100年里,它浪费了多么惊人的时间。
二、浅谈键盘技术应用及实现方案
(一)8086作为CPU如何接
Intel8086集成2.9万只晶体管,时钟频率为4.77MHz,内部数据总线(CPU内部传输数据的总线)、外部数据总线(CPU外部传输数据的总线)均为16位,地址总线为20位,可寻址1MB内存。
Intel8086拥有四个16位元一般的暂存器,也能够当作八个8位元暂存器来存取,以及四个16位元索引暂存器(包含了堆栈指标)。
资料暂存器通常由指令隐含地使用,针对暂存值需要复杂的暂存器配置。
它提供64K8位元的输出输入(或32K16位元)埠,以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个运算子必须是一个暂存器。
运算结果会储存在运算子中的一个。
Intel8086有四个内存区段(segment)暂存器,可以从索引暂存器来设定。
区段暂存器可以让CPU利用奇怪的方式存取内存的1MB。
在现今有区段的处理器中,8086把区段暂存器左移4位元然后把它加上去位址。
大部分的人都认为这是一个很不好的设计,因为这样的结果是会让各区段有重叠。
尽管这样对组合语言而言大部分被接受(也甚至有用),可以完全地控制区段,但是在语言中,让使用指标(像是C编程语言)变得困难。
它导致指标的高效率表示变得困难,且有可能产生两个指向同一个地方的指标拥有不同的位址。
更坏的是,这种方式产生要让内存扩充到大于1MB的困难。
而80286的寻址方式改变让内存扩充较有效率。
(二)AT89C51作为CPU如何接,比较之后用AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROMFlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图2所示。
图2AT89C51结构框图
三、键盘扫描电路的硬件设计
单片机键盘根据不同的驱动控制方式,大体可分为两大类,一类是独立式键盘;
一类是矩阵式键盘。
独立式键盘是键盘发展的早期阶段,应用在对按键复杂度要求较低的设备上。
独立式键盘的原理非常简单,就是将单片机的I/O口(输入/输出口)与按键物理连接起来,键盘有多少按键,每个按键都要和单片机的一个I/O口相连。
这样设计的优点是结构简单,不需要过多的连线。
但是缺点也非常明显:
常见的80系列单片机总共只有四十个端口,而I/O口只有三十二个,一个键盘就占去了其中大部分的I/O口,那单片机就没有足够的端口去控制其它设备了。
(一)按键式和编码式
1.简要说明一下键盘的工作原理:
按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。
行线通过上拉电阻接到+5V电源上。
无按键按下时,行线处于高电平的状态,而当有按键按下时,行线电平与此行线相连的列线电平决定。
2.行列扫描法原理第一步,使行线为编程的输入线,列线是输出线,拉低所有的列线,判断行线的变化,如果有按键按下,按键按下的对应行线被拉低,否则所有的行线都为高电平。
第二步,在第一步判断有键按下后,延时10ms消除机械抖动,再次读取行值,如果此行线还处于低电平状态则进入下一步,否则返回第一步重新判断。
第三步,开始扫描按键位置,采用逐行扫描,每间隔1ms的时间,分别拉低第一列,第二列,第三列,第四列,无论拉低哪一列其他三列都为高电平,读取行值找到按键的位置,分别把行值和列值储存在寄存器里。
第四步,从寄存器中找到行值和列值并把其合并,得到按键值,对此按键值进行编码,按照从第一行第一个一直到第四行第四个逐行进行编码,编码值从“0000”至“1111”,再进行译码,最后显示按键号码。
3.数码管动态扫描原理:
数码管动态扫描原理:
数码管的7个段及小数点都是由LED块组成的,显示方式分为静态显示和动态显示两种。
数码管在静态显示方式时,其共阳管的位选信号均为低电平,四个数码管的共用段选线a、b、c、d、e、f、g、dp分别与CPLD的8根I/O口线相连,显示数字时只要给相应的段选线送低电平。
数码管在动态显示方式时,在某一时刻只能有一个数码管被点亮显示数字,其余的处于非选通状态,位选码端口的信号改变时,段选码端口的信号也要做相应的改变,每位显示字符停留显示的时间一般为1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定的数字显示。
通用键盘长按键实现方法及其在输入中的应用方法,属于计算机应用领域。
通用键盘长按键实现方法包括:
创建并安装键盘钩子动态链接程序,当使用键盘时,获取底层键盘消息并记录键盘的“按下消息”和“放开消息”的顺序和次数;
根据重复键与“按下消息”和“放开消息”顺序和次数的关系判断出当前按键是否为长按键。
长按键在输入中的应用方法包括:
监控当前按键是否为长按键,如果是,查询是否存在与当前按键匹配的汉字首编码,如果存在,将修改光标定位到对应的汉字或编码上,更新显示提示行并等待修改。
本发明通过识别通用键盘的长按键,实现了输入时快速定位和修改错误汉字功能,明显地增强了通用键盘的实用功能。
(二)矩阵式
1.4*4矩阵式键盘识别显示系统概述
矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。
显示按键信息,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。
并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键。
矩阵式键盘简介:
矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为N*N个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
最常见的键盘布局如图1所示。
一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。
阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。
2.路硬件说明
(1)在“单片机系统”区域中,把单片机的P1.0-P1.7端口通过8联拨动拨码开关JP3连接到“4*4行列式键盘”区域中的M1-M4,N1-N4端口上[3]。
即将P1口作为整个系统的输入接口电路。
(2)在“单片机系统”区域中,把单片机的P0.0-P0.6端口通过上拉电阻连接到“静态数码显示模块”区域中的任何一个a-g端口上。
(3)此实验采用的是共阴极LED显示块,只有当a-g端口输入高电平时才有效,即显示块中的对应的发光二极管才发光,低电平时不显示,通过a-g端口的不同输入使显示器显示不同的字符。
3.硬件电路设计及电路图
硬件电路设计图如下图3所示。
把单片机的P1.0-P1.7端口通过8联拨动拨码开关连接到“4*4行列式键盘”,其中P1.0-P1.3作为列线,P1.4-P1.7作为行线,把单片机的P0.0-P0.6端口连接到共阴极“静态数码显示模块”区域中对应的a-g端口上;
系统首先通过CPU对全部键盘进行扫描,即把第一根行线置为“0”状态,其余行线置于“1”状态,读入输入缓冲器的状态,若其状态全为“1”表明该行无键按下,再将第二根行线置为“0”状态,同样读入输入缓冲器的状态,如其状态也全为“1”,则置第一根行线置为“0”状态,以此类推[5]。
如读入输入缓冲器的状态不全为“1”,确定哪一根列线为“0”状态,当某个键的行线和列线都为“0”状态时,表明该键按下。
最后通过显示程序将该键的序号显示出来。
图3硬件电路图
四、程序说明及其流程图
(一)汇编程序
KEYEQU30H
ORG0000H;
入口地址
SJMPSTART
START:
MOVP0,#00H
JIXU:
MOVP1,#0FFH;
判第0行是否有键按下
CLRP1.4;
将P1.4清零
MOVA,P1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 键盘 技术 应用 实现 方案
![提示](https://static.bdocx.com/images/bang_tan.gif)