第二阶段的帖子,是从第九届开始,倒着往前续的哦~大家尽可能的多看几届真题,对自己还是非常有帮助的。
本节我们来看看第七届省赛题“模拟风扇控制系统”,原题目要求大家可以摸下方超链接进行下载。
看完题目要求,能够惊喜的发现,仍然是按键+数码管+PWM+DS18B20这个似曾相识的套路,在经过第九届和第八届试题的练习之后,相信大家已经能够很好的掌握基本的编程思维了。下文中还是先简要捋一下编程思路。
本题中的重点仍然是PWM输出,很多人可能刚一看到有点懵,在自己学单片机的时候,可能没有接触过。PWM也叫作脉宽调制,其有两个重要的描述指标:频率和占空比。占空比=高电平周期/信号周期。例如题中提到的占空比为30%,频率为1KHz的信号,我们只需通过单片机产生一个周期为1/1K(s)=1ms的周期信号,同时高电平占该周期的30%,也就是300us即可。如果对PWM相关知识还不太清楚,可以移步该系列帖的第三阶段-26. PWM简介以及呼吸灯原理简介(摸我跳转哦~),进行系统学习。
当然,对于如何产生PWM信号,就必不可少的要用到定时器了,可以看出,每届试题中定时器都是非常强势的存在。使用定时器结合PWM的概念,可以很容易得到PWM想要的各种占空比的信号了。接下来就是DS18B20温度传感器,DS18B20的使用重点仍然是在有效温度的读取与处理上,第八届题中讲过,在此不再赘述。除了这些就是关于独立按键,关于独立按键我想跟大家强调几点,就是状态的切换以及工作模式的选择,大家需要通过活用标志位来进行按键状态的捕捉,然后通过标志位在主函数中进行判断,这样就很容易捋清按键逻辑了。
大家在解题的过程中,如果实在没头绪,也可以自己先画一画主函数的流程图来帮助自己构建做题的思路。下面仍将代码打包,请大家下载参考,希望对大家有所帮助哦~
----------------所有代码打包下载链接------------------
15. 2016年蓝桥杯省赛真题解析--模拟风扇控制_代码.zip