当前位置: 首页 > article >正文

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

文章目录

  • 代码实现
    • 头文件
    • 固定模板
    • 延时函数
    • 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.kler.cn/a/539436.html

相关文章:

  • 每日一题——没有重复项数字的全排列
  • Django项目中创建app并快速上手(pycharm Windows)
  • 学习数据结构(8)双向链表
  • 使用PyCharm进行Django项目开发环境搭建
  • 离散型变量的 PSI-群体稳定性指标计算
  • 云上考场微信小程序的设计与实现(LW+源码+讲解)
  • c/c++蓝桥杯经典编程题100道(18)括号匹配
  • Win10+Ollama+AnythingLLM+DeepSeek构建本地多人访问知识库
  • 大数据示例:改变业务的 6 种方式
  • 【虚幻引擎UE】AOI算法介绍与实现案例
  • 【C++八股】std::atomic —— 原子操作
  • ASP.NET Core 如何使用 C# 向端点发出 POST 请求
  • openAI官方prompt技巧(二)
  • 基于springboot+vue的文物管理系统的设计与实现
  • android手机安装deepseek-r1:1.5b
  • DeepSeek开源多模态大模型Janus-Pro部署
  • 在 Linux 系统下,解压 `.tar.gz`
  • 14vue3实战-----获取用户信息和用户的菜单树信息
  • 解决Redisson在Kubernetes中连接旧Redis主节点的问题
  • Vue3 进阶-自定义事件用法全解析 ✨
  • 大语言模型需要的可观测性数据的关联方式
  • LeetCode热题100-最大子数组和【JavaScript讲解】
  • webpack配置之---output.filename
  • 【DeepSeek】私有化本地部署图文(Win+Mac)
  • Windows编程:在 VS2010 里面,打开一个项目
  • #渗透测试#批量漏洞挖掘#WookTeam searchinfo SQL注入漏洞