51单片机实例4——使用P3口实现8位LED依次点亮与熄灭

使用P3口实现8位LED依次点亮与熄灭

1、设计目的

       使用P3口实现8位LED依次点亮与熄灭

2、仿真电路

 3、程序设计(C语言)

 

#include<reg51.h>     //包含单片机寄存器的头文件
#include<math.h>      //包含数学函数的头文件
/****************************************
函数功能:延时
*****************************************/
void delay(int time)          //无返回值,无参数
{
	unsigned int i;         //定义无符号整数,最大取值范围65535
	for(time;time>0;time--)
		for(i=0;i<20000;i++);  //做20000次空循环                  
}
/*******************************************************
函数功能:主函数
********************************************************/
void main()
{
	int patter;   //patter=0,依次点亮led;patter=1,依次熄灭led
	int n;
	while(1)       //程序持续运行
	{
		if(P3==0xff)  //判断是否全部熄灭
			patter=0;
		if(P3==0x00)  //判断是否全部点亮
			patter=1;
		if(patter==0)  //从上到下依次点亮
		{
			P3=P3<<1;    //改变P3口电平,依次点亮
			delay(5);   //调用延时函数
		}
		else          //从下到上依次熄灭
		{
			for(n=0;n<8;n++)
			{
				P3=P3+pow(2,7-n);  //改变P3口电平,依次熄灭
				delay(5);   //调用延时函数
			}
		}
	}
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LAI-BF

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

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

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

打赏作者

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

抵扣说明:

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

余额充值