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

描述

单个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)来实现。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分