第七届-模拟风扇控制系统

一. 题目概述

  1. 目的
     通过按键控制风扇的转动速度和定时时间;
     数码管实时显示风扇的工作模式;
     动态倒计时显示剩余的定时时间;

  2. 元器件
     由数码管显示、单片机最小系统、按键输入和电机控制保护电路组成。

  3. 具体操作
    第七届-模拟风扇控制系统_第1张图片
    第七届-模拟风扇控制系统_第2张图片

二. 对问题的解读

  1. 按键s4和s5一个是控制模式的转换,一个是增加定时的时间
    S6和s7一个是实现停止的,一个是实现室温的

  2. 有一个驱动DS18B20(温度传感器)

  3. 需要在倒计时的时候,用到中断和定时器

  4. PWM波其实是极为精准的定时,也可以说是定时

  5. 需要注意的在实现其中之一的功能时,其他按键的按动不会对其有影响

  6. 其他部分由模板写成即可
    三. 问题的难点
    a) 最难的在于对PWM波的理解,其实知道这个知识点并不难,也不是什么超纲的内容,它就是一个定时器。那么怎么在定时中写;
    四. 问题的解决
    i. PWM就是脉冲宽度调制,也就是占空比可变的脉冲波形。PWM是一种对模拟信号电平进行数字编码的方法。以b图来说,50%下面就是所谓的占空比。理论问题解决了,现在就将其写成程序。这个PWM波需要用逻辑分析仪进行判断。
    第七届-模拟风扇控制系统_第3张图片

    void timer0() interrupt 1
    {
    tt++;//定时
    miao++;//倒计时
    //定时 PWM波输出
    if(tt11) {tt=1;}//第一次进来就是1,以10为间隔 PWM的波形
    if(timer>0)//首先是时间必须大于0
    {
    if(moshi
    1)//之后是判断那一模式
    {
    if(tt<3) P34=1;//2正好是20%
    else P34=0;//输出相应的的PWM波
    }
    else if(moshi2)
    {
    if(tt<4) P34=1;
    else P34=0;
    }
    else if(moshi
    3)
    {
    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灯,以灯的亮的程度,进行粗略判断。
 自己的几点要求:驱动这三大部分已经基本定型,平时需反复进行理解并辅以记忆,便可容易将底层驱动写好。每日除了将模板反复练习外,更为重要的是:将历届做过的真题,亲自打一遍,同样需要反复练习。

你可能感兴趣的:(计算机基础,蓝桥杯-单片机)