1 / 13
文档名称:

任务十键盘接口(1).ppt

格式:ppt   大小:2,143KB   页数:13页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

任务十键盘接口(1).ppt

上传人:相惜 2024/5/14 文件大小:2.09 MB

下载得到文件列表

任务十键盘接口(1).ppt

文档介绍

文档介绍:该【任务十键盘接口(1) 】是由【相惜】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【任务十键盘接口(1) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。任务十键盘接口扩展任务分析:实现键盘接口扩展硬件独立式键盘与行列式键盘的结构和原理软件独立式键盘查询原理行列式键盘列扫描查询原理编译、下载、调试编译软件:keil下载软件:STC-ISP按键及键盘键盘:由假设干个按键组成的开关矩阵,是实现人机对话或人机通信的常用工具。根据按键的识别方式分:由硬件识别键的闭合—编码键盘由软件识别键的闭合—未编码键盘按键开关:机械弹性开关,机械开关在闭合及断开瞬间均伴随有一连串的抖动,时间一般为 5~10ms。按键及键盘键按下闭合稳定前沿抖动后沿抖动释放稳定键释放按键时的抖动消除键抖动可用硬件和软件两种方法硬件消抖:RS触发器软件消抖:延时10ms左右再检测Vcc(+5V)Vcc(+5V)AB输出RS触发器消抖电路键盘扫描控制方式程序控制方式:键盘处理程序固定在主程序的某个程序段。特点:对CPU工作影响小应考虑键盘处理程序运行间隔周期不能太长,否那么影响对键盘输入响应的及时性。定时控制扫描方式:利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。特点:采用定时/计数器定时控制扫描间隔。定时时间不能太长,否那么影响对键盘输入响应的及时性。中断控制方式:利用外部中断源,响应键盘输入信号。特点:能及时处理键盘输入,又能提高CPU运行效率要占用一个中断资源。独立式未编码键盘接口独立式键盘:各按键相互独立地接通一条输入数据线。查询方式:输入线平时为高电平;假设有任意键按下时,输入线为低电平。优点:电路、编程简单缺点:按键较多时,占用较多I/O口线。K0K1K2例、用查询方式编写独立式按键程序#include<>unsignedcharkey_value;voidmain(void){P1=P1|0x07; //- while(1){key_value=P1&0x07; //- switch(key_value) { case0x06:…;break; //K0按下 case0x05:…;break; //K1按下 case0x03:…;break; //K2按下default:;break; }}}.行列式未编码键盘原理未编码4*4行列式键盘行列式键盘列扫描查询原理行列式键盘列扫描查询原理先判别按键所在的行:由P2口输出列扫描字0x0F,然后读行线状态到变量temp1中。如果有按键按下,那么行输入不全为1,即不等于0x0F;如果无按键按下,那么行输入全为1,即等于0x0F。再判别按键所在的列:由P2口输出行扫描字0xF0,然后读列线状态到变量temp2中。将temp1和temp2的状态相或得到按键的编码,从而知道按键的值。#include<>voidmDelay(unsignedintDelay);sbitLED_CS=P1^4;//延时子程序:由Delay参数决定延时时间voidmDelay(unsignedintDelay){unsignedinti;for(;Delay>0;Delay--){for(i=0;i<114;i++){;}}}//按键扫描子程序,有键按下,返回键值00-15;无键按下,返回0xff。unsignedcharMatrix_key(){unsignedcharkey,temp1,temp2;key=0xff; //初始化键值P2=0x0f; //输出列扫描字if((P2&0x0F)!=0x0f) //读行线状态,判断是否有键按下{ mDelay(10); //延时消抖 P2=0x0f; //输出列扫描字temp1=P2&0x0f;//(temp1!=0x0f) //有键按下{P2=0xf0; //输出行扫描字temp2=P2&0xf0; //读列线状态到temp2中switch(temp1|temp2){case0xee:key=0;break; case0xde:key=1;break;case0xbe:key=2;break;case0x7e:key=3;break;case0xed:key=4;break;case0xdd:key=5;break;case0xbd:key=6;break;case0x7d:key=7;break;case0xeb:key=8;break;case0xdb:key=9;break;case0xbb:key=10;break;case0x7b:key=11;break;case0xe7:key=12;break;case0xd7:key=13;break;case0xb7:key=14;break;case0x77:key=15;break;default:key=0xff;break;}} }else{;}return(key);//返回键值}.