网站大量收购独家精品文档,联系QQ:2885784924

第4章-3(数码管按键).ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
#include reg51.h /*包含头文件reg51.h*/ void main() /*无返回值的主程序*/ { P2=0x3f; } 1.键盘的任务 (1) 判别是否有键按下?如果有,进入下一步。 (2) 识别是哪一个键被按下,并求出相应的键值。 (3) 根据键值,执行相应键值对应的处理程序。 2.按键的识别 键的闭合与否,体现在行线电压的高电平或低电平。如果为高电平,表示键断开;如果是低电平,则表示键闭合,通过对行线电平的高低状态的检测,可确认按键按下还是断开与否。 图中的上拉电阻保证按键释放时,输入检测线上有稳定的高电平。 当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。 优点:电路简单,软件编写简单。适用于键盘按键数目较少的场合,因为这种方式占用的I/O口线较多。 假设键7被按下。 第1步,P1.0~P1.3输出全为“0”,P1.4~P1.7输出全为“1”,然后,读入P1.4~P1.7线的状态,结果P1.7=0,而P1.4~P1.6均为1,因此,第4列出现电平的变化,说明第4列有键按下;【P1=0111 0000=0X70】 第2步,让P1.4~P1.7输出全为“0” ,P1.0~P1.3输出全为“1”,然后,读入P1.0~P1.3位,结果P1.1=0,而P1.0,P1.2, P1.3均为1,因此第2行出现电平的变化,说明第2行有键按下。【P1=0000 1101=0X0d】 第3步,通过1、2两步检测到P1-P7的电平状态进行位或运算,计算出闭合按键的键值为0X7d,再查找键值表便可以确定按下按键的序号。 例:矩阵式键盘举例 完整程序 编程界面 程序运行效果 原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。 1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。 五、键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输 入,取决于键盘的工作方式。 2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如 无键按下,单片机将不理睬键盘。 键盘所做的工作分为三个层次,如下图。 第1层:单片机如何来监视键盘的输入。三种工作方 式:①编程扫描②定时扫描③中断扫描。 第2层:确定具体按键的键号。体现在按键的识别方 法上就是:①扫描法;②线反转法。 第3层:执行键处理程序。 按键在闭合和断开瞬间会因弹簧开关的变形产生电压波动 软件消抖法: 延时10ms后再次扫描按键状态。若仍判为“闭合”说明确有键压下;若为“非闭合”说明是误动作。 按键抖动波形 键盘消抖原理: 实例2 中断扫描法行列式键盘 如何保证能快速响应按键操作,又不过多占用CPU时间? 中断扫描法——只有在键盘有键按下时,才执行键盘扫描程序。如无键按下,CPU可不考虑键盘的存在。 查询扫描法需要花费很多CPU机时,在CPU任务繁重的情况下往往无法实现。 分析:①增加一个或非门,利用按键压下时的电平产生INT0中断请求信号;②键盘改在P1口(中断接P3.2)。 #include reg51.h char led_mod[] = {0x3f,… …}; //显示自模 char key_buf[] = {0x11,… …}; //按键键值 bit key_flag; //定义全局型bit变量 int0_key () interrupt 0 { key_flag = 1; } 参考程序(略去延时和键扫描函数) 实例2运行效果 行列式键盘——将IO口分为行线和列线,按键跨接在行线和列线上,列线通过上拉电阻接正电源。 4×4行列式键盘 7407——六高压输出缓冲器/驱动器 行列式键盘的特点:占用IO口线少,但软件过程复杂。 键值——按键压下时形成的电平编码值,如0~F 按键在闭合和断开瞬间会因弹簧开关的变形产生电压波动 软件消抖法: 延时10ms后再次扫描按键状态。若仍判为“闭合”说明确有键压下;若为“非闭合”说明是误动作。 按键抖动波形 键盘消抖原理: 补充实例: 本章小结 C51的数据类型与变量的定义,都必须考虑单片机的存储结构。 在Keil下进行C51开发的基本步骤是:建立项目→输入

文档评论(0)

四月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档