news 2026/4/30 19:15:33

蓝桥杯单片机十二届省赛解题思路

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
蓝桥杯单片机十二届省赛解题思路

此片基于B站西风大模板创作,下图是十二届蓝桥杯单片机题目

硬件框图分析

通过硬件框图确定核心功能模块,包括LED、蜂鸣器、继电器、按键、数码管等外设的交互逻辑。重点关注温度传感器DS18B20和DAC转换模块的硬件连接方式。

基础底层搭建

初始化函数需完成所有外设的配置。LED、蜂鸣器、继电器采用GPIO控制,按键检测使用扫描或中断方式。数码管驱动需实现动态扫描,段选和位选信号根据硬件连接配置。

温度传感器DS18B20采用单总线协议,实现温度读取函数rd_temperature()。DAC模块通过I2C协议通信,封装Da_Write()函数完成电压输出。

数码管显示设计

定义全局变量Seg_Disp_Mode控制显示界面切换:

  • 模式0:温度显示界面
  • 模式1:参数设置界面
  • 模式2:DAC输出界面

显示数据通过Seg_Buf[]数组传递,小数点位置由Seg_Point[]数组控制。温度值转换为数码管显示格式时需处理整数和小数部分:

(unsigned char)Temperature / 10 % 10; // 十位 (unsigned char)Temperature % 10; // 个位 (unsigned int)(Temperature * 100)/10 % 10; // 小数后第一位

按键功能实现

按键处理函数采用状态机设计,不同界面下按键行为独立:

  • 按键4:循环切换显示界面,同步更新Temp_DispTemp_Ctrol的数值关联
  • 按键8/9:在参数设置界面实现设定值增减,范围限制0-99
  • 按键5:通过异或操作切换Output_Mode工作模式

温度控制逻辑

模式1采用阈值比较:

if(Temperature < Temp_Ctrol) Voltage_Output = 0; else Voltage_Output = 5;

模式2实现线性输出:

if(Temperature < 20) Voltage_Output = 1; else if(Temperature > 40) Voltage_Output = 4; else Voltage_Output = 0.15*(Temperature-20)+1;

LED状态指示

LED显示与系统状态同步:

  • LED0反映工作模式状态
  • LED1-3通过位置编码指示当前显示界面
ucLed[0] = !Output_Mode; for(i=0;i<3;i++) ucLed[1+i] = (i == Seg_Disp_Mode);

异常处理

针对DS18B20上电复位时可能出现的85℃异常值,在初始化阶段插入750ms延时并预先读取一次温度值。数码管显示函数需加入数据有效性校验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 19:39:34

PingFangSC字体:解决跨平台排版难题的全能方案

PingFangSC字体&#xff1a;解决跨平台排版难题的全能方案 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在数字设计的世界里&#xff0c;字体就像一位默…

作者头像 李华
网站建设 2026/4/23 22:21:12

YOLOv13-N参数仅2.5M,手机端也能跑的目标检测

YOLOv13-N参数仅2.5M&#xff0c;手机端也能跑的目标检测 你有没有试过在手机上跑目标检测模型&#xff1f;不是用云端API调用&#xff0c;而是真正在设备本地实时推理——没有延迟、不依赖网络、隐私完全可控。过去这听起来像科幻&#xff0c;直到YOLOv13-N出现&#xff1a;2…

作者头像 李华
网站建设 2026/4/26 12:29:40

TradingAgents-CN智能投资分析平台部署指南

TradingAgents-CN智能投资分析平台部署指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 欢迎使用TradingAgents-CN&#xff0c;这是一款基于多…

作者头像 李华
网站建设 2026/4/22 8:26:52

gpt-oss-20b-WEBUI支持函数调用吗?原生能力实测

gpt-oss-20b-WEBUI支持函数调用吗&#xff1f;原生能力实测 1. 问题背景&#xff1a;为什么函数调用能力如此关键 你刚部署好 gpt-oss-20b-WEBUI 镜像&#xff0c;打开网页界面&#xff0c;输入“查一下今天北京的天气”&#xff0c;结果只返回一句“我无法访问实时天气信息”…

作者头像 李华
网站建设 2026/4/27 1:41:34

颠覆传统!log-lottery:重新定义企业抽奖体验

颠覆传统&#xff01;log-lottery&#xff1a;重新定义企业抽奖体验 【免费下载链接】log-lottery &#x1f388;&#x1f388;&#x1f388;&#x1f388;年会抽奖程序&#xff0c;threejsvue3 3D球体动态抽奖应用。 项目地址: https://gitcode.com/gh_mirrors/lo/log-lotte…

作者头像 李华
网站建设 2026/4/28 2:02:05

歌词提取总失败?这款免费工具让你3步搞定全网音乐字幕

歌词提取总失败&#xff1f;这款免费工具让你3步搞定全网音乐字幕 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 听歌遇到的那些"小麻烦" 你是否也曾经历过这…

作者头像 李华