欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    上拉电阻+单片机端口模式.docx

    • 资源ID:69698394       资源大小:63.33KB        全文页数:4页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    上拉电阻+单片机端口模式.docx

    1. 弱上拉通常是作为输入时有用。如PIC16F887的端口B为内部有上拉功能的端口,如果没有上拉,作为输入口,它是悬空的,这样这个引脚的电平是不定的,如果内部有上拉,则它是高电平的。下图中的RB0程序设置为有内部弱上拉,RB3设置为不弱上拉,因此仿真运行时看到,按键都不按是,RB0为高电平(红色),而RB3为悬空(灰色),即电平不能确定。如果不用内部弱上拉(如RB3),此时就要在外部加上一个电阻接到VCC,这就叫上拉。而叫弱上拉,是因为所加的电阻很大,电流很小的缘故。2. 要是你!怎么解决引脚单片机的上拉电阻问题?单片机的引脚,可以用程序来控制,输出高、低电平,这些可算是单片机的输出电压。但是,程序控制不了单片机的输出电流。单片机的输出电流,很大程度上是取决于引脚上的外接器件。单片机输出低电平时,将允许外部器件,向单片机引脚内灌入电流,这个电流,称为“灌电流”,外部电路称为“灌电流负载”;单片机输出高电平时,则允许外部器件,从单片机的引脚,拉出电流,这个电流,称为“拉电流”,外部电路称为“拉电流负载”。这些电流一般是多少?最大限度是多少?这就是常见的单片机输出驱动能力的问题。早期的 51 系列单片机的带负载能力,是很小的,仅仅用“能带动多少个 TTL 输入端”来说明的。P1、P2 和 P3口,每个引脚可以都带动 3 个 TTL 输入端,只有 P0 口的能力强,它可以带动 8 个!分析一下 TTL 的输入特性,就可以发现,51 单片机基本上就没有什么驱动能力。它的引脚,甚至不能带动当时的 LED 进行正常发光。记得是在 AT89C51 单片机流行起来之后,做而论道才发现:单片机引脚的能力大为增强,可以直接带动 LED 发光了。从 AT89C51 单片机的 PDF 手册文件中可以看到,稳态输出时,“灌电流”的上限为:Maximum IOL per port pin: 10 mA;Maximum IOL per 8-bit portort 0: 26 mA,Ports 1, 2, 3: 15 mA;Maximum total I for all output pins: 71 mA.这里是说:每个单个的引脚,输出低电平的时候,允许外部电路,向引脚灌入的最大电流为 10 mA;每个 8 位的接口(P1、P2 以及 P3),允许向引脚灌入的总电流最大为 15 mA,而 P0 的能力强一些,允许向引脚灌入的最大总电流为 26 mA;全部的四个接口所允许的灌电流之和,最大为 71 mA。而当这些引脚“输出高电平”的时候,单片机的“拉电流”能力呢?可以说是太差了,竟然不到 1 mA。结论就是:单片机输出低电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。这个结论是依照手册中给出的数据做出来的。51 单片机的这些特性,是源于引脚的内部结构,引脚内部结构图这里就不画了,很多书中都有。在芯片的内部,引脚和地之间,有个三极管,所以引脚具有下拉的能力,输出低电平的时候,允许灌入 10mA 的电流;而引脚和正电源之间,有个几百K的“内部上拉电阻”,所以,引脚在高电平的时候,能够输出的拉电流很小。特别是 P0 口,其内部根本就没有上拉电阻,所以 P0 口根本就没有高电平输出电流的能力。哦,明白了,外接电路如果是“拉电流负载”,要求单片机输出高电平时发挥作用,那就必须用“上拉电阻”来协助,产生负载所需的电流。下面做而论道就专门说说上拉电阻存在的问题。从上面提到D2 发光,是由上拉电阻 R2 提供的电流,D2 导通发光的电压约为 2V,那么发光的电流就是:(5 - 2) / 1K,约为 3mA。而当单片机输出低电平(0V),D2 不发光的时候,R2 这个上拉电阻闲着了吗? 没有!它两端的电压,比 LED 发光的时候还高,现在是 5V 了,其中的电流,是 5mA !注意到了吗?LED 不发光的时候,上拉电阻给出了更大的电流!并且,这个大于正常发光的电流,全部灌入单片机的引脚了!如果在一个 8 位的接口,安装了 8 个 1K 的上拉电阻,当单片机都输出低电平的时候,就有 40mA 的电流灌入这个 8 位的接口!如果四个 8 位接口,都加上 1K 的上拉电阻,最大有可能出现 32 × 5 = 160mA 的电流,都流入到单片机中!这个数值已经超过了单片机手册上给出的上限。如果此时单片机工作不稳定,就是理所当然的了。而且这些电流,都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快,等后果。特别是现在,都在提倡节能减排,低碳。那么,把上拉电阻加大些,可以吗?回答是:不行的,因为需要它为拉电流负载提供电流。对于 LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。对于 D1,是灌电流负载,单片机输出低电平的时候,R1、D1 通路上会有灌电流;输出高电平的时候,那就什么电流都没有,此时就不产生额外的耗电。综上所述,灌电流负载,是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,这种电路不合理。有些网友对上拉电阻情有独钟,有用没用的,都想在引脚上安装个上拉电阻,甚至还能说出些理由:稳定性、速度。其实,“上拉电阻”和“拉电流负载”电路,是会对单片机系统造成不良后果的。做而论道看过很多关于单片机引脚以及上拉电阻方面的书籍、参考资料,基本上它们对于使用上拉电阻的弊病都没有进行仔细的讨论。在此,做而论道郑重向大家提出建议:设计单片机的负载电路,应该采用“灌电流负载”的电路形式,以避免无谓的电流消耗。上拉电阻,仅仅是在 P0 口才考虑加不加的问题:当用 P0 口做为输入口的时候,需要加上、当用 P0 口输出高电平驱动 MOS 型负载的时候,也需要加上,其它的时候,P0 口也不用加入上拉电阻。在其它接口(P1、P2 和 P3),都不应该加上拉电阻,特别是输出低电平有效的时候,外接器件就有上拉的作用。3. 51单片机准双向IO口与双向口区别(1)准双向IO口P1、P2、P3:带上拉电阻的IO口且作为输入引脚使用前必须先对该端口写1,即先断开下方的开关管(场效应管),以防止引脚被钳位在低电平,这样才能由外部输入的信息来确定引脚的状态,即此时读取的引脚状态才是正确的。(2)双向三态IO口P0:P0口由于输出有三态功能,输入前,端口线已处于高组态,无需先写入1再作输入操作。若在端口应用过程中,已经向P0口输出过0了,则再需要从P0口输入数据时,同样要对P0口写1,断开下方的开关管(场效应管)。单片机复位后,各端口已被自动的写入1了,即断开了下方的开关管(场效应管),因此P0、P1、P2、P3可以直接输入;但是,如果在端口应用过程中,已经向P1P3口输出过0,则再需要从P1P3输入数据时,必须先写入1后再引脚(这时候读出的引脚的值才是正的)“准”就是“基本上”,即准双向口不是真正的双向口。双向与准双向,根本原则是双向包含了高阻抗这个状态,而不在于是否需要先写1或不写.P0口为真正双向口,因为单片机上电初始化后,cpu自动向各端口写1,即先关闭了下方的开关管。此时可以然后直接读入引脚(即输入模式):因为P0口高阻态,所以读入值即为输入值;因为P1口为准双向口,此时读入的高电平可能是引脚本身上拉电阻提供的高电平,即读入值不一定为输入值。输入模式下,从锁存器和从引脚上读来的信号一般一致,但有时不一致,所以约定:8051单片机在对端口P0P3的输入(读)操作上,凡属于 读修改写-方式的指令,从锁存器读入信号,其他则从端口引脚线上读入信号。读修改写-方式的特点:从单片机端口输入(读)信号,在单片机内部加以运算(修改)后,再输出(写)到该端口上。这样安排在于读修改写-方式需要得到端口原输出的状态,修改后再输出,这样避免了因外部电路的原因而是原端口的状态被读错。以P0为例如果写  c = P0,读的是输入缓冲器如果写  P0 |= 0x12,读的是输出缓冲器也就是说,凡是c语言直接读寄存器值的,都是读的输入缓冲器凡是c语言 读-改-写指令,都是读的输出缓冲器读-改-写指令包括  |= ,&=之类,需要读输出缓冲器,并且结果直接到寄存器本身的

    注意事项

    本文(上拉电阻+单片机端口模式.docx)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开