学习目标:
当看到一篇关于写博客论坛意义的文章后,我就下定决心要开始写论坛,目标是为了总结我的学习成果,巩固刚学的知识。如果你看到我的文章系列,发现了文本错误,希望能留言及时指出。
学习内容:
关于蓝桥杯点亮LED灯。
首先我们需要了解关于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);
}
}
}