单片机5个IO口扫描25个按键的程序,怎么只能扫描到下面5个键

单片机5个IO口扫描25个按键的程序,怎么只能扫描到下面5个键,第1张

本文以循序渐进的思路,引导大家思考如何用最少的IO驱动更多的按键,并依次给出5种方案原理图提供参考。在实际项目中我们经常会遇到有按键输入的需求,但有的时候为了节省资源成本,我们都会选择在不增加硬件的情况下使用最少的控制器IO驱动更多的按键,那么具体是怎么做的呢,下面我们就以用5个IO引脚为例,讲下怎么设计可以实现更多的按键?共有5种设计思路,下面依次介绍。

思路一

首先通常想到的可能是下面这样的设计:

上图形式的按键就是我们通常说的行列式按键,它的驱动思路是这样的:

1. 对IO1、2、3配置为推挽输出,依次只让其中一个输出为0其他输出为1。

2. 对IO4、5进行读 *** 作,根据读出的结果判断哪个按键按下

例如:配置IO1、2、3为011,读IO4、5,若IO4为0则SW14按下,若IO5为0则SW15按下;

依次的配置IO1、2、3为101,读IO4、5,若IO4为0则SW24按下,若IO5为0则SW25按下;

依次的配置IO1、2、3为110,读IO4、5,若IO4为0则SW34按下,若IO5为0则SW35按下;

思路二

但是我们在不知道行列式按键之前我们肯定是依次将IO口接一个按键到GND或者到VCC,然后去读IO口去判断哪个按键按下,这也是最简单的方法,但是很浪费IO口,下面这种就结合了这种简单方法和行列式的思路,实现了又多增加3个按键,如下图:

这里我们的思路是先依次读IO1、2、3的电平来识别S1、2、3,哪个按键按下,其后的流程和思路一是一样的,这样就可以识别11个按键了。

思路三

按照扫描的思想,某一时刻设置一个IO口为0,其他IO口读,如果有IO口读到0,则有对应按键按下。比如IO1为0,然后读到IO5也为0,那么K15就是按下的。对照这样的思路,我们可以有下面的设计:

这个电路按键识别思路是这样的:

1. 只配置IO1为0,其他IO读,若IO5读到0,则K15按下,若IO4读到0,则K14按下,依次识别K13,K12;

2. 只配置IO2为0,其他IO读,若IO5读到0,则K25按下,若IO4读到0,则K24按下,依次识别K23;

3. 只配置IO3为0,其他IO读,若IO5读到0,则K35按下,若IO4读到0,则K34按下;

4. 只配置IO4为0,其他IO读,若IO5读到0,则K45按下;

思路四

对于思路3我们发现,如果只配置IO5为0,其他IO读,若IO1读到0,则K15按下,若IO2读到0,则K25按下,依次可识别K35和K45。这样就存在重复,那么有么有好的方法,解决这样的重复呢?我们发现,若配置IO1为0,K15按下,电流流向IO1的,若配置IO5为0,同样K15按下,电流是流向IO5的。这样我们就可以通过区分电流的流向来避免重复。于是就有了下图的设计:

这样就可以避免重复,IO5为0时,按K15,IO1是读不到0的。那么怎样设计,IO5为0时对应一个按键按下IO1为0呢?如是就有人想到下面的设计:

这个电路按键识别思路是这样的:

1. 只配置IO1为0,其他IO读,若IO5读到0,则K51按下,若IO4读到0,则K41按下,依次识别K31,K21;

2. 只配置IO2为0,其他IO读,若IO5读到0,则K52按下,若IO4读到0,则K42按下,依次识别K32,K21';

3. 只配置IO3为0,其他IO读,若IO5读到0,则K53按下,若IO4读到0,则K43按下,依次识别K32’,K31';

4. 只配置IO4为0,其他IO读,若IO5读到0,则K54按下,若IO4读到0,则K43’按下,依次识别K42’,K41';

5. 只配置IO5为0,其他IO读,若IO4读到0,则K54’按下,若IO3读到0,则K53’按下,依次识别K52’,K51'。

思路五

很多人可能认为思路四已经识别20个按键了,但是真的就没有其他方法了吗?不要忘了,我们还没有将思路二你介绍的那种最简单的方法结合进去,于是又可以多5个按键,如下图:

这样我们可以先识别K01、K02、K03、K04、K05,若没有按键按下然后再和思路四的设计一样去识别其他按键。但这样存在一个问题,如果IO1配置为0,IO5读到0,那么怎么知道是K51按下还是K05按下呢,这里只需要在程序里做下判断,先判断下是不是K05按下,若不是就是K51,因为按键K01、K02、K03、K04、K05在5个IO口都为读取的情况下,就可以识别,不需要扫描识别处理,相当于这5个按键优先级高与其他按键。

总结

综合上述,5个IO口最多可以识别25个按键,思路五程序上处理比较麻烦,若实际中只按思路四设计,也可识别20个按键,那么如果有N个IO口可识别多少按键呢?这里给出如下公式:

假设有N个IO口按照思路三可以识别N*(N-1)/2个;

按照思路四可识别N*(N-1)个;

按照思路5可以识别N*(N-1)+N个。

最后再说下,如果实际设计时,还是按思路四设计好,软件也没那么麻烦。如果是你的话你会选择哪种方法呢?你还有没有其他的设计方法呢?

索恒速录机与计算机实现无缝对接技术包括了USB驱动程序和应用程序两部分。一切以与计算机的软硬件资源共享为核心,在以文字录入为主的 *** 作当中,标准键盘能办到的,索恒速录机均可以做到。在校学习、自学、远程学习等方面可以为用户提供最直接的服务,通过调用计算机字库词库实现对任何最优秀和个性化的拼音输入法无障碍使用基础的flash动画教学片旨在为基础用户服务,帮助学者短时间掌握基本的应知应会提速课程帮助完成基础学习的学员提升速度,帮助用户更快速地速记记录应用索恒速录机无缝对接技术的实现,帮助用户更流畅地享受计算机所有的功能和服务,只要是计算机的存储、CPU、硬盘容量、内存、 *** 作系统等等,一切的一切只要是计算机具有的同时也就是索恒速录机拥有的。

索恒速录机以与计算机资源共享和实现与计算机无缝对接技术作为索恒速录机最核心的技术,经过多年持续不断地优化改进已经正式推出5.0版本。全面升级索恒略码树的任意制作与修改功能,凭借自主研发的略码树技术,成为全球首个可以颠覆中文速记速度极限的中文速录机加上独一无二的索恒406码基础体系,确保了索恒速录机在基础牢、提速快、速度和准确率精准这三大基本指标上的全面领先。

索恒速录机产品极具创造性个性特色。依据人体工学原理设计的人手状索恒速录机键盘,同小臂锐角对应的八字型 *** 作,避免带键或者丢键、错键的小手指唯一键位分配,任意调用、整合当前最优秀输入法 *** 作的对接功能,260克重量的小巧设计产品极大地满足了用户的需求,体现了索恒强大的研发能力。

索恒速录机产品在研发的过程中追求技术创新。尤其值得一提的是,索恒速录机以一种对接控制的新算法把索恒速录机编码与标准键盘编码完整对接,实现对计算机软件、硬件、 *** 作系统等等完整的无障碍 *** 作,达到 *** 作索恒速录机与 *** 作计算机标准键盘均能实现用户需求的目的。该技术全面应用到了索恒速录机对windows *** 作平台的调用、文字处理系统的调用、存储器的调用、字库词库的调用、全拼输入法的调用等等,从而帮助用户实现 *** 作简洁和一体化,完整而实效的淘汰了落后速录机必须

(1)自行安装自带的输入法

(2)增加设置硬件存储器

(3)增加设置硬件发射器

(4)增加设置硬件双机 *** 作

(5)增加设置硬件显示屏

(6)增加设置硬件蓄电池

(7)有限的脱离计算机速录却记录错误连篇的不成熟技术等软硬件的重复配置造成的不必要浪费和成本支出等诸多弊端。

这一技术也使得索恒速录机的问世标志着全球首个第三代中文速录机的诞生,是中文速记发展史上的一个重要里程碑。

基于无缝对接技术,索恒速录机最大的优势之一就是任意调用计算机字库词库来整合当前最优秀的、用户群最密集的、为广大用户喜闻乐见的全拼输入法并与之资源共享,彰显中文速录机最先进的超越设计。用户使用输入法后,输入法的工具条就变成了快速执行搜索的入口,可以集成rss订阅、文件下载加速、网页评级显示等丰富的功能。而且拼音输入法先进的搜索引擎技术对海量互联网上新词热词的分析,使得首选词准确率(即候选的第一个词就是要输入的词的比例)堪称奇强,而且PXP加速引擎为上万用户提供流畅的视频服务。

用户在索恒速录机上通过搜狗拼音输入法不仅可以达到速记速录的目的,而且还通过网址导航和工具条,直达目标网站或快速启动搜索通过网页搜索,从百亿中文网页中找到最相关的信息通过音乐搜索、图片搜索、新闻搜索、地图搜索等专项搜索,满足特定的查找需求通过说吧平台和天南海北的用户交流信息通过PXP加速引擎,更快地下载文件,更流畅地享受在线音视频直播、点播服务。可见,索恒速录机与计算机实现的无缝对接技术,完全可以在多个环节为用户提供服务,而不仅仅是速记速录功能。

一、索恒速录机

产品名称: 索恒V3型中文速录机

产品规格: 长265mm 宽160mm 高31mm

产品重量:260 g

接口类型:标准USB接口

键盘设计:依据人体工学原理设计的键盘呈与人手五指对应的锐角八字型,小手指唯一键 *** 作设计,

避免小手指带键或者丢键。

软件设计:实现与电脑无缝对接技术并资源共享,紧密对接电脑海量词库,任意调用所有拼音输

入以及计算机 *** 作系统。在WindowsXP/2000/win7的 *** 作系统中完全自由应用所有计算

机文字处理系统及网络使用。

二、索恒速录机的键盘设计、击键原理介绍

1,键盘设计思想

根据人体工程学原理并结合人手特点确立内测八字型、小手指唯一键位创造性设计,采用左右对称的左键盘与右键盘向中间键倾斜排列设计,中间键与标准键盘空格键相仿,其延长线的交点在中间键的上方,夹角为5至25度,整个键盘及其键位的参差排列与人手状类似。属内斜式(八字型)25键位速记专用键盘。

2,击键原理

多键并击的击键方法最早起源于一百多年以前的美国并沿用至今。由美国Quixote公司制造的美国速记机采用的就是多键并击方法和Premler Power计算机辅助记录系统的工作原理。其他如德国、澳大利亚、英国、保加利亚、意大利、日本等国的速记机按键 *** 作也都是采用多键并击的击键方法进行速记工作。

索恒汉语速记机也不例外,它也是采用双手多键并击的方法在左右对称的专用键盘上一击一字,双手并击录入双音词,达到快速记录的目的。双手十指同时并用,速度自然就比单指敲击畅快无比。

3,键位排列与左右手五指的形状酷似并对应

第二列第一行键长出第一列键,其长出部分为第二列第一行键键长的3/5倍第三列第一行键位于长出第二列第一行,其长出部分为第二列第一行键键长的1/6倍第四列第一行键低于第三列第一行键,其低的部分为第二列第一行键键长的1/5至1/4倍第五列第一行键与第四列第一行键键对齐,中间键与左键盘的第五列第三行键和右键盘的第五列第三行键对齐。

列键和排键的长短参差排列设计使左右键盘的键位排列与左右手五指的形状酷似并对应,以减少手、手腕、手指在 *** 作击键中的空中距离,达到提高速度的目的。

4,长、短、中型键设计

在全部的25个键位中,2个长型键,5个中型键,18个短型键,这种大中小三种按键的科学排列和组合目的就是使 *** 作者的手指能够自由伸缩,以适应因手大或手小、手指长或手指短者 *** 作的方便和顺畅。

5,小手指唯一键设计

小手指在人类双手五指当中使用率是最低的,也是最不灵活的,其所完成的工作量仅占人手功能的10%左右,考虑到这个特点,索恒速记机设计了小手指只 *** 作唯一一个键位,这样设计的好处是小手指完全无负担 *** 作,击键时既不丢 键也不带键,小手指无论 *** 作这个唯一键的哪个部位都可顺利而准确击打成功。

6,中指 *** 作键位设计

中指在人手五指当中最长,考虑到这个特点,中指设计 *** 作三个键位,使中指均可分别与拇指、食指、无名指、小手指配合,灵活自如地 *** 作。

三、索恒速录机的编码设计介绍

1,完全中文的按键标识

键盘标识键码完全依据国家《汉语拼音方案》标准设计,统一为中文汉语拼音标识与读音,符合中文基础,以体现汉语言特点,便于认读,不会与英文字母及外来语混淆。

2,声码区主码、韵码区主码的编码和设计

声码区主码取自《汉语拼音方案》五组声母里每组的第一个声母,由b、d、g、j、z构成声码区韵码区主码全部取自《汉语拼音方案》单韵母组的a、o、e、i、u、ǘ 构成韵码区。这种完全与汉语拼音方案的声母与韵母一一对应的关系构建了速记机键盘的布局,其整齐规范和完全顺应汉语言读法的规律性,使记忆变得容易和简单。

3,声码区、韵码区的编码和设计

声母的编码全部来自声码区,是声码与声码的组合,声码不会与韵码区任何韵码组合成声码韵母的编码全部来自韵码区,是韵码与韵码的组合,韵码不会与声码区任何声码组合成韵码。声码区与韵码区各自独立,互不干扰,编码组合规范而规律性强。 如声母“b”击打时只要单指击打声母区的主码“b”即可打出“b + o”。而不需要象其他速录机的编码那样在声母区击打主码“b”(发“不”的音),还要在韵母区击打主码“o”,两指合并击打“b + o”才能打出音节“b”。

4,韵母自成音节对应独立的自成音节编码

自成音节的韵码均有对应的单独自成音节编码,自成一系且具有唯一性和独立性。这种独立的对应结构可以避免把韵码挪作音节码或韵码使用混乱的问题。

四、速录机软件的设计、输入法、字库和词库介绍

1,安装软件

索恒速记机的安装软件是一个与计算机系统对接的程序,利用的是计算机本身的所有资源,安装顺畅,使用简单,不需再单独安装字库、词库、输入法、专用翻译编校软件、造字、编辑器等等。该驱动程序安装结束后,索恒速记机即可在Windows *** 作平台的任何系统下自由使用,相当于同一时间同时 *** 作两个计算机标准键盘。

2,软件的工作原理

通过在索恒速记机内预置固化标准的.计算机程序,在索恒速记机实现与计算机系统标准对接后,该程序读入内存,并将索恒速记机输入的编码信息转换为虚拟键盘信息,从而可以直接使用计算机系统所带有的标准字库,避免了专用汉字输入键盘必须使用自带字库的困扰,解决了现有专用汉字输入键盘在速记应用上的许多问题,令使用更安全和顺畅,是整合当今最先进资源的汉语速记机软件设计。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11531670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存