蓝桥杯单片机设计LED模块

一、基础原理

蓝桥杯的板子与我之前所用有些不同,用了大量锁存器与译码器,可能会有点难度,不过核心都差不多,只要搞懂原理还是很好掌握相关知识点的!

1、74HC573锁存器

对于该51板子,LED模块用到了下面的74HC573锁存器,该锁存器为一个八路三态输出非反转透明锁存器,即左边输入什么,右边就输出什么;

该锁存器使能端LE为时,数据是透明的,当LE为,即Y4C为低电平时,该锁存器处于锁存状态(无论左边输入什么,右边输出均不会随其改变)。于是我们应该将其设置为使能端LE为低(即Y4C为低),即非锁存状态;

2、74HC02

由于Y4与WR会经过或非门之后为Y4C的值,根据上面一点所述,我们要将Y4C的值设置为高电平,即Y4要被设置为低电平

3、74HC138译码器

该译码器为三八译码器,三个输入控制八路互斥的低有效输出,即Y4为低电平则为100,即P27=1 P26=0 P25=0

 

 

 

二、相关代码

1、相关代码思路

先是通过延时函数,控制LED亮灭,再调用闪烁函数三次,实现LED亮灭3遍;

实现LED依次点亮:第一个LED点亮即1111 1110即0xfe 然后不断向左移位->1111 1100(第一第二灯亮)->1111 1000(第一、二、三灯亮)...... 如此进行八次,使八个灯均被点亮

实现LED依次熄灭:上一步灯均被点亮,为0000 0000,进行左移一位为0000 0000,再或1为0000 0001(第一个被熄灭)->进行左移一位为0000 0010,再或1为0000 0011(第一、二均被熄灭)...... 如此进行八次,使八个灯依次被熄灭

2、具体代码

/*******************************************************************************
* 文件名称:LED实验
* 实验配置:J3跳线配置为IO方式,J5配置为KBD、J2配置为1-3和2-4
* 实验现象:LED灯闪烁三次之后,从左至右依次点亮,之后再从左至右依次熄灭
* 日期版本:2023/3/5
*******************************************************************************/

#include <reg52.h>
#include <intrins.h>

//定义端口
sbit HC138_A=P2^5;
sbit HC138_B=P2^6;
sbit HC138_C=P2^7;



//延时函数
void delay(unsigned int z)    
{
	unsigned int x,y;
	for(x=z;x>0;x--)
	   for(y=120;y>0;y--);
}

//LED闪烁函数
void Runing(){
	  HC138_A=0;
	  HC138_B=0;
	  HC138_C=1;
	  P0=0x00;
    delay(10000);
		P0=0xff;
    delay(10000);
}

void main(void){
	  unsigned char i;
		while(1){	
			  delay(10000);
        Runing();
        Runing();
        Runing(); //闪烁三次
			  P0=0xfe;  //第一个灯亮
			  delay(10000);
			  for(i=0;i<8;i++){
				    P0=P0<<1;  //依次点亮
					  delay(10000);
				}
				delay(10000);
				for(i=0;i<8;i++){
					  P0=P0<<1; 
					  P0|=1;  //依次熄灭
					  delay(10000);
				}
		}
	  
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值