C8051F学习笔记:单片机的驱动能力
学习51单片机的时候我们就知道51单片机的I/O口的特点:P0口没有弱上拉,所以做地址线时不用上拉,但输出“1”时就要加上拉电阻,不然输出电平到不了高电平,P1~P3则不存在这个问题,每个输出管脚都有弱上拉电阻(也就是电阻很大的上拉电阻),造成的结果是输出高电平电流很小,为uA量级,驱动不了LED、数码管之类的,所以要么在外加一个NPN的三极管增强驱动,要么LED、数码管用共阳极接法(也就是LED正接VCC,负接MCU的I/O;数码管用共阳数码管,COM口接VCC)。
虽然道理懂得,但很多时候脑子太死了,MCU接其他器件的时候,就要MCU的I/O输出驱动电流这事给忘了。下面是一个教训:三个不同类型MCU控制继电器的电路。

图1 MCU采用STC89C51,增加一个PNP,增强了驱动能力,能控制继电器TQ-RELAY的闭合

图2 MCU用的是C8051F120,I/O端口高低电平能控制光耦继电器AQW610的闭合
图3 MCU用的是ADI公司的单片机ADuC842,这种解法,MCU的I/O控制不了AQW610的闭合
图2和图3基本是相同的电路,只不过是MCU不一样,为什么一个能控制AQW610,一个不行呢?让我们先来看看AQW610的DataSheet.

AQW610的电气特性
AQW610光耦继电器里的二极管工作电流常闭端为3.0mA,常开端为1.3mA。
再来看看单片机ADuC842(ADI公司兼容的51单片机)

ADuC842的电气特性
ISINK为灌电流,是指低电平输出时,能够吸收的电流;
ISOUCE为拉电流,指高电平输出时,能够输出的电流;
在这里虽然没有明确给出拉电流灌电流的最大值,只是把这两个作为输出高电流和低电平的测试条件,但可以认为这个测试条件也就是这款MCU能输出的最大电流了。ADuC842高电平的驱动电流只能到80uA,P0~02、ALE低电平的驱动电流为1.6mA,P3低电平的驱动电流能达到3mA。因此想要图3电路工作,AQW610的1脚接VCC,4脚接ADuC842的P3口某脚(P0~P2不行)。

C8051F120的极限电气参数
从C8051F120的电气特性就可以知道C8051F系列单片机I/O有很大的驱动电流,要注意上表是极限参数,也就是说如果超过列出的极限参数的话,有可能导致器件永久损坏,所以100mA的最大输出拉电流(输出高电平),足以直接驱动LED、数码管及其他器件。
只要是驱动器件的时候才考虑拉电流是否大于被驱动器件的输入电流需求,如果MCU是驱动地址线或数据线,如SPI、74LS573等一些器件,就很少要考虑电流这方面。
下面介绍一下常用的51兼容单片机的驱动能力:
1) ADuC841
ADuC841中的P1口主要作为模拟输入口使用,在作为数字口使用时,只能作为输入口使用,不能作为输出口。而且作为数字输出口使用时,通常是高电平有效;当作为按键输入时,应该加下拉电阻,而不是上拉电阻(按键一端接VCC,另一端接下拉电阻,电阻另一端接地)。
2) ADuC812
P3口可以比别的端口吸收更大的灌电流(可达8mA),可以直接驱动LED和光电耦合器件。

3) STC89C51

Sinking Current(灌电流) Sunk
Sourcing Current(拉电流)
4) Atmel AT89S51

5) Intel 8051

6)华邦W78E516B

7)PHILIPS P89C5x

总结:在输出电流驱动能力方面,C8051F系列单片机真是一骑绝尘
C8051F学习笔记:单片机的驱动能力的更多相关文章
- input子系统学习笔记六 按键驱动实例分析下【转】
转自:http://blog.chinaunix.net/uid-20776117-id-3212095.html 本文接着input子系统学习笔记五 按键驱动实例分析上接续分析这个按键驱动实例! i ...
- 学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】
视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后 ...
- AM335x(TQ335x)学习笔记——GPIO关键驱动移植
或按照S5PV210学习秩序.我们首先解决的关键问题.TQ335x有六个用户按钮,每个上.下.剩下.对.Enter和ESC. 我想开始学习S5PV210当同一,写输入子系统驱动器的关键问题要解决,但浏 ...
- AM335x(TQ335x)学习笔记——GPIO按键驱动移植
还是按照S5PV210的学习顺序来,我们首先解决按键问题.TQ335x有六个用户按键,分别是上.下.左.右.Enter和ESC.开始我想到的是跟学习S5PV210时一样,编写输入子系统驱动解决按键问题 ...
- Linux 驱动学习笔记05--字符驱动实例,实现一个共享内存设备的驱动
断断续续学驱动,好不容易有空,做了段字符驱动的例子.主要还是跟书上学习在此记录下来,以后说不定能回过头来温故知新. 首先上驱动源码 gmem.c: /************************* ...
- python自动化学习笔记10-数据驱动DDT与yml的应用
在测试工作中,针对某一API接口,或者某一个用户界面的输入框,需要设计大量相关的用例,每一个用例包含实际输入的各种可能的数据.通常的做法是,将测试数据存放到一个数据文件里,然后从数据文件读取,在脚本中 ...
- MongoDB学习笔记~关于官方驱动集成IQueryable之后的一些事
回到目录 关于官方驱动集成IQueryable之后的一些事,有好事也有坏事,好事就是它会将你的linq语句非常友好的翻译成MongoDB语句,而坏事就是有一些linq语句不会被翻译,不会被翻译的代价就 ...
- linux 驱动学习笔记04--简单驱动
首先贴代码helloworld.c和Makefile /************************************************************************ ...
- AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植
移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...
随机推荐
- SDL2.0教程翻译·目录
原文地址:SDL 2.0 Tutorial Index Welcome! 下面的教程旨在为你提供一个SDL2.0以及c++中游戏设计和相关概念的介绍.在本教程中,我们假定你对C++有一定程度上的知识, ...
- hadoop2.2.0 MapReduce分区
package com.my.hadoop.mapreduce.partition; import java.util.HashMap;import java.util.Map; import org ...
- 广州Uber优步司机奖励政策(12月28日到1月3日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- MySQL 遇到的问题:在服务里找不到自己的 MySQL,以及在命令行窗口中运行服务出现的问题。
1.用数据库的时候在服务里找不到自己的 MySQL ,于是就想用命令行窗口去运行. ①.在开始里,键入 cmd ,打开命令行窗口. ②.输入:mysql -u root -p 回车,这时会提示请输入密 ...
- ie浏览器中 overflow:hidden无作用的解决方案
原因: overflow:hidden失效 当父元素的直接子元素或者下级子元素的样式拥有position:relative属性时,父元素的overflow:hidden属性就会失效. 我在ie内发现子 ...
- Struts+Spring搭建
前言 本文以Tomcat为j2ee容器,数据库为Sqlserver2005进行说明.Struts版本为2.3.15.3,Spring版本为3.2.5 Spring简介 Spring也是appache下 ...
- 将apk文件添加到Android模拟器(AVD)中运行
apk不同exe和jar文件,apk需要在安卓系统中运行,单有一个apk文件还是没用,不能直接拖进AVD中(当然可以直接放到安卓系统的手机中) 由于我们的eclipse大都是已经安装好,解压直接使用的 ...
- 关于获得本机Mac Address的方法
网络上有讲获得Mac address的方法有如下: 1. 发送ARP命令,利用返回的Mac Address缓冲区得到 2. 用NetworkInterface.GetAllNetworkInterfa ...
- git开源项目协作
开源项目协作 fork开源项目,即打开开源项目的github,然后点击fork按钮 pull request
- NET下三种缓存机制(Winform里面的缓存使用 )
原文(http://www.cnblogs.com/wuhuacong/p/3526335.html)非常感谢伍华聪作者的分享! 缓存在很多情况下需要用到,合理利用缓存可以一方面可以提高程序的响应速度 ...