《基于msp430单片机和DS18B20使用数码管显示的温度测量毕业设计(论文)》由会员分享,可在线阅读,更多相关《基于msp430单片机和DS18B20使用数码管显示的温度测量毕业设计(论文)(33页珍藏版)》请在金锄头文库上搜索。
1、基于msp430单片机和DS18B20使用数码管显示的温度测量毕业设计论文基于msp430单片机和DS18B20使数码管显示的温度测量摘要:为了在现实生活和工业生产及过程控制中准确测量温度,设计了一种基于低功耗MSP430单片机的数字温度计,整个系统通过单片机MSP430F149控制DS18B20读取温度,采用数码管显示,温度传感器DS18B20与单片机之间通过串口进行数据传输,MSP430系列单片机具有超低功耗,且外围的整合性高,DS18B20只需一个端口即可实现数据通信,连接方便,通过多次实验证明,该系统的测试结果与实际环境温度一致,除了具有接口电路简单,测量精度高,误差小,可靠性高等特点
2、外,其成本低,功耗低的特点使其拥有更广阔的应用前景。关键字:温度测量 MSP430单片机 温度传感器DS18B20 超低功耗Abstract: in order to accurately measure the temperature in real life and industrial production and process control, a digital thermometer was designed with low power consumption based on MSP430 single chip microcomputer, the control syst
3、em of DS18B20 read the temperature through the single-chip MSP430F149, the use of digital tube display, temperature sensor DS18B20 and single chip microcomputer for data transmission through the serial port, MSP430 Series MCU with low power consumption the periphery, and high integration, DS18B20 on
4、ly needs one port to realize the data communication, the connection is convenient, through many experiments, the test results of the system and the actual environment temperature is the same, except with the interface circuit is simple, high precision, small error, high reliability, low cost, low po
5、wer consumption it has a wider application prospect.图表 1关键字:温度测量 MSP430单片机 温度传感器DS18B20 超低功耗Keywords: temperature measurement MSP430 temperature sensor DS18B20 ultra low2 power consumption 目录一温度测量器的总体设计2二温度测量器的硬件选择31 主控器件:MSP430F14932 温度信息采集单元:DS18B2042.1 DS18B2042.2 DS18B20管脚排列43.显示单元:数码管及其驱动53.1 数
6、码管53.2 驱动芯片:74HC5736三. 系统软件程序71、系统的程序流图72.处理DS18B20的子程序82、1 初始化时序92、2 写时序102、3 读时序113、温度计算子程序134、处理数码管显示的子程序15四、系统调试151、硬件检测和调试152、软件程序调试173、整体调试17五、结论分析17参考文献:17附录一:18附录二:18附录三:18清空内容一温度测量器的总体设计 生活中最常见的应该是利用物体的热胀冷缩测温度,比如家里用的温度计、体温计等等,这种很好做但是精密程度不够,反正生活中用的也不需要那么精密。这里提出使用电子器件测温度,利用温度传感器,就是利用某些材料电阻随温度
7、的变化,通过电学上面测电阻用公式换算到温度等于多少度。传感器用处应该很多,不光是测温度,侧压力、光照强度等都可以用类似的方法,就是把想要测的量全转化成测电学量,然后公式换算出温度。我们提出用单片机MSP430为温度测量的主控制器,温度传感器DS18B20通过单总线与单片机连接,数码管显示及其驱动原件位显示单元,系统的基本组成如图1所示。 温度信号温度传感器DS18B20数据交换单片机电源数码管供电供电数据显示 图 1 系统的基本组成二温度测量器的硬件选择1 主控器件:MSP430F149 MSP430F149是一种新型的混合信号处理器,采用了美国德州仪器(Texas Instruments)公
8、司最新低功耗技术(工作电流为0.1一400 p A ),它将大量的外围模块整合到片内,特别适合于开发和设计单片系统。MSP430149单片机主要具有如下特点: 低 电 压、超低功耗。工作电压3.3V ,等待方式下工作电流为1.3 w A,在RAM保持关闭工作方式下工作电流仅为0 A 。 具 有 12位的模数转换器(ADC12) ,可以得到很高的精度,并且省去了使用专门的模数转换器给设计电路板带来的麻烦。 拥 有 大容量的存储空间。存储器方面包括多达60 k Flash ROM和2 k RAM,如此数量的存储空间完全可以满足程序及数据的需要。 两 通 道串行通信接口。可用于与计算机进行异步或同步
9、串行通信。 硬 件 乘法器。该乘法器独立于CPU进行乘法运算的操作,在提高乘法运算速度的同时也提升了CPU的利用效率。 串 行 在系统编程。通过仿真器对程序进行下载,并通过专用软件对程序及单片机的工作状态进行监控,极大地方便了程序的调试。2 温度信息采集单元:DS18B202.1 DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点: 采用单总线的接口方式 与微处理器连接时 仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。 单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
10、测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85C 范围内,精度为 0.5C 。 在使用中不需要任何外围元件且有负压特性 电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。持多点组网功能 多个 DS18B20 可以并联在惟一的单线上,实现多点测温。供电方式灵活 DS18B20 可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而 使系统结构更趋简单,可靠性更高。 测量参数可配置 DS18B20 的测量分辨率可通过程序设定 912 位。 DS18B20 具有体积更小、适用电压更宽、更经济、
11、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。2.2 DS18B20管脚排列1. GND为电源 地;2. DQ为数字信号输入输出端;3. VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 图 2 芯片BS18B20管脚图3.显示单元:数码管及其驱动 3.1 数码管 本次设计因为是要显示温度-55 + 125 ,则选择了四位十二段共阴极的数码管显示,其引脚图如下: seg1 a f seg2 seg3 b e d dp c g seg4 图 3 四位阴极数码管引脚图3.2 驱动芯片:74HC573 74HC573的八个锁存器都是透明的D
12、型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不是影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可与直接与系统总线接口并驱动总线,而不需要外接口。VccQ0Q1Q2Q3Q4Q5Q6Q7LPOED0D1D2D3D4D5D6D7GND74HC573 三. 系统软件程序1、系统的程序流图系统的程序主要包括主程序、读出温度子程序、写出温度子程序、温度转换命令字程序、计算温度子程序和数码管显示数据子程序。程序的功能是实时显示温度、读出并处理DS18B20的测量温度值,
13、温度测量没1s进行一次,其程序流程如图: 初始化到达1s?调用显示子程序初次上电?读出温度值,温度计算处理显示数据刷新温度转换开始命令是否否是 2.处理DS18B20的子程序 DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括:l 初始化时序l 写时序l 读时序2、1 初始化时序主机首先发出一个480960微秒的低电平脉冲,然后释放总线变为高电平,并在随后的480微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。做为从器件的DS18B20在一上电后就一直在检测总线上是否有48096
14、0微秒的低电平出现,如果有,在总线转为高电平后等待1560微秒后将总线电平拉低60240微秒做出响应存在脉冲,告诉主机本器件已做好准备。若没有检测到就一直在检测等待。 图4 初始化时序时间图程序C代码如下:/初始化DS18B20void DS18B20Init(void)DQ_OUT;/设置为输出方向DQ_LOW;/拉低总线Delayus(50);DQ_HIGH;/释放总线Delayus(6);DQ_IN;/设置为输入方向while(DQ_DATA);/等待应答信号while(DQ_DATA);/等待释放总线2、2 写时序 接下来就是主机发出各种操作命令,但各种操作命令都是向DS18B20写0和写1组成的命令字节,接收数据时也是从DS18B20读取0或1的过程。因此首先要搞清主机是如何进行写0、写1、读0和读1的。写周期最少为60微秒,最长不超过120微秒。写周期一开始做为主机先把总线拉低1微秒表示写周期开始。随后若主机想写0,则继续拉低电平最少60微秒直至写周期结束,然后释放总线为高电平。若主机想写1,在一开始拉低总线电平1微秒后就释放总线为高电平,一直到写周期结束。而做为从机的DS