- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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(
您可能关注的文档
最近下载
- 20171017_宁波新世界明楼项目汇报文件.pptx VIP
- (人教PEP版2024)英语五年级上册 Unit2 大单元教学设计.docx VIP
- 劳务合同模板2025.docx VIP
- 高性能探针卡生产线项目规划设计方案.docx
- 2024年秋新沪科版物理八年级上册 第五章大单元整体设计 教学课件.pptx VIP
- 数字赋能乡村治理的实践探索与优化路径——以晋南S村为例.pdf
- 《道路运输管理实务》第2版综合测试题.docx VIP
- 《人工智能导论》课件.ppt VIP
- 第一章 大学生心理健康教育.pdf VIP
- 《铁路线路养护与维修》课件全套 模块1、2 基础知识;普速铁路线路工务作业.pptx
文档评论(0)