一. 题目概述
-
目的
通过按键控制风扇的转动速度和定时时间;
数码管实时显示风扇的工作模式;
动态倒计时显示剩余的定时时间; -
元器件
由数码管显示、单片机最小系统、按键输入和电机控制保护电路组成。 -
具体操作
二. 对问题的解读
-
按键s4和s5一个是控制模式的转换,一个是增加定时的时间
S6和s7一个是实现停止的,一个是实现室温的 -
有一个驱动DS18B20(温度传感器)
-
需要在倒计时的时候,用到中断和定时器
-
PWM波其实是极为精准的定时,也可以说是定时
-
需要注意的在实现其中之一的功能时,其他按键的按动不会对其有影响
-
其他部分由模板写成即可
三. 问题的难点
a) 最难的在于对PWM波的理解,其实知道这个知识点并不难,也不是什么超纲的内容,它就是一个定时器。那么怎么在定时中写;
四. 问题的解决
i. PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形。PWM是一种对模拟信号电平进行数字编码的方法。以b图来说,50%下面就是所谓的占空比。理论问题解决了,现在就将其写成程序。这个PWM波需要用逻辑分析仪进行判断。
void timer0() interrupt 1
{
tt++;//定时
miao++;//倒计时
//定时 PWM波输出
if(tt11) {tt=1;}//第一次进来就是1,以10为间隔 PWM的波形
if(timer>0)//首先是时间必须大于0
{
if(moshi1)//之后是判断那一模式
{
if(tt<3) P34=1;//2正好是20%
else P34=0;//输出相应的的PWM波
}
else if(moshi2)
{
if(tt<4) P34=1;
else P34=0;
}
else if(moshi3)
{
if(tt<8) P34=1;
else P34=0;
}
}
//倒计时
if(miao==10000)//100ws
{
miao=0;
if(timer>0) timer–;
}
}
五.经验总结
在这套题中,按键没有考察很难的逻辑。基本是老套路,变换模式和控制LED灯,没有问题。
需要注意的是,此题唯一的难题在PWM波部分,其实也不难。需要了解什么是PWM波和占空比。一句话,总结来说,就是定时精准的问题。占空比是以10个位单位,而需要注意的是:判断条件不是截止至10,而是11,因为一进来就是1。然后就是注意在哪一模式下。
本届题目出现“超纲”的内容,其实并没有,只是对定时器进行深入的考察。那么,如果出现的话,需要用到小技巧,就是要把P34引脚接到最近的LED灯,以灯的亮的程度,进行粗略判断。
自己的几点要求:驱动这三大部分已经基本定型,平时需反复进行理解并辅以记忆,便可容易将底层驱动写好。每日除了将模板反复练习外,更为重要的是:将历届做过的真题,亲自打一遍,同样需要反复练习。