访问电脑版页面

导航:老古开发网手机版51单片机51单片机与LED

51单片机通过I/O口对LED进行控制的设计

导读:
关键字:
IO口,51单片机,led,

LED(发光二极管),是一种能够将电能转化为光能的固态半导体器件。LED有两个端口一端接正极一端接负极,当LED正向偏压(正极接电源正极)时,LED将发光。LED的发光电流一般为5-15ma。由于单片机I/O口的输出电流太小,所以我们无法用I/O口直接驱动LED的。

想要LED能通过单片机I/O口对LED进行控制,首先我们需要将LED一端接一电阻,电阻这里选择470欧姆,电阻的一端接5V电源,LED的另一端单片机I/O口。在本次实验中我将P2口全部用上,连8个LED,8LED分别连470欧姆电阻,8个470欧姆电阻串联起来,连接到5V电源。

如何控制LED灯的亮灭?我们知道,我LED正向偏压的时候,LED会亮。也就是说当你往LED对应的I/O口清零或者置一LED等就会亮或者灭(清零亮还是置一亮取决于LED正极还是负极与电源相连)。

下面是具体代码:

#include

#define LED_PROT P2//宏定义P2口

void delay_1ms(unsigned short );//不精准延时函数

//P2有八个管脚,0xfe对应的二进制数为0b11111110,也就是让p2.7-p2.1输出高电平,p2.0输出点电平,此时p2.0口对应的LED亮

unsigned int LED[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main()

{

while(1){

unsigned char i;

for(i=0;i《8;i++){

LED_PROT=LED[i];

delay_1ms(100);//循环每次取数组一个数,让对应的p2.x口亮,并且延时。

}

}

}

void delay_1ms(unsigned short t_ms)

{

int i,j;

while(t_ms--){

for(i=0;i《100;i++)

for(j=0;j《10;j++);

}

}
责任编辑;zl

来源:21ic   作者:佚名  2020/1/26 16:36:00
栏目: [ 51单片机与LED]

相关阅读

51单片机通过程序控制心形led灯闪烁的设计

AT89S51单片机控制八个发光二极管左移右移重复循环发光的设计

AT89S51单片机多路开关控制发光二极管显示的设计

AT89S51单片机对6位LED数码管实现显示时计方式的设计

51单片机实现LED点阵屏动态扫描显示的设计

AT89C51单片机的流水灯控制设计

51单片机上实现的交通灯程序

LED流星雨灯的制作(51单片机程序代码)

AT89S51单片机发光二极管多功能闪烁的设计

AT89S51单片机广告灯电路的设计

51单片机通过I/O口对LED进行控制的设计

51单片机对闪烁灯的控制设计

51单片机对八路发光二极管广告灯的设计

以51单片机为核心的LED彩灯控制器设计

AT89S51单片机对8X8点阵LED的控制设计

74LS164在2051单片机LED显示电路中的应用

51单片机流水灯电路图大全(六款单片机流水灯电路图介绍)

8051单片机进行8路LED模拟分支控制

基于C51单片机开发的彩灯霓虹灯控制电路

51单片机对LED点阵屏的设计