[蓝桥杯单片机] -- 2022第十三届蓝桥杯单片机组省赛程序设计题+程序(详细注释)

一、读者须知

   程序设计赛题图片引自CSDN博主@川九-EveRYouNg,但程序为本人所写,能实现赛题99%的功能,程序于2024年一月完成,于2024年二月修补bug,由于本程序是作者从看完B站小蜜蜂老师的教学视频写的第一个程序,再加上作者是刚入门半年的小白,如有差错和不足请在评论区与我交流。作者默认读者会调用DS1302芯片,DS18B20温度传感器,继电器等外设。不在这些地方加以注释,如有不便,请谅解。

二、2022第十三届蓝桥杯单片机组省赛程序设计题

三、作者在编写程序时遇到的问题和解决方法

问题一:LED灯时不时闪烁的问题。

解决方法:所有对继电器操作之前,先对LED进行操作。原因是:查阅单片机原理图可知,让继电器工作要给高电平,让LED灯亮要给低电平,而LED灯和继电器共用同一IO口,即P0口,因此,所有对继电器操作之前,先对LED进行操作。如图所示

问题二:在时间控制模式整点时,切换温度控制模式再切换到时间控制模式,此时依然是整点且秒<5s,但L1仍然闪烁

解决方法:原本程序是这些写的,即当到分等于0,秒小于5,L1闪烁,由此产生了上述问题

            if(Timer[1]==0&&Timer[0]<=5)
             {
                if(count<=5)
                {
                     SelectHC573(4);P0=0xfe;
                     SelectHC573(5);P0=0x00;P0=0x10;
                }
                else if(count>5)
                {
                  SelectHC573(4);P0=0xff;
                    SelectHC573(5);P0=0x00;P0=0x10;
                }
             }

之后作者设置了Timemodel变量,当在温控模式时,Timemodel=0.当在时控模式时,分等于0,秒等于0,Timemodel等于1,如果在时控模式,分等于0,秒大于5,并且Timemodel=1,Timemodel=0。只在时控模式,分=0,秒<=5,并且Timemodel=1,才让L1闪烁。如图所示

未解决的问题:按键消抖和数码管动态显示不用Delay延时函数,用单片机上的定时器进行消抖

问题描述:作者经过一天的写代码调试也未解决问题,还是Delay延时函数,更适合小白,如有大佬阅读此篇博客,请与我在评论区交流,如有解惑,感激不尽。

三、程序逻辑图

 四、具体实现代码

通过百度网盘分享的文件:第十三届省赛题.…
链接:https://pan.baidu.com/s/19gkKKn78YgHBe7x29IJhtg?pwd=j21n 
提取码:j21n
复制这段内容打开「百度网盘APP 即可获取」

五、结语

通过22年和23年省赛题发现,难的不是外设的使用,难的是LED,继电器使用的逻辑判断,因此作者写这些博客的目的是总结这些问题的处置经验,下次遇到这些问题,直接借鉴经验。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值