嵌入式 左右循环流水灯

 /*#include <reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned int i = 0; //定义循环变量 i,用于软件延时
unsigned char cnt = 0; //定义计数变量 cnt,用于移位控制
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (1) //主循环,程序无限循环执行该循环体语句
{
P0 = ~(0x01 << cnt); //P0 等于 1 左移 cnt 位,控制 8 个 LED
for (i=0; i<20000; i++); //软件延时
cnt++; //移位计数变量自加 1
if (cnt >= 8) //移位计数超过 7 后,再重新从 0 开始
{
cnt = 0;
}
}
}  */

/*#include <reg52.h>
#include<intrins.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
void main()
{
unsigned int i=0;
unsigned char cnt=0;

ENLED=0;
ADDR3=1;
ADDR2=1;
ADDR1=1;
ADDR0=0;
											
while(1)
{
/*P0=~(0x01<<cnt);
for(i=0;i<30000;i++);
cnt++;
if(cnt>=8)
{if(cnt!=0){ 
P0=~(0x10000000>>cnt);
for(i=0;i<30000;i++);
cnt--;}}
else{
P0=~(0x01<<cnt);
for(i=0;i<30000;i++);
cnt++;	}
}}*/	
		   

			  
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define 
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好,我可以为您提供一个简单的嵌入式lpc2138流水灯的代码示例。 首先,您需要连接lpc2138开发板上的LED。假设您将LED连接到了P1端口的第0到第7个引脚上。接下来,您可以使用以下代码实现流水灯: ```c #include <LPC213x.h> void delay(unsigned int count) { unsigned int i, j; for (i = 0; i < count; i++) { for (j = 0; j < 1000; j++) { } } } int main() { unsigned int i; unsigned int leds = 0x01; IO1DIR = 0xFF; // 将 P1 设为输出模式 while (1) { IO1SET = leds; // 点亮LED delay(50000); // 延时 IO1CLR = leds; // 熄灭LED leds <<= 1; // 左移一位 if (leds == 0x00) { leds = 0x01; // 如果所有LED都已点亮,则重新开始 } } return 0; } ``` 在这段代码中,首先定义了一个delay()函数,用于实现延时。然后定义了main()函数,其中设置了P1端口为输出模式,然后不断地循环点亮LED并延时,然后熄灭LED并将的位置左移一位。如果所有LED都已点亮,则重新开始。 请注意,这只是一个简单的示例,您可以根据自己的需要进行修改和扩展。 ### 回答2: LPC2138是一款嵌入式处理器芯片,可以实现流水灯效果。流水灯是一种常见的LED效果,通过让LED在一组珠之间不断迅速移动,形成有规律的流动效果。 要实现LPC2138的流水灯,首先需要配置并初始化I/O口,将LED连接到LPC2138的GPIO引脚上。然后,可以采用循环结构或中断方式,控制LED依次点亮和熄灭,形成流水灯的效果。 以下是一个简单的流水灯程序示例: #include <lpc213x.h> #define LED_PORT 0 // LED所在的GPIO端口 void delay(unsigned int count) { unsigned int i; for (i=0;i<count;i++); } int main() { IODIR0 = 0xFFFFFFFF; // 配置所有GPIO引脚为输出 IOCLR0 = 0xFFFFFFFF; // 先将所有引脚输出低电平 while (1) { IOSET0 = (1<<LED_PORT); //点亮第一个LED delay(100000); // 延时一段时间 IOCLR0 = (1<<LED_PORT); //熄灭第一个LED delay(100000); // 延时一段时间 IOSET0 = (1<<(LED_PORT+1)); //点亮第二个LED delay(100000); // 延时一段时间 IOCLR0 = (1<<(LED_PORT+1)); //熄灭第二个LED delay(100000); // 延时一段时间 // 以此类推,依次点亮和熄灭其他LED } return 0; } 这段代码使用了GPIO寄存器来控制LED的亮灭状态,并通过延时函数实现流水灯的效果。可以根据需要修改延时时间和点亮的顺序来改变流水灯的效果。 ### 回答3: 嵌入式LPC2138流水灯是一种基于LPC2138单片机实现的流水灯效果的设计项目。流水灯是一种常见的 LED 效果,它的特点是多个 LED 依次点亮并熄灭,形成像水流一样顺序移动的效果。 在LPC2138单片机设计中,我们可以通过编程实现流水灯效果。首先,我们需要配置LPC2138的I/O口为输出模式,并连接多个LED管脚到相应的I/O口。接下来,我们可以使用循环结构来控制每个LED的点亮和熄灭的时间间隔。 具体实现流水灯效果的代码如下: ``` #include <LPC213x.H> #define LED1 (1<<16) // LED1连接到P1.16 #define LED2 (1<<17) // LED2连接到P1.17 #define LED3 (1<<18) // LED3连接到P1.18 #define LED4 (1<<19) // LED4连接到P1.19 void delay(unsigned int count) { unsigned int i, j; for (i = 0; i < count; i++) { for (j = 0; j < 5000; j++) {} // 延时函数 } } int main() { IO1DIR |= (LED1 | LED2 | LED3 | LED4); // 配置P1.16~P1.19为输出模式 while(1) { IO1CLR |= (LED1 | LED2 | LED3 | LED4); // 全部LED熄灭 IO1SET = LED1; // 点亮LED1 delay(1000); // 延时一段时间 IO1SET = LED2; // 点亮LED2 delay(1000); // 延时一段时间 IO1SET = LED3; // 点亮LED3 delay(1000); // 延时一段时间 IO1SET = LED4; // 点亮LED4 delay(1000); // 延时一段时间 } } ``` 以上代码中,我们定义了LED1~LED4的控制引脚,并通过设置IO1DIR的相应位控制为输出模式。在主循环中,我们使用IO1CLR清除所有LED的控制引脚,然后使用IO1SET点亮一个LED,并通过delay函数实现延时一段时间。然后顺序点亮第二个、第三个和第四个LED,并通过延时函数实现每个的显示时间。 通过以上的代码,我们可以在LPC2138单片机上实现一个简单的流水灯效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值