(保姆级)蓝桥杯全面学习总结——点亮LED

学习目标:

       当看到一篇关于写博客论坛意义的文章后,我就下定决心要开始写论坛,目标是为了总结我的学习成果,巩固刚学的知识。如果你看到我的文章系列,发现了文本错误,希望能留言及时指出。


学习内容:

关于蓝桥杯点亮LED灯。

1、了解原理图:

        首先我们需要了解关于led点亮的原理图结构:

        M74HC573MIR为锁存器,该锁存器上电后,当Y4C为高电平时,D1~D8的数据会传送至Q1~Q8,且Q1~Q8低电平时led灯点亮;当Y4C为低电平时,芯片锁存起来,无论D1~D8输入任何数据,Q1~Q8只会保存上一次传送的数据。

         而Y4C取决于译码器输入P27~P25(P25为低位)。如下图所示:

         而Y4C由Y4和WR决定,为此我们需要把J13的跳线帽接在IO口。

如下图,让WR恒为低电平。 这样,当Y4为低电平时,通过或非门输出Y4C为高电平,则U6锁存器处于传输状态。

2、led流水灯代码如下:

#include <STC15F2K60S2.H>

#define uint unsigned int

void delay_ms(uint t)
{
	uint i,j;
	for(i=0;i<t;i++)
	for(j=0;j<900;j++);
}

void main(void)
{
	uint i;
	P0 = 0xFF;
	P2 = P2 & 0x1F | 0x80;//ÏÈÇåÁãP27~P25,ÔÚ¶¨Î»Y4C
	while(1)
	{
			
		for( i=0;i<8;i++)
		{
			P0=0xff<<(i+1);
			delay_ms(500);
		}
	
		for(i=0;i<8;i++)
		{
			P0=(P0|(0x01<<i));
			delay_ms(500);
		}	
		
	}
}

代码烧入后我们发现板子上的蜂鸣器一直响个不停,吵死了。为此我们编写代码让蜂鸣器关闭。

3、让蜂鸣器和蜂鸣器旁边led灯关闭:

由如下图可知,蜂鸣器和led灯的启动和关闭由Y5C控制,为此我们需要像控制Y4C一样控制Y5C。 

 为此,关闭蜂鸣器和led灯,顺便点亮流水灯的代码如下:

#include <STC15F2K60S2.H>

#define uint unsigned int

void delay_ms(uint t)
{
	uint i,j;
	for(i=0;i<t;i++)
	for(j=0;j<900;j++);
}

void main(void)
{
	uint i;
	P2 = P2 & 0x1F | 0xA0;//先清零P27~P25,在定位Y5C
	P0 = 0xAF;	//关闭蜂鸣器和led灯
	
	
	P2 = P2 & 0x1F | 0x80;//先清零P27~P25,在定位Y4C
	P0 = 0xFF;
	while(1)
	{
			
		for( i=0;i<8;i++)
		{
			P0=0xff<<(i+1);
			delay_ms(500);
		}
	
		for(i=0;i<8;i++)
		{
			P0=(P0|(0x01<<i));
			delay_ms(500);
		}	
		
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值