LED流水灯多种点灯方式代码0基础讲解

话不多说 上代码

#include <REGX52.H>  //51单片机的头文件,可以用来调用P2口,寄存器
#include <INTRINS.H>

void Delay500ms()		//这是我在stc-isp下载的延时函数 ,在我主页会有讲解
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


void main()
{
	while(1)
	{
		P2=0xFE;//1111 1110
		Delay500ms();
		P2=0xFD;//1111 1101
		Delay500ms();
		P2=0xFB;//1111 1011
		Delay500ms();
		P2=0xF7;//1111 0111
		Delay500ms();
		P2=0xEF;//1110 1111
		Delay500ms();
		P2=0xDF;//1101 1111
		Delay500ms();
		P2=0xBF;//1011 1111
		Delay500ms();
		P2=0x7F;//0111 1111
		Delay500ms();
	}	
	
}

这是个流水灯代码,点灯方式是通过16进制的0 1进行高低电平控制
一次可以控制8个灯 ,0就是亮,1就是灭。
而sbit取名一次只能控制一个灯
在这里插入图片描述
在这里插入图片描述

LED灯单向导电,左边是正极,右边是负极。
正极是高电平,为1 。右边VCC已经通电,我们能控制的是负极,如果右边是0,刚好是个通路,就会点亮,反之则不会亮。

在数字电路中,
高电平一般是5V,用1代替,
低电平一般是0V,用0代替,
这里的“1”指的就是高电平,“0”代表低电平,
电流从高电平流向低电平,用电器才能收到信号工作。
是绝对的,固定不变的。

还有一种sbit的写法

#include <reg52.h>

//对八个LED分别进行位定义,可以理解为C语言中的赋值,把P口对应的给一个新的名字
//sbit就是取名的
sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;

void main()
{
  //LED为共阳极低电平LED亮
  LED1 = 0;
  LED2 = 0;
  LED3 = 0;
  LED4 = 0;
  LED5 = 0;
  LED6 = 0;
  LED7 = 0;
  LED8 = 0;
}

定义方法:sbit 位名=特殊功能寄存器^位置;
sbit LED1 = P2^0;
符号"^"前面是特殊功能寄存器的名字,后面的数字定义的可寻址位在特殊功能寄存器中的位置,取值必须是0~7
p2是连接LED的IO口,p2^07分别对应LED1到8


  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Zigbee是一种低功耗、低数据速率的无线通信协议,而CC2530是一款常用的Zigbee芯片。基于CC2530的BasicRF无线点灯控制LED灯亮灭的原理可以简单描述如下: 首先,在硬件方面,我们需要准备一颗CC2530芯片和一个可控制的LED灯。 然后,在软件方面,我们需要通过CC2530的开发工具来编写相应的代码。这里我们可以利用Z-Stack开发套件提供的API函数来实现无线通信和控制LED灯的功能。 首先,我们需要设置CC2530芯片的信道,使其能够与其他设备进行通信。然后,我们需要通过定义节点类型、网络密钥等参数进行网络配置。 接下来,我们需要编写代码实现无线通信功能。通过使用Z-Stack提供的函数,我们可以实现与其他设备之间的通信和数据交换。具体来说,我们可以使用无线命令来发送指令给其他设备,让其控制LED灯的亮灭。 最后,我们需要通过控制LED灯的接口,来实现LED灯的亮灭控制。通过调用相应的API函数,我们可以控制LED灯的开关状态。我们可以在代码中定义一些特定的指令来控制LED灯的亮灭,例如发送"0"表示关闭LED灯,发送"1"表示打开LED灯。 通过以上步骤,我们就可以实现通过Zigbee和CC2530控制LED灯的亮灭了。我们可以通过其他设备发送命令给基于CC2530的节点,来控制LED灯的开关状态。这样,我们就可以实现远程无线控制LED灯的亮灭功能。 ### 回答2: Zigbee CC2530 BasicRF无线点灯控制LED灯的亮灭是通过使用Zigbee通信协议和CC2530 BasicRF无线模块相结合实现的。以下是实现控制LED灯亮灭的步骤: 首先,我们需要准备以下硬件和软件: 1. Zigbee CC2530 BasicRF无线模块 2. 能够使用Zigbee协议的主控制器或网关 3. LED灯与电源 其次,我们需要进行以下步骤: 1. 将CC2530 BasicRF无线模块连接到主控制器或网关上。 2. 在主控制器或网关中配置Zigbee网络,并与CC2530 BasicRF无线模块进行配对或加入网络。 3. 在主控制器或网关上创建一个适当的设备或节点,并将其与CC2530 BasicRF无线模块关联。 4. 编写或使用主控制器或网关上的程序或脚本,通过Zigbee协议与CC2530 BasicRF无线模块进行通信,以控制LED灯的亮灭。 5. 编写或使用主控制器或网关上的程序或脚本,通过Zigbee协议向CC2530 BasicRF无线模块发送指令来控制LED灯的亮灭。可以发送开灯指令使LED灯亮起,也可以发送关灯指令使LED灯熄灭。 这样,当主控制器或网关向CC2530 BasicRF无线模块发送控制指令时,CC2530 BasicRF无线模块会接收并执行指令,从而控制LED灯的亮灭状态。这种无线点灯控制的方法可以实现对远程LED灯的亮灭控制,具有灵活性和便利性。 ### 回答3: ZigBee是一种低功耗的无线通信技术,它可以通过无线网络连接多个设备,并进行数据传输和控制。CC2530是一款常用的ZigBee芯片,它使用ZigBee协议实现低功耗通信。 ZigBee CC2530芯片可以用于构建无线点灯控制系统,实现对LED灯的远程控制。如何实现远程控制的方法如下: 首先,我们需要将CC2530芯片与LED灯进行连接。CC2530芯片可以通过GPIO引脚来控制LED灯的开关,通过PWM信号控制LED灯的亮度。将CC2530芯片的输出引脚与LED灯的正极相连,将CC2530芯片的地引脚与LED灯的负极相连,就可以实现对LED灯的控制。 然后,我们需要编程实现远程控制功能。我们可以使用CC2530芯片内置的Z-Stack协议栈,利用ZigBee协议进行通信。在编程中,我们可以定义一个控制器节点和多个被控节点。控制器节点即为控制端,可以发送指令给被控节点控制LED灯的状态。被控节点即为被控制端,接收到指令后,控制LED灯的开关和亮度。 最后,我们可以通过手机APP、电脑软件或者物联网网关等设备,将指令发送给控制器节点。控制器节点接收到指令后,通过ZigBee网络将指令传输给被控节点。被控节点接收到指令后,根据指令控制LED灯的状态。 通过以上的方法,我们可以实现对LED灯的远程控制。无论我们身在何处,只要通过合适的设备发送指令,就可以控制LED灯的亮灭状态。这样的无线点灯控制系统可以应用于家居、办公室、商店等不同场景,为我们的生活带来便利。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南泰科点灯人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值