蓝桥杯单片机第七届省赛-模拟风扇控制系统

九层妖塔 起于垒土

在这里插入图片描述


改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改


2021.3.16
在这里插入图片描述

 第七届省赛例程在官方蓝皮书上也有,由于模板用的就是官方的,也就没有粘贴一大段代码的必要性了。仅记录刷题过程中的感悟,和对比官方给出的第七届代码后自己写的代码的不足。

Notes1:按键按下后在某些情况下给一定的缓冲时间

 第七届中,有要求按下S5后改变正在按秒递减的数值。此时如果在按下直接修改相关变量值,此变量值又会马上进行递减,所以看到的现象就是 :假设设置为60后,数码管马上变为60,之后很快递减,数码管显示59的时间不足1s,影响体验。而且是按一下S5是将倒计时时间修改为60,再按下一次修改为120,所以缓冲时间就有存在的必要了。
  例程中使用的方法是设置一个延时缓冲变量ui_S5_Dly,在按下S5后,处理完相应的任务后,将变量ui_S5_Dly赋值为2。在60或120开始递减时先递减ui_S5_Dly,获得2s的延迟时间。

  case 5:    //按键5
	{
    
    
     ………………
     ………………
     ui_S5_Dly = 2;
    }break;


  if(ui_S5_Dly)  ui_S5_Dly--;
  else if(uc_Work_Mode_1_Less_time) uc_Work_Mode_1_Less_time--;

Notes2:用定时器定时在IO口模拟输出矩形波PWM波

Notes3:DS18B20小数部分的处理

 在第七届例程中直接右移四位,将小数部分忽略。
 或者可以通过sprintf的格式控制,控制小数部分的位数%02.0f
onewire

Notes4:DS18B20单总线onewire严格时序与定时器中断冲突的处理

Notes5:P34引脚的定时器1输出功能

猜你喜欢

转载自blog.csdn.net/qq_43935020/article/details/114904384