单个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
+关注
关注
242文章
23908浏览量
676713 -
单片机
+关注
关注
6069文章
45076浏览量
653882 -
发光二极管
+关注
关注
13文章
1220浏览量
67893 -
端口
+关注
关注
4文章
1077浏览量
33111 -
程序
+关注
关注
117文章
3829浏览量
83417
发布评论请先 登录
使用单个PRM驱动多个VTMs的设计
pc机单个232口和设备通信
诡异的PIC单片机的I/O口问题(相同的I/O口配置单个出问题...
请问“PCA9956BTWY”会在每个端口上驱动单个LED吗?
I/O并行口直接驱动LED显示实验(含电路原理图)

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

C51编程6-双向I/O口与准双向I/O口

51单片机双向I/O口与准双向I/O口解析

评论