1、基于MSP430单片机的高精度温度测试系统摘 要本文旨在设计一个基于MSP430单片机的高精度的温度测试系统,以应用于实际温度测控。有两个主要要求:1.用LCD做显示器。2.微功耗实现。预期成果是使得该系统测温精度达到0.5,测温X围达到0-100,实现uA级功耗。基于上述要求,论文首先介绍了超低功耗16 位单片机MSP430F149和数字温度传感器DS18B20 的基本特性,内部结构和应用,然后结合液晶显示模块MG-12232,画出了PROTEL电路图,PCB图,设计了一个小型测温系统,并写出了相应的程序代码。利用MSP430 单片机的超低功耗以及DS18B20 的单线接口方式,实现了整个系
2、统的低功耗,结构简单,性能稳定,经济实用。最后基于集成开发环境IAR Workbench 给出了主要的C430函数。关键词:测温系统,MSP430F149, DS18B20ABSTRACTThis article is for the purpose of designing one based on the MSP430 monolithic integrated circuit high accuracy temperature test system, meets uses in the actual temperature observation and control. Some t
3、wo overriding demands: 1. uses LCD monitor.2. ultra-low power realizations. The anticipated achievement is causes this system temperature measurement precision to achieve 0.5, the temperature measurement scope achieves 0-100, realizes the uA level power.Based on the above request, the paper first in
4、troduced ultra low power loss 16 monolithic integrated circuit MSP430F149 and the digital temperature sensor DS18B20 basic characteristic, the internal structure and the application, then union liquid crystal display module MG-12232, has drawn the PROTEL circuit diagram, the PCB chart, has designed
5、a small temperature measurement system, and has written the corresponding procedure code. Using the ultra-low power of the MSP430microcontroller and the 1-WARE interface mode of the DS18B20, the ultra-low power、simple structure、stable performance and practicality of the whole system is realized.Some
6、 primary C430 functions are presented in the IAR Workbench IDE.Key words: temperature detecting system,MSP430F149, DS18B20第1章引言1.1 课题背景温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结(如AD590)之类的模拟传感器,经信号取样电路、放大电路和模数转换电路处理,获取表示温度值的数字信号,
7、再交由微处理器或DSP处理。被测温度信号从敏感元件接收的非电模拟量开始,到转换为微处理器可处理的数字信号之间,设计者须考虑的线路环节较多,相应测温装置中元器件数量难以下降,随之影响产品的可靠性及体积微小化。由此会造成整个检测系统有较大的偏差,稳定性和抗干扰性能都较差。在设计温度检测系统时,通常需要采用电池供电的极低功耗模块。传统的测温手段比较多,但不论是采用分立晶体管、热敏电阻,或者是热电偶,功耗都降不下来,造成诸多不便,因此需要一种超低功耗的温度测量装置。本文设计了一种基于数字温度传感器DS18B20的小型测温系统,主控芯片采用TI公司的MSP430单片机,数字温度传感器通过单总线与单片机连
8、接,系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。1.2 课题简介本文介绍了一种极低功耗测温装置的软硬件设计方案,方案采用了MCU、传感器和LCD显示屏,具有功能完善、节能耐用、结构简单、外形小巧、价格低廉等优点。按照该方案制作的测温装置不但可以达到测量要求,而且可以在使用一枚3V电池供电的情况下,连续工作10年以上而不必更换电池。下面简单介绍下本系统采用的模块的特点:1.MCU温度测量装置的关键是控制器和传感器,本方案采用的MCU是美国XX仪器公司(TI)推出的超低功耗16位混合信号处理器(Mixed Signal Proc
9、essor),具体型号是MSP430F149。其功耗(1.8-3.6V,0.1-400uA,250uA/MIPS)和口线输入漏电流(最大50nA)在业界都是最低的,远低于其他系列产品。2.温度传感器作为温度测量装置的关键部件温度传感器,本方案则采用了DALLAS半导体公司推出的数字化温度传感器DS18B20,该传感器采用单总线协议,无须任何外部元件,直接将温度转化成数字信号。3.显示模块测温系统的显示器模块则采用了信利公司的液晶模块MG-12232,该模块供电电压的典型值为3V,工作电流的典型值为0.3mA,很适合工作电压为3V的低功耗环境。该模块显示X围为122*32点阵,即能实现“双排汉显
10、”。第2章MSP430单片机MSP430系列单片机是美国XX仪器公司推出的16位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用的需求,把许多模拟电路,数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。它具有处理能力强,运行速度快,资源丰富,开发方便等优点,有很高的性价比,在世界各国已经得到了广泛的应用,在国内已经进入了飞速发展的阶段。2.1 MSP430系列单片机的特点MSP430 系列单片机的迅速发展和应用X围的不断扩大,主要取决于以下的特点。强大的处理能力MSP430 系列单片机是一个 16 位的单片机,采
11、用了精简指令集( RISC )结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。在运算速度方面, MSP430 系列单片机能在 8MHz 晶体的驱动下,实现 125ns 的指令周期。 16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。 MSP430 系列单片机的中断
12、源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。超低功耗MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。 首先, MSP430 系列单片机的电源电压采用的是 1.83.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200400uA 左右,时钟关断模式的最低功耗只有 0.1uA 。 其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的系统时钟系统:基本时钟系统和锁频环( FLL 和 FLL+)时钟系统或 DCO 数字振荡器时钟系统。有的使用一
13、个晶体振荡器( 32768Hz ) , 有的使用两个晶体振荡器。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式( AM )和五种低功耗模式( LPM0LPM4 )。在等待方式下,耗电为 0.7uA ,在节电方式下,最低可达 0.1uA 。系统工作稳定上电复位后,首先由 DCOCLK 启动 CPU ,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统
14、时钟频率。如果晶体振荡器在用做 CPU 时钟 MCLK 时发生故障, DCO 会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。丰富的片上外围模块MSP430 系列单片机的各成员都集成了较丰富的片内外设。它们分别是看门狗( WDT )、模拟比较器 A 、定时器 A ( Timer_A )、定时器 B ( Timer_B )、串口 0 、 1 ( USART0 、 1 )、硬件乘法器、液晶驱动器、 10 位 /12 位 ADC 、 I 2 C 总线直接数据存取( DMA )、端口 O ( P0 )、端口 16 ( P1P6 )、基本定时器( Basic Timer )等的一些外围
15、模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器; 16 位定时器( Timer_A 和 Timer_B )具有捕获 / 比较功能,大量的捕获 / 比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,最多达 6*8 条 I/O 口线; P0 、 P1 、 P2 端口能够接收外部上升沿或下降沿的中断输入; 12/14 位硬件 A/D 转换器有较高的转换速率,最高可达 200kbps ,能够满足大多数数据采集应用;能直接驱
16、动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件 I 2 C 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用直接数据传输( DMA )模块。 MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。方便高效的开发环境目前 MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OPT 型和 ROM 型的器件是使用仿真器开发成功之后在烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到
17、FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。MSP430 单片机目前主要以 FLASH 型为主。2.2 MSP430系列的内部结构概述MSP430 系列器件包含 CPU 、程序存储器 (ROM 、 ROM 和 Flash ROM) 、数据存储器 (RAM) 、运行控制、外围模块和振荡器和倍频器等主要功能模块。可以看出, MSP430 内部包含了计算机所有部件,是一个真正的单片机 ( 微控制器 MCU) 。在 16 个寄
18、存器中,程序计数器 PC 、堆栈指针 SP 、状态寄存器 SR 和常数发生器 CGl 、 CG2 这 4 个寄存器有特殊用途。除了 R3/CG2 和 R2/CGl 外,所有寄存器都可作为通用寄存器来用于所有指令操作。常数发生器是为指令执行时提供常数的,而不是用于存储数据的。对 CGl 、 CG2 访问的寻址模式可以区分常数的数据。 外围模块可分为字(16位)模块和字节(8位)模块两种。对大多数外围模块, MAB 通常是16位,MDB 是8位或16位CPUCPU 由一个16位的ALU、 16个寄存器和一套指令控制逻辑组成。在 CPU 内部有一组 16 位数据总线和 16 位的地址总线; CPU
19、运行正交设计、对模块高度透明的精简指令集;PC 、SR 和 SP 配合精简指令组所实现的控制,使应用开发可实现复杂的寻址模式和软件算法。存储器 MSP430 系列采用“冯纽曼结构”。因此, RAM 、ROM 和全部外围模块都位于同一个地址空间内,即用一个公共的空间对全部功能模块进行寻址。支持外部扩展存储器是将来性能增强的目标。特殊功能寄存器及外围模块安排在 000H 1FFH 区域; RAM 和 ROM 共享 0200HFFFFH 区域,数据存储器(RAM)的起始地址是 0200H 。 存储器与CPU及存储器数据总线(MDB),存储器地址总线(MAB)的连接关系如下图:图2-1 CPU与MAB
20、,MDB连接关系(1)程序存储器 MSP430 系列程序存储器的类型有 ROM 、OTP和Flash ROM 三种,ROM 的容量在 1KB 60KB 之间;对于 Flash 型的芯片,内部还集成有两段 128B(共256B)的信息存储器以及 1KB 存放自举程序的自举存储器(BOOT ROM);对代码存储器的访问总是以字形式取得代码,而对数据可以用字或字节方式访问。每次访问需要 16 条数据总线(MDB)和访问当前存储器模块所需的地址总线(MAB);存储器模块由模块允许信号自动选中。最低的 64KB 空间的顶部 16 个字,即 0FFFFH 0FFE0H ,保留存放复位和中断的向量;在程序存
21、储器中还可以存放表格数据,以实现查表处理等应用;程序对程序存储器可以任意读取,但不能写入。 (2) 数据存储器 数据存储器 (RAM) 经两条总线与 CPU 相连,即存储器地址总线 MAB 和存储器数据总线 MDB 数据存储器可以以字或字节宽度集成在片内,其容量在 128B 10KB 之间;所有指令可以对字节或字进行操作。但是对堆栈和 PC 的操作是按字宽度进行的,寻址时必须对准偶地址。运行控制 MSP430 系列微控制器的运行主要受控于存储在特殊寄存器 (SFR) 中的信息。不同 SFR 中的位可以允许中断,以支持取决于中断标志状态的软件以及定义外围模块的工作模式。 禁止外围模块,停止它的功
22、能,可以减少电流消耗,而所有存储在模块寄存器中的数据仍被保留。外围模块的工作模式可以用 SFR 的特定位置来标明。 外围模块 外围模块包括基本定时器(Basic Timer)、16 位定时器 (Timer_A 及 Timer_B) 、ADC 转换器、I/O 端口、异步及同步串行通讯口(USART)以及液晶显示驱动模块等。外围模块经 MAB 、MDB与CPU 相连。 字节(8位)模块的数据总线是8位的,需经总线转换电路与 16 位的 CPU 相连。这些模块的数据交换毫无例外地要用字节指令处理;对字(16 位)模块,其数据总线是 16 位的,无需经过转换而直接与 CPU 的 16 位数据总线相连。
23、模块的操作指令就没有任何限制。图2-2 外围模块与CPU的连接振荡器和时钟发生器 振荡器 LFXT1(LF)是专门为通用的低功耗 32768 Hz 时钟晶振设计的。除了晶体外接外,所有的模拟元件都集成在片内。但是也可以用一个高速的晶振工作,这时需要外接负载电容。 对于 F13X 、F14X 、F15X 和 F16X以及F4XX 系列,片内还有一个可接入高速晶振的 XT2 振荡器。除了晶体振荡器之外,F13X 、F14X 、F15X 和F16X 系列都有一个数字控制 RC 振荡器(DCO),用它实现对振荡器的数字控制和频率调节;对于 F4XX 系列,将晶振频率用一个锁频环电路 (FLL或 FLL
24、) 进行倍频。 FLL或 FLL在上电后以最低频率开始工作,并通过控制一个数控振荡器(DCO) 来调整到适当的频率。供处理器工作的时钟发生器的频率固定在晶振的倍频上,并提供时钟信号 MCLK 。外围模块及 CPU 的时钟源选择非常灵活。可以用以实现各种低功耗模式下的运行。2.3 MSP430单片机的端口介绍MSP430的端口有P1、P2、P3、P4、P5、P6、S和(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实
25、现。端口P1P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。 端口的功能。(1)P1,P2端口:I/O,中断功能,其他片内外设功能如定时器、比较器;2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;(3)S,端口:I/O,驱动液晶。MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。其中P
26、1,P2具有7个寄存器,P3P6具有4个寄存器。通过设置寄存器我们可以实现:(1)每个I/O位独立编程;(2)任意组合输入,输出和中断;(3)P1,P2所有8个位全部可以用作外部中断处理;(4)可以使用所以指令对寄存器操作;(5)可以按字节输入、输出,也可按位进行操作。端口P1,P2的功能可以通过它们的7个控制寄存器来实现。这里,Px代表P1或P2。(1)PxDIR:输入/输出方向寄存器。8位相互独立,可以分别定义8个引脚的输入/输出方向。8位再PUC后都被复位。使用输入/输出功能时,应该先定义端口的方向 。作为输入时只能读,作为输出时,可读可写。0:输入模式;1:输出模式。如:P1DIR|=
27、BIT4; /P1.4输出 ,P2DIR=0XF0; /高4位输出,低4位输入。(2)PXIN:输入寄存器,为只读寄存器。用户不能对它进行写入,只能通过读取其寄存器的内容来知道I/O口的输入信号。所以其引脚的方向要选为输入。如再键盘键盘扫描程序中经常要读取行线或者列线的端口寄存器值来判断案件情况。例如:unsigned char key;P1DIR&=BIT4; /P1.4输入key=P1IN&0X10; /输出端口P1.4的值(3)PXOUT:输出寄存器。该寄存器为I/O端口的输出缓冲寄存器,再读取时输出缓存的内容与引脚方向定义无关。改变方向寄存器的内容,输出缓存的内容不受影响。如:PIOU
28、T|=0X01; /P1.0输出1 , PIOUT&=0X01; /P1.0输出0 。(4)PXIFG:中断标志寄存器。他的8个标志位标志相应引脚是否有中断请求有待处理。0:无中断请求, 1:有中断请求。其中断标志分别为PXIFG.0PXIFG.7。应该注意的是:PXIFG.0PXIFG.7共用一个中断向量,为多源中断。当任一事件引起的中断进行处理时,PXIFG.0PXIFG.7不会自动复位,必须由软件来判断是对哪一个事件,并将相应的标志复位。另外,外部中断事件的时间必须保持不低于1.5倍的MCLK时间,以保证中断请求被接受,且使相应中断标志位置位。(5)PXIES:中断触发沿选择寄存器。如果
29、允许PX口的某个引脚中断,还需定义该引脚的中断触发方式。0:上升沿触发使相应标志置位,1:下降沿触发相应标志置位。如:MOV.B #07H, &P1IES ;p1低3位下降沿触发中断。(6)PXIE:中断使能寄存器。PX口的每一个引脚都有一位用以控制该引脚是否允许中断。0:禁止中断 ,1:允许中断。MOV.B #0E0H, &P2IE ;P2高3位允许中断。(7)PXSEL:功能选择寄存器。P1,P2两端口还具有其他片内外设功能,将这些功能与芯片外的联系通过复用P1,P2引脚的方式来实现。PXSEL用来选择引脚的I/O端口功能与外围模块功能。0:选择引脚为I/O端口,1:选择引脚为外围模块功能
30、。如:P1SEL|=0X10; /P1.4为外围模块功能。端口P3、P4、P5、P6没有中断能力,其余功能同PI,P2。除掉端口P1,P2与中断相关的3个寄存器,端口P3,P4,P5,P6的4个寄存器(用法同P1,P2)分别为PXDIR,PXIN,PXOUT,PXSEL可供用户使用。端口和S,他们实现与液晶片的直接接口。为液晶片的公共端,S为液晶片的段码端。液晶片输出端也可经软件配置为数字输出端口。2.4 MSP430单片机复位电路从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信号POR(Power On Reset)和上电清除信号PUC(Power Up Cl
31、ear)。POR信号是器件的复位信号,此信号只有在以下的事件发生时才会产生:1.器件上电时。2.RST/NMI引脚配置为复位模式,当RST/NMI引脚生产低电平时。当POR信号产生时,必然会产生PUC信号;而PUC信号的产生时不会产生POR信号。会引起产生PUC信号的事件:1.POR信号发生时。2.启动看门狗时,看门狗定时器计满时。3.向看门狗写入错误的安全参数值时。4.向片内FLASH写入错误的安全参数值时。当POR信号或PUC信号发生时引起器件复位后,器件的初始化状态为:RST/NMI引脚配置为复位模式。I/O引脚为输入模式。装态寄存器复位。程序计数器(PC)装入复位向量地址 0xFFFE
32、,CPU从此地址开发始执行。2.5 Msp430单片机时钟模块MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430X11X,MSP430X12X没有)、数字控制振荡器DCO、锁相环FLL(MSP430X16X以上包括)和增强型锁相环FLL 等部件组成。 MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz,高速450Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三种时钟信号 1.ACLK辅助时钟:由LFXT1CLK信号经1、2、4、8分频后得到,可以由软件选作各个外围模块的时钟信号,一般用于低速外设。 2.MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到,MCLK主要用于CPU和系统。 3.SMCLK子系统时钟:可由软件选自LFXT1CLK和DCOCLK(MSP4
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1