|
发表于 2009-8-31 14:51:27
|
显示全部楼层
【13楼】 my_avr
积分:1304
派别:
等级:------
来自:武汉
我也说一下我一直用的按键扫描的思路:
定义三个变量:
一个变量PreKey为上次读到的按键电平
另一个变量NowKey为当前读到的按键电平
最后一个变量KeyCode记录的是有动作按键
三个变量运算如下:
PreKey = NowKey;
NowKey = PINx; //读按键电平
KeyCode = PreKey ^ NowKey ^ KeyCode; //运算
只要有按键按下,KeyCode对应的位就大为1,按键弹起后对应的位为0,根本就不需要再去进行其他判断.
电路连接:
PB0 |-------------key0------------|GND
|
PB1 |-------------key1------------|GND
|
PB2 |-------------key2------------|GND
|
PB3 |-------------key3------------|GND
|
PB4 |-------------key4------------|GND
|
PB5 |-------------key5------------|GND
|
PB6 |-------------key6------------|GND
|
PB7 |-------------key7------------|GND
修改原因:贴电路图
本贴被 my_avr 编辑过,最后修改时间:2008-05-30,08:33:18.
这位大虾,不好意思,追贴追到这,您这个按键扫描的程序在论坛上很受欢迎,但我没怎么看懂,可否详细讲解一下,最好是给出一个完整的键盘检测程序,谢谢了。。。。 |
|