单片机IO口扩展技术

发布者:范隆最新更新时间:2016-04-12 来源: eefocus关键字:单片机  IO口  扩展技术 手机看文章 扫描二维码
随时随地手机看文章
 

0 引言

   在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。

   MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。

   由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可以像访问外部RAM存储器单元那样访问外部的P0口接口芯片,以对P0口进行读/写操作。用于P0口扩展的专用芯片很多。如8255可编程并行P0口扩展芯片、8155可编程并行P0口扩展芯片等。本文重点介绍采用具有三态缓冲的74HC244芯片和输出带锁存的74HC377芯片对P0口进行的并行扩展的具体方法。

1 输入接口的扩展

   MCS-51单片机的数据总线是一种公用总线,不能被独占使用,这就要求接在上面的芯片必须具备“三态”功能,因此扩展输入接口实际上就是要找一个能够用于控制且具备三态输出的芯片。以便在输入设备被选通时,它能使输入设备的数据线和单片机的数据总线直接接通;而当输入设备没有被选通时,它又能隔离数据源和数据总线(即三态缓冲器为高阻抗状态)。

1.1 74HC2244芯片的功能

   如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图1所示。
 

单片机IO口扩展技术

   74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1C和2G都为低电平时,输出端Y和输入端A状态相同;当1G和2G都为高电平时,输出呈高阻态。

1.2 应用74HC244芯片扩展输入接口

   图2是采用74HC2244芯片进行输入接口扩展的原理电路,图3是读P0口的时序。由图3可以看出,当P2.7和RD同为低电平时,74HC2244才能将输入端的数据送到单片机的P0口。其中,P2.7决定了74HC244的地址,0000H-7FFFH(共32K)地址都可以访问这个单元,这就是用线选法所带来的副作用。通常可选择其中的最高地址作为这个芯片的地址来写程序,如这个芯片的地址是7FFFH。但这仅仅是一种习惯,并不是规定,当然也完全可以用0000H作为这个芯片的地址。当确定了地址之后,其接口的输入操作程序如下:
 

单片机IO口扩展技术

MOV DPTR,#7FFFH

MOVX A,@DPTR

   其中MOVX类指令是MCS-5l单片机专用于对外部RAM进行操作的指令。由于外部I/O与外部RAM是同一接口,所以一般使用这条指令对外部I/O进行操作。一旦执行到MOVX类指令,单片机就会在RD或WR(根据输入还是输出指令)引脚产生一个下降沿,这个下降沿的波形与P2.7相或,则会在或门的输出口也产生一个下降沿,这个下降沿将使74HC244的输出与输入接通,这样,输入设备的数据就可以被MCS-51单片机从总线上读取。

   需要说明的是,74HC244是不带锁存的,因此,如果输人设备提供的数据时间比较短,那么就要用带锁存的芯片进行扩展,如74HC373,74HC573等。

2 输出接口的扩展

   由于单片机的数据总线是为各个芯片服务的,一般不可能为一个输出而一直保持一种状态,因此,输出接口的主要功能是进行数据保持(即数据锁存),也就是说,输出接口的扩展实际上就是扩展锁存器。

2.1 74HC377芯片的功能

   输出接口扩展通常用74HC377芯片来实现。该芯片是一个带允许端的8D锁存器,其芯片的引脚如图4所示,各相关引脚的功能如下:
 

单片机IO口扩展技术

◇D0~D7为8位数据输入端;

◇Q0~Q7为8位数据输出端;

◇G为使能控制端;

◇CLK为时钟信号,上升沿锁存数据。

表1所列是该芯片的真值表。
 

单片机IO口扩展技术

2.2 应用74HC377芯片扩展输出接口

   图5是利用74HC377进行输出接口扩展的电路连接图。图中,74HC377的G端与P2.6口相连,其地址是x0xxxxxxB,如果把“x”全置为1,则为1011 1111 1111 1111B,这样,0BFFFH就是该芯片的地址了。
 

单片机IO口扩展技术

   由于MCS-51的WR是与74HC377的CLK端相连的,当WR信号由低变高时,数据总线上的数据为输出数据,而此时P2.6输出低电平,G有效,因此,数据就被锁存。其相关程序如下:

MOV DPTR,#0BFFFH

MOV A,#DATA

MOVX @DPTR,A

此外,利用74HC373芯片、74HC573芯片也可以进行P0口的扩展。

3 接口扩展实例

   在实际的应用系统中,可能需要同时扩展多个I/O口,以满足应用系统的需要。而各个输入、输出扩展I/O芯片应通过74LS138进行“全地址”译码选通,从而分时复用数据总线DB (DataBus)。为了防止过渡干扰对译码选通逻辑造成的影响,单片机系统所用的外围芯片一般均设为双步选通方式,即除了配置译码选通端外,还应配置使能选通端。而74HC244芯片本身没有明显的片选和读/写控制端,设计时通常采用译码和读控制信号来同时控制74HC244的CS,从而有效地抑制输入/输出数据信息的过渡干扰。

此电路输入口扩展采用2个74HC244。其输入端接键盘或其它数字信号;而输出口扩展则选用2个74HC377,以用于控制数码管、发光二极管、继电器等。其详细电路原理图如图6所示。

单片机IO口扩展技术

其部分代码如下:

单片机IO口扩展技术

   51单片机的数据/地址/控制总线端口都有一定的负载能力,P0口可驱动8个TTL门电路,P1口、P2口和P3口可驱动4个TTL门电路。负载超过上述规定一般应加驱动器。总线驱动器可以使用TTL型三态缓冲门电路74HC244、74HC245。另外,在扩展口线的同时,还应兼顾配置总线驱动器,注意总线负载平衡的配置。在总线上适当安装上拉电阻可以提高总线信号传输的可靠性。

   此外,一个系统可能由于存在各种干扰及不稳定因素而出现故障,为解决这一问题,设计时也可以从软件设计方面采取一些措施。

4 结束语

   与其它51单片机P0口扩展相比,本文介绍的输入/输出口的P0并行扩展方法,可以很方便的实现P0口的并行扩展。所设计的接口扩展电路已成功用于实际系统中。实际运行表明,采用该方法扩展的P0口系统能够可靠、稳定的运行。

关键字:单片机  IO口  扩展技术 引用地址:单片机IO口扩展技术

上一篇:单片机的硬件设计
下一篇:RS485-CAN转换器的设计

推荐阅读最新更新时间:2024-03-16 14:50

Atmel单片机应用技巧
功能强大的时钟中断   在程序设计中,设置一个好的时钟中断,可大大方便和简化程序的编制,提高系统的效率与可操作性。下面以6MHz时钟的89C51系统为例,说明时钟中断的应用。   定时器初值与中断周期。 时钟中断的时间间隔一般取20ms(50Hz),如需要百分之一秒的时基信号,可取10ms(100Hz)。这里取20ms。T0工作于16位定时器方式(方式1),每过一个机器周期T0自动加1,计至0FFFFh的下一个机器周期,T0溢出产生中断,由硬件设置相应的标志位供软件查询。即中断启动后经过N+1个机器周期,T0产生中断。所以,只要先在T0中存入一个比0FFFFh小N的数,然后启动定时器,便会在N+1个机器周期后产生中断,这个数便是
[单片机]
STC单片机控制PCA9554A程序
/****对PCA9554A操作时要特别注意的是在主函数写数据之前,一定要先用函数 PCA9554A_Config(0x00)写0x00,否则收不到数据****/ #include reg51.h #include intrins.h sbit SDA=P2^0; sbit SCL=P2^1; sbit beep=P2^3; void Delay(unsigned int i) { unsigned int j,k; for(j=i;j 0;j--) for(k=110;k 0;k--); } void NOP() { _nop_(); _nop_(); _nop_(); _nop_();
[单片机]
STC<font color='red'>单片机</font>控制PCA9554A程序
基于RISC技术的8位微控制器设计
  引 言    随着微电子技术的不断发展,超大规模集成电路的集成度和工艺水平不断提高,将整个应用电子系统集成在一个芯片中(SoC),已成为现代电子系统设计的趋势;以往高复杂度、高成本的嵌入式系统结构能够通过低成本的单片芯片实现。另一方面,复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)集成度和速度不断提高,功能不断增强,开发人员可以使用高性能的EDA综合开发工具和硬件描述语言(HDL)在短时间内设计出复杂的电子应用系统。目前,嵌入式系统已经在各行各业得到广泛应用。工控、通信、汽车、航空航天以及军事等各个领域都能看到嵌入式系统的身影,而微控制器(MCU)则是嵌入式系统的核心。   1 精简 指令 集计算机( RISC
[工业控制]
针对PIC微控制器的设计窍门
除了可在广泛应用的Microchip公司PIC微控制器芯片中挤出更多特性外,本文探讨的诸如增加额外串口以及在8位芯片上进行32位运算等技巧,也可适用于其它微控制器。   图1:作为异步串行数据的ASCII码字母“Q”(0x51)。   尽管Microchip公司不断为其日益扩大的PIC微控制器产品线增加更多功能,但有时设计工程师只需其中一小部分功能。也许设计工程师还需要目前尚不存在的一组特性,或者继承了一种设计但不能升级,或者可能只想进行试验并打破以往传统限制。本文将介绍一些挖掘各种PIC产品极限的应用方法,其中一些技巧也适用于其它微控制器,但这里只介绍用于PIC的源代码与具体示例。本文还将分析一些方法,它们是关于
[单片机]
针对PIC<font color='red'>微控制器</font>的设计窍门
很令人惊奇的单片机程序
看到一些网友上传的资料,也不知是真是假。 截屏一段,请大家鉴别: 注:本文原来是网易发表的。迁居到CSDN后,有些图片,就不正常显示。 原文在网易的网址:http://blog.163.com/asm_c/blog/static/24820311320157944334505/ 相信多数吴鉴鹰的粉丝,都见过这篇资料。 图中红色和蓝色的文字,是做而论道写的标注。 这资料如果真是吴鉴鹰写的,只能说,他还太嫩。 水平太低,找工作,难。 只能自己办公司。 如果不是他写的,建议他的粉丝,赶紧帮他消除不利的影响。 呵呵,做而论道,就爱摆事实、讲道理。 有兴趣的网友,可留言讨论。
[单片机]
很令人惊奇的<font color='red'>单片机</font>程序
8051单片机串口编程知识总结
最近,把收集到有关单片机串口编程的资料总结一下,有利于把工作做好,材料整理如下: 单片机串口通信原理: 1、51系列单片机的串口有4个模式,可分别用作串并转换、并串转换、异步串行通信(2种模式)。异步串行通信中,有1+8+1和1+8+1+1两种帧格式,多机通信是特殊的通信方式。 2、基本原理是两组移位寄存器。将并行通信转换成串行通信模式(发送部分),或反之(接收部分)。可全双工运行。 3、速度通过移位脉冲决定。具体一般通过定时器1的自动装载模式产生的溢出脉冲给出。 4、电平上采用的是CMOS逻辑。 5、以上是物理层和数据链路层的单片机串口模块的约定,其他层需要软件人员根据需要自行把握。另外,电平需要根据实际通信环境做变换,如232
[单片机]
单片机与ARM谁更实用
一般在8位单片机与ARM方面的嵌入式系统是有层次上的差别,ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。而8位单片机因架构简单,硬件资源相对较少,适用于一般的工业控制、消费性家电等等。 对于一个单片机方面的软件编程初学者,应以HOLTEK系列或8051等8位单片机来做入门练习。而初学者应当具备软件编程相关知识,单片机一般软件编程是以汇编语言为主,各家有各家的语法,但大都以RISC的单片机架构为主,其中 RISC (Reduced Instruction Set Computer) 代表单片机的所有指令。都是利用一些简单的指令组成的,简单的指令代表 单片机的线路可以尽量做到最佳化,而提高执行速率。 另外初学者要
[单片机]
<font color='red'>单片机</font>与ARM谁更实用
一文读懂汽车控制芯片(MCU
本文从工作要求,性能要求,产业格局,行业壁垒四个维度,分别介绍车身、底盘、动力、座舱四个域的 MCU 芯片 。并整理了国产MCU芯片的应用现状,供从业者参考。 1.控制类芯片介绍 控制类芯片主要就是指MCU(Microcontroller Unit),即微控制器,又叫单片机,是把CPU的主频与规格做适当缩减,并将存储器、定时器、A/D转换、时钟、I/O端口及串行通讯等多种功能模块和接口集成在单个芯片上,实现终端控制的功能,具有性能高、功耗低、可编程、灵活度高等优点。 车规级MCU示意图 汽车是MCU的一个非常重要的应用领域,据 IC Insights数据,2019年全球MCU应用于 汽车电子 的占比约为33%。高端车
[汽车电子]
一文读懂汽车控制芯片(<font color='red'>MCU</font>)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved