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

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

3天内不再提示

单个I/O口驱动单个LED教程

CHANBAEK 来源:嵌入式开发教程 作者:郭学提 2023-07-12 11:50 次阅读

单个I/O口驱动单个LED

单个LED驱动,可以使用I/O口和限流电阻来实现。根据LED在电路中的接法,驱动程序也不尽相同,但驱动方法基本类似。

图片

由图可知当P1.0口输出为低电平时,就会点亮D1。当P1.0输出为高电平时,D1就会熄灭。通常同一个程序会包含点亮和熄灭LED的程序。在实际编程时,使用P1^0=0或P1^0=1语句,就可以点亮或熄灭D1了。

(1)点亮D1的程序如下:

sbit   D1 = P1^0  ;  //定义D1为P1.0端口
void   main(void)
{
    D1 = 0; //P1.0输出低电平,此时可点亮发光二极管D1
    //D1=1  ;  //如果D1反接。则需要P1.0输出高电平时才能点亮发光二极管D1
}

(2)熄灭D1的程序如下:

sbit   D1=P1^0  ;  //定义D1为P1.0端口
void   main(void)
{
    D1 = 1;  //P1.0输出高电平,此时可熄灭发光二极管D1
    //D1=0  ;  //如果D1反接。则需要P1.0输出低电平时才能熄灭发光二极管D1
}

单个I/O口驱动两个LED

根据电路的接法不同1个I/O口可以同时驱动两种不同状态的LED。其驱动程序与“单个I/O口驱动单个LED”相似。1个I/O口驱动2个LED的实验电路图如下:

图片

点亮D1的程序如下:

sbit   LED=P1^0  ;//定义LED为P1.0端口
void   main(void)
{
    LED=0  ;  //P1.0输出低电平,此时可点亮发光二极管D1,熄灭D2
}

由上述程序可知,D1和D2的状态总是互斥的。读者可以根据所示的电路,试着自己编写点亮D2的程序。由于单片机I/O口的电流驱动能力是有限制的,当我们需要用1个I/O口线控制多个LED(如LED组合而成的点阵汉字)时,就需要使用三极管或驱动芯片(如UNL2003)来实现。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22449

    浏览量

    645878
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620840
  • 发光二极管
    +关注

    关注

    13

    文章

    1138

    浏览量

    65680
  • 端口
    +关注

    关注

    4

    文章

    820

    浏览量

    31588
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79543
收藏 人收藏

    评论

    相关推荐

    使用单个PRM驱动多个VTMs的设计

    使用单个PRM驱动多个VTMs的设计本应用笔记讨论使用Vicor之V·I晶片预稳压及电压转换模块的设计习要以符合功率系统上单个系统要求低电压、多路电流及多个电压的挑战。Vicor的V·
    发表于 11-20 09:07

    pc机单个232和设备通信

    想做个PC机单个232串和单片机 的通信, 单片机用IO模拟UART , 单个单片机和pc通信可以,但是多个单片机同时和一个串口通信怎么做呢,目前想做12个同时通信,有没大大指导下
    发表于 09-28 10:05

    诡异的PIC单片机的I/O问题(相同的I/O配置单个出问题...

    是一致的,其他的输出都没有问题,就是RA3没有大的输出,用示波器测有0.8V的电平变化,可是不知道这算不算是误差,RA4是开漏输出,加了10K的上拉电阻。可是目前就是这两个I/O
    发表于 11-16 19:39

    PSOC I/O输出和输入是如何设置和用C语言表达的?

    例如把P0.0设为1:PRT0DR|=0X01; 0:PRT0DR&=~0X01;PSOC没有位操作,所以对单个I/O操作是要对整个端口赋值的。还有一个方法是用
    发表于 11-19 14:41

    DSP芯片内是否有单个的随机函数指令?

    DSP芯片内是否有单个的随机函数指令?2.DSP内的计算速度是快的,但是它的I/O 的交换速度有多快呢?SP如何配合EPLD或FPGA工作呢?
    发表于 08-21 03:34

    ZXLD1356,60V LED驱动器,带内部开关,用于从高于LED电压的电压源有效驱动单个或多个串联LED

    ZXLD1356的典型应用高精度550mA,60V LED驱动器,带内部开关。 ZXLD1356是一款连续模式电感降压转换器,设计用于从高于LED电压的电压源有效驱动
    发表于 10-09 08:43

    ZXLD1356QET5TA,设计用于从高于LED电压的电压源有效驱动单个或多个串联LED

    ZXLD1356QET5TA的典型应用高精度550mA,60V LED驱动器,带内部开关。 ZXLD1356是一款连续模式电感降压转换器,设计用于从高于LED电压的电压源有效驱动
    发表于 10-11 08:37

    一.(四). 直接单片机I/O驱动:多个I/O并行工作驱动喇叭:

    一.(四). 直接单片机I/O驱动:多个I/O
    发表于 04-28 14:47

    使用OpenMV驱动单个减速电机

    使用OpenMV驱动单个减速电机
    发表于 09-03 08:29

    控制I/O的方法

    通过前面的输入输出的内容(LED控制与按键的使用),我们对控制I/O有了一个基本的了解。如果需要输出高低电平,可以对该引脚进行写"1"或者"0";如果需要
    发表于 01-24 07:38

    如何用I/O做按键检测

    在上面介绍了使用I/O点了LED,实际也可以用I/O
    发表于 02-18 06:43

    请问“PCA9956BTWY”会在每个端口上驱动单个LED吗?

    我正在使用 NXP 的 LED 驱动器“PCA9956BTWY”。该器件驱动 24 通道 LED o/p。从数据表中,我了解到该设备适用于每
    发表于 05-06 07:46

    单个七段LED数码管的接口连接方法

    单个七段LED数码管的接口连接方法  单个七段LED数码管与单片机的连接方法有2种: 1、软译码连接法 2、硬译码连接法
    发表于 12-20 03:05 1.2w次阅读
    <b class='flag-5'>单个</b>七段<b class='flag-5'>LED</b>数码管的接口连接方法

    使用MAX6958/MAX6959LED驱动器实现单个LED

    摘要:该应用笔记详细说明了如何使用MAX6958和MAX6959 LED显示驱动器实现象素级(单个LED)亮度控制。该技术增强了这些驱动器内
    发表于 04-27 09:01 945次阅读
    使用MAX6958/MAX6959<b class='flag-5'>LED</b><b class='flag-5'>驱动</b>器实现<b class='flag-5'>单个</b><b class='flag-5'>LED</b>

    单个PRM驱动多个VTMs

    单个PRM驱动多个VTMs 的有用PDF。
    发表于 01-06 17:58 0次下载