历史上的今天
返回首页

历史上的今天

今天是:2025年04月06日(星期日)

2018年04月06日 | MCS-51单片机的输入/输出口的P0并行扩展方法

2018-04-06 来源:eefocus

    在单片机家族的众多成员中,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 74HC244芯片的功能  74ls244 74hc244 pdf

    如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为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口系统能够可靠、稳定的运行。


推荐阅读

史海拾趣

Anytek Technology Corporation Ltd公司的发展小趣事

Anytek Technology Corporation Ltd自创立之初,便敏锐地捕捉到了车载电子产品的市场潜力。2003年,公司果断进军车载及行车记录仪领域,凭借前瞻性的市场洞察力和技术积累,迅速在行业内崭露头角。当时,随着汽车保有量的不断增加,行车记录仪作为保障行车安全、记录行车过程的重要设备,市场需求日益旺盛。Anytek凭借高品质的产品和专业的服务,赢得了广大消费者的信任和好评。

GSG公司的发展小趣事
通过无线通信技术,可以实现对压力测量点的远程监控和数据传输。
AEC Design公司的发展小趣事
为了进一步提升技术实力和市场竞争力,AEC Design公司积极寻求与其他企业或研究机构的战略合作。通过与上下游企业建立紧密的供应链合作关系,公司确保了原材料的稳定供应和产品质量的有效控制。同时,与高校和研究机构的合作则为公司带来了源源不断的技术创新动力。
Elite Enterprises (H K) Co Ltd公司的发展小趣事

随着市场的竞争加剧,Elite Enterprises意识到只有不断提升产品品质和技术水平,才能在竞争中立于不败之地。因此,公司加大了对研发的投资,不断引进先进的生产设备和检测仪器,并严格把控原材料采购和生产流程。这些努力使公司的LED产品在光效、寿命和稳定性等方面均达到了行业领先水平。

EMI Filter Company公司的发展小趣事

TDK公司,作为全球知名的电子元器件制造商,早在上世纪80年代就开始涉足EMI滤波器领域。当时,随着电子设备的日益普及,电磁干扰问题逐渐凸显。TDK看准市场需求,投入大量资源进行EMI滤波器的研发。初期,他们面临着技术难题和市场接受度的挑战。然而,通过不断的技术创新和产品迭代,TDK的EMI滤波器逐渐在市场上站稳了脚跟。他们的产品在计算机、通信设备等领域得到了广泛应用,有效解决了电磁干扰问题,提升了设备的稳定性和可靠性。

CLANDELL公司的发展小趣事

随着公司规模的扩大,CLANDELL公司开始积极履行社会责任。公司不仅关注自身的经济效益,还积极参与公益事业和环保活动。同时,公司还注重员工的福利待遇和职业发展,为员工提供良好的工作环境和培训机会。这些举措不仅提升了CLANDELL公司的社会形象,也为公司的可持续发展注入了新的动力。

这五个故事只是CLANDELL公司发展过程中的一部分,它们展示了公司在电子行业中的崛起之路,也反映了公司不断追求卓越、勇于创新的精神风貌。

问答坊 | AI 解惑

NI LabVIEW天下会火热报名中

本帖最后由 paulhyde 于 2014-9-15 09:25 编辑 【何谓天下会】 LabVIEW天下会是美国国家仪器公司(NI)与 GSDZone 网站联合举办的全球华人LabVIEW开发者竞赛,旨在提供一个让广大LabVIEW爱好者互相交流开发经验,切磋编程技术的平台。 LabVIEW天 ...…

查看全部问答>

牛人给个明路!

我很想学嵌入式的知识,但我实在不知道该从哪学起,迷惘了好多天,请大牛们给我指个方向!…

查看全部问答>

关于超宽带UWB无线收发模块

各位,有没有做过超宽带项目的,想咨询一下关于超宽带无线收发模块的产品,现在还有哪些国内能弄到的?谢谢啦!…

查看全部问答>

WINCE写注册表乱码

int MAX_SIZE = 256;         HKEY  hKey1;         wchar_t *key1Value = L\"abc\";//这里写成中文结果也相同         char *key1buf = new char[MAX_SIZE];   &nb ...…

查看全部问答>

无线通信

跟一个朋友网上讨论了一个有关无线通信的解决方案。讨论之余有些感叹。总的感觉是,频率越来越高,当然天线就越来越小,这使得双向通信成为了现实。小时候常常接触到的是中波和短波,长波听说过,不过那是更老的玩意了,这些波段主要是通过安装收音 ...…

查看全部问答>

一天天学用STM8

第一天,搞定了IAR + STLINK的download an debug 很郁闷的是买到手的STM三合一开发板上的STLINK居然不能连机,为此走了很多弯路。 折腾半天,直到IAR和STVP都不能连机STLINK时才怀疑这板上的STLINK有问题。 最后好在用STLINK upgrade升级后 ...…

查看全部问答>

AT91RM9200 ARM 中EBI怎么挂Page Mode 的 Nor Flash

 EBI的控制器中能挂Flash的貌似有:Burst Flash Controller 和 NAND Flash/SmartMedia Logic 和 CompactFlash Logic(附datasheet的图)我现在要外挂一个 Page Mode 的 Nor Flash 应该挂在那个控制器上?多谢大家解答!…

查看全部问答>

基于FSSDC-9B506-EK Easy Kit的作品(1)

  去年暑假期间,富士通公司举办了“2010-2011富士通半导体杯创意未来电子竞赛”,我有两个学生参加这个比赛。做了点东西,应该说还行吧。现在富士通在论坛征集建议,刚好他们使用的开发板就是Cortex-M3 Easy Kit,作为响应吧,我就把他们 ...…

查看全部问答>

收到传感器套件,上图

差点让圆通给搞飞了,送到另外一个地方去了,打了两个电话要回来的,快递信封也是破的,套件盒子也被压扁了,坑爹的快递…

查看全部问答>