C51单片机的IO口介绍(下)

发布者:CrystalBreeze最新更新时间:2024-03-15 来源: elecfans关键字:C51  单片机  IO口 手机看文章 扫描二维码
随时随地手机看文章

上一篇文章我们对C51的IO简单的介绍了一下,现在我们来简单了解C51的IO的结构

这里我们学习一下比较常见的单片机的IO模式,分别是准双向,开漏输出和推挽输出


(这里要提一嘴,我们用的STC88C52RC是没有推挽输出功能的,STC公司后续推出的一些机型才有推挽输出功能)

接下来我们来看看这几种模式

1.准双向

看看下面的原理图,机内信号通过一个非门取反后送入一个MOS管,MOS管负责控制这个IO的高低电平,配合内部上拉电阻完成高低电平的输出

图片


为了方便我们分析,我们把这个MOS管看成一只NPN三极管。区别是三极管靠电流导通,MOS管靠电压导通

图片


结合前面我们讲过的知识,对于一只NPN三极管,基极b电压比集电极c电压大0.7V的时候,三极管发射极e与集电极c之间导通

准双向输出高电平

当机内给高电平信号的时候,经过非门取反,得到低电平信号,在这里我视作0V,非门取反后直接接到三极管b极,相当于b极电压0V,三极管的c极接地,视作0V。此时由于b极电压与c极电压差小于0.7V,三极管截止

图片


电源正极的电流就经过内部上拉电阻流向c极,只有一路电流从正极到上拉电阻再流出IO,这时候相当于IO接入高电平

准双向输出低电平

当机内给低电平信号的时候,经过非门取反,得到高电平信号,在这里我视作5V,非门取反后直接接到三极管b极,相当于b极电压5V,三极管的c极接地,视作0V。此时由于b极电压与c极电压差达到0.7V以上,三极管导通

图片


电源正极的电流就经过内部上拉电阻流向c极,c,e之间导通,所以直通,一直流至负极。另一路电流从外部IO经过三极管的C极,再流向e极,最后流至地,实现接低

这时候我想你会问,那电流为什么不从vcc流向电阻,最后流出IO呢?我想说,我相信你高中的时候学过,电流总是从正极流向负极。我们来观察,在这个电路里面,正极的电流已经流向负极了,IO这一路电流也流向负极,也就实现了低电平输出

2.开漏输出

开漏输出的结构如下

图片


细心的朋友已经发现了,开漏输出的电路结构跟准双向的区别就是没有内部上拉电阻

内部输出0的时候,原理跟准双向输出相同

图片


但是如果内部输出为1的时候

图片


这时候IO是悬空状态,相当于IO跟单片机断开了

如果需要输出高电平,这时候就需要外部上拉电阻

图片


3.推挽输出(了解)

所谓的推挽,就是指使用两个三极管或者MOS管交替地将信号推到正和负极性,实现放大的效果

推挽输出的电路结构

图片


在这个结构中,两个MOS管配合,实现推挽输出,最大的特点就是输出电流够大(大约20mA)

在这里,T1 MOS管可以看成PNP三极管,T2 MOS管可看成NPN三极管

图片


输出高电平的原理:

内部输出高电平信号经过非门取反,送到两个三极管的b极,上面的PNP三极管导通,下面的NPN三极管截止,电流从VCC流过PNP管,流出IO。

图片


输出低电平的原理:

内部输出低电平信号经过非门取反,送到两个三极管的b极,上面的PNP三极管截止,下面的NPN三极管导通,IO电流经过NPN三极管流过地,实现输出低电平

C51的IO模式

我们的AT89C52单片机只支持开漏输出和准双向输出

P0组IO只支持开漏输出,仔细观察,你的开发板上的P0组IO是不是有一排上拉电阻?

图片


P1,P2,P3支持准双向IO输出

这些是单片机设计的时候就配置好的

我们无法修改,但是根据不同IO组的输出功能进行合理利用,依旧能达到我们想要的效果


关键字:C51  单片机  IO口 引用地址:C51单片机的IO口介绍(下)

上一篇:at89c51芯片管脚图引脚图
下一篇:认识80S51的中断

推荐阅读最新更新时间:2024-11-03 00:10

MCU内嵌Flash内存成趋势 出货比重过半
因应MCU成长快速及程序数据储存需要,MCU内嵌Flash内存设计成为主流趋势,MCU大厂也纷纷以购并或结盟掌握内嵌Flash的相关IP与制程技术。本文将探讨内嵌Flash IP制程技术,为下一代Flash MCU带来的技术变革。 Flash MCU出货比重过半 掌握Flash成为MCU开发关键 因应MCU成长快速,所带动的程序代码与数据储存需要,MCU内嵌内存类型也从早期Maskrom、EPROM、EEPROM到Flash内存。据市调机构预估,内嵌Flash内存的MCU在2010年出货比重超过50%。也因此MCU大厂也急于掌握内嵌Flash内存相关IP与制程技术。像Microchip就购并闪存大厂SST。提供MCU内
[手机便携]
电子车速里程表的单片机实现方素
1 概述   传统的汽车转速里程表的功能有两个,一是用指针指示汽车行驶的瞬时车速,二是用机械计数器记录汽车行驶的累计里程。现代汽车正向高速化方向发展,随着车速的提高,用软轴驱动的传统车速里程表受到前所未有的挑战,这是因为软轴在高速旋转时,由于受钢丝交变应力极限的限制而容易断裂,同时,软轴布置过长会出现形变过大或运动迟滞等现象,而且,对于不同的车型,转速里程表的安装位置也会受到软轴长度及弯曲度的限制。凡此种种,使得基于非接触式转速传感器的电子式转速里程表得以迅速发展。 2 里程累计实现原理   车速里程表的速比表示的是:车速里程表转轴(软轴)在汽车行驶一公里时所转过的转数。 基于单片机的车速里程表采用霍尔型非接触式转速传感器。这种车
[单片机]
电子车速里程表的<font color='red'>单片机</font>实现方素
一种基于C51的多任务机制及应用
摘要:本文介绍了一种在MCS51单片机程序中实现多任务机制的简单方法,并给出了源代码和一个应用实例。通过中断进行实时任务切换,具有结构简单清晰、代码量少、不需使用汇编等优点。该方法亦可应用于其他单片机系统。 关键词:多任务系统 单片机 C51 中断 安防系统 引言 传统的单片机程序一般采用单任务机制,单任务系统具有简单直观、易于控制的优点。然而由于程序只能按顺序依次执行,缺乏灵活性,只能使用中断函数实时地处理一些较短的任务,在较复杂的应用中使用极为不便。嵌入式多任务操作系统的出现解决了这个问题。在多任务系统中,可以同时执行多个并行任务,任务之间可以相互跳转。但是嵌入式操作系统在提供强大功能的同时,也带来了代码量大、结构复杂
[单片机]
MSP430单片机在水声应答释放器中的应用
水声应答释放器是合作目标定位导航系统的关键控制单元之一。应答释放器长时间布放在水下,接收水上系统的控制指令,通过单脉冲的接收和发射完成测距。水声应答释放器的功能通常还包括深度(压力)遥测、状态自检和自主释放回收等。 海上应用条件恶劣,使用要求复杂,应答释放器往往需要在满足规定的应答工作时间之外,具有很长的待机等待时间。为此,实用的应答释放器除了器件的选型和电路低功耗设计外,往往都采用值更和工作两种状态来进一步降低功耗;在工作状态下,开启DSP运算电路实现可靠的高精度应答测距;在值更状态下,关闭一切不必要的电路,仅仅检测水上系统的控制指令,并给出回复。 由于应答释放器长时间工作在值更状态下,所以值更电路的功耗成为了首要问题
[单片机]
MSP430<font color='red'>单片机</font>在水声应答释放器中的应用
基于单片机的继电器控制设计应用
1、实验原理图   2、实验内容   利用P1口输出高低电平,控制继电器的开合,以实现对外部装置的控制。   3、预备知识   现代自动化控制设备都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等),另一方面又要为电子电路和电气电路提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。   本实验采用JZC—23F型继电器,其控制电压为5V。继电器电路中一般要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。   4、实验步骤   (1)、在EXIC1上插上07芯片。   (2)、把8031的
[单片机]
基于<font color='red'>单片机</font>的继电器控制设计应用
初学单片机几个不易掌握的概念
初学单片机几个不易掌握的概念 随着电子技术的迅速发展,计算机已深入地渗透到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对电子爱好者已熟悉的模拟电路、数字电路,单片机中有一些新的概念,这些概念非常基本以至于一般作者不屑去谈,教材自然也不会很深入地讲解这些概念,但这些内容又是学习中必须要理解的,下面就结合本人的学习、教学经验,对这些最基本概念作一说明,希望对自学者有所帮助。   一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件
[工业控制]
嵌入式单片机程序架构之顺序结构
时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本贴要详细说明和介绍的方法。 对于时间片轮询法,虽然有不少书籍都有介绍,但大多说得并不系统,只是提提概念而已。下面本人将详细介绍本人模式,并参考别人的代码建立的一个时间片轮询架构程序的方法,我想将给初学者有一定的借鉴性。 记得在前不久本人发帖《1个定时器多处复用的问题》,由于时间的问题,并没有详细说明怎样实现1个定时器多处复用。在这里我们先介绍一下定时器的复用功能。。。 使用1个定时器,可以是任意的定时器,这里不做特殊
[单片机]
51单片机做的传送机(输送机)计数器
弟弟自己做了个传送机(输送机),装水泥省了不少劲,赞!!美中不足的是要一边装水泥还要一边数着装了多少袋,有时数忘了还要重数。于是把这个计数的任务交给了我。 我用单片机结合数码管做了一个,也捎带着复习下去年学的单片机.在stc89c52单片机的P3.7管脚接一个行程开关,作为计数的开关,用单片机的P1.0-P1.7接一个共阳数码管,作为00-99计数的十位数显示,用单片机的P0.0-P0.7接一个共阳数码管,作为00-99计数的个位数显示。做出后效果不错,下面是c程序源码: #include AT89X51.H unsigned char code table ={0x3f,0x06,0x5b,0x4f,0x6
[单片机]
51<font color='red'>单片机</font>做的传送机(输送机)计数器
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved