跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 防关联工具 > 第十四届蓝桥杯单片机组(程序设计赛题+程序(详细注释))

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

时间:2024-05-04 18:45:20 来源:网络cs 作者:欧阳逸 栏目:防关联工具 阅读:

标签: 程序  设计  机组  注释  详细 

一、读者阅读须知

程序设计赛题图片引自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

本文链接:https://www.kjpai.cn/news/2024-05-04/164879.html,文章来源:网络cs,作者:欧阳逸,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论