51单片机-两种可以实现流水灯项目代码,你喜欢哪一种?

本文通过两种不同的C语言程序实现LED灯闪烁效果,一种采用多个while循环延时,另一种利用精准循环和位操作。前者侧重于简单直接的延时控制,后者则展示了位操作和循环优化的应用。两者的对比突显了程序效率和代码简洁性的差异。
摘要由CSDN通过智能技术生成

首先是第一种:

#include<reg52.h>//头文件
unsigned int a;	//定义无字符整型变量
void main()	//主函数
{ 
	 a=50000;//给他一个数,延时用
	 P2=0xfe;//P2口输出11111110,第一个led灯亮		
	 while (a--);//延时
	 a=50000;//以下同理
	 P2=0xfd;
	 while (a--);
 	 a=50000;		
	 P2=0xfb;
	 while (a--);
	 a=50000;
	 P2=0xf7;
	 while (a--);
	 a=50000;
	 P2=0xef;
	 while (a--);
	 a=50000;
	 P2=0xdf;
	 while (a--);
	 a=50000;
	 P2=0xbf;
	 while (a--);
	 a=50000;
	 P2=0x7f;
	 while (a--);
}

第二种

#include <reg52.h>//头文件
unsigned int b;//定义无字符型整型变量
unsigned char  a,c,d;//定义无字符字节型变量
void main()//主函数
{
	 a=0x01;//0000 0001	给变量赋初值
 while(1)//精准循环
 {
	 if(d==0x00)//0000 0000相当于复位
	 {
	  a=0x01;
	 }
	 c=~a;//1111  1110把a取反
	 P2=c;//点亮第一个灯
	 b=5000;//延时500ms
	 while (b--);
	 d=~c;//0000 0001再次取反
	 d=d<<1;//0000 0010左移1位
	 a=d;//为点亮第二个led做铺垫
 }
}

前者使用多个while耗时间,后者只用了一个while!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~Susan说ぅ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值