单片机原理及接口技术第5章 与显示器、开关、键盘接口设计 .ppt

单片机原理及接口技术第5章 与显示器、开关、键盘接口设计 .ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.6.3 矩阵式键盘接口设计案例 矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列交叉点上,见图5-26,一个4×4的行、列结构可以构成一个16个按键的键盘,只需要一个8位的并行I/O口即可。如果采用8×8的行、列结构,可以构成一个64按键的键盘,只需要两个并行I/O口即可。 在按键数目较多场合,矩阵式键盘要比独立式键盘节省较多I/O口线。 * 图5-26 矩阵式(行列式)键盘的接口电路 下面介绍查询方式的矩阵式键盘程序设计。 【例5-13】对图5-26矩阵式键盘,编写查询式的键盘处理程序。 先判有无键按下,即把所有行线P1.0~P1.3均置为低,然后检测各列线状态,若列线不全为高电平,则表示键盘中有键被按下;若所有列线列均为高电平,说明键盘中无键按下。 在确认有键按下后,即可查找具体闭合键位置,其方法是依次将行线置为低电平,再逐行检查各列线的电平状态。若某列为低,则该列线与行线交叉处键就是闭合键。 判断有无键按下,以及获取键值的参考程序如下: * #includereg51.h #define uchar unsigned char #define uint unsigned int void main(void) { uchar key; while(1) { key=keyscan( ); //调用键盘扫描函数,返回的键值送到变量key delay( ); //延时 } void delay10ms(void); //延时函数 { uchar i; for(i=0;i200;i++){ } } * write_command(0x01); //写入命令0x01:清屏 delay(1); } void string(uchar ad,uchar *s) //输出显示字符串的函数 { write_command(ad); while(*s0) { write_data(*s++); //输出字符串,且指针增1 delay(100); } } * 最后通过按钮“Build target”编译源程序,生成目标代码“*.hex”文件。若编译失败,对程序修改调试直至编译成功。 4. Proteus仿真 (1)加载目标代码文件 打开元器件单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件“*.hex”;在“Clock Frequency”栏中输入晶振频率12MHz。 (2)仿真 单击仿真按钮? 启动仿真,见图5-19。 * 5.6 键盘接口设计 键盘——向单片机输入数据、命令等功能,是人机对话的主要手段。 由若干按键按照一定规则组成。每一个按键实质上是一个按键开关,按构造可分为有触点开关按键和无触点按键。 有触点开关按键常见的有:触摸式键盘、薄膜键盘、导电橡胶、按键式键盘等,最常用按键式键盘。无触点开关按键有电容式按键、光电式按键和磁感应按键等。下面介绍按键式开关键盘工作原理、方式以及与键盘接口设计与软件编程。 * 5.6.1 键盘接口设计应解决的问题 1.键盘的任务 任务3项。 (1)判别是否有键按下?若有,进入第(2)步。 (2)识别哪一个键被按下,并求出相应的键值。 (3)根据键值,找到相应键值处理程序入口。 2.键盘输入特点 键盘一个按键实质就是一个按钮开关。图5-20(a)所示按键开关的两端分别连接在行线和列线上,列线接地,行线通过电阻接到+5V上。键盘开关机械触点的断开、闭合,其行线电压输出波形如图5-22(b)所示。 图5-22(b)所示的t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短与开关机械特性有关,一般为5~10ms,t2为稳定的闭合期,其时间由按键动作确定,一般为十分之几秒到几秒,t0、t4为断开期。 * * 图5-22 键盘开关及其行线波形 3.按键的识别 按键闭合与否,反应在行线输出电压上就是高电平或低电平,对行线电平高低状态检测,便可确认按键是否按下与松开。为了确保单片机对一次按键动作只确认一次按键有效,必须消除抖动期t1和t3的影响。 4.如何消除按键的抖动 两种去抖动方法。一种是用软件延时来消除按键抖动,基本思想:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档