自菜农爱上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/
零耗时键盘 扫而不描
|
|
文章评论(0条评论)
登录后参与讨论