基于单片机和DS18B20的数字温度计
温度测量是从金属(物质)的热胀冷缩开始,常用的检测方法有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。这些检测方法都是基于温度变化引起其物理参数(如电阻值,热电势等)变化的原理。随着大规模集成电路工艺的提高,出现了多种集成的数字化温度传感器。
这里提出一种基于MSP430单片机翻的小型测温系统设计方案,主控制器采用MSP430单片机,数字温度传感器DS18B20通过单总线(1-wire)与单片机连接,系统结构简单,抗干扰能力强,适合于恶劣环境下澍量现场温度,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。
1 数字式温度计的总体设计
该系统以单片机为数字温度计的主控制器,以集成数字温度传感器为温度信息采集单元,液晶显示器及其驱动元件为显示单元。系统的基本组成框图如图1所示。
2 硬件组成
系统的主控制器选用了TI公司的单片机MSP430F1121A,沮度传感器选用了DALLAS公司数字式集成温度传感器DS18B20,采用2位共阴极LED数码管以及2个CD4511译码器实现温度显示。系统的整体设计电路如图2所示。
2.1 主控制器
MSP430F1121A具有独特的超低功耗设计,具有5种低功耗模式,给低功耗仪表设计带来了很大方便。MSP430F1121A型单片机为Flash型,可反复编程,且内部集成了A/D转换器,特别为智能式仪表、电池供电便携设备而设计。MSP430F1121A特性如下:
1)高效16位RISC内核,16位精简指令结构,27条指令,125 ns指令周期时间,绝大多数指令可在1个时钟周期内完成;
2)1.8~3.6 V低电压供电,有多种省电模式,功耗特别低,一颗电池可工作10年;
3)同其他微控制器相比,带Flash的微控制器可以将功耗降低5倍,既缩小了线路板空间又降低了系统成本;
4)6 μs的快速启动时间可延长待机时间并使启动更加迅速,降低了电池的功耗;
5)内含12位快速ADC/Slope ADC,只需外接1个电阻、1个电容即可实现高精度斜率A/D转换;
6)片内资源丰富,有ADC,PWM,若干TIME,串行口,看门狗,比较器,模拟信号,强大的中断功能;
7)SP430系列产品可以提供多种存储器选择,从14位ADCs到LCD驱动电路的混合信号外设,简化了各类应用中MSP430的设计;
8)ESD保护,抗干扰力特强。
2.2 译码驱动及显示单元电路
为了直观地显示出数字系统的运行状态以及工作数据,系统的显示模块中采用LG5011AH共阴极LED数码管,CD4511作为显示译码电路,由CD4511把输进来的二进制信号翻译成十进制数字,再由数码管显示出来,如图3所示。
图3中的D、C、B、A为BCD码输入端,分别与主控制器MSP430F1121A相应的I/O端口连接,为消隐功能端,为灯测试端,LE为锁存端。
单片机MSP430F1121A对DS18B20测量后的数据进行控制处理,以8421BCD码的形式传送至CD4511,CD4511把BCD码转换为十进制数码送到数码管中显示。 2.3 温度传感器
单线数字温度传感器DS18B20可以把温度信号直接转换成数字信号,每片DS18B20含有唯一的64位序列号,测温范围是-55~+125℃,完全符合系统要求。
DS18B20数字温度计提供9位温度读数,指示器件的温度信息经过单线接口送入DS18B20或从DS18B20送出,和MCU之间只需一条线连接,读写和完成温度变换所需的电源可以由数据线本身提供而无需外部电源。由于每个DS18B20有唯一的系列号(silicon serial number),因此,多个DS18B20可存在于同一条单线总线上,此特性可以应用于HVAC环境控制建筑物设备或机械内的温度检测以及过程监视和控制中的温度检测。
数字温度传感器DS18B20有如下特性:
1)独特的单线接口只需1个接口引脚即可通信;
2)多点(muhidrop)能力使分布式温度检测应用得以简化;
3)测量范围从-55~+125℃增量值为0.5℃;
4)以9位数字值方式读出温度;
5)在1 s(典型值)内把温度变换为数字。
DS18B20采用3引脚PR-35封装,其内部结构框图如图4所示。
3 系统软件设计
3.1 系统程序
系统的程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序。
程序的主要功能是实时显示温度、读出并处理DS18B20的测量温度值,温度测量每1 s进行一次。其程序流程如图5所示。
DS18B20采用单总线方式传输数据,对时序的要求比较严格。MSP430单片机的控制操作不同于51系列,它的I/O口有方向控制及输入输出寄存器,读写操作要分别控制。以DS18B20为例,给出在MSP430系列单片机语言编译环境Work-bench下部分程序代码。
3.2 DS1SB20与单片机之间的通信命令和时序
DS18B20工作过程中的协议如下:
1)初始化;
2)ROM操作命令;
3)存储器操作命令;
4)时序。
主机使用时间隙(time slots)读写DS18B20的数据位和写命令字的位。
由于DS18B20采用单总线协议方式,即在1根数据线实现数据的双向传输,而对MSP430F1121A单片机来说,硬件上并不支持单总线协议,因此,必须采用软件方法模拟单总线的协议时序,完成对DS18B20的访问。
DS18B20在1根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了初始化时序、读时序、写时序。
3.3 温度数据的计算处理方法
从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20的转换精度为9~12位可选的,为了提高精度采用12位。在采用12位转换精度时,温度寄存器里的值是以0.062 5为步进的,即温度值为寄存器里的二进制值乘以0.062 5,就是实际的十进制温度值。一个十进制值和二进制值之间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一个字节,这个字节的二进制值化为十进制值后,就是温度值的小数部分。小数部分因为是半个字节,所以二进制值范围是0~F,转换成了十进制小数值就是0.062 5的倍数(0~15倍),这样需要4位的数码管来显示小数部分,实际应用可以采用1位数码管来显示小数,可以精确到0.1℃。
4 系统调试
4.1 硬件检测和调试
硬件调试比较简单,在系统设计的过程中,由于主控制器(MSP430F1121A单片机)部分是集成在利尔达单片机技术有限公司MSP430仿真器FET上的。因此主要是对DS18B20测温模块以及LED数字显示模块进行硬件检测和调试。
4.2 软件调试
本程序采用单片机MSP430的语言编写,用IAR system公司开发的IAR Embedded Workbench for MSP430 Kickstart编译器编程调试。进入IAR Embedded Workbench集成环境,然后在该环境下建立一个项目,进入源程序编辑界面。在这里进行源程序的编辑,编译结束后,源文件编译通过之后,将生成目标代码。最后进入CSFY调试环境,如图6所示。
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)