第十一届蓝桥杯单片机心得与分享-8


第十一届蓝桥杯单片机心得与分享

概述

这是本人第一次参加蓝桥杯,说实话就复习了两周,做了几套真题,当今天拿到题目要求的那一刻,感觉这一届的蓝桥杯的单片机组别比较前几年来说真的蛮简单的(偷笑,主要考察的无非那几个模块的应用。


代码已经放到了我的 Gitee上面了,需要的小伙伴可以自己去下载,欢迎交流。


题目

直接上图:


功能需求
功能需求
功能需求

  可以看出今年的题目只考察了:DS18b20,PCF8591,按键,led,数码管这几个外设。相比较去年的添加的ne555,eeprom简直不是少了很多。只要足够细心一点,5个小时的时间完全足够用了。
说一下大体的思路吧:

  • 1.独立按键切换模式—-分别为:数据显示模式以及设置阈值模式。
  • 2.在数据显示模式:第一位显示C,后两位数码管显示温度整数值。
  • 3.在阈值调节模式中:第一位显示P,后几位显示最高设定阈值以及最低设定阈值。
  • 4.在设置模式中:通过独立按键S5进行参数切换(这里注意是按下S5才可以进行切换,切换的顺序是先设置最高温度,再设置最低温度)。S6和S7分别为+1/-1温度数值,并显示到数码管上面。
  • 5.在设置界面以及数据显示界面同时进行LED以及DAC的自检与输出。
  • 6.细节把握一定要到位。

还需要注意的是,这两届PCF8591考查的方式从ADC变成了DAC(DAC是博主前天晚上看的)侥幸侥幸。DAC的使用其实也很简单这里我就不多赘述了,主要就是判定温度在不同范围内,使用8591进行相应的电压输出。

DAC的代码:

/**
* @brief DAC输出
* @param[in] dat - 输入进行数模转换的数据
*/
void dac_pcf8591(unsigned char dat)
{
    i2c_start();
    i2c_sendbyte(0x90);
    i2c_waitack();
    i2c_sendbyte(0x40);  //DAC输出模式
    i2c_waitack();

    i2c_sendbyte(dat);
    i2c_waitack();
    i2c_stop();
}
//LED任务
void LED_TASK()
{
    if(MIN > MAX)                //非正常温度区间    L4亮
    {
        Init74HC138(4);
        P0 = 0xF7;
        Init74HC138(0);
    }
    else if(temperature > MAX)    //非正常温度区间 L1亮
    {
        Init74HC138(4);
        P0 = 0xFE;
        Init74HC138(0);
    }
    else if(temperature < MIN)    //非正常温度区间    L3亮
    {
        Init74HC138(4);
        P0 = 0xFB;
        Init74HC138(0);
    }
    else                        //正常温度区间    L2亮
    {
        Init74HC138(4);
        P0 = 0xFD;
        Init74HC138(0);
    }
}
//DAC任务
void DAC_TASK()
{

    if(temperature > MAX)                //非正常温度区间  4v        
    {
        dac_pcf8591(203);
        Vaout = VREF/255*4;
    }
    else if(temperature < MIN)            //非正常温度区间    2v    
    {
        dac_pcf8591(103);
        Vaout = VREF/255*2;
    }
    else                                //正常温度区间     3v
    {
        dac_pcf8591(153);
        Vaout = VREF/255*3;
    }
}

功能需求
功能需求

温度的范围也是容易忽略的哦,我差一点就忘了这个范围的判断。


    大体上的需求就是这么些,客观题我就不说了,本人小白一个数电模电学忘得差不多了(笑哭我觉得我应该错了几道,题目和源码都放在git上面了,需要的可以自行下载。如果有错误的地方欢迎指正,共同进步!谢谢。


文章作者: Rb菌
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Rb菌 !
  目录