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

   日期:2021-03-18     浏览:82    评论:0    
核心提示:九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改蓝桥杯单片机第七届省赛-模拟风扇控制系统

九层妖塔 起于垒土

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

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

    • Notes1:按键按下后在某些情况下给一定的缓冲时间
    • Notes2:用定时器定时在IO口模拟输出矩形波PWM波
    • Notes3:DS18B20小数部分的处理
    • Notes4:DS18B20单总线onewire严格时序与定时器中断冲突的处理
    • Notes5:P34引脚的定时器1输出功能

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输出功能

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服