1、第7章 数字信号输入输出接口电路7.1 开关信号输入/输出方式 开关信号包括脉冲信号、电平信号。在单片机控制系统中,常采用如下几种方式现实开关信号的输入和输出。 第7章 数字信号输入输出接口电路1. 直接解码输入直接解码输入/输出方式输出方式 在这种方式中,直接利用CPU I/O引脚输入/输出开关信号,如图7-1(a)所示 。2. 编码输入编码输入/输出方式输出方式 在这种方式中,将若干条用途相同(均为输入或输出)的I/O引脚组合在一起,按二进制编码后输入或输出。例如,对于n条输出引脚,经过译码后,可以控制2n个设备;对于2n个不同时有效的输入量,经过编码器与CPU连接时,也只需要n个引脚,如
2、图7-1(b)所示。 3. 矩阵输入矩阵输入/输出方式输出方式 将CPU I/O引脚分成两组,用N条引脚构成行线,M条引脚构成列线,行、列的交叉点就构成了所需的NM个检测点。显然,所需的I/O引脚数目为N+M,而检测点总数达到了NM个,如图7-1(C)所示。可见,I/O引脚的利用率较高,硬件开销少,因此得到了广泛应用。 在矩阵编码方式中,如果行线、列线均定义为输出状态,就可以输出NM个开关量;当行、列线中有一组为输出线,另一组为输入线时就构成了NM个输入检测点,如矩阵键盘电路。 7.2 I/O资源及扩展资源及扩展 通过单片机实现数字信号的输入处理和输出控制时,必须了解以下问题: (1) 准确理
3、解CPU中各引脚的功能,确定可利用的I/O资源,并做出相对合理的使用规划。 (2) 作输出控制信号时,必须了解CPU复位期间和复位后该引脚的状态。 MCS-51系列CPU在复位期间和复位后各I/O端口的状态可参阅第2章有关内容。 (3)了解I/O端口输出级电路结构和I/O端口的负载能力。只有了解了CPU I/O端口输出级电路结构和负载能力,才可能设计出原理正确、工作可靠的I/O接口电路。 (4)了解I/O端口输出电平范围 。 (5)了解I/O端口耐压。 第7章 数字信号输入输出接口电路 对于输出口,当输出高电平时,能给负载提供的最大驱动电流就是该输出口高电平驱动能力,当输出电流大于最大驱动电流
4、时,上拉MOS管内阻上的压降将增加,VOH会下降。当VOH小于某一数值后,后级电路会误认为输入为低电平, 产生逻辑错误。因此,要注意输出高电平时的负载能力。 而当输出低电平时,输出级饱和,负载电流倒灌。同样,倒灌的电流也不能太大,否则会使输出级因过流而损坏,即使没有损坏,也会因灌电流太大,造成输出低电平VOL上升。当VOL大于某一数值后,后级电路同样会误以为输入为高电平,产生错误。第7章 数字信号输入输出接口电路7.2.1 通过锁存器、触发器扩展通过锁存器、触发器扩展I/O口口 当仅需要扩展少量的I/O引脚时,可使用锁存器、触发器或三态门电路实现。 第7章 数字信号输入输出接口电路1. 输出口
5、输出口 MCS-51写外部RAM时,用 作写选通信号。在时序上,数据输出有效到 有效时间TQVWX最小值为零,而 无效到数据输出无效(即数据保持)时间TWHQX也不超过1个机器周期。而利用触发器扩展输出口时,触发器送数时钟信号由外部RAM写选通信号 和高位地址译码信号经过“与门”或“或非门”产生,这样送数时钟信号就存在一定的延迟,因而只能利用 的前沿将数据锁存到触发器中,常使用74LS273(八上升沿触发器,带公共清零端)、74LS174(六上升沿触发器)、74LS374(八上升沿触发器,三态输出)、74LS377(八上升沿触发器,带使能端)来扩展MCS-51的输出口,如图7-2所示。 WRW
6、RWRWRWR图7-2 使用74LS273扩展输出口 2. 输入口输入口 对输入口来说,一般无须锁存,原则上三态门电路、具有三态输出的总线缓冲器、驱动器、D型触发器(如74LS374)以及电平触发的锁存器(如74LS373)等均可以作为输入口扩展芯片,如图7-3所示。 A15A14A13A1B2C3G2A4G2B5G16Y77Y69Y510Y411Y312Y213Y114Y015U474LS138A11A122.2KVC COE1LE111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U174LS373D0D1D2D3D4D5D6
7、D7D0D1D2D3D4D5D6D7C PUD7 D0C PUD7 D0R D1G11A21Y34Y114A124G132G42A52Y63Y83A93G10U374LS125D0D1D2D3数 据 输 入数 据 输 入数 据 输 入STBOC1C LK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U?74LS374 图7-4是一个实用的输入/输出口扩展电路,其中74LS273构成8位输出口,74LS373构成8位输入口。 图7-4 扩展输入/输出口 第7章 数字信号输入输出接口电路7.2.2 利用串入并出及并入串出芯片扩展
8、利用串入并出及并入串出芯片扩展I/O口口 在速度要求不高情况下,可利用74LS164、74HC594、74HC595 等“串入并出”芯片扩展输出口;利用74LS165、74HC597等“并入串出”芯片扩展输入口,也是一种简单、实用的I/O口扩展方式。当串行口未用时,可通过串行口方式0完成串行数据的输入或输出(可参阅第4章);而当串行口已做它用时,可根据串行芯片的操作时序,使用I/O引脚完成数据的输入/输出,例如在图7-5中使用89C5X芯片三根I/O线,借助两片74HC595即可获得16根输出线。 QB1QC2QD3QE4QF5QG6QH7QA15SDO9SCLR10SRCLK11RCLK12
9、OE13SDI14U274HC595P1.0P1.1P1.2QB1QC2QD3QE4QF5QG6QH7QA15SDO9SCLR10SRCLK11RCLK12OE13SDI14U374HC595串 行 数 据 输 出移 位 脉 冲8XC5XU1VCCED0ED1ED2ED3ED4ED5ED6ED7ED8ED9ED10ED11ED12ED13ED14ED1598U4D56U4C34U4B12U4ACD40106图7-5通过“串入并出”芯片扩展输出引脚 第7章 数字信号输入输出接口电路7.2.3 用8255可编程I/O芯片扩展MCS-51并行I/O口 Intel公司8255芯片是一块通用的可编程并行
10、接口(PPI)芯片,除地址线A1、A0外,可直接与Intel公司8位微处理器,如MCS-51芯片相应总线直接相连,是MCS-51单片机应用系统中较常见的并行I/O扩展芯片之一。 1. 8255的结构及引脚功 8255采用DIP40、LCC44或QFP44封装形式,引脚功能及排列如图7-6所示。 第7章 数字信号输入输出接口电路2. 8255工作方式工作方式 8255属于可编程的I/O扩展芯片,其工作方式由写入工作方式控制寄存器的工作方式控制字决定,如表7-2所示。 1b6 b5b4b3b2b1b0工作方式控制字特征A口工作方式控制00(方式0)01(方式1)1x(方式2)A口输入/输出控制0(
11、输出)1(输入)C口高4位输入/输出控制0(输出)1(输入)B口工作方式控制0(方式0)1(方式1)B口输入/输出控制0(输出)1(输入)C口低4位输入/输出控制:0(输出)1(输入)与A口工作方式有关的控制位A组(PC7PC4)输入/输出控制与B口工作方式有关的控制位B组(PC3PC0)输入/输出控制表7-2 8255工作方式控制字各含义 第7章 数字信号输入输出接口电路 8255 I/O口有三种工作方式: 方式0,基本输入/输出方式。特点是对输出信号锁存功能;对输入信号没有锁存功能。 方式1,选通输入/输出方式。特点是使用C口部分引脚作为A、B通信联络信号,对输入、输出数据均具有锁存功能。
12、 方式2,双向传输方式。只有A口可以工作于方式2,使用C口部分引脚作为双向传输联络信号,对输入、输出数据均具有锁存功能。 第7章 数字信号输入输出接口电路 可见8255三个I/O口的地位不完全相同,其中A口有三种工作方式,B口有两种工作方式;而C口较特殊,被分成A (PC7PC4)、B(PC3PC0)两组,只有当A、B口工作在方式0时,C口才可作为输入/输出引脚使用(PC7PC4、PC3PC0处于输入还是输出状态,分别由工作方式控制字的b3、b0位决定),而当A、B口工作在方式1或2时,C口部分引脚作为A、B口通信联络信号(这时未用的C口引脚仍可作为输入/输出引脚使用,由控制寄存器的b3、b0
13、位选择),具体情况如表7-3所示。 第7章 数字信号输入输出接口电路STBACKC口引脚方式1(A或B口)方式2(A口)输入输出输入输出PC0INTRBINTRB PC1IBFB PC2 PC3PC4 PC5 PC6 PC7 STBACKBBOBFBINTRAINTRAINTRAINTRAIBFAIBFASTBACKOBFOBFAAAAAA表7-3 A、B口工作在方式1/2下C口引脚的含义 第7章 数字信号输入输出接口电路(a) A口工作在选通输入方式下信号连接方式及时序 (b) A口工作在选通输出方式下信号连接方式及时序 第7章 数字信号输入输出接口电路3. 8255芯片与芯片与MCS-51
14、接口应用举例接口应用举例 MCS-51CPU 与8255接口芯片按如下方式连接:8255芯片数据总线与CPU数据总线直接相连。读控制信号( )、写控制信号( )分别与CPU读写控制信号相连。8255芯片地址线A1、A0可直接与CPU高8位地址,如A9(即P2.1引脚)、A8(即P2.0引脚)相连;当然如果已使用了D型锁存器(如74LS373)锁存了MCS-51芯片P0口低8位地址信号A7A0,则8255芯片地址线A1、A0也可以与CPU地址线A1、A0相连。片选信号 可直接与CPU高位地址线相连(即采用线选法,如图7-8所示)或由高位地址译码后产生,如例7.1所示。 RDWRCSA8A9A10
15、A11A12A13A14A15RDWRD0D1D2D3D4D5D6D7输出口RESRES2.0KVCCD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6R?8255EA/Vpp31X119X218RESET9RD/P3.717WR/P3.616INT0 /P3.212INT1 /P3.313T0/P3.41
16、4T1/P3.515P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/P30P3.1/TXD11P3.0/RXD10U18XC5X图7-8 MCS-51与8255芯片的连接 D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373A8A9A10A11A1
17、2A13A14A15RDWRD0D1D2D3D4D5D6D7A15A14A13A11A12SW7SW8SW3SW9SW4SW5SW6SW1SW2SW0SWASWFSWCSWDSWESWBESCUPEnterDOWN9.1K4VCC接8255的B口由B口依次输出只有一个为低电平的扫描码接8255的C口(PC0PC3输入)没有按键被按下为高电平PB0PC0PC1PC2PC3VCCA0A1RDWRPC0PC1PC2PC3PB0PB1PB2PB3PC0PC3引脚输入输出口PB4PC4PC7输出输出RES8255B芯片地址:A口:8800HB口:8801HC口:8802H控制口:8803HPA0PA1P
18、A2PA3PA4PA5PA6PA7D/IR/WCS1CS2CS3ERES12U5A74LS04D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A7RESDB0DB1DB2DB3DB4DB5DB6DB7FM19264 LCDRESET6.8K8A1B2C3G2A4G2B5G16Y77Y69Y510Y411Y312Y213Y114Y015U474LS1382.0KVCCD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422P
19、B523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710RD5WR36A09A18RESET35CS6R?8255EA/Vpp31X119X218RESET9RD/P3.717WR/P3.616INT0 /P3.212INT1 /P3.313T0/P3.414T1/P3.515P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.
20、627P2.728PSEN29ALE/P30P3.1/TXD11P3.0/RXD10U18XC5XD11N4148PB1D21N4148PB2D31N4148PB3D41N4148PB4D51N4148第7章 数字信号输入输出接口电路7.2.4 利用利用8155/8156可编程可编程I/O芯片扩芯片扩展展MCS-51的的I/O口口 8155/8156曾经是MCS-51单片机系统常用的可编程并行I/O扩展芯片之一,与MCS-51接口方便。采用DIP40、LCC44或QFP44封装形式,单一+5V工作电源。8155/8156 可编程I/O扩展芯片除了可提供三个可编程的I/O端口(A、B均为8位I/
21、O口,C口为6位I/O端口)外,还具有256字节的SRAM存储单元和一个14位的可编程定时/计数器,并内置了地址锁存器,地址线可直接与MCS-51单片机的P0口相连,无须使用74LS373锁存低8位地址信号,适合扩展具有片内程序存储器的MCS-51单片机CPU,如8751、8752、87C51/52/54/58、8 9 C 5 1 / 5 2 / 5 4 / 5 8 、 8 7 C 5 1 X 2 / 5 2 X 2 / 5 4 X 2 / 5 8 X 2 、89C51X2/52X2/54X2/58X2等的I/O口。当系统所需外部数据存储器容量不大时,由1片CPU和1片8155即可构成I/O端
22、口较多的单片机应用系统。第7章 数字信号输入输出接口电路1. 内部结构及引脚功能内部结构及引脚功能 8155/8156芯片内部结构及引脚排列如图7-10所示。 第7章 数字信号输入输出接口电路2. 8155芯片初始化芯片初始化 8155内部有一个命令寄存器,其内容规定8155的工作方式,各位含义如表7-4所示。 第7章 数字信号输入输出接口电路7.2.5 利用利用CPU扩展扩展I/O 当I/O引脚资源不够时,用另一块CPU来扩展I/O端口比通过三态门、触发器、专用I/O扩展芯片如8255、8155等扩展I/O引脚,在某些单片机应用系统中可能更经济。一方面,不仅扩展了I/O引脚,也扩展了其他硬件
23、资源(如定时/计数器、中断输入端),部分工作可由扩展CPU完成,有效地减轻了主CPU负担。另一方面,由于CPU I/O口电平可任意设置,完全可以省去承担逻辑转换的与非门电路芯片。 利用CUP扩展I/O资源时,可使用UART、I2C异步通信方式、类似SPI接口同步串行通信方式或并行通信方式实现两CPU之间的信息交换。 7.3 简单显示驱动电路简单显示驱动电路 7.3.1 发光二极管发光二极管 发光二极管在本质上与普通二极管差别不大,也是一个PN结,同样具有正向导通,反向截止的特性。发光二极管的伏安特性曲线与普通二极管相似,如图7-12所示(为了便于比较,图中用虚线表示普通二极管的伏安特性曲线)。
24、 图7-12 LED二极管伏安特性曲线 (1) 外加正向电压小于0.9V1.1V时,LED不导通;当外加电压大于正向阀值电压时,LED导通,同时发光。显然,LED二极管的正向导通电压比普通二极管大,具体数值与LED材料有关,如表7-7所示。 表7-7 LED正向压降与材料的关系(2) LED导通后,伏安特性曲线更陡,即LED导通后,内阻更小(因此也常用作降压元件,如将+5V电源降为3V电源)。 (3) LED二极管反向击穿电压比普通二极管低,一般在5V10V之间。 LED材料正向导通电压VF /V砷化镓(GaAs)1.2镓铝砷(GaAlAs)1.61.8磷化镓(GaP)1.92.5磷砷化镓(G
25、aAsP)1.61.8 7.3.2 驱动电路驱动电路 LED工作电流较大,而MCS51系列CPU P1P3口I/O引脚负载能力仅为四个TTL 门电路,因此不能直接驱动LED发光二极管, 必须使用三极管或驱动IC芯片驱动,如图7-13所示。 PNPRb10KRLEDVCCP1.XCPUP1.XCPU12U1A7407RLEDVCCP1.XCPU12U1A7406RLEDVCC(a)(b)(c)P0.XCPURLEDVCC(d)图7-13 CPU与LED接口电路(a)、(b)、(d)低电平有效;(c)高电平有效 第7章 数字信号输入输出接口电路7.3.3 LED发光二极管显示状态及同步发光二极管显
26、示状态及同步 一般说来,单个LED有“亮”、“灭”显示两种状态,但在单片机应用系统中,由于I/O引脚、成本等因素限制,要求一只LED发光二极管显示出更多的状态。例如电源监控设备中的电源指示灯就可能用“灭”、“常亮”、“快闪”、“慢闪”四种状态分别表示“无交流”、“交流正常”、“过压”、“欠压”四种状态;又如,带有后备电池设备的电源指示灯也可用“灭”、“常亮”、“快闪”、“慢闪”分别表示“无交流/电池电压正常”、“交流正常/电池电压正常”、“交流正常/电池低压”、“无交流/电池低压”四种状态。在这种情况下,一般用两个bit记录每一只LED发光二极管的状态,如00表示灭;01表示慢闪;10表示快闪
27、;11表示常亮,这样一字节内部RAM单元可记录4个LED指示灯的状态。 第7章 数字信号输入输出接口电路 当系统中存在两个或两个以上LED发光二极管以闪烁方式表示不同的状态时,就遇到LED显示同步问题,否则可能出现甲灯亮时,乙灯灭呈现类似霓虹的走动显示效应。 解决方法:快闪、慢闪时间呈倍数关系,如快闪切换时间为0.15s0.25s,则慢闪切换时间可设为0.45s0.75s(23倍);然后在定时中断服务程序中设置快、慢闪切换标志,并根据LED状态关闭或打开LED指示灯即可。 第7章 数字信号输入输出接口电路7.4 LED数码管及其显示驱动电路数码管及其显示驱动电路 7.4.1 LED数码管数码管
28、 LED数码管是单片机控制系统中最常用的显示器件之一,LED数码管在单片机应用系统中的地位类似于CRT (阴极射线管)显示器在台式微机系统中的地位。在单片机系统中,常用一只到数只,甚至十几只LED数码管显示CPU的处理结果、输入/输出信号的状态或大小。 第7章 数字信号输入输出接口电路LED数码管的外观如图7-14(a)所示,笔段及其对应引脚排列如图7-14(b)所示,其中ag段用于显示数字或字符的笔画,dp显示小数点,而3、8引脚连通,作为公共端。一英寸以下的LED数码管内,每一笔段含有1只LED发光二极管,导通压降为1.2V2.5V;而一英寸及以上LED数码管的每一笔段由多只LED发光二极
29、管以串、并联方式连接而成,笔段导通电压与笔段内包含的LED发光二极管的数目、连接方式有关。 在串联方式中,确定电源电压Vcc时,每只LED工作电压通常以2.0V计算,例如4英寸七段 LED数码显示器LC4141的每一笔段由四只LED发光二极管按串联方式连接而成,因此导通电压应在7V8V之间,电源电压Vcc必须取9V以上。根据LED数码管内各笔段LED发光二极管的连接方式,可以将LED 数码管分为共阴极和共阳极两大类。在共阴极LED数码管中,所有笔段的LED发光二极管的负极连在一起,如图7-14(c)所示;而在共阳极LED数码管中,所有笔段的LED发光二极管的正极连在一起,如图7-14(d)所示
30、。图7-14 LED数码显示管 第7章 数字信号输入输出接口电路7.4.2 LED数码显示器接口电路数码显示器接口电路 从LED数码管结构可以看出,点亮不同笔段就可以显示出不同的字符, 例如笔段a、b、c、d、e、f被点亮时,就可以显示数字“”;又如笔段a、b、c、d、g被点亮就显示数字“3”。理论上,七个笔段可以显示128种不同的字符,扣除其中没有意义的组合状态后,七段LED数码管可以显示的字符如表7-9所示。 依据显示驱动方式的不同,可将LED数码显示驱动电路分为静态显示方式和动态显示方式。第7章 数字信号输入输出接口电路1. LED静态显示接口电路 LED静态显示接口电路由笔段代码锁存器
31、、笔段译码器(采用软件译码的LED静态显示驱动电路不用笔段译码器)、驱动器等部分组成。在单片机应用系统中,一般不用七段译码器芯片,如74249、CD4511等构成笔段译码,而是采用软件方式实现译码,原因是软件译码灵活、方便,下面是单片机系统中常用的LED静态显示接口电路形式。 +5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6200abcefgdpa7b6c4d2e1f9g10dp538d12345689U1740712345689U27407P1.7 (1) 图7-15(a)是一位的共阳LED静态显示驱动电路, P1口输出笔段代码,通过7407驱动LED数码管。该电路优点是结构简
32、单,直接利用P1 口锁存器作笔段代码锁存器,缺点是占有了P1.0P1.6七根I/O线。 第7章 数字信号输入输出接口电路 (2) 在图7-15(b)中,通过八上升沿D型触发器74LS273扩展输出口,分别作为LED1、LED2的笔段代码锁存器。 231U2A74LS02564U2B74LS02CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U374LS273CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U474LS273A1B2C
33、3G2A4G2B5G16Y77Y69Y510Y411Y312Y213Y114Y015U174LS138A11A12A13A14A15WRD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D738abcdefgdp764219105dpabcdfgeLED12008VCCVCCD7.D01234568911101213U574071234568911101213U6740712345689U7740738abcdefgdp764219105dpabcdfgeLED12008VCC第7章 数字信号输入输出接口电路 (3) 如果LED数码管工作电流小于10mA,使用74HC273芯片后,可
34、省去OC输出的驱动芯片7407,如图7-15(c)所示。 231U2A74LHC2564U2B74HC02CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U374HC273CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U474HC273A1B2C3G2A4G2B5G16Y77Y69Y510Y411Y312Y213Y114Y015U174HC138A11A12A13A14A15WRD0D1D2D3D4D5D6D7D0D1D2D3D4
35、D5D6D738abcdefgdp764219105dpabcdfgeLED11K838abcdefgdp764219105dpabcdfgeLED21K8VCCVCCVCCD7.D0第7章 数字信号输入输出接口电路 (4) 当系统中I/O引脚资源不紧张时,可使用I/O引脚作D型触发器锁存脉冲,如图7-15(d)。 CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U174HC273CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U2
36、74HC273D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D738abcdefgdp764219105dpabcdfgeLED11K838abcdefgdp764219105dpabcdfgeLED21K8VCCVCCVCCD7.D0P2.7P2.6第7章 数字信号输入输出接口电路2. 动态显示方式动态显示方式LED显示器显示器 在静态显示方式中,显示驱动程序简单,CPU占用率低,但每一位LED数码管需要一个8位锁存器来锁存每一显示位的笔段代码,硬件开销大(元件数目多,印制板面积也会随之增加),仅适用于显示位数较少(4位以下)的场合。当需要显示的位数在412时, 多采用按位扫描
37、软件(在单片机系统一般不用硬件)译码的动态显示方式或按笔段扫描的动态显示方式,如图7-16所示。第7章 数字信号输入输出接口电路EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U189C5238abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg
38、e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg eP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7(100 120)81.8K874072共 阳 LED数 码 管P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.712345689U212345689U3T0T1T2T3T4T5T6T7VCCDB0DB1DB2DB3DB4DB5DB6DB7DB0DB1DB2DB3DB
39、4DB5DB6DB7 在图7-15中,使用P2口作为笔段码锁存器,用7407作笔段码驱动器(由于在LED动态显示电路中,为获得足够亮度,限流电阻小,LED瞬态电流大,一般不能省去笔段驱动器);P0口作位扫描码锁存器,用低频中功率PNP管作位驱动器。显然,笔段、位扫描均采用软件译码方式。 显示时,依次将各位笔段码送P2口,位扫描码送P口,即可分时显示所有位。就微观来说,任一时刻只有一只LED数码管工作,但由于人眼视觉惰性特征,只要刷新频率不小于25Hz,宏观上就看到所有位同时亮,且没有闪烁感。 从图中可以看出,在软件译码的动态LED显示电路中,无论位数多寡,都只需一套笔段码锁存器与驱动器,一套位
40、扫描码锁存器与驱动器,硬件开销少。因此,在单片机应用系统中得到了广泛应用。 第7章 数字信号输入输出接口电路 当CPU I/O引脚资源紧张时,可采用D型锁存器、可编程8255并行I/O扩展芯片构成动态LED显示器的笔段码锁存器和位扫描码锁存器,如图7-16所示。图(a)使用两片74LS273构成笔段码锁存器和位扫描码锁存器,而图(b)用8255的B口作为笔段码锁存器;A口作为位扫描码锁存器。由于8255 A口负载能力有限,不能直接驱动LED,为此图中采用中功率PNP管(如MPS8850)增大笔段驱动电流。 CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D1
41、46Q157D177Q168D188Q19U174HC273CLR1CLK111D31Q22D42Q53D73Q64D84Q95D135Q126D146Q157D177Q168D188Q19U274HC273D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D72.0K8VCCD7.D0P2.7P2.612345689U3740712345689U47407120838abcdefgdpdpabcdfgeLED738abcdefgdpdpabcdfgeLED638abcdefgdpdpabcdfgeLED538abcdefgdpdpabcdfgeLED438abcdefgdpdpab
42、cdfgeLED338abcdefgdpdpabcdfgeLED238abcdefgdpdpabcdfgeLED138abcdefgdpdpabcdfgeLED0T7T6T5T4T3T2T1T0VCCDB0DB1DB2DB3DB4DB5DB6DB7DB0DB1DB2DB3DB4DB5DB6DB7(a) 由74LS273(74HC273)构成的按位扫描动态显示驱动电路 第7章 数字信号输入输出接口电路当显示位数较多,如12位以上时,即使将显示刷新率降到25Hz(实际上当刷新频率降到25Hz时已出现明显闪烁现象)后,仍不能保证每位显示时间大于1ms时,可采用按字段扫描方式或按位分组扫描方式的动态显
43、示驱动电路。 在按字段扫描方式中,不论位数多少,对于八段数码显示器来说,笔段引脚只有8根,即使显示刷新频率为50Hz,按字段扫描时,每一字段显示时间依然为1/(508)=2.5ms。显示时每次点亮一个字段(即扫描信息从字段引脚dpa输入),同一字段的显示信息由位选择电路控制,如图7-17(a)所示,显示时先将显示数码缓冲区内数码转换为笔段码,然后将笔段码缓冲区内信息转化为位笔段显示信息码,如下所示。显示时只将位笔段显示信息送位选择口。第7章 数字信号输入输出接口电路38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38
44、abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e38abcdefgdpdpabcdfg e(100 120)81.8K874072共 阳 LED数 码 管12345689U212345689U3T0T1T2T3T4T5T6T7VCCD034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC3
45、17PC413PC512PC611PC710RD5WR36A09A18RESET35CS6U18255PA0PA1PA2PA3PA4PA5PA6PA7PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PB0PB1PB2PB3PB4PB5PB6PB7D0D1D2D3D4D5D6D7A8A9RDWR由8255构成的按位扫描动态显示驱动电路 第7章 数字信号输入输出接口电路7.5 键盘电路 在单片机应用系统中,除了复位按钮外,可能还需要其他按键,以便控制系统的运行状态,或向系统输入运行参数。键盘电路一般由键盘接口电路、按键(由控制系统运行状态的功能键和向
46、系统输入数据的数字键组成)以及键盘扫描程序等部分组成。 7.5.1 按键结构按键电压波形 7.5.2 键盘电路形式 7.5.3 键盘按键编码 7.5.4 键盘监控方式 7.5.1 按键结构按键电压波形1. 按键结构及工作原理 单片机控制系统中广泛使用的机械键盘的工作原理是:按下键帽时,按键内的复位弹簧被压缩,动片触点与静片触点相连,使按键的两个引脚被接通,接触电阻大小与按键触点面积及材料有关,一般在数十以下;松手后,复位弹簧将动片弹开,使动片与静片触点脱离接触,两引脚断开。可见,机械键盘或按钮的基本工作原理就是利用动片和静片触点的接触和断开来实现键盘或按钮两引脚的通、断。 在理想状态下,按键引
47、脚电压变化如图7-20(a)所示。但实际上,在按键被按下或放开的瞬间,由于机械触点存在弹跳现象,实际按键电压波形如图7-20(b)所示,即机械按键在按下和释放瞬间存在抖动现象,抖动时间的长短与按键的机械特性有关,一般在5ms10ms之间,而按键稳定闭合期长短与按键时间有关,从数百毫秒到数秒不等。为了保证按键由“按下”到“松手”之间仅视为一次或数次输入(对于具有重复输入功能的按键),必须在硬件或软件上采取去抖动措施,避免一次按键输入一串数码。 2. 按键波形第7章 数字信号输入输出接口电路7.5.2 键盘电路形式 根据所需按键个数、I/O引脚输出级电路结构以及可利用的I/O引脚数目,确定键盘电路
48、形式。 第7章 数字信号输入输出接口电路1.直接编码输入键盘直接编码输入键盘 通过检测单片机I/O引脚电平状态,判别有无按键输入就构成了直接编码键盘,如图7-19(b)所示。优点是键盘接口电路简单,适用于仅需少量按键的场合 第7章 数字信号输入输出接口电路2. 矩阵键盘矩阵键盘 当系统所需按键个数较多时,为了减少键盘电路占用的I/O引脚数目,一般采用矩阵键盘形式,如图7-22所示。在矩阵键盘电路中,行线是输入引脚,列线是输出引脚(当然也可以倒过来,将行线作为输出引脚,而列线作为输入引脚)。 P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7列线(输出)行线(输入)ooMCS-51
49、PC.0PC.1PC.2PC.3PC.4PC.5PC.6PC.7R19.1KR2R3R4D1D2D3D4PIC16C5X1N沟2P沟PC.XVCC1N沟2P沟PC.XVCC输入输出VN沟P1.XVCCVN沟P1.XVCC输入输出内置上拉电阻VCCVCC(a)11(b)VVVV(c)VVVV(d)第7章 数字信号输入输出接口电路7.5.3 键盘按键编码 在键盘电路中,按键的个数不止一个,即存在键盘按键编码(键值)问题。按键编码与按键功能(即键名)有关联,但又是两个不同的概念。键盘电路结构不同,确定键值的方式也不同,例如对于图7-19这样的简单键盘接口电路,将K0对应的按键值定义为“0”;K1对应
50、的按键值定义为“1”;依此类推,K3对应的按键值定义为“3”。对于图7-22所示的矩阵键盘接口电路,确定键值的方法很多:可用行、列对应的二进制值作为键值,例如当列线P1.7P1.4输出的扫描信号为1110,如果P1.4与P1.0交叉点对应按键,即第一个按键被按下时,从P1.3P1.0口读入的信息必然为1110,因此P1.0与P1.4交叉点对应的按键值为1110,1110(即0EEH);同理,P1.0与P1.5交叉点对应的按键值为1101,1110(即0BEH), P1.0与P1.7交叉点对应的按键值为0111,1110(即7EH)。但通过这种编码方式获得的键值分散性大,且不等距。因此,一般均按