《任务十键盘》PPT课件

《任务十键盘》PPT课件

ID:38632191

大小:382.31 KB

页数:17页

时间:2019-06-16

《任务十键盘》PPT课件_第1页
《任务十键盘》PPT课件_第2页
《任务十键盘》PPT课件_第3页
《任务十键盘》PPT课件_第4页
《任务十键盘》PPT课件_第5页
资源描述:

《《任务十键盘》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、任务十键盘接口扩展任务分析:实现键盘接口扩展硬件独立式键盘的结构和原理矩阵式键盘的结构和原理软件键盘驱动程序编写编译、下载、调试按键及键盘键盘:由若干个按键组成的开关矩阵,是实现人机对话或人机通信的常用工具。根据按键的识别方式分:编码键盘键的识别由专用的硬件译码器实现,并产生键编号或键值,如BCD码键盘、ASCII码键盘,非编码键盘只提供按键开关的行列矩阵,按键的识别、键码的确定以及去抖动等功能由软件完成按键开关:机械弹性开关,机械开关在闭合及断开瞬间均伴随有一连串的抖动,时间一般为5~10ms。按键及键盘键按下闭合稳定前沿抖动后沿抖

2、动释放稳定键释放按键时的抖动消除键抖动可用硬件和软件两种方法硬件消抖:RS触发器软件消抖:延时10ms左右再检测Vcc(+5V)Vcc(+5V)AB输出RS触发器消抖电路键盘扫描控制方式程序控制方式:键盘处理程序固定在主程序的某个程序段。特点:对CPU工作影响小应考虑键盘处理程序运行间隔周期不能太长,否则影响对键盘输入响应的及时性。定时控制扫描方式:利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘进行扫描。特点:采用定时/计数器定时控制扫描间隔。定时时间不能太长,否则影响对键盘输入响应的及时性。中断控制方式:利用外部中

3、断源,响应键盘输入信号。特点:能及时处理键盘输入,又能提高CPU运行效率要占用一个中断资源。独立式未编码键盘接口独立式键盘:各按键相互独立地接通一条输入数据线。图中采用中断响应、软件查询方式:输入线平时为高电平;若有任意键按下时,输入线为低电平。优点:电路、编程简单缺点:按键较多时,占用较多I/O口线。K0K1K2例、用查询方式编写独立式按键程序#includeunsignedcharkey_value;voidmain(void){while(1){key_value=P1&0x07;//读P1.0-P1.2的状态

4、switch(key_value){case0x06:…;break;//K0按下case0x05:…;break;//K1按下case0x03:…;break;//K2按下default:;break;}}}矩阵式键盘4×4的行、列结构可构成16个按键的键盘,占用8位的I/O口线。列线为输出口,行线为输入口,行线通过上拉电阻接到+5V上。按键识别按键的识别:采用扫描法(1)第一步,判断有无键按下?从列线输出口输出全扫描字0000,读入行线输入口的状态。没键按下,行线全为1有键按下,行线必有一根为0若有键按下,进行列扫描,判断是那一列

5、发生,输出列扫描字。列扫描是对要扫描的列送0,其它列送1,依次为0111、1011、1101、1110。每扫描一列读入行线状态,全1则不在该列,有0则必在该列。(2)第二步,判断哪列键按下?(3)逐行检查是哪根行线为0,即可查出是哪个键按下,按键出现在哪行哪列。(4)按键编码每个按键要给一个编号,例如4×4键盘的16个键编号为0~15,对按键进行的编码称为键值。有许多按键编码方法,如高4位为行号,低4位为列号,合成为一个字节。例如:第2行第0列的键,编码为20H(00100000B)--我们不用。也可以采用顺序编号的方法,使键值与键号

6、一致,其计算公式:键值=行首值+列号(5)判断按键释放得到键值后应判断按键是否释放,否则有可能识别为两次按键,引起误操作。如右图4×4键盘:行首值为0、4、8、12列号为0,1,2,3即:第0行行首值为0第1行行首值为4第2行行首值为8第3行行首值为12例:若第2行第1列发生按键则键值为:8+1=9键盘扫描流程LAB6000实验箱怎样呢?注意:该图4条行线实际对应D3~D0,图示为D5~D2观察上面电路,LAB6000也是矩阵键盘,4X6结构,行读入地址为KEY_IN(0x001h)列输出地址与LED数码管公用,为OUTBIT(0x0

7、02h)所以仿照上面原理,可以对其进行键盘扫描。#include#defineLEDLen6unsignedcharxdataOUTBIT_at_0x8002;//显示的位码地址;键盘的列线地址;unsignedcharxdataOUTSEG_at_0x8004;//显示的段码地址;unsignedcharxdataIN_at_0x8001;//键盘读入口unsignedchardis_buf[LEDLen];//显示缓冲unsignedcharconstdis_tab[]={//八段管显示码0x3f,0x06,0x

8、5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voidmDelay(unsignedintDelay){unsignedinti

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。