文档介绍:Single Chip puter
第章键盘和显示接口
键盘接口
常见的按键开关
弹性按键
自锁按键
拨动开关
拨码开关
电源开关
键盘按照接口原理可分为编码键盘和非编码键盘。
编码键盘:指键盘上闭合键的识别由专用的硬件编码器实现,来产生键编码号或键值,如计算机键盘。
非编码键盘:是指靠软件编程来识别的键盘。
在单片机组成的系统中,用的较多的是非编码键盘。
非编码键盘又分为独立式键盘和矩阵式(行列式)键盘。
键盘接口需要解决的问题
按键识别:
按键抖动及消除:
机械按键抖动时间在5ms~10ms之间
软件方案——延时10ms~20ms后再次判断
消除方法:
独立式按键
接口电路:
特点:一线一键,按键识别(编程)简单;但占用较多口线,适合8键以下使用。
例1:用P1口检测8个按键的状态并完成相应的功能
解:
键盘检测流程图
# include <>
void main()
{
P1=0xff;
while(1)
{
while(P1==0xff);
delayms(10);
void delayms(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
while(P1==0xff);
switch(P1)
{ case 0xfe:key1();break;
case 0xfd;key2();break;
case 0xfb:key3();break;
case 0xf7;key4();break;
case 0xef:key5();break;
case 0xdf;key6();break;
case 0xbf:key7();break;
case 0x7f;key8();break;
default: break;
}
while(P1!=0xff);//等待键释放
}
}
矩阵式键盘
每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵键盘扫描子程序包括以下几个步骤:
;
、列值,确定哪一个键按下;
;
。