新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 节约单片机端口资源的键盘电路

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

作者: 时间: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 下一页

评论


技术专区

关闭