码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【蓝桥杯单片机】十三届省赛“重难点”解析(附源码)


    【蓝桥杯单片机】十三届省赛“重难点”解析

    • 一、题目难点解析
    • 二、易出错点提示
    • 三、完整代码链接


    笔记包括:①题目难点解析、②易出错点提示、③完整代码链接
    注:本文提供的所有代码都是使用第十四届竞赛包完成

    ⭐----------系列文章链接----------⭐
    【蓝桥杯单片机】十四届省赛“重难点”解析(附源码)
    【蓝桥杯单片机】十三届省赛“重难点”解析(附源码)


    一、题目难点解析

    1. 模式按键:
      解释:和S12按键要做的操作不同,并不需要显示任何界面在数码管上;是一种模式切换,在后文中有详细说明,在何种模式下继电器应该做出如何种响应
      方法:
      ①温度控制模式:在获取温度后将当前温度与温度参数作比较,使继电器吸合或断开
      ②时间控制模式:在获取时钟后判断是否为整点,并设置整点标志(F_time)与计时5s变量(count_5s);
      当F_time == 1时开始计时同时打开继电器,判断5s条件满足后关闭继电器

    在这里插入图片描述
    在这里插入图片描述

    1. 按下显示界面1(分、秒),松开显示界面2(时、分):
      方法:(时间显示界面下)将按下与松开时的状态——看作是数码管显示的两种界面(stat_smg)

    在这里插入图片描述

    二、易出错点提示

    1. 数码管和LED共用P0口易冲突,使用选择锁存器同时赋值的算法,避免冲突;
      且本届题目中对继电器与LED操作较多,注意赋值LED与继电器后要打开和锁住相应的锁存器
    /*==============锁存器选择=============*/
    void Select_HC573(unsigned char n, unsigned char dat)
    {
    	P2 = P2 & 0x1f | 0x00;	//赋值前,关闭全部锁存器
    	P0 = dat;				//待设置的数据
    	switch(n)				//选择锁存器
    	{						//高3位与0清零,或1重新赋值
    							//低5位与1值不变,或0值不变
    		case 4: P2 = P2 & 0x1f | 0x80; break;
    		case 5: P2 = P2 & 0x1f | 0xa0; break;
    		case 6: P2 = P2 & 0x1f | 0xc0; break;
    		case 7: P2 = P2 & 0x1f | 0xe0; break;
    	}
    	P2 = P2 & 0x1f | 0x00;	//赋值后,关闭全部锁存器
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    1. 温度一上电显示默认值85℃,第一次尝试使用软件生成的延时,在温度获取初始化中调用,以跳过默认值;
      将温度获取初始化函数在主函数的while语句之前调用一次

    在这里插入图片描述

    void Delay750ms()		//@12.000MHz
    {
    	unsigned char i, j, k;
    
    	_nop_();
    	_nop_();
    	i = 35;
    	j = 51;
    	k = 182;
    	do
    	{
    		do
    		{
    			while (--k);
    		} while (--j);
    	} while (--i);
    }
    
    
    void Init_Read_Temp()			//初次温度读取,避免读取默认值85
    {
    
    	init_ds18b20();			//复位
    	Write_DS18B20(0xcc);	//跳过ROM
    	Write_DS18B20(0x44);	//转换温度
    	
    	Delay750ms();		//直到首次温度转换完成
    }						//避免上电后读取温度默认值85
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    1. 多次刷新数码管与温度数据,保证数码管的正常显示与温度值的更新

    在这里插入图片描述

    三、完整代码链接

    下面提供了13届蓝桥杯单片机省赛代码,依据小蜜蜂老师风格编写
    网盘链接:13届蓝桥杯单片机省赛代码-饥饿的半导体(提取码:1313)


    本文是在博主练习完部分省赛题目后总结的笔记
    文章为本人对试题的观点,难免有所欠缺,欢迎大家在评论区里共同讨论

  • 相关阅读:
    ARM32开发——GPIO输入
    Java项目实战《苍穹外卖》 二、项目搭建
    NDIR二氧化碳传感器原理介绍
    idea使用gradle教程 (idea gradle springboot)2024
    ubuntu静态ip地址设置
    从零手写实现 nginx-19-HTTP CORS(Cross-Origin Resource Sharing,跨源资源共享)介绍+解决方案
    华为ac怎么配置 写个配置
    周边上新,T恤上星:博客园T恤幸运闪系列,上架预售,上照预览
    Java项目-苍穹外卖-Day11-Apache ECharts数据统计
    Figma技术学习总结
  • 原文地址:https://blog.csdn.net/Taylor_Kurt/article/details/136760195
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号