一.实验任务
用DS18B20实现环境温度的采集,并输出到数码管进行显示,当监测到的温度超过设定温度时用蜂鸣器进行报警。
参考技术资料:
技术资料下载链接
MSPM0L1306技术资料链接 :https://www.ti.com.cn/product/cn/MSPM0L1306#tech-docs
LP-MSPM0L1306开发板资料链接:https://www.ti.com.cn/tool/cn/LP-MSPM0L1306
MSPM0-SDK — MSPM0 Software Development Kit (SDK) 链接:https://www.ti.com.cn/product/cn/MSPM0L1306#software-development
驱动库API文档:
file:///D:/02ProgramFiles/TISDK/mspm0_sdk_1_30_00_03/docs/english/driverlib/mspm0l11xx_l13xx_api_guide/html/modules.html
KEIL5 DFP pack(KEIL 必须,CCS非必须):
https://downloads.ti.com/msp430/esd/MSPM0-CMSIS/keil/latest/exports/TexasInstruments.MSPM0L_DFP.1.1.0.pack?tracked=1
开发工具:
官方库函数: MSPM0-SDK
编程IDE:CCSTUDIO-Code Composer Studio
IDE、配置、编译器或调试器:SYSCONFIG
MSPM0L1306开发板: LaunchPad™-MSPM0L1306
二.硬件设计和原理
对于数码管的连接和硬件设计可以参考我的课程二的任务,这里不再重复。
蜂鸣器,温度传感器模块和数码管相关的硬件和对应接线如下图所示:
硬件原理介绍
蜂鸣器的硬件设计原理
蜂鸣器通常可分为有源蜂鸣器和无源蜂鸣器,无源蜂鸣器需要输出类似方波的波形来控制蜂鸣器发生,而有源蜂鸣器通上电源即可发出声音,具体的原理如下图:
我们这里用的蜂鸣器就底部图片所示的有源蜂鸣器,其相关的控制电路原理如下图所示:
这里用到的蜂鸣器原理是右侧的低电平触发,也即当控制蜂鸣器的引脚PA15设置为低电平时,蜂鸣器发出声音,当控制蜂鸣器的引脚PA15设置为高电平的时候蜂鸣器不发生,关闭。因此在初始化配置蜂鸣器的引脚的时候,为了初始化之后蜂鸣器不发声,需要把控制蜂鸣器的引脚PA15初始化设置为高电平。当需要控制蜂鸣器发声的时候,只需要设置控制引脚为低电平即可。硬件的连接接线如下图所示:
板载温度传感器的硬件设计原理:
温度传感器有数字量的也有模拟量的,模拟量的又分负温度系数的和正温度系数的,所谓的正负就是温度和电阻的关系,负温度系数是当温度升高的时候传感器的电阻值是变小的,正温度系数是当温度升高的时候传感器的电阻值是变大的,通常用到的有PT100和PT1000。详情如下图所示:
进行温度采集设计电路设计的时候,通常有两种:一种是电压源,一种是电流源,通常用到的是电压源,当采用电压源的时候电路也有两种,一种是温度传感器接到电压源的一端,一种是温度传感器接到地的一端,后一种偏多。具体如下图所示:
在这里我们可以使用开发板上温度传感器进行温度的开发验证测试,相关硬件介绍如下图所示:
板载温度采集的设计原理为温度变化转化为阻值变化,然后转化为电压变化,根据电压电阻的比例关系,可以计算出温度传感器上的电压V=VCC*R126/(R125+R126),具体的硬件原理如下图所示
根据温度采集的电压和温度传感器的温度电阻曲线,以及曲线的计算公式可以计算出对应的温度值,具体的计算详情如下图所示:
对于温度传感器DS18B20模块的硬件设计原理,相关的模块硬件连接接线如下图所示:
这里选用的DS18B20的传感器是DALLAS的,相关的参数如下图所示:
相关详细的数据手册可以在网上下载。
三.软件开发设计实现
利用板载的温度传感器的软件设计配置syscfg的参数设计如下图所示:
板载温度传感器的关键软件开发代码如下图所示:
另外需要在主初始化里面加入中断使能和启动转换: NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN); DL_ADC12_startConversion(ADC12_0_INST);后面即可在主函数里面进行温度的采集 TmpVal=ConvertToTemp();以及显示 Disp_TempData(TmpVal);
ADC的中断处理程序如下:
蜂鸣器的相关syscfg的设计配置界面如下:
DS18B20相关的DS18B20的syscfg的配置界面设计如下所示:
关键的软件代码如下所示:
主运行程序里面的关键代码如下图所示:
这里采集温度之后显示,当采集到的温度大于30℃的时候进行蜂鸣器的报警警告。
四.实现的结果
程序编写好之后编译一下,查看底部的信息栏显示,如果有error错误可以双击到指定的位置,查看错误的信息,根据提示进行纠正,直到编译没有错误,然后下载程序,调试没有问题下载之后的开始显示的问题如下图所示:
显示现在的室温,夏天了,温度基本是正常,当给温度传感器加热超过30℃的时候,蜂鸣器开始报警,这时的结果如下图所示: