基于IAP15F2K61S2 单片机LED灯的点亮

1.1 点亮单个LED灯

首先我们可以看到L1-L8共8个LED灯对应的I/0口分别对应P0-P7引脚,我们可以单独赋予总串口来点亮LED灯,代码如下:

 /*点亮第一个LED灯*/
#include <STC15F2K60S2.H>  //引入头文件
void main()
{
	while(1)
	{
		P0=0xfe;  //1111 1110 0x为16进制后缀转换成二进制,表示点亮第一个LED
		P0=0xf7;  //1111 0111  点亮第4个LED灯
	}
}

2.2 LED灯的流水

顾名思义就是给LED灯增加延迟函数,从而达到流水灯的作用,
1.通过给单个LED灯赋值实现流水灯 2.通过内置库函数实现LED灯的流水
_crol_ 循环左移 _cror_ 循环右移 所属库 <intrins.h>  ,具体代码如下:

#include <STC15F2K60S2.H>
#include<intrins.h>  

/*引入延迟500毫秒函数*/
//函数的调用

void Delay500ms(void)	//@12.000MHz
{
	unsigned char data i, j, k;

	i = 23;
	j = 205;
	k = 120;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{
	while(1)
	{
		P0=0xfe;   //1111 1110
		Delay500ms();
		P0=0xfe;  //1111 1101
		Delay500ms(); 
		P0=0xfe ; //1111 1011
		Delay500ms(); 
		P0=0xfe;  //1111 0111
		Delay500ms();
		P0=0xfe;  //1110 1111
		Delay500ms();
		P0=0xfe;  //1101 1111
	  Delay500ms(); 
		P0=0xfe;  //1011 1111
		Delay500ms();
		P0=0xfe; //0111 1111  
		Delay500ms();
	}
}
#include <STC15F2K60S2.H>
#include<intrins.h>  

/*引入延迟500毫秒函数*/
//函数的调用

void Delay500ms(void)	//@12.000MHz
{
	unsigned char data i, j, k;

	i = 23;
	j = 205;
	k = 120;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
void main()
{
	unsigned char LED=0xfe; //变量的初始化
	while(1)
	{
		P0=LED;  //点亮第一个LED灯
		Delay500ms();
		LED=_crol_(P0,1);  //每次向左移一个LED灯;
	}
}  

对于函数的调用我们也可以引入自定义参数变量

#include <STC15F2K60S2.H>
#include <intrins.h>
//函数的调用也可引用自定义参数
void Delay1ms(unsigned char x)	//@12.000MHz  unsigned char 无符号整形(非负); 循环500次
{
	while(x--)
	{
	unsigned char data i, j;
	i = 12;
	j = 168;
	do
	{
		while (--j);
	} while (--i);
}
}
void main()
{
	while(1)
	{
		unsigned char LED=0xfe; //变量的初始化
	  unsigned char time=500;
		P0=LED;  //点亮第一个LED灯
		Delay1ms(500);
		LED=_crol_(P0,1);  //每次向左移一个LED灯;
		time=time-100;  //led流水循环每次时间减少100ms;
	}
}

目录

1.1 点亮单个LED灯

2.2 LED灯的流水


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值