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

12生工C51单片机05(键盘待修改).ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12生工C51单片机05(键盘待修改)要点

void?main()//主函数? {???bit?fak;//通过控制fak,使数码管保持最开始按下的数字??? P0=0x3f;//最开始,数码管显示0??? kongzhi=0;//数码管的公共端是低电平有效,由于使用的是PNP,故输入高电平。?? while(!fak)//关键在此???{? ?????? ?if(!key1)//如果第一个按键按下,数码管显示1????? ?{P0=0x06;fak=1;}???? ?else?if(!key2)?//如果第二个按键按下,数码管显示2?????? {P0=0x5b;fak=1;}???? ?else?if(!key3)?//如果第三个按键按下,数码管显示3????? ?{P0=0x4f;fak=1;}???? ?else?if(!key4)?//如果第四个按键按下,数码管显示4?????? {P0=0x66;fak=1;}????????}?? while(fak)?? ?{?????if(key5==0)//复位按钮的设定????? ?{P0=0x3f;fak=0;}???} ?} P1口输入 * P3口0,1输入 P0口输出 * P3口控制按键,P0口显示数字 * 51系列单片机 第5讲 单片机键盘 数学与信息工程教研室 陈妮 计算机系统的输入设备 计算机系统的输入设备指向计算机输入信息的设备,是计算机与用户或其他设备交换信息的桥梁。 常用的输入设备有:键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、游戏杆和语音输入装置等。 * * 单片机C语言程序设计 嵌入式系统的输入设备 嵌入式系统因性能体积等限制,主要使用 、 、 等作为输入设备。 输入设备在嵌入式系统中的作用: 数据输入 流程控制 * * 单片机C语言程序设计 一、按键开关 (一)常见的按键开关种类: 按钮按键 自锁按键 拨钮开关 拨码开关 轻触按键 * * 单片机C语言程序设计 一、按键开关 (二)按键开关的输入接口电路: 未按下为高按下为低 未按下为低按下为高 拨码开关的输入接口电路: 一、按键开关 二、如何识别按键开关 检测单片机引脚的电平,若电平发生变化则可判断按键状态发生变化: - 按键弹起则IO口电平高 - 按键按下则IO口电平低 * * 单片机C语言程序设计 在检测按键时,IO口应工作在输入状态,先向IO口写1,再读取IO口。 1.工作原理: 二、如何识别按键开关 2.识别方式: 查询方式 单片机不断扫描按键判断按键是否动作 特点:硬件简单,但需不断地扫描按键,占用CPU资源 中断方式 按键动作时发出中断请求,单片机响应中断请求后处理按键中断 特点:硬件复杂,需要中断电路,但不占用CPU资源 * * 单片机C语言程序设计 二、如何识别按键开关 按键在被按下或抬起时,由于机械触点的弹性作用,在接触或断开的瞬间均伴随有抖动现象。 * * 单片机C语言程序设计 完整的按键过程包括: 释放状态 按下抖动阶段 完全按下状态 释放抖动阶段 释放状态 二、如何识别按键开关 3.去除按键抖动 按键抖动会形成干扰信号,干扰系统的正常运行,因此应采取防抖措施: 硬件防抖 RS触发器或施密特触发器防抖 RC滤波防抖 去抖效果好、电路复杂、成本高 软件防抖 软件延时防抖 电路简单、成本低、占用CPU时间 * * 单片机C语言程序设计 二、如何识别按键开关 在C语言中可使用while或if语句对按键动作进行识别: if (!key) {判断按键按下的操作 } while (key) {判断按键抬起的操作 } 三、识别按键开关的程序设计 独立式按键的判别中的一些问题: 何时检测按键按下(查询或中断) 按键按下后的抖动(软件延时防抖) 按键键号的判别 不处理按键异常(switch 语句) 按优先级处理按键(if 语句) 按键释放的判别(区分单次长按还是多次按下) 三、识别按键开关的程序设计 程序设计举例 电路连接:单片机P1口连接8个按键开 关,按键按下时为0,按键抬起时为1. 程序设计举例 1.显示出按下键的键号 2.对按键按下次数进行计数 服务程序 编写识别按键的函数 要求完成以下程序设计: 独立键盘程序设计流程图 * * #include AT89X51.H #define unchar unsigned char void Delay(unchar delaytime); void Delay(unchar delaytime) //延时函数 { unchar i=0; unchar j=0; for(i=0;

文档评论(0)

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

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

1亿VIP精品文档

相关文档