您好,欢迎访问三七文档
本章要点大多数的单片机应用系统,都要配置输入外设和输出外设。常用的输入外设有键盘、开关等;常用的输出外设有LED数码管、LCD显示器、打印机等。本章主要介绍1单片机控制发光二极管、LED数码管2基于单片机的开关、键盘接口原理及应用第7章显示、开关/键盘7.1发光二极管的显示单片机可以通过并行端口P0~P3驱动发光二极管P0口与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入,而P1~P3口每一位的驱动能力,只有P0口的一半。7.1发光二极管的显示当P0口的某位为高电平时,可提供400µA的拉电流;当P0口某位为低电平(0.45V)时,可提供3.2mA的灌电流;而P1~P3口内部有30kΩ左右的上拉电阻,如果高电平输出,则从P1、P2和P3口输出的拉电流Id仅为几百µA,驱动能力较弱,亮度较差;如果端口引脚为低电平,能使灌电流Id从单片机的外部流入内部,则将大大增加流过的灌电流值;所以,AT89S52单片机任何一个端口要想获得较大的驱动能力,要采用低电平输出。如果一定要高电平驱动,可在单片机与发光二极管之间加驱动电路,如74LS04、74LS244等。7.1发光二极管的显示(a)不恰当的连接:高电平驱动(b)恰当的连接:低电平驱动7.1发光二极管的显示思考:如何将发光二极管与单片机P1口连接起来?7.2开关状态检测检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测I/O端口引脚的电平来实现。【例7-2】如图7-3所示,利用单片机、1个开关k和1个发光二极管LED,构成一个简单的检测开关k是否闭合的系统。7.2开关状态检测参考程序常见显示器7.3LED数码管显示液晶显示器液晶显示屏LED显示屏LED数码管7.3.1LED数码管显示原理LED数码管在单片机系统中应用非常广泛。LED(LightEmittingDiode)是发光二极管缩写。LED数码管是由发光二极管构成的。7.3.1LED数码管的结构常见的LED数码管为“8”字型的,共计8段。每一段对应一个发光二极管。有共阳极和共阴极两种共阴极发光二极管的阴极连在一起,通常公共阴极接地。当阳极为高电平时,发光二极管点亮。共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮+5V+5V0V0V0V为了使数码管显示不同的符号或数字,要把某些段发光二极管点亮,就要为LED数码管提供控制字,该控制字称为段码(字型码)。LED数码管共计8段,正好是一个字节。习惯上是以“a”段对应段码字节的最低位。各段与字节中各位对应关系如表所示。段码(字型码)段码表D7D6D5D4D3D2D1D0dpgfedcba0001111113f100000110062010110115b3010011114f以共阴极数码管为例思考:试写出H、L的段码?7.3.1LED数码管的结构【例7-3】用单片机控制一个8段LED数码管,如图7-5所示。要求数码管反复循环显示单个数字:0~9。参考程序7.3.2LED数码管的显示方式图为显示4位字符的LED数码管的结构原理图。4位位选线和84条段码线。段码线控制显示字型,而位选线控制着该显示位的LED数码管的亮或暗。LED数码管有两种显示方式:静态显示和动态显示。1.LED静态显示方式无论多少位LED数码管,同时处于显示状态。各位的共阴极(或共阳极)连接在一起并接地(或接+5V);每位的段码线(a~dp)分别与一个8位的I/O口锁存器输出相连。静态显示的特点静态显示方式的显示无闪烁,亮度都较高,软件控制比较容易;占用口线多。当前LED使用静态显示比较常见(配合使用74LS164)1.LED静态显示方式2.LED动态显示方式无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管轮流显示。段码线的相应段并联在一起,由一个8位I/O口控制;而各位的共阳极或共阴极分别由相应的I/O线控制,分时选通。4位8段LED动态显示电路段码线占用一个8位I/O口,位选线占用一个4位I/O口。采用动态的“扫描”显示方式。即在某一时刻,只让某一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示字符的段码。动态显示原理在某一时刻,只有一位显示,其他各位熄灭,由于余辉和人眼的“视觉暂留”作用,只要每位显示间隔足够短,则可以造成“多位同时亮”的假象,达到同时显示的效果。动态显示的特点优点是硬件电路简单,显示器越多,优势越明显。缺点是显示亮度不如静态显示的亮度高。如果“扫描”速率较低,会出现闪烁现象。7.3.3LED数码管静态显示设计【例7-4】用AT89S52设计一个2位LED数码管显示的“秒表”,显示时间为00~99秒,每秒自动加1。原理电路如图7-8所示。电路采用单片机的P2口、P3口分别控制两个LED数码管作为“秒表”的时间显示。显示数字的段码采用查表方法。“秒”计时产生采用软件延时的方法。7.3.3LED数码管静态显示设计7.6键盘接口设计键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。7.6.1键盘接口设计应解决的问题1.键盘的任务任务有三项:(1)判别是否有键按下?若有,进入下一步工作。(2)识别哪一个键被按下,并求出相应的键值。(3)根据键值,找到相应键值的处理程序入口。最常用的是按键式键盘,其本质上就是一个开关。按键开关的两端分别连接在行线和列线上,通过键盘开关机械触点的断开、闭合,其行线电压输出波形如图所示。2.键盘输入的特点29t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短与开关的机械特性有关,一般为5~10ms。t2为稳定的闭合期,其时间由按键动作确定,一般为十分之几秒到几秒。t0、t4为断开期。3.按键的识别键的闭合与否,行线输出电压上就是呈现高电平或低电平。高电平,表示键断开,低电平则表示键闭合。通过对行线电平的高低状态的检测,可确认按键按下以及按键释放与否。为了确保对一次按键动作只确认一次按键有效,必须消除抖动期t1和t3的影响。304.消除按键抖动的两种方法一种软件延时,本思想是:在检测到有键按下时,该键所对应的行线为低电平,执行一段延时10ms的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认该行确实有键按下。当按键松开时,方法同上。采取本措施,可消除两个抖动期t1和t3的影响。另一种是采用专用的键盘/显示器接口芯片,这类芯片中都有自动去抖动的硬件电路。有键按下延时10ms有键按下YYNN确认有键按下7.6.2独立式键盘的设计在单片机中,常见的键盘有两种结构:独立式键盘和矩阵式键盘。对于独立式键盘:一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下。当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平。独立式按键特点优点:电路简单,各条检测线独立,识别按下按键的软件编写简单。适用于键盘按键数目较少的场合。缺点:不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线。独立式键盘的查询方式示例【例7-8】对图7-21所示独立式键盘,用查询方式实现键盘扫描,根据按下不同按键,对其进行处理。矩阵式(也称行列式)键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图所示,一个44的矩阵键盘可以构成一个16个按键键盘。在按键数目较多的场合,要节省较多的I/O口线。矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。7.6.3矩阵式键盘的设计矩阵按键识别法:扫描法第1步,识别键盘有无键按下。先把所有列线均置为0,然后检查各行线电平是否都为高,如果不全为高,说明有键按下,否则无键被按下。例如,当键3按下时,第1行线为低,还不能确定是键3被按下,因为如果同一行的键2、1或0之一被按下,行线也为低电平。只能得出第1行有键被按下的结论。39第2步,识别出哪个按键被按下。采用逐列扫描法,在某一时刻只让1条列线处于低电平,其余所有列线处于高电平。当第1列为低电平,其余各列为高电平时,因为是键3被按下,第1行的行线仍处于高电平;当第2列为低电平,其余各列为高电平时,第1行的行线仍处于高电平;直到让第4列为低电平,其余各列为高电平时,此时第1行的行线电平变为低电平,据此,可判断第1行第4列交叉点处的按键,即键3被按下。矩阵按键识别法:线反转法扫描法要逐列扫描查询,有时则要多次扫描。而线反转法则很简练,无论被按键是处于第一列或最后一列,均只需经过两步便能获得此按键所在的行列值,其具体步骤为:•让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。•再把行线编程为输出线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在列为按键所在列。•两步即可确定按键所在的行和列,从而识别出所按的键。假设键3被按下。第一步,P1.0~P1.3输出全为“0”,然后,读入P1.4~P1.7线的状态,结果P1.4=0,而P1.5~P1.7均为1,因此,第1行出现电平的变化,说明第1行有键按下;41第二步,让P1.4~P1.7输出全为“0”,然后,读入P1.0~P1.3位,结果P1.0=0,而P1.1~P1.3均为1,因此第4列出现电平的变化,说明第4列有键按下。综上所述,即第1行、第4列按键被按下,此按键即键3按下。线反转法简单适用,但不要忘记按键去抖动处理。矩阵按键识别法:线反转法7.6.4键盘的工作方式单片机在忙于其他各项工作任务时,如何兼顾键盘的输入,这取决于键盘的工作方式。工作方式选取原则是,既要保证及时响应按键操作,又不过多占用单片机工作时间。键盘工作方式有3种,即编程扫描、定时扫描和中断扫描。1.编程扫描方式也称查询方式,利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。如果单片机的查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务的进行。查询的频率过低,可能会键盘输入漏判。所以要根据单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。2.定时扫描方式每隔一定的时间对键盘扫描一次。在这种方式中,通常利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘进行扫描,在有键按下时识别出该键,并执行相应键的处理程序。为了不漏判有效的按键,定时中断的周期一般应小于100ms。3中断扫描方式键盘按键按下,发出中断请求信号,单片机响应中断,执行键盘扫描程序中断服务子程序。如无键按下,单片机将不理睬键盘。此种方式的优点是,只有按键按下时,才进行处理,所以其实时性强,工作效率高。本章小结1.掌握LED数码管硬件原理;2.能写出共阴、共阳数码管在具体电路中的段码;3.掌握静态显示方式与动态显示原理;4.掌握静态显示的电路和程序设计;5.理解键盘的工作原理;6.掌握独立式键盘的硬件与软件设计;7.理解矩阵式键盘的按键识别方法:扫描法和线反转法。
本文标题:单片机键盘及显示
链接地址:https://www.777doc.com/doc-5059784 .html