流水灯简单操作(keil5)

使流水灯一开始全亮后灭三次(全闪三次),再依次点亮,再依次熄灭。

#include <STC15F2K60S2.H>
#define close P2=0x1f&(P2|0xe0);//关闭锁存器(y4,y5,y6,y7)
/***************************************************/

void initsystem(unsigned char i)
{
	switch(i)
	{
		case 4:
			P2=0X8f&(P2|0xe0);//打开y4锁存器
		break;
		case 5:
			P2=0xbf&(P2|0xe0);//打开y5锁存器
		break;
		case 6:
			P2=0xdf&(P2|0xe0);//打开y6锁存器
		break;
		case 7:
			P2=0xff&(P2|0xe0);//打开y7锁存器
		break;
	}
}
/***********************************************/

void led_control(unsigned char n,unsigned char q)//控制灯(p0端,锁存器)
{
	initsystem(q);
	P0 = n;
}
/*******************************************/

void Delay (unsigned int t)//延时
{
	while(t--);
	while(t--);
}
/********************************************/

void LED_Running ()//跑马灯
{
	unsigned char i;
	for (i=0;i<3;i++)//灯全亮灭3次
	{
		led_control(0x00,4);
		Delay (60000);
		led_control(0xff,4);
		Delay (60000);

	}
	for(i=1;i<8;i++)//灯依次亮
	{
		led_control(0xff<<i,4);
		Delay(60000);

	} 
	for(i=1;i<8;i++)//灯依次灭
	{
		led_control(~(0xff<<i),4);
		Delay(60000);

	}
}
/**********************************************/

void main()//主函数
{
	led_control(1,4);close;//初始化
	led_control(0x00,5);close;//初始化
	while(1)
	{
		LED_Running ();
	}
}

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值