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

蓝桥杯单片机基础部分——1.5基础模块代码升级

前言

之前的蓝桥杯单片机基础部分——1、基础模块代码发现有的同学不太会使,这样的话就给他们都封装一下函数,额外封装一下蜂鸣器和继电器,这就全了,到时候的逻辑只要没问题就没啥事了

LED灯模块

在这里插入图片描述
现在,给这里封装一个函数

unsigned char led_buf[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void LED_lnit(unsigned char addr,enable)
{
	P2 = P2 & 0X1F | 0X80;
	if(enable)
	P0 = led_buf[addr];
	else P0 = ~led_buf[addr];
}

蜂鸣器&继电器

在这里插入图片描述
先弄蜂鸣器

void BEEP(unsigned char enable)
{
	P2 = P2 & 0X1F | 0XA0;
	if(enable)P0 = 0X40;
	else P0 = ~0X40;
}

继电器

void relay(unsigned char enable)
{
	P2 = P2 & 0X1F | 0XA0;
	if(enable)P0 = 0X10;
	else P0 = ~0X10;
}

上面几个模块的代码都没有解释,现在大体看一下,不一定是好用的,只是思路
LED灯

unsigned char led_buf[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//这里封装了一个数组,通过数组控制位
void LED_lnit(unsigned char addr,enable)//这个地方addr是位置对应0~7,enable是使能,1亮0灭

后面的两个模块都有一个enable的变量,这个变量在这里是一个如果是0就不工作,1的话就是工作的状态

本人水平有限,所有代码都是作者自己的风格书写,但是大致的应该是没有什么问题,如果有哪里出错或者有更好的解法可以与我私信或在评论区里进行讨论
这些代码都只是一个思路,具体都没有烧写到板子里面去实验,不一定好用,有问题大家一定要提出来,大家一起进步

http://www.dtcms.com/a/37077.html

相关文章:

  • 【软件设计】SOLID原则详解与PHP实战示例
  • PageForge v2025.1.6 发布:支持 KaTeX 数学公式渲染
  • Spring AI + 大模型开发应用
  • 爬楼梯问题
  • 【Alertmanager】Alertmanager告警路由,告警静默,告警抑制,高可用的实现
  • CryptoJS库中WordArray对象支持哪些输出格式?除了toString() 方法还有什么方法可以输出吗?WordArray对象的作用是什么?
  • Python入门教程丨3.8 网络编程
  • 计算机毕业设计 ——jspssm504springboot 职称评审管理系统
  • Redis搭建集群
  • linux--多进程开发(4) 进程退出、孤儿进程、僵尸进程、进程回收wait()
  • 从最小依赖角度谈静态库与动态库的选择及配置策略
  • 【大模型学习】Transformer架构解析
  • IDEA集成DeepSeek,通过离线安装解决无法安装Proxy AI插件问题
  • Linux修改Redis密码
  • 编程算法总结
  • 【初阶数据结构】树和二叉树
  • 已有项目添加vitepress
  • 硬件基础(3):三极管(1):理论基础
  • 补题A-E Codeforces Round 953 (Div. 2)
  • 【Qt源码】窥视信号槽实现机制
  • jdk21下载、安装(Windows、Linux、macOS)
  • HTML转义和反转义工具类
  • @KafkaListener和KafkaTemplate自动装配原理分析
  • TLS与自签名证书的创建、作用、用到的工具等知识的介绍
  • 《MULTI-CLASS SEMANTIC SEGMENTATION OF FACES》论文分享(侵删)
  • pandas如何添加列
  • android进阶面试题目
  • 机器学习(部分算法、模型)
  • 【redis】数据类型之Bitfields
  • 网络安全入门|HTTP慢速攻击的终极防御:零信任与AI对抗