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 公司的单片机ADu C842,这种解法,MCU 的I/O 控制不了AQW610的闭合 图2和图3基本是相同的电路,只不过是MCU 不一样,为什么一个能控制AQW610,一个不行呢
让我们先来看看AQW610的DataSheet
AQW610的电气特性 AQW610光耦继电器里的二极管工作电流常闭端为3
0mA ,常开端为1
再来看看单片机ADu C842(ADI 公司兼容的51单片机) ADuC842的电气特性 ISINK 为灌电流,是指低电平输出时,能够吸收的电流; ISOUCE为拉电流,指高电平输出时,能够输出的电流; 在这里虽然没有明确给出拉电流灌电流的最大值,只是把这两个作为输出高电流和低电平的测试条件,但可以认为这个测试条件也就是这款