版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务三任务三 开关、键盘控制应用开关、键盘控制应用一、任务背景知识一、任务背景知识 键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用硬件编码器实现,并产生键编码号或键值的称为编码键盘,如BCD码键盘、ASCLL码键盘等;而靠软件来识别的称为非编码键盘;在单片机组成的测控系统及智能化仪器中,用的最多的是非编码键盘。 非编码键盘有分为:独立式非编码键盘和行列式非编码键盘(矩阵键盘)。无论是何种按键,其功能实现都是分为三个步骤:有 无 按 键计 算 键 值按 键 服 务消 抖1. 钮子开关钮子开关 单片机系统要接收人工指令,接收传感器信号,都需要处理开关量“I/0”。首先探讨一下开关与单片机的电
2、路连接问题。 (1) 这是最常见的接法之一。工作时,要求P1.0置为1,然后再判断P1.0是1还是0。若P1.0为0,说明开关闭合把引脚接地了。若Pl.0为1,说明开关断开,引脚保持高电平。 (2) 将开关接在单片机两个引脚上,编程要复杂一点。为了识别sw的通断状态,编程时需要让P1.0和P2.0其中一个引脚为0,另一个引脚置1。开关接通时会把置1的引脚拉低成0,关系如下表3-1所示。设置(选一种即可)测试结论说明方法1P2.0=1,P2.1=0若P2.0=1开关sw断(关)设置P2.1=0则读P2.0若P2.0=0开关sw通(开)方法2P2.0=0,P2.1=1若P2.1=1开关sw断(关)
3、设置P2.0=0则读P2.1若P2.1=0开关sw通(开)表3-1开关通断关系 亚龙YL-236实验台中,指令模块包含了8个钮子开关。其实物及内部电路如图3-1所示。钮子开关拨向上侧为“断开”,通过l0k电阻向输出插孔SAx(x为18)提供上拉电平。 钮子关 拨向下侧为“闭合” , SAx输出低电平,同时LED发光作为开关接通的指示灯。(a)指令模块钮子开关实物图 (b)内部电路图 图3-1 指令模块钮子开关实物及电路图2. 独立按键独立按键 (1) 在单片机应用系统中,为了控制系统的工作状态以及向系统输入数据,应用系统应设有按键或键盘。例如,复位用的复位键,功能转换用的功能键以及数据输入用的
4、数字键盘等。 (2) 独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。独立式按键的优点是电路配置灵活,软件结构简单,并且能同时检测到多个键被按下的情况。但缺点是每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构复杂。因此,此键盘常用于按键较少的系统或操作速度较高的场合。指令模块独立按键实物图如图3-2所示,其独立式键盘原理图如图3-3所示。 图3-2指令模块独立按键实物图图3-3 独立式键盘原理图3. 消除键抖动消除键抖动 按键的合断
5、都存在一个抖动的暂态过程,如图3-4所示这抖动的暂态过程大约经过510 ms的时间,人的肉眼是觉察不到的,但对高速的CPU是有反应的,可能产生误处理。为了保证键动作一次,仅作一次处理,必须采取措施以消除抖动。图3-4键合断时的抖动 (1) 消除键抖动 消除抖动的措施有两种:硬件消抖和软件消抖。 硬件消除抖动可用简单的R-S触发器或单稳电路构成,如图3-5所示:图3-5消除键抖动电路 软件消除抖动是用延时来躲过暂态抖动过程, 执行一段大于10 ms。的延时程序后,再读取稳定的键状态。 4. 矩阵键盘矩阵键盘 行列式键盘又叫矩阵式键盘,用I/O口线组成行、列结构,按键设置在行和列的交点上。 例如,
6、44的行列结构可组成16个键的键盘。因此,在按键数量较多时,可以节省I/O口线。 (1) 采用扫描方式,软件扫描方式有三种: 程序扫描方式:当CPU空闲时,扫描键盘,判断有无键按下; 定时扫描方式:利用CPU的定时器,每隔一定时间扫描一次键盘; 中断扫描方式:在硬件上采用中断,有键按下时,产生中断,由中断服务程序来处理。(2) 键盘扫描程序一般应包括以下内容: 判别有无键按下; 键盘扫描取得闭合键的行、列值; 用计算法或查表法得到键值; 判断闭合键是否释放,如没释放则继续等待; 将闭合键号保存,同时转去执行该闭合键的功能。(1) 矩阵按键检测 硬件电路如上图单片机的P1口用作键盘I/O口,键盘
7、的行线接到P1口的低4位,键盘的列线接到P1口的高4位。4根行线和4根列线形成16个相交点。每个交点为一个按键,每个按键赋一个键值,从左到右从上到下依次为0-15。 检测当前是否有键被按下。检测的方法是P1.4-P1.7输出全“0”,P1.0-P1.3设置为1读取P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,否则有键闭合。或者将列设为输入,行设为输出。二、任务分析二、任务分析 开关、键盘控制应用涉及的知识点多,下面用三个任务来讲解这个知识点。具体任务如下: (1) 用一个开关sw控制一个发光二极管LED。当sw接通时,LED闪烁;sw断开,LED熄灭。 (2) 通过独立
8、按键实现功能,每次按下按键时,流水灯移一位,按键的同时 响蜂鸣器。 (3) 通过矩阵键盘实现功能,按键实现由全亮到灭七留一,再实现流水灯效果,最后熄灭灯。 三、任务实施三、任务实施 (1).LED闪烁工作过程:点亮闪烁工作过程:点亮延时延时熄灭熄灭延时延时点亮点亮如此循环如此循环,实现闪烁实现闪烁的效果。的效果。(2)具体思路:具体思路: 击键次数不同,点亮效果不同,因此按键程序必须消除抖动,防止干扰数据;击键次数不同,点亮效果不同,因此按键程序必须消除抖动,防止干扰数据; 必须对击键次数进行记录,以便根据次数选择灯的功能;必须对击键次数进行记录,以便根据次数选择灯的功能; 在点亮灯的同时在点
9、亮灯的同时,要调用蜂鸣器。要调用蜂鸣器。(3)利用循环判断键值利用循环判断键值 判断是否有键按下判断是否有键按下,确认按下的是哪一个键;确认按下的是哪一个键; 显示二进制键值,例如显示二进制键值,例如:键值为键值为1,用,用8位二进制表示为:位二进制表示为:00000001; 对得到的行号和列号译码对得到的行号和列号译码,得到键值。得到键值。 1、任务具体分析、任务具体分析2、任务实施过程、任务实施过程 由于有三个具体任务是钮子开关、独立按键、矩阵键盘的应用,这里就三个任务一一讲解,(1) 钮子开关钮子开关 在前面的分析基础上,钮子开关的任务连线图如图3-8所示。 任务连线图 LED显示模块
10、+5VLED1 GNDP2.0 P1.0 主机模块 +5V GND 电源模块 +5V GND指令模块 +5VSA1 GND 图3-8钮子开关连线图流程图 在分析了原理和接线之后,钮子开关流程图如图3-9所示。 图3-9 钮子开关流程图 程序代码: /*用一个开关sw控制一个发光二极管LED。当sw接通时,LED闪烁;sw断开时,LED熄灭*/#include#define uint unsigned int#define uchar unsigned charsbit sw=P10; /* 定义P1.0引脚名为开关sw */sbit D1=P20; /定义P2.0引脚名为D1/* 延时函数 *
11、/void delay(uint i) while(i-);void flasher() /flashing lights:闪烁灯 uint i; /在函数内部定义变量 D1=0; /初始化为开机就亮 while(1) i=0; while(i30000)i=i+1; /延时 D1=!D1; /然后,取反 if(sw=1) D1=1;break; int main() while(1) if(sw=0) flasher();/根据sw是否为0决定D1是否闪烁 else D1=1; delay(10000); 实验结果 经过程序的调试,编译,并下载到单片机,可以在设备上显示,也可用仿真软件仿真,
12、得出仿真效果图3-10所示 图3-10 钮子开关仿真结果 (2) 独立按键独立按键 LED显示模块 +5VLED0-LED7 GNDP2.0- P2.7 P1.0 P3.6 主机模块 +5V GND 电源模块 +5V GND指令模块 +5VSB1 GND 在前面的分析基础上,独立按键的任务连线图如图3-11所示。 任务连线图 图3-11 独立按键接线图程序代码: 见书上实验结果实验结果经过程序的调试,编译,并下载到单片机,可以在设备上显示,也可用仿真软件仿真,得出仿真效果图3-12所示。图3-12 独立按键仿真图(3) 矩阵键盘矩阵键盘在前面在前面矩阵键盘原理矩阵键盘原理的分析基础上,的分析基
13、础上,矩阵键盘矩阵键盘的任务连线图的任务连线图任务连线图任务连线图 见书上见书上程序代码:见书上程序代码:见书上 实验结果:实验结果:图3-14 矩阵键盘仿真图四、任务自评四、任务自评通过前面的讲解,相信同学们已经完成了开关、独立独立键盘和矩阵键盘的任务,那么该任务你是否完美的完成了?那就通过下面的表格来反映吧!项目内容完成要求 分值完成情况自评分值 开关、键盘控制应用流程设计正确 20程序编写正确 30实物连线正确 20调试程序正确 30五、知识衔接五、知识衔接1. C语言相关语法 (1) 预处理指令宏定义指令 宏定义指令是指用一些标识符作为宏名,来代替其他一些符号或者常量的预处理命令。使用
14、宏定义指令,可以减少程序中字符串输入的工作量,而且可以提高程序的可移植性。 宏名既可以是字符串或常数,也可以是带参数的宏。宏定义指令可分为带参数的宏定义和不带参数的宏定义。 (2) #define命令 #define命令用于定义一个宏名。宏名是一个标识符,在源代码中遇到该标识符时,均以宏定义的串的内容代替该标识符。ANSI标准宏将定义的标识符称为“宏名”,而用定义的内容代替宏名的过程称为“宏替换”。 2. 键盘设计注意事项 对于键盘的程序设计,需要及时并且准确地响应按键的动作。在进行单片机键盘接口设计的时候,需要注意如下几个方面。合理的按键编码、可靠的输入检测、程序响应。六、任务总结六、任务总
15、结(1) 当系统需要的按键数量不多时,独立式按键不失为一种简单可行的解决方案。但需要较多按键时,该方案占用10资源太多。在本任务中,采用顺序检测的方法实现各个按键的检测,并调用相应的按键处理程序,如果按键处理程序运行时间较长,有可能无法及时响应用户的按键动作,导致出现“按键失灵”现象。在使用中,要注意每个按键处理程序的运行时间,尽量避免出现“按键失灵”现象。按键五部曲:首判有键,其次消抖,确认按下,待键释放。实现功能。 (2)键盘扫描控制方式分析 程序控制扫描方式:键处理程序固定在主程序的某个程序段。 其特点:对CPU工作影响小,但应考虑键盘处理程序的运行间隔周期不能太长,否则会影响对键输入响应的及时性。 定时控制扫描方式:利用定时/计数器每隔一段时间产生定时中断,CPU响应中断后对键盘
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 紫癜肾患者的权益保护与法律援助
- 和美乡村建设工程监理大纲
- 2025年兴业银行厦门分行社会招聘备考题库及答案详解1套
- 2025年兴业银行武汉分行社会招聘备考题库及一套答案详解
- 松原市重点中学2026届高三英语第一学期期末学业质量监测试题含解析
- 天津2025年民生银行天津分行社会招聘备考题库完整参考答案详解
- 楚雄州教育体育局直属学校2025年公开选调工作人员备考题库及参考答案详解
- 2025年中国科学院遗传与发育生物学研究所综合管理部交通助理岗位招聘备考题库及完整答案详解1套
- 2025年中国人寿安顺分公司西秀支公司招聘:保单服务专员备考题库及完整答案详解一套
- 吉林省松原市宁江区2024-2025学年八年级上学期期末考试物理试题(含答案)
- 2026年辽宁生态工程职业学院单招职业适应性考试题库必考题
- 《国家赔偿法》期末终结性考试(占总成绩50%)-国开(ZJ)-参考资料
- 怀念战友混声四部合唱简谱
- 实验针灸学-实验针灸学研究程序与方法
- 仓库工作人员职责培训课件
- 新教科版四上科学2.2《呼吸与健康生活》优质课件
- 七人学生小品《如此课堂》剧本台词手稿
- 绿盾加密软件技术白皮书
- GB/T 7600-2014运行中变压器油和汽轮机油水分含量测定法(库仑法)
- 比较文学概论马工程课件 第5章
- 跨境人民币业务介绍-杨吉聪
评论
0/150
提交评论