0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何提高单片机的GPIO口驱动能力

CHANBAEK 来源:头条号电子秘探 作者:头条号电子秘探 2023-03-24 15:36 次阅读

单片机控制器件而不是驱动器件,因为输出电流很小,不足以驱动某些需要大电流的外设。 单片机的GPIO口驱动能力有限,不能直接驱动较大功率的负载。

标准51的P0口(双向口)在作为I/O口使用时,是开漏结构,在实际应用中通常要添加上拉电阻(排阻)。 P1、P2、P3都是准双向I/O,内部有上拉电阻,既可作为输入又可以作为输出。

P0三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态)

恶补一些基础概念,稍微了解下,原理看不懂跳过...

1.灌电流方式

LED正极接VCC,负极接IO口。 IO为高电平是LED两极电平相同,没有电流,LED熄灭;IO为低电平时,电流从VCC流入IO,LED点亮。

但是当你把LED正极接在IO接口,负极接GND时,将IO接口置于高电平,LED会亮,但因为IO接口上拉能力不足而使亮度不理想

2.三极管驱动

三极管全称半导体三极管,也称晶体三极管,是一种控制电流的半导体器件其作用是把微弱的电信号放大成幅度值较大的电信号,也用作无触点开关,在电路中主要起开关和增大电流的作用。

截图20230301181839.png

NPN基极高于发射极电压是导通,PNP发射极电压高于基极电压则导通。

NPN高电平时导通,PNP低电平时导通;

以共阳极4位数码管为例,共阴极感觉电路复杂繁琐,直接用专用IC驱动就好

PNP例子代码用自学单片机04里面的代码即可,NPN里面有

注意:唯一的区别【使用PNP三极管,基极为低电平时,才导通】

NPN三极管基极为高电平导通

截图20230301181746.png

3.使用专用IC提高驱动能力(74HC245)

74hc245是一种在单片机系统中常用的驱动器,在电路中的作用是:增加io口的驱动能力,比如说51单片机的io口本身的驱动电流较小但所带的负载很大,这种时候就可以使用74hc245来增强io口的驱动能力

共阴极数码管连接方式

截图20230301181746.png

共阴极数码管代码稍微改动下

1.显示数字0-9的数组和共阳极不一样不一样

2.位码低电平导通,位码高电平截至没有压降

#include 
#include "DelayXms.h"
#define led P2

const u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴极数码管0-9

sbit bitcode0 = P1^0;
sbit bitcode1 = P1^1;
sbit bitcode2 = P1^2;
sbit bitcode3 = P1^3;
	
void display(u16 number);
void main()
{

	u16 count=0;

	while(1){	
		count++;
		display(count);
		if(10000 ==count)
		count = 0;
	}
}

void display(u16 number)
{	
	led = a[number/1000];//千位
	bitcode0 = 0; //位码低电平导通
	DelayXms(9);
	bitcode0 = 1;//位码高电平导通
	
	led = a[(number/100)%10];//百位
	bitcode1 = 0;//位码低电平导通
	DelayXms(9);
	bitcode1 = 1;//位码高电平导通
	
	led = a[(number/10)%10];//十位
	bitcode2 = 0;
	DelayXms(9);
	bitcode2 = 1;
	
	led = a[number%10];//个位
	bitcode3 = 0;
	DelayXms(9);
	bitcode3 = 1;
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23235

    浏览量

    660473
  • 三极管
    +关注

    关注

    142

    文章

    3610

    浏览量

    121837
  • 单片机
    +关注

    关注

    6034

    文章

    44548

    浏览量

    634395
  • GPIO
    +关注

    关注

    16

    文章

    1204

    浏览量

    52044
  • 灌电流
    +关注

    关注

    0

    文章

    55

    浏览量

    9170
收藏 人收藏

    评论

    相关推荐

    三极管是怎样提高单片机IO驱动LED的能力

    三极管是怎样提高单片机IO驱动LED的能力.
    的头像 发表于 02-22 09:23 2.7w次阅读
    三极管是怎样<b class='flag-5'>提高</b><b class='flag-5'>单片机</b>IO<b class='flag-5'>口</b><b class='flag-5'>驱动</b>LED的<b class='flag-5'>能力</b>

    常用单片机I/O端口的驱动能力介绍

    常用单片机I/O端口的驱动能力介绍摘要: 详细分析了几种常见单片机的I/O结构,并据此分析其驱动能力大小 关键词:
    发表于 08-12 00:48

    关于51单片机IO引脚的驱动能力与上拉电阻

    和 P3,每个引脚可以都带动 3 个 TTL 输入端,只有 P0 能力强,它可以带动 8 个! 分析一下 TTL 的输入特性,就可以发现,51 单片机基本上就没有什么
    发表于 06-26 16:52

    单片机IO引脚驱动能力提升篇

    早期的51单片机驱动能力很低。P1、P2和P3只能驱动3个LSTTL输入端,P0驱动8个
    发表于 10-20 22:39

    用什么芯片可以增强GPIO驱动能力

    我用f28377的GPIO做大功率可控硅的驱动,可惜GPIO的输出电流太小,不能够直接驱动TIP122,问用什么芯片可以增强
    发表于 05-29 15:21

    gpio驱动能力是什么意思

    gpio驱动能力是什么意思,说明:这里主要是基于Amlogic_S905X平台上实现的,其实gpio的控制都是通用的,使用的都是标准的gpio操作函数,跟平台无关。通过往节点写入1或者
    发表于 07-22 06:38

    单片机IO引脚驱动能力提高

    早期的51 单片机驱动能力很低。P1、P2和P3只能驱动3个LSTTL输入端,P0驱动
    发表于 08-08 11:14 279次下载
    <b class='flag-5'>单片机</b>IO引脚<b class='flag-5'>驱动能力</b>的<b class='flag-5'>提高</b>

    单片机IO引脚驱动能力提升篇

    一遍很好的单片机驱动列子单片机外围电流控制开关,单片机IO引脚驱动能力
    发表于 08-29 15:31 7次下载

    单片机驱动能力不足的提高方法

    单片机GPIO驱动能力有限,不能直接驱动较大功率的负载,如果负载的功率较大必须要考虑采用驱动
    的头像 发表于 09-30 11:17 2.4w次阅读

    如何提高单片机驱动能力

    单片机只是一个控制中心,IO的驱动能力是很弱的,只能用于信号处理或者信号控制,最多是驱动一个LED作为指示灯。驱动负载需要加入三极管、场效应管、继电器、可控硅等器件。
    的头像 发表于 10-21 17:42 1.1w次阅读

    STC15单片机GPIO驱动LED资料合集

    本文档的主要内容详细介绍的是STC15单片机GPIO驱动LED资料合集包括了 :HEX文件,寄存器版程序和工程文件,库函数版程序和工程文件,GP
    发表于 10-10 08:00 16次下载
    STC15<b class='flag-5'>单片机</b>的<b class='flag-5'>GPIO</b><b class='flag-5'>口</b><b class='flag-5'>驱动</b>LED资料合集

    3.STC15W408AS单片机GPIO

    既不能流入也不能流出)或开漏输出功能。每个由2个控制寄存器中的相应位控制每个引脚工作类型。STC15系列单片机的I/O口上电复位后为准双向/弱上拉(传统8051的I/O)模式。每
    发表于 12-23 19:14 19次下载
    3.STC15W408AS<b class='flag-5'>单片机</b><b class='flag-5'>GPIO</b>

    STM32单片机GPIO简介

    本篇主要介绍STM32单片机GPIO基本概念和GPIO 寄存器的使用参考资料【51/STM32】详解单片机
    发表于 12-28 19:23 23次下载
    STM32<b class='flag-5'>单片机</b><b class='flag-5'>GPIO</b><b class='flag-5'>口</b>简介

    单片机驱动能力对点亮LED灯的影响

    的。可是在现实操作过程中总有一种方式出现问题,这就不得不提到现实情况下单片机驱动能力对实验结果的影响。 如图所示第(1)种方式,单片机IO端口输出高电平时,LED灯亮,电流方向由单片机
    发表于 01-14 14:26 11次下载
    <b class='flag-5'>单片机</b>的<b class='flag-5'>驱动能力</b>对点亮LED灯的影响

    如何让单片机的IO利用最大化

    首先,LED亮起时完全由单片机GPIO输出电流,所以对于GPIO的电流驱动能力有一定的要求。设计电路时要注意查询自己使用的MCU的电流驱动能力
    发表于 04-29 14:29 1833次阅读
    如何让<b class='flag-5'>单片机</b>的IO<b class='flag-5'>口</b>利用最大化