项目三 键盘控制显示_第1页
项目三 键盘控制显示_第2页
项目三 键盘控制显示_第3页
项目三 键盘控制显示_第4页
项目三 键盘控制显示_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目三键盘控制显示--------键盘接口技术3.1认识开关及按键3.1.1开关和按键的外形、结构、特点1、外形2、结构3、特点

开关一般由机械结构和电接触点等组成,有常开、常闭型主要用于电流的通断控制,电流较大;还有轻触型、微动型主要用于开关信号的产生,通常电流较小,在单片机控制系统中应用较多。3.2键击动作转换为数字信息3.2.1轻触开关电路

轻触按键是机械弹性触点式,内部装有弹片,当施加外力克服弹片阻力时,触点闭合,接通按键的两个引脚,当外力撤除时在弹力的作用下触点断开。在闭合、断开的过程中,由于机械弹性振动造成按键抖动,从而带来电平高低之间振荡。如下图所示:从上图中我们可以看出,一次按键过程:高电平→前沿抖动→低电平→后沿抖动→高电平,一般抖动的时间在5~10MS(主要取决于机械特性),而整个按键过程的时间则取决于操作的人员。3.2.2键盘电路键盘电路一般由一个或多个按键组成,在小家电上一个键盘通常只有几个按键,在手机上有十几个按键,计算机的键盘有100多个按键。键盘电路通常又分为:独立式键盘、行列式键盘。按键的信息可以用位或数值来表示。1、独立式键盘电路

独立式键盘电路,每个按键直接连接单片机的I/O口,每个端口均带上接电阻。识别时只需对端口进行高低电平的判别就可,识别较为简单。2、矩阵(行列)式键盘(1)三行两例(3X2)键盘电路

图中P2.0、P2.1、P2.2为行线,P2.3、P2.4为列线。根据数学中的平面坐标我们可知道,平面中的点可用水平和垂直坐标值来表示:即S1~S6的坐标值可分别表示为(0,0)、(0,1);(1,0),(1,1);(2,0),(2,1),且具有唯一性,识别时较为复杂。(2)串行驱动行列式键盘电路

使用串行驱动可以大大减少I/O口的使用,图中使用74LS164(真值表见右图)后,只占用了4个I/O口,可实现16个按键的功能。但这样会使得键盘软件部分变得复杂。

(3)使用外部中断构成高灵敏度、高效率的行列式键盘电路

因按键是可能随时发生,因此前面所述键盘电路,需要不断的扫描按键,这就占用了CPU的大量资源,当CPU在处理按键任务时,此时如有按键CPU不会响应,造成灵敏度低。为此提出使用外部中断构成的高灵敏度、高效率的行例式键盘电路,因此只要有按键中断就会响应,并处理按键信息。3.2.3识别按键与计算键值如前所述一次按键过程的动作完成将对应电平的变化,在识别过程中如何消除干扰,除去按键抖动,又如何通过电平的变化来识别一次有效的按键呢?

工程上一次有效按键要经过2~5次反复断判,最终才确定按键有效,以避免误动作或干扰。下图中将P2.0置0则S3、S6就相当于两个独立按键。1、独立式键盘控制LED灯亮和灭

任务:结合实训硬件电路,开始LED灯全熄灭,每按下S3一次有效时,依次点亮P1.0~P1.7端口所接LED灯,如此循环。(1)任务分析:完成这个任务的关键是按键识别,然后对有效按键进行计数,采用查表或直接送数的方式点亮LED灯。(2)设计程序框图

构思:主程序只需写调用按键子程序,根据按键统计的值,执行不同的LED驱动数据。按键子程序只需对有效按键进行统计,有效则加1,并将统计结果存放在R3中,当无有效键按时R3不计数,保持原值不变。

整个程序分成三个部分:主程序、按键识别子程序、延时子程序(不讲)。主程序框图:按键识别子程序框图:(3)编写程序;****说明*******************;*程序中R3用于存放按键计数值。;*因实训电路设计为行列扫描键盘,为实现独立键盘;*的功能,P2.0=0,相当于接地。*;*P2.3为独立按键,为本任务的按键信息输入端。;*P1口为LED灯的驱动输出端***ORG0000HMOVR3,#00HMOVP2,#0FFHCLRP2.0;***********主程序************

MAIN:LCALLANJIANCJNER3,#00H,DEN_01MOVP1,#0FFHDEN_01:CJNER3,#01H,DEN_02MOVP1,#0FEHDEN_02:CJNER3,#02H,DEN_03MOVP1,#0FCHDEN_03:CJNER3,#03H,DEN_04MOVP1,#0F8HDEN_04:CJNER3,#04H,DEN_05MOVP1,#0F0HDEN_05:CJNER3,#05H,DEN_06MOVP1,#0E0HDEN_06:CJNER3,#06H,DEN_07MOVP1,#0C0HDEN_07:CJNER3,#07H,DEN_08MOVP1,#80HDEN_08:CJNER3,#08H,DEN_09MOVP1,#00HDEN_09:CJNER3,#09H,JIESHUMOVR3,#00HJIESHU:NOPLJMPMAIN;**********按键子程序**************

ANJIAN:CLRP2.0JNBP2.3,YAN_01LJMPCHUYAN_01:CALLDELAYJNBP2.3,YAN_02LJMPCHUYAN_02:CALLDELAYJNBP2.3,YAN_03LJMPCHUYAN_03:JNBP2.3,SFJC_1LJMPCHUSFJC_1:JBP2.3,SHI_YAN_1CALLDELAYJMPSFJC_1SHI_YAN_1:CALLDELAYJBP2.3,AJ_YOUXIAOJMPSHI_YAN_1AJ_YOUXIAO:INCR3CHU:NOPRET;*********延时子程序***************

DELAY:MOVR7,#28HD_0:MOVR6,#0FFHD_1:DJNZR6,D_1DJNZR7,D_0RET(4)软件调试或硬件联机仿真调试

调试过程中主要检查程序控制的过程是否满足设计需求,是否存在逻辑思路错误或指令应用上的错误,观察控制数据是否正确。逐步修改直到达到设计要求,完成任务。(5)烧录程序到芯片,并接入硬件电路检验控制过程

将编译后的十六进制或二进制机器代码文件,通过编程器,烧录到芯片中,在把芯片装入硬件电路,检验程序控制是否达到任务要求。如查未能实现任务目标,则需要细心分析当前程序控制的状态,检查程序可能否出问题的地方。然后再返回到第一步,重新思考。如果是设计思路出了问题,则需要重新选择方案。

本任务的完成,还可选用查表的方式实现,即按键计数器R3的内容,可作为查表的依据,来实现控制LED灯点亮过程,这里就不再详述。实训四按键控制LED灯一、实训的目的1、掌握独立式按键的软件识别过程。2、进一步熟悉完成设计任务的基本思路和设计步骤。3、熟悉指令的应用,形成结构化程序设计思路。4、进一步熟悉编程器及WAVE6000仿真软件的应用。二、实训的设备

实训电路板、编程器、仿真机、计算机及配套软件三、设计任务

任务:结合实训硬件电路,开始LED灯全亮,每按下S3一次,有效时,依次熄灭P1.7~P1.0端口所接LED灯,如此循环。(可参考项目三讲课的有关内容)四、实训步骤1、分析任务2、设计程序方框图3、编写程序4、软件调试、软硬件结合测试五、实训心得体会2、行列扫描按键识别过程

上图为三行两列矩阵式键盘,即3X2行列式键盘,P2.0—P2.2分别为第0行、第1行、第2行;P2.3、P2.4分别为第0列、第1列。(1)按键过程无键按下时:如图所示,行线P2.0~P2.3输出0,列线P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论