MCS-51单片机P0口扩展技术研究

发布者:咖啡狐狸最新更新时间:2007-05-24 来源: 电子元器件应用关键字:编址  缓冲  锁存  数据 手机看文章 扫描二维码
随时随地手机看文章

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所示。

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作为这个芯片的地址。当确定了地址之后,其接口的输入操作程序如下:

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所示,各相关引脚的功能如下:

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

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

◇G为使能控制端;

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

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

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

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

由于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所示。

其部分代码如下:

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

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

4 结束语

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

关键字:编址  缓冲  锁存  数据 引用地址:MCS-51单片机P0口扩展技术研究

上一篇:一种基于高速超微型单片机的CCD驱动电路设计
下一篇:C8051F020与80C51单片机的异同点

推荐阅读最新更新时间:2024-03-16 12:22

什么是数据采集DAQ?
数据采集 (DAQ) 指的是测量电压、电流、温度、压力、声音或运动等电气或物理参数的过程。为了分析和存储相关信号以供后续处理,我们必须将这些信号转换为数字数据。对科学研究、工业自动化、环境监测和医疗诊断等众多应用而言,DAQ 系统都是其不可或缺的组成部分。 数据采集在各个领域的多样化应用 数据采集在众多领域发挥着重要作用,使得工作人员能够针对各种物理和电气现象进行精确的 测量和分析: 1.在科研领域:数据采集不仅是探究温度波动、压力变化和运动等物理现象时不可或缺的技术,而且对于需要监测心率和血压等关键健康指标的医学研究也有着至关重要的意义。 2. 在工业自动化领域:对该领域而言,数据采集是监控整个制造过程所必不可少
[测试测量]
什么是<font color='red'>数据</font>采集DAQ?
基于LabVIEW的无线USB高速数据传输系统
引言 通用串行总线USB(U NI versal Serial Bus)作为一种新型的数据通信技术,具有即插即用、支持热插拨、易于扩展、传输速度快、性价比高等优点;短距离无线通信技术是未来计算机和外设间进行数据传输的发展趋势,它具有分布灵活、使用简单、几乎不受空间条件限制等特点。USB紧跟通信技术的无线化趋势,2004年,惠普、英特尔、微软、NEC、飞利浦半导体、三星电子等多家大公司成立了WUSB(Wireless USB)的促进联盟,旨在将USB的使用变得更加简单,实现无线化。Cypress公司推出了低成本的芯片级远距离2.4 GHz射频系统一一Wireless USB LR方案,与ZigBee和蓝牙等复杂且昂贵的无线网络方案
[测试测量]
基于LabVIEW的无线USB高速<font color='red'>数据</font>传输系统
用并行口进行数据采集与控制
  在过程控制及各种仪器仪表中,可由微型计算机完成实时数据采集与控制。计算机所加工的信息总是数字量。被测量或测量对象的有关参量往往是一些连续变化的模拟量,如温度、压力、流量、速度等。因此必须将这些模拟量转化为数字量,以送入计算机进行加工,这一过程为模数转换(A/D)。由计算机加工的数字量,转换为模拟量,对被控对象进行控制,这一过程为数模转换(D/A)。   使用PC机进行数据采集,便携机和笔记本具有自身的优点。便携机、笔记本重量轻、通用性好,方便携带,满足数据采集工作随时随地进行的要求。但由于便携机和笔记本内,缺少数据采集所需要的内置ISA扩展槽。因而需用并行口或RS232来进行数据采集。若利用便携 图1 通用采集
[应用]
数据在视频监控存储的应用与挑战
作为云时代海量数据的来源之一,安防视频监控行业随着智慧城市和智能交通的快速发展、移动互联设备的快速激增,产生了海量的非结构化视音频数据,带动了大数据的存储、管理、分析等应用。面向云时代,业界同仁一拥而上、热血沸腾,无论是IT供应商、存储厂商、还是解决方案提供商都不甘落后,雨后春笋般的纷纷提出基于计算、存储、网络等多层次虚拟化的数据中心解决方案,投入大量资源,推出云存储、云计算等系统产品。 文/天地伟业产品总监 程岳寅   面对大数据,视频监控行业面临哪些难题?我们如何应用云计算、大数据相关技术来获取数据背后隐含的信息?未来的挑战和前景如何?我将从以上几方面发表个人观点,意在抛砖引玉、引发业界同仁在产业发展的进一步思考和讨论。
[安防电子]
大<font color='red'>数据</font>在视频监控存储的应用与挑战
AT28C系列EEPROM中数据的保护
1 前言   EEPROM是一种具有掉电记忆功能的存贮器,其内容可以象普通RAM一样进行改写,而且改写时能够自动擦除并换成新内容。它不象EPROM那样需要紫外线擦除;而只需用电即可擦除并改写存贮在其内部的内容。EEPROM通常在内部带有编程电源。由于它只需外接单一+5V电源,因此使用起来十分方便。和串行芯片相比,并行EEPROM的电路接口和编程设计均简单得多,所以在对电路板面积要求不很苛刻的情况下,使用EEPROM存贮器还是十分的方便。 2 并行EEPROM中数据丢失的原因   并行EEPROM通常采用总线扩展接口方法,图1所示是基于AT28C256的接口电路,其中为地址译码产生的片选信号为单片机的读、写信号。 编程时,只需
[单片机]
AT28C系列EEPROM中<font color='red'>数据</font>的保护
C51 两种对内存空间地址写数据的方法
方法一: unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBDF1; /* CH375命令端口的I/O地址 */ CH375_CMD_PORT = Data; 方法二: *((unsigned char xdata *) 0xBDF1) = Data; 类似:DSP2407的头文件 voatile unsigned int * IMR = (volatile unsigned int *)0x0004; *IMR = value;
[单片机]
多通道零相位差数据采集系统设计与实现
引言 ---- 数据采集技术是以前端的模拟信号处理、数字化、数字信号处理和计算机等高科技为基础而形成的一门综合技术,是联系模拟世界和数字世界的桥梁。它在许多领域得到了广泛的应用。数字技术促进了上述这些领域的发展,而反过来又对数据采集系统提出了愈来愈高的要求,本文所设计的16位16通道零相位差数据采集系统不仅具有较高的转化精度,而且提供多通道零相位差特性。正是由于各通道之间的信号在数字化之后,不存在相位差,这对那些诸如声纳阵列、多点振动检测、电力系统监测等需要对多路信号进行相位相关特性分析的事件而言,使用这种采集系统就特别有意义。USB接口的普遍性使本系统很容易与PC机接口。 1 系统设计 ---- 16位16通道零相位差数据采
[模拟电子]
数据采集LM12H458与80C51接口电路 —电路图天天读(153)
  LM12H458是高集成度的数据采集系统DAS芯片,它将采样保持、A/D转换集成在一块芯片内,从而大大减少了外围电路的设计。其8路模拟信号输入既可作为单端输入,又可两两组成差分输入。器件内部提供的一个2.5V参考电压、8×48bit指令RAM和32×16bit的FIFO大大减小了微处理器的负担。LM12H458的工作电压为3~5.5V,功耗小于34mW,待命模式下的功耗只有50μW。此外,LM12H458还有如下主要性能:   有三种工作模式:分别为带符号的13位模式、带符号的9位模式和看门狗模式;有8个模拟信号输入通道,模拟信号可单端输入,也可差分输入;内置采样保持和2.5V参考电压;内含32×16bit的FIFO;采样
[单片机]
<font color='red'>数据</font>采集LM12H458与80C51接口电路 —电路图天天读(153)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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