原创 HotC51共产儿童团第五课:"零耗时键盘"之"扫而不描"

2009-2-24 09:21 2402 3 3 分类: MCU/ 嵌入式
HotC51 发表于 2009-2-24 09:22 裸奔式实时操作系统HotTask51 ←返回版面 按此察看该网友的资料 按此把文章加入收藏夹 按此编辑本帖

楼主: HotC51共产儿童团第五课:"零耗时键盘"之"扫而不描"


自菜农爱上MCU开始,就痴迷至今~~~也一直“低调”至今~~~

上网打开21icbbs的过程如下:

1.google
2.21icbbs

游客登陆

不过还是被侦破~~~实在是雷翻俺了~~~

上课:

最近被人逼迫出手51,...“被逼良为娼”

但菜农之个性:不收手则罢,出则“雷翻一片”!!!
俺不管他是什么来路,什么身份~~~

只要是地球人,俺就敢:高唱“红旗飘飘”,“国际歌”
“大刀向鬼子的头上砍去”


团长俺高兴~~~在上团课前乐乐~~~


"零耗时键盘"的理论是:
因为在键扫描过程中,由于键盘材料等诸多问题,将会有不同的抖动,
即“阻尼振荡”。

一般解决方法是先读键并保存,有键压下时,再延时20mS左右,等待“阻尼振荡”即
键盘抖动结束。这是再读键并与前者比较。

2次结果相同(即此时已间隔20mS),则认为有键盘的键压下。

键盘一般由行和列组成,向行发信号,在列收信号。
直到最后一行。

此过程即为“键扫描”。

当多行扫描时,延时等待时间合计:行数 * 20mS

若8行则需160mS的踏步等待。

实在是雷翻了MCU~~~

故80年代初,人们就开始琢磨如何解决此问题,俺也在此“烈士”的行列之中~~

当时流行的是“TP801单板机”。。。。

可惜那时不和现在有网络~~~俺那时就当着村民面“破口大骂”~~~

故"零耗时键盘"就在小村落里“诞生”了~~~

它之精华为:"扫而不描"

定时器延时间隔=20mS/键盘个数。
进入定时中断的次数即为“键值”--省了几个字节

扫描方法:"扫而不描"
每次只取需要的键行列“交叉点”---实现想得到的行列扫描电平

将他们放入数组,大小就是键盘个数,内容是该键的行列扫描电平

每次定时中断时,用“中断次数”为索引在数组里取出“该键盘行列扫描电平”

向键盘发送行电平信号,在列立即取列信号。

若有键压下,则将其压键计数器(每键自己有一个,即键盘数组[x])
加一,当2次后,即20mS<T<40mS,即认为有键压下。

。。。。


课毕。(在上班,下班再仔细讲)

团长今天高兴要去唱“红旗飘飘”去了~~~

HotC51@126.com   2009.2.24 于菜地。
团部:http://group.ednchina.com/1623/



零耗时键盘 扫而不描

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
3
关闭 站长推荐上一条 /3 下一条