当前位置:首页 > 嵌入式 > 嵌入式硬件

郭 建 张新政  摘要:介绍了一种新的用于dsp系统中的键盘处理方法。与单片机系统中常用的程序扫描键盘处理方式相比,这种定时-计数的方法能够有效地节约系统开销,且对键盘处理快速可靠。
  关键词:键盘处理;数字信号处理器;串行rom

  1引言

  在各种数字控制系统中,大多数都用键盘和led作为人机交互界面。一般地,键盘分为编码和非编码两种。编码方式的键盘要使用专门的硬件来识别按键,系统比较复杂且占用较多的硬件资源。实际应用中编码方式的键盘使用得越来越少,相应地大多数系统都采用非编码键,并用软件的方式对键盘进行扫描处理。文献[1]给出了单片机系统中三种软件扫描键盘的方法:(1)程序控制扫描方式;(2)定时扫描方式;(3)中断扫描方式。(2)和(3)都要占用单片机系统中的资源,故而大多数单片机控制系统都采用程序控制扫描方式来处理键盘。

  近年来,dsp以其高速处理能力、高集成度、资源丰富、应用灵活等优点而在许多领域中得到了越来越广泛的应用。在数字控制领域目前用得最多的是ti的c2000系列dsp。dsp系统中可以采用程序控制扫描方式对键盘进行处理,但如果沿用单片机系统中常用的程序控制扫描方式会有很大的不足——失去了dsp控制系统的快速性。本文介绍了dsp系统一种新的程序控制扫描方式。

  2两种不同的程序扫描方式

  我们知道按键在接通与断开的瞬间都会产生抖动,为了避免因干扰信号造成的键盘误处理以及对同一按键的多次处理,都要进行时间长短不等的延时扫描,一般经过10~30ms的延时后再对键盘进行处理。其流程图如图1所示。在这种程序扫描模式下,延时去抖动的20ms内程序不能做其它工作。对基于单片机的要求处理速度不高的系统来说这种方法是可以容忍的,但是对基于dsp的高速处理系统,20ms延时却是一个很大的浪费。下面以图2所示的系统简图为例,介绍一种新的用在dsp系统中的键盘处理方法,采用此方法可以大大减少程序扫描键盘时的时间,从而为系统其它任务节约时间。

  新的键盘处理方式采用定时-计数的方法来实现。程序流程图如图3示。定时由dsp系统内部定时器来实现。定时时间可根据实际需要来设定,在此设置为1ms。计数则可通过在ram区设定计数器变量ct20ms来实现。有时候为了尽量少地设置按键,而使某些键具有双重功能。也就是说用户正常按某一按键keyi,程序处理keyi的第一功能;用户长时间(比如大于1秒)则处理keyi的第二功能。例如在我们将key1设置为add键,正常情况下,每按一次所设置的参数加1,如果按add键超过1秒则参数值加10;将key2设置为停止/清故障标志键,正常情况下按key2则系统停止运行,按key2超过1秒则清除系统因故障/保护而出现的标志位。用图1中程序扫描方法是不能实现单键双重功能的,而采用图3中的定时-计数方法却是能够做到的。

  相关变量定义及键盘处理子程序如下:
.include“f240regs.h”
.bssct20ms,1
.bssct1sec,1
.bsskeyvalue,1
.bsskeyprogaddr,1
flag.setbit15...
.text
;定时-计数法键盘扫描子程序
keyroutine:
ldp#pbdatdir>>7;读iopb
laclpbdatdir
and#0fh
ldp#keyvalue
saclkeyvalue;存键值
xor#0fh
bcndkeypressed,neq
nokeypressed:
splk#00h,ct20ms
splk#00h,ct1sec
bendkeyroutine
keypressed:
ldp#ct20ms
bitct20ms,flag
bcndcheck1sec,tc
laclct20ms
add#1
saclct20ms
sub#20
bcndendkeyroutine,lt
splk#8000h,ct20ms;置标志位并清
;计数器为0
bjudgekey
check1sec:;是否到1秒?
ldp#ct1sec
laclct1sec
add#1
saclct1sec
sub#1000
bcndendkeyroutine,lt
splk#8000h,ct1sec
judgekey:
ldp#keyvalue
laclkeyvalue;键值范围:06-0eh
sub#6
add#keytable
tblrkeyprogaddr
laclkeyprogaddr
bacc
keytable.wordkey1prog
.wordkey2prog

.wordkey9prog
endkeyroutine:
ret
key1键处理程序如下,两个功能可根据实际需求来编写。
key1prog:
ldp#ct1sec
bitct1sec,flag
bcndkey1func2,tc
key1func1:
…;key1的第一功能
bendkeyroutine
key1func2:
…;key1的第二功能
bendkeyroutine

  对上述程序有几点需要说明,首先,按照本程序所实现的按键的第一功能和第二功能两者不能相互冲突,且第二功能只有在第一功能完成一次以后才能实现。对于单一功能的键只须在其相应程序的开始之处置判断ct20ms标志位是否为1语句,如果ct20ms.flag=1则直接返回,不再重复处理。其次,第二功能可执行一次(从图3中的y*处直接返回)也可执行多次(从图3中的y**处再次调用功能2处理程序)。上文所述的key1键可以设置是允许多次执行,从而实现连续加10功能;而key

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭