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