找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10352|回复: 27
打印 上一主题 下一主题
收起左侧

怎样在51单片机同时点亮多个LED小灯?求解

  [复制链接]
跳转到指定楼层
楼主
ID:440858 发表于 2018-12-20 20:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:413157 发表于 2018-12-21 12:48 | 只看该作者
直接把小灯串联起来,接在单片机的IO口上,然后让单片机控制小灯就可以了啊
回复

使用道具 举报

板凳
ID:451151 发表于 2018-12-21 14:14 | 只看该作者
让io口输出高电平
回复

使用道具 举报

地板
ID:449660 发表于 2018-12-21 15:37 | 只看该作者
一个 LED,正极接 IO 引脚,负极接地。另一个 LED,正极接正电源,负极接 IO 引脚
回复

使用道具 举报

5#
ID:436963 发表于 2018-12-21 16:19 | 只看该作者
并联需要灯的个数,然后给高电平就可以了,如果想控制每个灯,就给每个扩展高电平,然后可以给延时也可以实现、
回复

使用道具 举报

6#
ID:451618 发表于 2018-12-21 16:21 | 只看该作者
只需要定义的端口为
回复

使用道具 举报

7#
ID:451618 发表于 2018-12-21 16:23 | 只看该作者
如:高电平亮0xff代表1111 1111八个口都亮
回复

使用道具 举报

8#
ID:451686 发表于 2018-12-21 17:45 | 只看该作者
找到51单片机的引脚图,将led连接到51IO口,然后改变引脚的状态,就可以了
回复

使用道具 举报

9#
ID:451772 发表于 2018-12-21 20:25 | 只看该作者
找到51单片机的引脚图,将led连接到51IO口,编程给引脚输出高电平
回复

使用道具 举报

10#
ID:452015 发表于 2018-12-22 12:02 | 只看该作者
我给你说下步骤直接点
1.查看原理图,找到你想点亮的多个引脚的LED
2.初始化对应的GPIO口,设置为输入然后拉高
3.同时拉低多个LED对应的引脚就可以达到你想要的效果
回复

使用道具 举报

11#
ID:451718 发表于 2018-12-22 12:32 | 只看该作者
这个命题范围有点广哦。不知道你要实现什么功能。总之一点,一个led的压降是1.8v左右,不串电阻的情况,5v可以串联3个led。如果是蓝色的灯,只能串2个。
如果数量还要多,就要考虑单片机的IO的电流负荷了,你可能需要通过一些逻辑芯片或者通过控制三极管通断来点亮多个发光二极管。
回复

使用道具 举报

12#
ID:434820 发表于 2018-12-22 14:17 | 只看该作者
定义i/o口状态
回复

使用道具 举报

13#
ID:446674 发表于 2018-12-22 14:38 | 只看该作者
并联,然后给IO口高电平即可
回复

使用道具 举报

14#
ID:410942 发表于 2018-12-22 15:41 | 只看该作者
有两种办法。1;如果是共阳的灯就写P1=0X00.,这样一次能控制8个灯了。2;如果多于8个的话可以把灯串联再加两个三极管,。就像单片机控制12V继电器一样,只是继电器变成多个LED灯,但要记得要加分压电阻。。
回复

使用道具 举报

15#
ID:322365 发表于 2018-12-22 16:26 | 只看该作者
先分析小灯是接地还是接VCC。
如果是接地那么连接小灯的I/O口输出高电平,
反之输出低电平小灯就会亮。
回复

使用道具 举报

16#
ID:452172 发表于 2018-12-22 16:31 | 只看该作者
一般单片机是不输出电压的,可以作为输入,外接电源串电阻和LED接到IO口就可以了,将IO口拉低就行了,单片机的灌电流比漏电流大
回复

使用道具 举报

17#
ID:425823 发表于 2018-12-22 16:55 | 只看该作者
这种问题也能拿出来问 学单片机一开始都是点灯开始的
回复

使用道具 举报

18#
ID:442340 发表于 2018-12-22 19:49 | 只看该作者
看小灯低电平有效还是高电平有效,比如高电平有效,就把相应的IO口置1.
回复

使用道具 举报

19#
ID:430571 发表于 2018-12-22 20:18 | 只看该作者
这个很容易啊,只要把想要亮的灯,接用线各接一个IO口就行
回复

使用道具 举报

20#
ID:454724 发表于 2018-12-25 18:59 | 只看该作者
把LED灯并联.串联,一端接地,另一端接在单片机,单片机输出高电平就能点亮了
回复

使用道具 举报

21#
ID:454794 发表于 2018-12-25 20:02 | 只看该作者
#include "reg51.h"       //包含头文件
sbit led=P1^5;           //表示用led等效于P1^5, P1^0就是指头文件里定义的P1寄存器的第5BIT

#define uchar unsigned char
#define uint  unsigned int
//**************************************************************************************************
//延时函数
//**************************************************************************************************

delay(uint time)         //int型数据为16位,所以最大值为65535            
{
  uint  i,j;             //定义变量i,j,用于循环语句
  for(i=0;i<time;i++)    //for循环,循环50*time次
     for(j=0;j<50;j++);  //for循环,循环50次
}
//**************************************************************************************************
//主函数
//**************************************************************************************************
void main()             //主函数
{
uchar  i,j;            //定义变量i,j;
while(1)               //进入while死循环
  {                     
   j=0xfe;              //0xfe即为二进制1111 1110,即最低位为0,其他位为1
   for(i=0;i<8;i++)     //进入for循环,循环8次
     {
      P1=j;             //依次点亮8位LED
      delay(5000);      //延时,修改延时即可修改时间间隔
      j<<=1;            //j左移1位,j<<=1等效于j=j<<1
     }        
  }         
}
回复

使用道具 举报

22#
ID:134430 发表于 2018-12-25 20:55 | 只看该作者
题意不明
回复

使用道具 举报

23#
ID:426861 发表于 2018-12-26 10:35 | 只看该作者
在你想亮灯的时候根据外部电路拉高或拉低相应IO口即可
回复

使用道具 举报

24#
ID:357520 发表于 2018-12-26 12:11 | 只看该作者
楼主能把电路发下看看吗,像好多开发板都是一组端口控制八个LED,直接控制拉低就能点亮多个LED
回复

使用道具 举报

25#
ID:374015 发表于 2018-12-26 14:16 | 只看该作者
有多种方案。1、直接PORT输出,不是PIN输出,例如PORTA,有8PIN,就可以同时控制8个LED。2
回复

使用道具 举报

26#
ID:210139 发表于 2018-12-26 20:35 | 只看该作者
51单片机是8位数据口,将8个LED的阴极全部链接在一起,再接地。8个LED的阳极分别接单片机的一个并口,比如P2口,然后在程序中让P2=0xff,就能让8个LED亮起来
回复

使用道具 举报

27#
ID:455940 发表于 2018-12-26 22:13 | 只看该作者
找到51单片机的引脚图,将led连接到51IO口,然后改变引脚的状态
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表