毕业设计(论文)基于单片机的键盘控制设计.doc
摘 要单片机即单片微型计算机(Single-Chip Microcomputer),是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器,广泛应用于各个领域1。本论文设计的单片机键盘主要由AT89C51单片机控制。该键盘控制系统是由单片机最小系统及LED显示电路组成。使用单片机C语言进行编程,实现可设定本论文主要介绍了键盘设计的软、硬件部分的设计,以及在设计、调试过程中遇到的问题及解决方案。本设计包括硬件设计和软件设计,其中的硬件设计包括时钟电路,复位电路,4*4矩阵式键盘电路和LED数字显示电路。其中需要选择使用的扫描方式;为防键盘判断失误,导致实现多次按键按键的显示问题,需要去抖动的处理,其显示需要七段数码管显示。本设计的与众不同之处在于其既能实现常规数字的显示,同时还能实现作为简单的电子琴,不同的键表示不同的音符;还能够实现简单计算功能。本课题设计的键盘控制系统结构简单,造价成本低,功能齐全,具有很强的实用性。关键词: AT89C51单片机 矩阵式键盘 按键扫描 AbstractThe monolithic integrated circuit namely monolithic microcomputer (Single-Chip Microcomputer), is collection CPU, RAM, ROM, fixed time, counting and many kinds of connections in a body micro controller.Widely applies in each domain. The present paper design monolithic integrated circuit keyboard mainly controls by at89C51 monolithic integrated circuit.This keyboard control system is composed by the monolithic integrated circuit smallest system and the LED display circuit. The use monolithic integrated circuit C language carried on the programming, the realization may establish the present paper mainly to introduce the keyboard designed the software and hardware part design, as well as the question and the solution which in the design, the debugging process met13. This design including the hardware design and the software design, hardware design including the clock electric circuit, repositions the electric circuit, the 4*4 matrix form keyboard electric circuit and the LED digita display circuit.Need choice use scanning way; In order to guard against the keyboard judgment fault, causes the realization many times the pressed key demonstration question, needs to vibrate processing, its demonstration needs seven section of nixietube demonstrations.This design out of the ordinary place lies in it already to be able to realize the conventional numeral demonstration, meanwhile can realize takes the electric piano, the different key expresses the different note; Also can realize the simple computation function14.This topic design keyboard control system structure is simple, the construction cost cost is low, the function is complete, has the very strong usability.Key words: AT89C51list slice machine Matrix form keyboard Pressed key scanning目 录摘 要I1绪 论11.1 AT89C51单片机设计意义和目的:11.2设计要求:11.3思路及步骤11.3.1思路及成果:11.3.2 设计内容步骤安排:22 整体设计方案32.1单片机的基本概念32.2单片机的特点32.3单片机的应用领域42.4 AT89C51的引脚封装概述42.5 AT89C51单片机工作的基本时序62.6 AT89C51单片机的内部结构及存储器配置:62.6.1 AT89C51单片机的内部结构62.6.2 AT89C51单片机的存储器配置72.7 AT89C51单片机键盘设计方案论证83 系统硬件设计与实现103.1系统原理图103.2 AT89C51单片机的最小系统设计103.2.1 最小系统设计103.2.2 时钟频率电路的设计113.2.3复位电路的设计113.3数码管显示电路123.3.1数码管的结构123.3.2数码管的设计选择133.4 键盘扫描电路的设计133.4.1键盘的作用133.4.2 键盘系统设计143.5 喇叭控制电路的设计174系统软件的设计184.1程序流程框图184.2系统工作原理184.3系统程序设计194.3.1程序设计194.3.2键盘扫描程序的设计195仿真及其调试215.1键盘控制protenus软件的仿真215.2软件调试21结 论22致 谢23参考文献24附 录251绪 论1.1 AT89C51单片机设计意义和目的:随着计算机及电子技术的飞跃发展,单片机也在不断更新换代,并成为电子系统中进行数据采集,信息处理,通信联络和实施控制的重要器件。单片机技术已渗入到了各个领域,在智能仪器仪表,工业监测控制,电力电子,汽车电子等方面得到了广泛的应用,并取得了巨大的成果。在今后若干年,MCS-51单片机的应用仍将占主要地位,仍然是我国单片机应用领域的主流机型。现今各个领域的工程技术人员都应掌握单片机应用技术。单片机键盘是单片机系统设计中一种主要的信息输入接口,其合理的设计,不仅可以节省系统的设计成本,更可使仪器设备的操作变得更为简单、方便,很大程度上提高系统综合性能。随着就业形势日趋严峻,我们大学生的动手能力、实践能力和综合素质越来越受到学校和用人单位的重视。在我们大学毕业时,必要的设计无疑是培养和锻炼动手能力、实践能力和综合素质的一个重要环节,这次关于单片机的键盘设计是对我们所学知识的一次综合实践,是对老师教学,我们学习成果的一次检验,也是我们即将毕业面临就业对自己就业信心的考验,对自己就业实力的测试。也使我们对MCS-51单片机的主要技术深入理解,更深入掌握其原理及接口技术的应用,真正自己动手实践,做到能灵活应用2。1.2设计要求:单片机具有集成度高,功能强,结构简单,应用灵活,可靠性高等特点。在工业控制,机电一体化,通信终端,智能仪器仪表等诸多领域中得到了广泛应用。本设计基于ATmel公司的89c51单片机,结合C语言控制的特点,实现键盘扫描的相关功能。通过原理图设计,实现基本功能模块的组合,从而验证设计的可行性与可靠性。掌握用单片机制作的键盘的原理及应用,熟练的学习ATMEL公司所用的AT89C51系列。毕业设计的要求体现于整个工作的各个阶段中,可根据课题的特点有所侧重,但应该注意一下几点:1.根据课题任务制定合理、可行的工作计划;2.进行必要的调研和资料搜集、文献阅读;3.制定适当的技术方案,并通过与其它方案的比较加以论证;4.独立完成系统或模块的设计,软件设计要符合软件工程规范,硬件设计符合原理表示、线路图纸和工艺要求的各种规范;5.制定系统(模块)的测试方法,并根据完整的测试数据对系统(模块)的性能指标做出分析和评价;1.3思路及步骤1.3.1思路及成果:本设计包括硬件设计和软件设计,其中的硬件设计包括时钟电路,复位电路,4*4矩阵式键盘电路和LED数字显示电路。其中需要选择使用的扫描方式;为防键盘判断失误,导致实现多次按键按键的显示问题,需要去抖动的处理,其显示需要七段数码管显示。本设计的与众不同之处在于其既能实现常规数字的显示,同时还能实现作为电子琴,不同的键表示不同的音符;还能够实现简单计算功能。1.3.2 设计内容步骤安排:1、大量查阅单片机资料,明确设计要求,确定设计方案。2、进行硬件设计,绘制原理图。3、进行软件设计,电路板实物的完成。4、论文撰写、外文翻译,完成答辩。2 整体设计方案2.1单片机的基本概念图2-1 单片机组成框图单片机是指一个集成在一块芯片上的完整计算机系统。尽管它的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统。单片机是将中央处理器,随机存储器。只读存储器,定时器芯片和I/O接口电路集成于一个芯片上的微控制器3。单片机也被称为微控制器(Microcontroler),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提及要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机是通过你编写的程序可以实现高智能,高效率,以及高可靠性4!目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。2.2单片机的特点1、控制性能和可靠性高实时控制功能特别强,其CPU可以对I/O端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于CPU、存储器及I/O接口集成在同一芯片内,各部件间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。近期推出的单片机产品,内部集成有高速I/O口、ADC、PWM、WDT等部件,并在低电压、低功耗、串行扩展总线、控制网络总线和开发方式(如在系统编程ISP)等方面都有了进一步的增强。2、体积小、价格低、易于产品化单片机芯片即是一台完整的微型计算机,对于批量大的专用场合,一方面可以在众多的单片机品种间进行匹配选择;同时还可以专门进行芯片设计,使芯片的功能与应用具有良好的对应关系;在单片机产品的引脚封装方面,有的单片机引脚已减少到8个或更少。从而使应用系统的印制板减小、接插件减少、安装简单方便5。2.3单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途6。2.4 AT89C51的引脚封装概述图2-2 89C51的引脚封装1、主电源引脚:VCC(40脚):接+5 V电源正端。VSS(20脚):接+5 V电源地端2、时钟电路引脚:外接晶体振荡器,不能超过24M;需加微调电容,一般为30pF;XTAL1:接外部晶振和微调电容的一端,在单片机内部,它是构成片内振荡器的反向放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部振荡器的输入端。XTAL2:接外部晶振和微调电容的另一端,在单片机内部,它是构成片内振荡器的反向放大器的输出端。当采用外部振荡器时,此引脚应悬空。3、复位电路引脚RST/VPD:RST是复位信号输入端,高电平有效。当此输入端保持2个机器周期的高电平时,就可以完成复位操作。RST引脚的第二功能是备用电源的输入端。单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。复位作用是使CPU以及其他功能部件,如串行口,中断都恢复到一个确定初始状态,并从这个状态开始工作。复位电路有两种:上电、按钮复位,考虑到各部件影响,采用按钮复位,当电阻给电容充电,电容的电压为高电平,当按下按钮时芯片复位脚近似低电平,于是芯片复位。4、控制信号引脚:ALE/PROG:(Address Latch Enable/ Programming)地址锁存允许信号端,当单片机上电正常工作后,ALE引脚不断向外输出正弦脉冲信号,此频率为振荡器频率的1/6。CPU访问外部存储器时,ALE作为锁存低8位地址的控制信号。此引脚的第二功能PROG作为8751编程脉冲输入端使用。PSEN:(Program Store Enable)在访问片外存储器时,此端定时输出负脉冲作为片外存储器的选通信号。EA/VPP:(Enable Address/Voltage Pulse Of Programming)当EA接高电平时,CPU访问片内ROM,并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过4K时,将自动转去执行片外存储器内的程序。当EA脚接低电平时,CPU只访问片外ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。VPP是对8751片内ROM固化程序时,作为施加较高编程电压(12V21V)的输入端7。5、输入输出引脚: P0-P3:4个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个端口都可以做输入输出口使用,其中,P0和P2通常用于对外部存储器的访问。在这种方式下,把P0口作为地址/数据总线使用,分时输出外部存储器的地址和传送8位数据。当扩充外部存储器的地址为16位时,P2口作为地址总线的高8位地址使用。(1)P0口(39-32脚):P0.0-P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。(2) P1口(1-8脚):P1.0-P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。(3) P2口(21-28脚):P2.0-P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。(4) P3口(10-17脚):P3.0-P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能7。2.5 AT89C51单片机工作的基本时序机器周期和指令周期:(1) 振荡周期: 也称时钟周期, 是指为单片机提供时钟脉冲信号的振荡源的周期。(2) 状态周期: 每个状态周期为时钟周期的 2 倍, 是振荡周期经二分频后得到的。(3) 机器周期: 一个机器周期包含 6 个状态周期S1S6, 也就是 12 个时钟周期。在一个机器周期内, CPU可以完成一个独立的操作。 (4) 指令周期: 它是指CPU完成一条操作所需的全部时间。 每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。2.6 AT89C51单片机的内部结构及存储器配置:2.6.1 AT89C51单片机的内部结构图2-3 MCS-51的内部结构框图CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式。2.6.2 AT89C51单片机的存储器配置 (b)图2-4 单片机的内部存储器配置从用户的角度存储器分3个逻辑地址空间:(1)片内外统一编址的64KB程序存储器地址空间0000HFFFFH即(a)图;(2)256B的片内数据存储器地址空间00HFFH(包括低128B的内部RAM地址00H7FH和高128B的特殊功能寄存器地址空间)即(b)图;(3)64KB的外部数据存储器或扩展I/O接口地址空间0000HFFFFH(4)画出RAM的组成RAM共有256个单元,按功能分为两部分低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。其中高128单元是供给专用寄存器使用,因这些寄存器的功能已作为专门规定故此称之为特殊功能寄存器SFR11个SFR有位寻址作用,而且要说明低128单元是单片机的真正RAM存储器8。表2.1 RAM的组成30H7FH通用RAM区20H2FH位寻址区(00H7FH)18H1FH工作寄存器3区(R7R0)10H17H工作寄存器2区(R7R0)08H0FH工作寄存器1区(R7R0)00H07H工作寄存器0区 (R7R0)低128单元是单片机的真正RAM存储器,按其用途划分为三个区域:通用寄存器区 通用寄存器为CPU提供了就近数据存储的便利,有利于提高单片机的运算速度。此外,使用通用存储器还能提高程序编制的灵活性,因此在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。位寻址区内部RAM的20H2FH单元,即可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。工作寄存区用户存储数据的。2.7 AT89C51单片机键盘设计方案论证(1)此键盘利用AT89C51单片机的P1口接4*4矩阵式键盘,以P1.0P1.3作输入线,以P1.4P1.7作输出线;在数码管上显示每个按键的“0F”序号。其中需要接电阻起到电路保护作用。图2-5键盘设计(2)以37,38,39引脚接其显示电路,以22号引脚接其发声电路,以起到报警或者提示作用。(3)本设计既能实现常规数字的显示,同时还能实现作为电子琴,不同的键表示不同的音符;还能够实现简单计算功能。其中,键C,D,E,F分别作为计算功能中的加减乘除运算符,而A作为复位键,B则作为数字计算及电子琴之间的功能切换按钮。(4)我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳定,可操作性强。可以只用P0口连接上拉电阻,完成驱动LED的功能,利用P3口的XTAL1晶振电路,XTAL2接移位脉冲做时钟信号。利用单片机程序判断按键是否有效,利用74LS164移位寄存8段数码管,实现按键数字显示,当切换键盘控制功能时启动蜂鸣器,同时发光二极管发光。通过单片机实现功能可以更人性化,只需单电源供电更方便,容易实现。电路结构简单,外围扩展的电路不是很多,锻炼我们所学的知识应用到现实生活当中。为我们提供实践的机会。单片机是电子专业发展的方向,更好的使用单片机可以是我们的产品小型化,使用更方便,性能更稳定,功能更齐全,所以我们选用单片机加一定的外围设备实现本次课程设计的要求8。3 系统硬件设计与实现3.1系统原理图图3-1设计原理图3.2 AT89C51单片机的最小系统设计3.2.1 最小系统设计图3-2 51单片机的最小系统图3.2.2 时钟频率电路的设计单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。图3-3 外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。本设计选用f=11.0592MHZ。3.2.3复位电路的设计1、复位方式比较使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位9。硬件复位必须通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没有影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能够正常工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可根据实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没有明确的位地址可供编程软件复位是使用软件陷阱和软件看门狗后必须进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。2、复位方式选择为便于人工操作,及令设计更人性化。本设计选择手动硬件复位方式,因而加上手动复位按钮,其设计原理图如图所示,图3-4 复位电路3.3数码管显示电路3.3.1数码管的结构数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理.基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字"09"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为 "a,b,c,d,e,f,g,dp"。其中数码管的显示可以分为两种:静态显示和动态显示。静态显示的段选位和位选位均单独连接,因此占用的I/O接口多,无法扩展多个数码管,在这种采用这种方式,必须要给LED恒定的电压,要求电压一直保持,所以一般在LED和单片机之间加锁存器,这种显示方式亮度高,编程较简单,结构清晰,管理也较简单,占用的CPU时间少。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共端COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低10。从电路上,按数码管的接法不同又分为共阴和共阳两种。图1-1 是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。其数码管的外形如下图所示:图3-5 数码管的共阴和共阳极接法共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。3.3.2数码管的设计选择由于本设计比较简单,为便于操作,及功能实现的简易化,设计中只需选用静态显示方式,并且是共阴极接法。也就是只要是 其中某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。3.4 键盘扫描电路的设计3.4.1键盘的作用键盘是人与微机系统打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中。矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。其次就是消除在按键过程中产生的“毛刺”现象。这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后再延时一段时间(这里我们取10ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。3.4.2 键盘系统设计首先,确定键盘编码方案:采用编码键盘或非编码键盘。随后,确定键盘工作方式:采用中断或查询方式输入键操作信息。然后,设计硬件电路。非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找及一些保护措施的实施等任务,均由软件来完成11。一、 非编码键盘的键输入程序应完成的基本任务1.监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低电平,所以通过电平的高低状态的检测,便可确认按键按下与否。2.判断是哪个键按下。3.完成键处理任务。二、 从电路或软件的角度应解决的问题1、消除抖动影响。键盘按键所用开关为机械弹性开关,利用了机械触点的合、断作用。由于机械触点的的弹性作用,一个按键开关在闭合和断开的瞬间均有一连串的抖动,波形如下:图3-6按键触点的机械抖动抖动时间的长短由按键的机械特性决定,一般为5-10ms,这是一个很重要的参数。抖动过程引起电平信号的波动,有可能令CPU误解为多次按键操作,从而引起误处理。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。按键的消抖,通常有软件,硬件两种消除方法。硬件消抖:只适用于键的数目较少的情况。软件消抖:如果按键较多,硬件消抖将无法胜任,常采用软件消抖。通常采用软件延时的方法:在第一次检测到有键按下时,执行一段延时10ms的子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确认真正有键按下,进行相应处理工作,消除了抖动的影响。(这种消除抖动影响的软件措施是切实可行的。)2.采取串键保护措施。串键:是指同时有一个以上的键按下,串键会引起CPU错误响应。通常采取的策略:单键按下有效,多键同时按下无效。3. 处理连击。连击:是一次按键产生多次击键的效果。要有对按键释放的处理,为了消除连击,使得一次按键只产生一次键功能的执行(不管一次按键持续的时间多长,仅采样一个数据)。否则的话,键功能程序的执行次数将是不可预知,由按键时间决定。连击是可以利用的。连击对于用计数法设计的多功能键特别有效。三、键盘工作方式单片及应用系统中,键盘扫描只是CPU的工作内容之一。CPU忙于各项任务时,如何兼顾键盘的输入,取决于键盘的工作方式。考虑仪表系统中CPU任务的份量,来确定键盘的工作方式。键盘的工作方式选取的原则是:既要保证能及时响应按键的操作,又不过多的占用CPU的工作时间。键盘的工作方式有:查询方式(编程扫描,定时扫描方式)、中断扫描方式。四、键盘电路结构(一)独立式按键接口设计独立式按键就是各按键相互独立,每个按键单独占用一根I/O口线,每根I/O口线的按键工作状态不会影响其他I/O口线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键被按下了。优点:电路配置灵活,软件结构简单。缺点:每个按键需占用一根I/O口线,在按键数量较多时,I/O口浪费大,电路结构显得复杂。因此,此键盘是用于按键较少或操作速度较高的场合。也可以用扩展I/O口搭接独立式按键接口电路,可采用8255扩展I/O口,用三态缓冲器扩展。这两种配接方式,都是把按键当作外部RAM某一工作单元的位来对待,通过读片外RAM 的方法,识别按键的工作状态。上电路中独立式按键电路,各按键开关均采用了上拉电阻,是为了保证在按键断开时,各I/O有确定的高电平。如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。(二)矩阵式键盘接口设计矩阵式键盘适用于按键数量较多的场合,由行线和列线组成,按键位于行列的交叉点上。节省I/O口。单片机系统中,若使按键较多时,通常采用矩阵式(也称行列式)键盘。1矩阵式键盘的结构及原理矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图7.5所示。图3-7 矩阵式键盘结构图由图可知,一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到5V上。当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。然而,矩阵键盘中的行线、列线和多个键相连,各按键按下与否均影响该键所在行线和列线的电平,各按键间将相互影响,因此,必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。2矩阵式键盘按键的识别识别按键的方法很多,其中,最常见的方法是扫描法。下面以图7.5中8号键的识别为例来说明扫描法识别按键的过程。按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。8号键按下时,第2行一定为低电平,然而,第2行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下同样使第2行为低电平。为进一步确定具体键,不能使所有列线在同一时刻都处在低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依此循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。采用键盘扫描后,再来观察8号键按下时的工作过程,当第0列处于低电平时,第2行处于低电平,而第1、2、3列处于低电平时,第2行却处在高电平,由此可判定按下的键应是第2行与第0列的交叉点,即8号键。结论:综合考虑各项设计标准及对其优越性的比较,