51_蓝桥杯_led流水灯

一 原理图分析

二 三八译码器工作原理

三八译码器:3个输入控制8路互斥的低电平有效输出。

|-------|-------|-------|--------|
| C | B | A | 输出 |
| 0 | 0 | 0 | Y0 |
| 0 | 0 | 1 | Y1 |
| 0 | 1 | 0 | Y2 |
| 0 | 1 | 1 | Y3 |
| 1 | 0 | 0 | Y4 |
| 1 | 0 | 1 | Y5 |
| 1 | 1 | 0 | Y6 |
| 1 | 1 | 1 | Y7 |

三 锁存器工作原理

锁存器:当使能端LE为高时,输出同步,LE为低时,输出数据被锁存。

|--------|--------|--------|--------|
| OE | LE | 输入 | 输出 |
| 1 | 1 | L | L |
| 1 | 1 | H | H |
| 1 | 0 | X | H |

四 或非门原理

|--------|--------|--------|
| 输入 | 输入 | 输出 |
| A | B | C |
| 1 | 1 | 0 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |

五 代码

复制代码
#include "reg52.h"

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;

void Delay(unsignde int t)
{
  while(t--);
  while(t--);
}//实现延时功能的函数

void liushuideng()
{
  unsigned char i;//定义char型变量
  HC138_C = 1;
  HC138_B = 0;
  HC138_A = 0;//输出Y4
  
  for(i=0;i<3;i++)
  {
   P0 = 0x00;//实现了全亮
   Delay(60000);
   Delay(60000);//延时
   P0 = 0xff;//实现了全灭
   Delay(60000);
   Delay(60000);//延时
  }由全灭到全亮,循环3次

   for(i=0;i<=8;i++)
  {
   P0 = 0xff<<i;//实现了由全灭到全亮
   Delay(60000);
   Delay(60000);//延时
  }实现了由全灭,再逐个点亮
  
   for(i=0;i<=8;i++)
  {
   P0 = 0x00<<i;//实现了由全亮到全灭
   Delay(60000);
   Delay(60000);//延时
  }实现了由全亮,再逐个灭

}//实现了又全亮到全灭,再逐个亮起,再逐个灭掉的函数功能

void main()
{
  
 while(1)
{
  liushuideng();
}
相关推荐
穿条秋裤到处跑1 小时前
每日一道leetcode(2026.04.16):距离最小相等元素查询
算法·leetcode·职场和发展
孬甭_2 小时前
字符函数及字符串函数
c语言·开发语言
网域小星球2 小时前
C 语言从 0 入门(二十五)|位运算与位段:底层开发、嵌入式核心
c语言·开发语言
wuminyu2 小时前
专家视角看JVM_StartThread
java·linux·c语言·jvm·c++
算法即正义2 小时前
知识竞赛软件的数据存储与备份方案
职场和发展·学习方法
Fanfanaas3 小时前
Linux 系统编程 进程篇 (三)
linux·运维·服务器·c语言·单片机·学习
念恒123063 小时前
Linux基础开发工具(git篇)
linux·c语言·git
weixin_446023564 小时前
C语言printf函数format参数输出格式及type、flags规定详解
c语言·详解·printf函数·格式参数·输出格式
Mr_Xuhhh4 小时前
深入理解单链表的递归反转:从原理到实现
算法·leetcode·职场和发展
智者知已应修善业4 小时前
【51单片机数码管+蜂鸣器的使用】2023-6-14
c++·经验分享·笔记·算法·51单片机