蓝桥杯51单片机练习(国信长天比赛用)

news/2025/2/12 14:22:49/

文章目录

  • 代码实现
    • 头文件
    • 固定模板
    • 延时函数
    • HC138译码器和或非门
    • 流水灯
      • 闪烁次数(假设闪烁5次)
      • 从左向右依次亮
      • 从左向右依次灭
  • 总代码

代码实现

头文件

#include <REGX52.H>

固定模板

void main()
{
while(1)
{

}
}

延时函数

void Delay(unsigned char t)
{
while(t–);
while(t–);
}

HC138译码器和或非门

在这里插入图片描述

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

//在编程中,sbit 是 Special Bit 的缩写,主要用于嵌入式系统编程,尤其是在使用 8051 单片机时。它用于定义和访问单片机中的单个位,通常用于控制寄存器或 I/O 端口的特定位。访问寄存器的特定位:8051 单片机的寄存器通常以 8 位形式存在,sbit 允许直接操作其中的某一位。控制 IO 端口:通过 sbit 可以方便地控制 IO 端口的某一位,实现输入输出操作。

流水灯

在这里插入图片描述

void LED()
{
unsigned char i;
sbit HC138_A=0;
sbit HC138_B=0;
sbit HC138_C=1;

P0=0x00;
Delay();
Delay();

P0=0xff;
Delay();
Delay();
}

闪烁次数(假设闪烁5次)

for(i=0;i<5;i++)
{
P0=0x00;
Delay();
Delay();

P0=0xff;
Delay();
Delay();
}

从左向右依次亮

for(i=1;i<=8;i++)
{
P0=0x00<<i; //右移
Delay();
Delay();;
}

从左向右依次灭

for(i=1;i<=8;i++)
{
P0=~(0x00<<); 取反
Delay();
Delay();;
}

总代码

#include <REGX52.H>

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

void Delay(unsigned int t) //延时函数
{
while(t–);
while(t–);
}

void LED() //跑流水灯
{
unsigned char i;
HC138_C=1;
HC138_B=0;
HC138_A=0;

for( i=0;i<4;i++)   //亮灭循环
{
P0=0x00;
Delay(60000);
Delay(60000);
P0=0xff;
Delay(60000);
Delay(60000);
}for(i=1;i<=8;i++)	//依次亮
{P0=0xff<<i;Delay(60000);
Delay(60000);
}for(i=1;i<=8;i++)	//依次灭
{P0=~(0xff<<i);Delay(60000);
Delay(60000);
}

}

void main()
{
while(1)
{
LED();
}
}


http://www.ppmy.cn/news/1571437.html

相关文章

【AI知识点】苦涩的教训 The Bitter Lesson by Rich Sutton(2019)

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 “The Bitter Lesson” 是由 Richard Sutton&#xff08;强化学习领域的先驱之一&#xff09;提出的一个概念&#xff0c;指的是机器学习领域在长期发展过程中&#xff0c;尤其是在强…

对React中类组件和函数组件的理解?

React 中的 类组件 和 函数组件 是两种不同的组件定义方式&#xff0c;它们都可以用来创建 UI&#xff0c;但在语法、特性和使用场景上有一些区别。以下是它们的详细对比和理解&#xff1a; 1. 类组件&#xff08;Class Components&#xff09; 特点 基于 ES6 的类&#xff1a…

Oracle认证大师(OCM)学习计划书

Oracle认证大师&#xff08;OCM&#xff09;学习计划书 一、学习目标 Oracle Certified Master&#xff08;OCM&#xff09;是Oracle官方认证体系中的最高级别认证&#xff0c;要求考生具备扎实的数据库管理技能、丰富的实战经验以及解决复杂问题的能力。本计划旨在通过系统化的…

Ubuntu 安装 NVIDIA 驱动实操指南(含卸载)

本文将详细介绍如何在Ubuntu上安装和配置NVIDIA显卡驱动。以下是一步步的操作流程&#xff0c;包括禁用开源驱动的步骤。 步骤 1&#xff1a;安装依赖 首先&#xff0c;确保系统中已安装gcc和make&#xff0c;这些是编译驱动所需的依赖。 sudo apt update sudo apt install …

Python 面向对象(类,对象,方法,属性,魔术方法)

前言&#xff1a;在讲面向对象之前&#xff0c;我们先将面向过程和面向对象进行一个简单的分析比较&#xff0c;这样我们可以更好的理解与区分&#xff0c;然后我们在详细的讲解面向对象的优势。 面向过程&#xff08;Procedure-Oriented Programming&#xff0c;POP&#xff0…

利用deepseek参与软件测试 基本架构如何 又该在什么环节接入deepseek

利用DeepSeek参与软件测试&#xff0c;可以考虑以下基本架构和接入环节&#xff1a; ### 基本架构 - **数据层** - **测试数据存储**&#xff1a;用于存放各种测试数据&#xff0c;包括正常输入数据、边界值数据、异常数据等&#xff0c;这些数据可以作为DeepSeek的输入&…

office高效AI插件

office-ai插件&#xff1a;https://www.office-ai.cn/static/introductions/officeai/introduction.html 下载后双击无脑安装即可 安装完成后顶部没有officeAI&#xff0c;会有一行黄色的点击可以导入的提示信息&#xff0c;导入一下就有啦 如果还是没有可以从设置中信任第三…

STM32 HAL库 I2C通讯(C语言)

1、I2C初始化: I2C_HandleTypeDef hi2c1; void MX_I2C1_Init(void) { hi2c1.Instance = I2C1; hi2c1.Init.ClockSpeed = 100000; // 100kHz时钟 hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;// 占空比 hi2c1.Init.OwnAddress1 = 0; // 主机地址(主模式通常设为0) hi2c1.Init.A…