当前位置:   article > 正文

第十四届蓝桥杯单片机组(程序设计赛题+程序(详细注释))_第十四届蓝桥杯单片机比赛真题讲解

第十四届蓝桥杯单片机比赛真题讲解

一、读者阅读须知

程序设计赛题图片引自CSDN博主@阁中听雨,但程序为作者本人所写,程序能实现赛题的99%的功能,默认读者会调用定时器,NE555,DS1302,PCF8951,IIC,IO模式的调用数码管,LED灯驱动程序,温控电阻等程序,不在这些程序写注释。本人是刚入门51单片机半年的菜菜,代码有些长,代码加注释一共700多行,如有差错和改进之处,请在评论区与我交流。

二、赛题

三、程序逻辑图

四、在编程中遇到的问题和改进方法

问题一:平均数计算问题 

改进方法:经过作者的数种方法,发现此种方法最为实用,方法如图所示,T_dat1为计算触发温度平均数的变量,T_dat为实时触发温度的数值,count为触发温度的次数,dat_f1为计算触发湿度平均数的变量,dat_f为实时触发湿度的数值,coun1t为触发湿度的次数。

问题二:在触发温湿度界面,实时温度大于温度参数时,L4亮灭不及时

原因:在Read_Temperature()中Delay(1000)只执行while(t--),直至把1000减完

改进方法:在Read_Temperature()中Delay(1000)中加上LED_Control(),在Delay执行时,执行LED亮灭控制,如图所示

问题三:在触发温湿度界面,数码管亮度变小

原因:与问题二类似,在Read_Temperature()中Delay(1000)只执行while(t--),直至把1000减完

改进方法:在Read_Temperature()中Delay(1000)中加上LED_Control(),在Delay执行时,执行数码管显示控制,如图所示,state为记录触发状态的变量,当state为1时,湿度大于等于10%,小于等于90%。

state为2时,湿度小于10%,或大于90%。

 四、作者对已完成代码的认为的不足之处

一是没有融会贯通C语言的传参操作,导致定义全局变量过多。二是在解决问题二时,在不同函数中,加入LED_Control()。

五、具体实现代码

已上传至本博客

或通过百度网盘分享的文件:23年省赛题 2…
链接:https://pan.baidu.com/s/1cn627_Y5JzHGdWmKQ0ex4A?pwd=bzot 
提取码:bzot

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/642874
推荐阅读
相关标签
  

闽ICP备14008679号