节约单片机端口资源的键盘电路

嵌入式系统 时间:2011-09-28来源:网络
以下为键盘处理子程序:

  uchar getkey(void)

  {

  uchar x

  P1=P1|0x07; /*I/O1至I/O3写“1”*/

  xP10x07; /*读入I/O1至I/O3并屏蔽其它位*/

  if(x= =10)

  {

  P1=P1|0x07;

  P1=P10xfd; /*I/O2写“0”*/

  x=P10x07;

  x=(x+1)/2+10; /*屏蔽I/O2并转换K10至K12的键值*/

  if(x = =13)

  {

  P1=P1|0x07;

  P1=P10xfb; /*I/O3写“0”*/

  x=P10x07;

  x=x+13; /*屏蔽I/O3并转换K13至K15的键值*/

  }

  }

  }

  return x;

  }

  利用该键盘电路并根据逻辑组合原理可推断开n条I/O线可组合的按键数N为:

  N=(2n-1)+(2 n-1 -1)n

  表1给出了2至4条I/O线可组合的按键数。

  表1 2~4条I/O线可组合的按键数

  I/O线 可组合按键

  2 5

  3 16

  4 43

  3 结束语

  这种新型键盘电路在使用时非常稳定可靠,节省大量的I/O端口,而且程序处理也很简洁,速率比4×4的扫描式电路还要快,因此,该电路特别适合一些引脚较少的单片机,如PIC12C508、Z86E03以及AT89C2051等。

1 2

关键词: 单片机端口资源 键盘电路

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版