简易计算器.doc

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

项目三 简易计算器 项目描述:键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。由于非编码键盘结构简单、成本低廉,在单片机中使用的都是非编码键盘。非编码键盘的类型很多,常用的有独立式键盘、行列式键盘等。本项目就是通过设计能实现加、减、乘、除等运算的简易计算器,掌握单片机按键开关的硬件电路设计与工作原理;了解2、能编写单键控制程序。 任务要求:用四个独立按键控制数码管分别显示1、2、3、4。 相关知识讲解: 一.键盘 1.键盘的结构 (1)按键——一种按压式或触摸式常开型按钮开关(按压或触摸按键时触点闭合)。 (2)键盘——是一组按键的集合 2.键盘的分类 (1)键盘的分类 常用键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如BCD码键盘、ASCLL码键盘等;而靠软件来识别的称为非编码键盘。在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。非编码键盘又分为:独立式非编码键盘和行列式非编码键盘。 (2)非编码键盘的工作方式。 查询方式:CPU要不间断地对键盘进行扫描工作,直到有键按下为止,期间CPU不能干任何其他工作。 定时方式:利用定时器产生定时中断,CPU响应中断后对键盘进行扫描。 中断方式:当有按键按下时,向CPU发出中断申请,CPU响应中断后对键盘进行扫描工作方式。 键输入中存在的问题及解决方法 (1)键抖动  按键开关的机械触点在闭合与断开瞬间,由于弹性作用均有抖动的过程,从而使电压信号也出现抖动,如图3-1-1所示。抖动时间的长短与开关的机械特性有关,一般为(5~10)ms。 图3-1-1 按键抖动时的电压波动 为了保证按键一次仅作一次键输入处理,必须去除抖动影响。通常采用的去抖方法有硬件去抖动和软件去抖动两种。硬件去抖动方法是在按键输出端加R-S触发器或单稳态电路构成去抖动电路。 由R-S触发器构成的硬件去抖动电路如图3-1-2所示,当按键S没有按下时,左边与非门输出为高电平,右边与非门输出为低电平;当按键按下时,左边与非门输出为低电平,右边与非门输出为高电平;当按键释放后,左边与非门输出又恢复为高电平,右边与非门输出又恢复为低电平;所以当S键进行一次按键操作,左边与非门输出一个负脉冲,右边与非门输出一个正脉冲。 图3-1-2 按键去抖动电路 在按键按下时,一旦接通右边触点,输出电平就发生翻转,由于+5V电源分别经过一个电阻接到左边与非门1脚和右边与非门5脚,所以在电平翻转后按键发生抖动时,根据R-S触发器的特性电路输出会保持翻转后的电平;在按键释放时,一旦接通左边触点,输出电平又发生翻转,同样原理在电平翻转后按键抖动时会一直保持翻转后的电平;从而利用该电路消除了按键抖动的影响。 软件去抖动方法是在第一次检测到有键按下时,调用10ms左右的延时程序,通过延时去掉抖动处的波动电压阶段,然后再确认该键是否仍保持闭合状态电平;若仍保持闭合状态电平则确认为该键真正被按下,否则视为干扰信号。 重键(两个或多个键同时按下)。 处理办法:当只有一个键按下时才读取键盘的输出,并且认为最后仍被按下的键是有效的正确按键。 4.键盘接口 单片机应用系统通常都具有人机对话功能,用户通过按键向单片机系统发出控制指令,单片机接收到键盘指令后完成相应的控制功能。在单片机应用系统中,常用的是独立式键盘和矩阵式键盘,此类键盘只简单提供通、断两种状态。 在本任务中用到的是独立式键盘,有关矩阵式键盘将在任务三中详细讲解。独立式键盘是指直接用I/O口线构成的单个按键电路,每个按键单独占有一根I/O口线,各I/O口线的工作状态不会互相影响。独立式键盘接口电路如图3-1-3所示。 图3-1-3 独立式键盘 独立式键盘接口电路的硬件电路和软件编程都比较简单,但每个按键必须占一根I/O口线,在按键个数较多时,I/O口线资源浪费较大,故只在按键数量不多时采用这种键盘电路。 二、.if语句 if语句是C语言的一个基本判定语句(条件选择语句)。它的基本结构是: if(表达式) {语句}; 在这种结构中,如果括号中的表达式成立(为真),则程序执行大括号中的语句;否则程序将跳过大括号中的语句部分,执行下面其他语句。 C语言提供了3种形式的if语句。 形式一:if(表达式){语句} 例 : if(P1!=0){c=20;} 形式二:if(表达式){语句1;} else {语句2;} 例: if(P1!=0){c=20;} else {c=0;} 形式三:if(表达式1){语句1;} else if(表达式2){语句2;} else if(表达式3){语句3;} ┇ else if(表达式m){语句n;} else {语句m;} 例 if(

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档