下载此文档

任务十键盘接口PPT教案学习.pptx


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
会计学
1
任务十键盘接口
按键及键盘
键盘:由若干个按键组成的开关矩阵,是实现人机对话或人机通信的常用工具。
根据按键的识别方式分:
由硬件识别键的闭合—编码键盘
由软件识别键的闭合—未编码键盘
按键开关:机械弹性开关,机械开关在闭合及断开瞬间均伴随有一连串的抖动 ,时间一般为 5~10ms。
第1页/共13页
按键及键盘
键按下
闭合稳定
前沿抖动
后沿抖动
释放稳定
键释放
按键时的抖动
消除键抖动可用硬件和软件两种方法
硬件消抖:RS触发器
软件消抖:延时10ms左右再检测
Vcc(+5V)
Vcc(+5V)
A
B
输出
RS触发器消抖电路
第2页/共13页
键盘扫描控制方式
程序控制方式:键盘处理程序固定在主程序的某个程序段。
特点:对CPU工作影响小
应考虑键盘处理程序运行间隔周期不能太长,否则影响对键盘输入响应的及时性。
定时控制扫描方式:利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。
特点:采用定时/计数器定时控制扫描间隔。
定时时间不能太长,否则影响对键盘输入响应的及时性。
中断控制方式:利用外部中断源,响应键盘输入信号。
特点:能及时处理键盘输入,又能提高CPU运行效率
要占用一个中断资源。
第3页/共13页
独立式未编码键盘接口
独立式键盘:各按键相互独立地接通一条输入数据线 。
查询方式:
输入线平时为高电平;
若有任意键按下时,输入线为低电平。
优点:电路、编程简单
缺点:按键较多时,占用较多I/O口线。
K0
K1
K2
第4页/共13页
例、用查询方式编写独立式按键程序
# include <>
unsigned char key_value;
void main(void)
{
P1=P1|0x07; //-
while(1)
{
key_value=P1&0x07; //-
switch(key_value)
{
case 0x06: … ; break; //K0按下
case 0x05: … ; break; //K1按下
case 0x03: … ; break; //K2按下
default: ; break;
}
}
}
第5页/共13页
行列式未编码键盘原理
未编码4*4行列式键盘
第6页/共13页
行列式键盘列扫描查询原理
行列式键盘列扫描查询原理
先判别按键所在的行:由P2口输出列扫描字0x0F,然后读行线状态到变量temp1中。
如果有按键按下,则行输入不全为1,即不等于0x0F;
如果无按键按下,则行输入全为1,即等于0x0F。
再判别按键所在的列:由P2口输出行扫描字0xF0 ,然后读列线状态到变量temp2中。
将temp1和temp2的状态相或得到按键的编码,从而知道按键的值。
第7页/共13页
# include <>
void mDelay ( unsigned int Delay );
sbit LED_CS=P1^4;
//延时子程序:由Delay参数决定延时时间
void mDelay(unsigned int Delay)
{ unsigned int i;
for(;Delay>0;Delay--)
{ for(i=0;i<114;i++) {;}
}
}
//按键扫描子程序,有键按下,返回键值00-15;无键按下,返回0xff。
unsigned char Matrix_key()
{
unsigned char key, temp1,temp2;
key=0xff; // 初始化键值
P2=0x0f; // 输出列扫描字
if( (P2&0x0F) !=0x0f) // 读行线状态,判断是否有键按下
{
mDelay(10); // 延时消抖
P2=0x0f; // 输出列扫描字
temp1=P2&0x0f; // 读行线状态到

任务十键盘接口PPT教案学习 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198613
  • 文件大小107 KB
  • 时间2021-06-12