单片机LED 指示灯的基本控制附详细程序与零基础注释

        在 CT107D 单片机综合训练平台上(单片机型号为IAP15F2K61S2转STC89C52RC),实现以下功能:

        1、系统上电后,关闭 8 个 LED 灯。

        2、循环实现 LED 跑马灯控制,

控制要求为: 首先,8 个 LED 灯同时闪烁 3 次;

                       然后,从 L1 灯至 L8 灯依次点亮;

                       接着,从 L1 灯至 L8 灯依次熄灭。

#include "reg52.h"  //引用头文件

sbit HC138_A=P2^5;	 //将74HC138的A端口与单片机的P2^5连接起来
sbit HC138_B=P2^6;	 //将74HC138的B端口与单片机的P2^6连接起来
sbit HC138_C=P2^7;	 //将74HC138的C端口与单片机的P2^7连接起来


//延迟函数
void Delay(unsigned int t)
{
	while(t--);
}


//LED点亮与熄灭
void LEDrunning()
{
	unsigned char i;//定义变量i

	//将74HC138译码器的Y4端口输出高电平,由此74HC573锁存器对于数据是同步输出的
	HC138_A=0;
	HC138_B=0;
	HC138_C=1;


	//LED灯闪烁三次
	for(i=0;i<=3;i++)
	{
		P0 = 0x00;   //P0端口输出十六进制00(二进制的00000000)点亮LED灯
		Delay(60000);
		P0 = 0xff;	 //P0端口输出十六禁止ff(二进制的11111111)熄灭LED灯
		Delay(60000);
		Delay(60000);	
	}


	//LED灯逐个点亮
	for(i=0;i<=8;i++)
	{
		P0=0xff<<i;	// <<左移运算符,将P0从11111111,设置到00000000
		Delay(60000);
		Delay(60000);
	}


	//LED灯逐个熄灭
	for(i=0;i<=8;i++)
	{
		P0=~(0xff<<i);
		Delay(60000);
		Delay(60000);
	}

   	P2=0xA0;//二进制10100000
	P0=0x02;//二进制00000010

}



//在主函数中执行
void main()

{
   while(1)//while语句当括号内为1执行大括号内语句,为0停止执行大括号内语句,while(1)括号内一直为1,所以此while循环会一直执行下去
	{
	   LEDrunning();
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值