基于MSP430单片机的高精度温度测试系统.doc_第1页
基于MSP430单片机的高精度温度测试系统.doc_第2页
基于MSP430单片机的高精度温度测试系统.doc_第3页
基于MSP430单片机的高精度温度测试系统.doc_第4页
基于MSP430单片机的高精度温度测试系统.doc_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要摘 要本文旨在设计一个基于MSP430单片机的高精度的温度测试系统,以应用于实际温度测控。有两个主要要求:1.用LCD做显示器。2.微功耗实现。预期成果是使得该系统测温精度达到0.5,测温范围达到0-100,实现uA级功耗。基于上述要求,论文首先介绍了超低功耗16 位单片机MSP430F149和数字温度传感器DS18B20 的基本特性,内部结构和应用,然后结合液晶显示模块MG-12232,画出了PROTEL电路图,PCB图,设计了一个小型测温系统,并写出了相应的程序代码。利用MSP430 单片机的超低功耗以及DS18B20 的单线接口方式,实现了整个系统的低功耗,结构简单,性能稳定,经济实用。最后基于集成开发环境IAR Workbench 给出了主要的C430函数。关键词:测温系统,MSP430F149, DS18B20IIIAbstractABSTRACTThis 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 two 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 introduced 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 a small temperature measurement system, and has written the corresponding procedure code. Using the ultra-low power of the MSP430 microcontroller 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 primary C430 functions are presented in the IAR Workbench IDE.Key words: temperature detecting system,MSP430F149, DS18B20目录目 录第1章引言11.1 课题背景11.2 课题简介1第2章MSP430单片机32.1 MSP430系列单片机的特点32.2 MSP430系列的内部结构概述52.3 MSP430单片机的端口介绍92.4 MSP430单片机复位电路112.5 Msp430单片机时钟模块112.6 MSP430单片机WDT看门狗定时器142.7 MSP430低功耗结构162.8 MSP430单片机MSP430定时器18第3章数字温度传感器203.1 DS18B20的特性203.2 DS18B20的外形和内部结构213.3 DS18B20工作原理223.4 高速暂存存储器243.5 DS18B20的应用电路26第4章温度测试系统304.1 单片机电路314.2 电源电路和复位电路344.3 单片机与液晶模块的接口设计354.4 MSP430F149单片机与DS18B20的接口设计374.4.1 接口电路设计374.4.2 软件设计384.4.3 DS1820使用中注意事项384.5 系统软件设计39参考文献42致谢43附录一44附录二45附录三57外文资料原文63中文译文68第1章 引 言第1章 引言1.1 课题背景温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结(如AD590)之类的模拟传感器,经信号取样电路、放大电路和模数转换电路处理,获取表示温度值的数字信号,再交由微处理器或DSP处理。被测温度信号从敏感元件接收的非电模拟量开始,到转换为微处理器可处理的数字信号之间,设计者须考虑的线路环节较多,相应测温装置中元器件数量难以下降,随之影响产品的可靠性及体积微小化。由此会造成整个检测系统有较大的偏差,稳定性和抗干扰性能都较差。在设计温度检测系统时,通常需要采用电池供电的极低功耗模块。传统的测温手段比较多,但不论是采用分立晶体管、热敏电阻,或者是热电偶,功耗都降不下来,造成诸多不便,因此需要一种超低功耗的温度测量装置。本文设计了一种基于数字温度传感器DS18B20的小型测温系统,主控芯片采用TI公司的MSP430单片机,数字温度传感器通过单总线与单片机连接,系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,可应用于仓库测温、楼宇空调控制和生产过程监控等领域。1.2 课题简介本文介绍了一种极低功耗测温装置的软硬件设计方案,方案采用了MCU、传感器和LCD显示屏,具有功能完善、节能耐用、结构简单、外形小巧、价格低廉等优点。按照该方案制作的测温装置不但可以达到测量要求,而且可以在使用一枚3V电池供电的情况下,连续工作10年以上而不必更换电池。下面简单介绍下本系统采用的模块的特点:1. MCU温度测量装置的关键是控制器和传感器,本方案采用的MCU是美国德州仪器公司(TI)推出的超低功耗16位混合信号处理器(Mixed Signal Processor),具体型号是MSP430F149。其功耗(1.8-3.6V,0.1-400uA,250uA/MIPS)和口线输入漏电流(最大50nA)在业界都是最低的,远低于其他系列产品。2. 温度传感器作为温度测量装置的关键部件温度传感器,本方案则采用了DALLAS半导体公司推出的数字化温度传感器DS18B20,该传感器采用单总线协议,无须任何外部元件,直接将温度转化成数字信号。3. 显示模块测温系统的显示器模块则采用了信利公司的液晶模块MG-12232,该模块供电电压的典型值为3V,工作电流的典型值为0.3mA,很适合工作电压为3V的低功耗环境。该模块显示范围为122*32点阵,即能实现“双排汉显”。1第2章 MSP430单片机第2章 MSP430单片机MSP430系列单片机是美国德州仪器公司推出的16位超低功耗的混合信号处理器(Mixed Signal Processor)。称之为混合信号处理器,主要是由于其针对实际应用的需求,把许多模拟电路,数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。它具有处理能力强,运行速度快,资源丰富,开发方便等优点,有很高的性价比,在世界各国已经得到了广泛的应用,在国内已经进入了飞速发展的阶段。2.1 MSP430系列单片机的特点MSP430 系列单片机的迅速发展和应用范围的不断扩大,主要取决于以下的特点。l 强大的处理能力MSP430 系列单片机是一个 16 位的单片机,采用了精简指令集( RISC )结构,具有丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。在运算速度方面, MSP430 系列单片机能在 8MHz 晶体的驱动下,实现 125ns 的指令周期。 16 位的数据宽度、 125ns 的指令周期以及多功能的硬件乘法器(能实现乘加)相配合,能实现数字信号处理的某些算法(如 FFT 等)。 MSP430 系列单片机的中断源较多,并且可以任意嵌套,使用时灵活方便。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。l 超低功耗MSP430 单片机之所以有超低的功耗,是因为其在降低芯片的电源电压及灵活而可控的运行时钟方面都有其独到之处。 首先, MSP430 系列单片机的电源电压采用的是 1.83.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200400uA 左右,时钟关断模式的最低功耗只有 0.1uA 。 其次,独特的时钟系统设计。在 MSP430 系列中有两个不同的系统时钟系统:基本时钟系统和锁频环( FLL 和 FLL+)时钟系统或 DCO 数字振荡器时钟系统。有的使用一个晶体振荡器( 32768Hz ) , 有的使用两个晶体振荡器。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。 由于系统运行时打开的功能模块不同,即采用不同的工作模式,芯片的功耗有着显著的不同。在系统中共有一种活动模式( AM )和五种低功耗模式( LPM0LPM4 )。在等待方式下,耗电为 0.7uA ,在节电方式下,最低可达 0.1uA 。l 系统工作稳定上电复位后,首先由 DCOCLK 启动 CPU ,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的起振及稳定时间。然后软件可设置适当的寄存器的控制位来确定最后的系统时钟频率。如果晶体振荡器在用做 CPU 时钟 MCLK 时发生故障, DCO 会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。l 丰富的片上外围模块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 )等的一些外围模块的不同组合。其中,看门狗可以使程序失控时迅速复位;模拟比较器进行模拟电压的比较,配合定时器,可设计出 A/D 转换器; 16 位定时器( Timer_A 和 Timer_B )具有捕获 / 比较功能,大量的捕获 / 比较寄存器,可用于事件计数、时序发生、 PWM 等;有的器件更具有可实现异步、同步及多址访问串行通信接口可方便的实现多机通信等应用;具有较多的 I/O 端口,最多达 6*8 条 I/O 口线; P0 、 P1 、 P2 端口能够接收外部上升沿或下降沿的中断输入; 12/14 位硬件 A/D 转换器有较高的转换速率,最高可达 200kbps ,能够满足大多数数据采集应用;能直接驱动液晶多达 160 段;实现两路的 12 位 D/A 转换;硬件 I 2 C 串行总线接口实现存储器串行扩展;以及为了增加数据传输速度,而采用直接数据传输( DMA )模块。 MSP430 系列单片机的这些片内外设为系统的单片解决方案提供了极大的方便。l 方便高效的开发环境目前 MSP430 系列有 OPT 型、 FLASH 型和 ROM 型三种类型的器件,这些器件的开发手段不同。对于 OPT 型和 ROM 型的器件是使用仿真器开发成功之后在烧写或掩膜芯片;对于 FLASH 型则有十分方便的开发调试环境,因为器件片内有 JTAG 调试接口,还有可电擦写的 FLASH 存储器,因此采用先下载程序到 FLASH 内,再在器件内通过软件控制程序的运行,由 JTAG 接口读取片内信息供设计者调试使用的方法进行开发。这种方式只需要一台 PC 机和一个 JTAG 调试器,而不需要仿真器和编程器。开发语言有汇编语言和 C 语言。MSP430 单片机目前主要以 FLASH 型为主。2.2 MSP430系列的内部结构概述MSP430 系列器件包含 CPU 、程序存储器 (ROM 、 ROM 和 Flash ROM) 、数据存储器 (RAM) 、运行控制、外围模块和振荡器和倍频器等主要功能模块。可以看出, MSP430 内部包含了计算机所有部件,是一个真正的单片机 ( 微控制器 MCU) 。在 16 个寄存器中,程序计数器 PC 、堆栈指针 SP 、状态寄存器 SR 和常数发生器 CGl 、 CG2 这 4 个寄存器有特殊用途。除了 R3/CG2 和 R2/CGl 外,所有寄存器都可作为通用寄存器来用于所有指令操作。常数发生器是为指令执行时提供常数的,而不是用于存储数据的。对 CGl 、 CG2 访问的寻址模式可以区分常数的数据。 外围模块可分为字(16位)模块和字节(8位)模块两种。对大多数外围模块, MAB 通常是16位,MDB 是8位或16位CPU CPU 由一个16位的ALU、 16个寄存器和一套指令控制逻辑组成。 在 CPU 内部有一组 16 位数据总线和 16 位的地址总线; CPU 运行正交设计、对模块高度透明的精简指令集;PC 、SR 和 SP 配合精简指令组所实现的控制,使应用开发可实现复杂的寻址模式和软件算法。存储器 MSP430 系列采用“冯纽曼结构”。因此, RAM 、ROM 和全部外围模块都位于同一个地址空间内,即用一个公共的空间对全部功能模块进行寻址。支持外部扩展存储器是将来性能增强的目标。特殊功能寄存器及外围模块安排在 000H 1FFH 区域; RAM 和 ROM 共享 0200HFFFFH 区域,数据存储器(RAM)的起始地址是 0200H 。 存储器与CPU及存储器数据总线(MDB),存储器地址总线(MAB)的连接关系如下图:图2-1 CPU与MAB,MDB连接关系(1)程序存储器 MSP430 系列程序存储器的类型有 ROM 、OTP和Flash ROM 三种,ROM 的容量在 1KB 60KB 之间;对于 Flash 型的芯片,内部还集成有两段 128B(共256B)的信息存储器以及 1KB 存放自举程序的自举存储器(BOOT ROM);对代码存储器的访问总是以字形式取得代码,而对数据可以用字或字节方式访问。每次访问需要 16 条数据总线(MDB)和访问当前存储器模块所需的地址总线(MAB);存储器模块由模块允许信号自动选中。最低的 64KB 空间的顶部 16 个字,即 0FFFFH 0FFE0H ,保留存放复位和中断的向量;在程序存储器中还可以存放表格数据,以实现查表处理等应用;程序对程序存储器可以任意读取,但不能写入。 (2) 数据存储器 数据存储器 (RAM) 经两条总线与 CPU 相连,即存储器地址总线 MAB 和存储器数据总线 MDB 数据存储器可以以字或字节宽度集成在片内,其容量在 128B 10KB 之间;所有指令可以对字节或字进行操作。但是对堆栈和 PC 的操作是按字宽度进行的,寻址时必须对准偶地址。运行控制 MSP430 系列微控制器的运行主要受控于存储在特殊寄存器 (SFR) 中的信息。不同 SFR 中的位可以允许中断,以支持取决于中断标志状态的软件以及定义外围模块的工作模式。 禁止外围模块,停止它的功能,可以减少电流消耗,而所有存储在模块寄存器中的数据仍被保留。外围模块的工作模式可以用 SFR 的特定位置来标明。 外围模块 外围模块包括基本定时器(Basic Timer)、16 位定时器 (Timer_A 及 Timer_B) 、ADC 转换器、I/O 端口、异步及同步串行通讯口(USART)以及液晶显示驱动模块等。外围模块经 MAB 、MDB与CPU 相连。 字节(8位)模块的数据总线是8位的,需经总线转换电路与 16 位的 CPU 相连。这些模块的数据交换毫无例外地要用字节指令处理;对字(16 位)模块,其数据总线是 16 位的,无需经过转换而直接与 CPU 的 16 位数据总线相连。模块的操作指令就没有任何限制。 图2-2 外围模块与CPU的连接振荡器和时钟发生器 振荡器 LFXT1(LF)是专门为通用的低功耗 32768 Hz 时钟晶振设计的。除了晶体外接外,所有的模拟元件都集成在片内。但是也可以用一个高速的晶振工作,这时需要外接负载电容。 对于 F13X 、F14X 、F15X 和 F16X以及F4XX 系列,片内还有一个可接入高速晶振的 XT2 振荡器。除了晶体振荡器之外,F13X 、F14X 、F15X 和F16X 系列都有一个数字控制 RC 振荡器(DCO),用它实现对振荡器的数字控制和频率调节;对于 F4XX 系列,将晶振频率用一个锁频环电路 (FLL或 FLL) 进行倍频。 FLL或 FLL在上电后以最低频率开始工作,并通过控制一个数控振荡器 (DCO) 来调整到适当的频率。供处理器工作的时钟发生器的频率固定在晶振的倍频上,并提供时钟信号 MCLK 。外围模块及 CPU 的时钟源选择非常灵活。可以用以实现各种低功耗模式下的运行。2.3 MSP430单片机的端口介绍MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。 端口的功能。(1)P1,P2端口:I/O,中断功能,其他片内外设功能如定时器、比较器;2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;(3)S,COM端口:I/O,驱动液晶。MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。其中P1,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|=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端口的输出缓冲寄存器,再读取时输出缓存的内容与引脚方向定义无关。改变方向寄存器的内容,输出缓存的内容不受影响。如:PIOUT|=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:中断触发沿选择寄存器。如果允许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:选择引脚为外围模块功能。如:P1SEL|=0X10; /P1.4为外围模块功能。端口P3、P4、P5、P6没有中断能力,其余功能同PI,P2。除掉端口P1,P2与中断相关的3个寄存器,端口P3,P4,P5,P6的4个寄存器(用法同P1,P2)分别为PXDIR,PXIN,PXOUT,PXSEL可供用户使用。端口COM和S,他们实现与液晶片的直接接口。COM为液晶片的公共端,S为液晶片的段码端。液晶片输出端也可经软件配置为数字输出端口。2.4 MSP430单片机复位电路从上MSP430系统复位电路功能模块图中可以看到了两个复位信号,一个是上电复位信号POR(Power On Reset)和上电清除信号PUC(Power Up Clear)。 POR信号是器件的复位信号,此信号只有在以下的事件发生时才会产生:1. 器件上电时。2. RST/NMI引脚配置为复位模式,当RST/NMI引脚生产低电平时。当POR信号产生时,必然会产生PUC信号;而PUC信号的产生时不会产生POR信号。会引起产生PUC信号的事件:1. POR信号发生时。2. 启动看门狗时,看门狗定时器计满时。3. 向看门狗写入错误的安全参数值时。4. 向片内FLASH写入错误的安全参数值时。当POR信号或PUC信号发生时引起器件复位后,器件的初始化状态为:l RST/NMI引脚配置为复位模式。l I/O引脚为输入模式。l 装态寄存器复位。l 程序计数器(PC)装入复位向量地址 0xFFFE,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(MSP430X11X、MSP430X12X系列,因其不含XT2),或XT2CLK和DCOCLK,然后经1、2、4、8分频得到。SMCLK主要用于高速外围模块。系统频率与系统的工作电压密切相关(MSP430工作电压1.8V3.6V,编程电压2.7V3.6V),所以不同的工作电压,需要选择不同的系统时钟。当两个外部振荡器失效时,DCO振荡器会自动被选作MCLK的时钟源。PUC信号之后,DCOCLK被自动选作MCLK和SMCLK的时钟信号,LFXT1CLK被选作ACLK的时钟信号,根据需要MCLK和SMCLK的时钟源可以另外设置。控制时钟模块的三个寄存器为DCO控制寄存器DCOCTL、基本时钟系统控制寄存器1BCSCTL1、基本时钟控制寄存器2BCSCTL2 1. DCOCTL 表2-1 DCO控制寄存器位定义76543210DCO2DCO1DCO0MOD4MOD3MOD2MOD1MOD0DCO.0DCO.2 定义8种频率之一(DCO=0DCO=8),可分段调节DCOCLK频率,相领两种频率相差10%。 MOD.0MOD.4 定义在32个DCO周期中插入的fdco 1周期个数,而余下的周期为fdco周期,控制切换DCO和DCO 1选择的两种频率,如果DCO常数为7,表示已经选择最高频率,此时不能利用MOD.0MOD.4进行频率调整。 DCOCTL POR后初始值为60H。 3. BCSCTL1 表2-2 基本时钟系统控制器位定义 76543210XT2OFFXTSDIVA1DIVA0XT5VRSEL2RSEL1RSEL0 BCSCTL1初始值为84H XT2OFF 控制XT2的开启和关闭 0 XT2振荡器开启 1 XT2振荡器关闭(默认) XTS 控制LFXT1工作模式 0 低频模式(默认) 1 高频模式 DIVA1、DIVA0 控制ACLK分频 0 0 不分频(默认) 0 1 2分频 1 0 4分频 1 1 8分频 XT5V 此位设置为0 RSEL0RSEL2 三位控制内部电阻以决定标称频率 0 选择最低标称频率 . . 7 选择最高标称频率 4. BCSCLK2 表2-3 基本时钟系统控制寄存器位定义76543210SELM1SELM0DIVM1DIVM0SELSDIVS1DIVS0DCORSELM1 SELM0 选择MCLK时钟源0 0 DCOCLK(默认)0 1 DCOCLK1 0 LFXT1CLK对于MSP430F11/12X,XT2CLK对于MSP430F13/14/15/16X1 1 LFXT1CLKDIVM1 DIVM0 选择MCLK分频0 0 不分频0 1 2分频1 0 4分频1 1 8分频SELS 选择SMCLK时钟源0 DCLK(默认)1 LFXT1CLK对于MSP430F11/12X,XT2CLK对于MSP430F13/14/15/16XDIVS1 DIVS0 选择SMCLK分频0 0 不分频0 1 2分频1 0 4分频1 1 8分频DCOR 选择DCO电阻0 内部电阻1 外部电阻2.6 MSP430单片机WDT看门狗定时器看门狗定时器用来防止程序因供电电源、空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故。程序中设置看门狗清零指令 WDTCTL=WDTPW WDTCNTCL,当程序跑飞不能及时清零看门狗,导致看门狗溢出复位,这样程序可以恢复正常运行状态。 一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在上电和系统复位内容全部清零 1.记数单元WDTCNT:WDTCNT是16位增记数器,由MSP430选定的时钟电路产生的固定周期脉冲信号对记数器进行加法记数。WDTCNT不能直接软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制。 2.控制寄存器WDTCTL:WDTCTL由两部分组成,高8位用作口令,即5AH(头文件中定义为WDTPW),低8位是对WDT操作的控制命令。写入WDT控制命令时先写入口令WDTPW,口令写错将导致系统复位。读WDTCTL时不需口令,低字节WDTCTL的值,高字节读出始终为69H。 表2-4 WDTCTL寄存器各位定义15-876543210口令HOLDNMIESNMITMSELCNTCLSSELIS1IS0IS1 SI0 选择看门狗定时器的定时输出,T为WDTCNT的输入时钟源周期。 TMSEL WDT工作模式选择 0 0 T*2的15次方 0 看门狗模式 0 1 T*2的13次方 1 定时器模式 1 0 T*2的9次方 NMI 选择RST/NMI引脚功能 1 1 T*2的6次方 0 RST/NMI为复位端 SSEL 选择WDTCNT的时钟源 1 RST/NMI为非屏蔽中断输入 0 SMCLK 1 ACLK NMIES 选择NMI中断的边沿触发方式 HOLD 停止看门狗定时器工作 0 上升沿触发NMI中断 0 看门狗功能激活 1 下降沿触发NMI中断 1 时钟禁止输入,记数停止 二、WDT的操作 1.用户通过设置WDTCTL中的TMSEL和HOLD控制位使WDT工作在看门狗模式、定时器模式和低功耗模式三种模式。 a.看门狗模式 (TMSEL=0 ,HOLD=0) 如果记数时间到,就会产生复位和激活系统上电清除信号,系统从上电复位的地址重启动 中断向量为RESET_VECTOR b.定时器模式(TMSEL=1,HOLD=0) 这一模式产生选定时间的周期性中断 中断标志位为WDTIFG 中断向量为 WDT_VECTOR c.低功耗模式(TMSEL=X,HOLD=1) WDTCTL=WDTPW WDTHOLD; 2.7 MSP430低功耗结构当系统时钟发生器基本功能建立之后,CPU内状态寄存器SR的SCG1,SCG0,CPUOFF,OSCOFF位是重要的低功耗控制位。只要任意中断被响应,上述控制位就被压入堆栈保存,中断处理之后,又可恢复先前的工作方式。在中断处理子程序执行期间,通过间接访问堆栈数据,可以操作这些控制位;这样允许程序在中断返回(RETI) 后,以另一种功耗方式继续运行。 各控制位的作用如下: SCG1: 复位,使能SMCLK;置位,禁止SMCLK。 SCG0: 复位,激活直流发生器,只有SCG0置位,并且DCOCLK没有被用作MCLK或SMCLK时,直流发生器才能被禁止。 OSCOFF:复位,激活LFXT1,只有当OSCOFF被置位并且LFXT1CLK不用于MCLK或SMCLK时,FLXT1才能被禁止;当使用晶体振荡器关闭选项OSCOFF时,需要考虑晶体振荡器的启动设置时间 CPUOFF:复位,激活MCLK;置位,关闭MCLK。 控制位SCG1、SCG0、CPUOFF、OSCOFF可由软件配制成六种不同的工作模式: 工作模式 控制位 CPU状态、振荡器及时钟SCG1=0 CPU活动 SCG0=0 MCLK活动 AM CPUOFF=0 SMCLK活动 OSCOFF=0 ACLK活动SCG1=0 CPU禁止 LPM0 SCG0=0 MCLK禁止 OSCOFF=0 SMCLK活动 CPUOFF=1 ACLK活动SCG1=0 CPU禁止 MCLK禁止 LPM1 SCG0=1 如果DCOCLK位用作MCLK或SMCLK,则直流发生器禁止,否则,仍然活动 OSCOFF=0 SMCLK活动 CPUOFF=1 ACLK活动SCG1=1 CPU禁止 如果DCO未被用作MCLK或SMCLK,自动禁止 SCG0=0 MCLK禁止 LPM2 OSCOFF=0 SMCLK禁止 CPUOFF=1 ACLK活动SCG1=1 CPU禁止 DCO被禁止,直流发生器被禁止 SCG0=1 MCLK禁止 LPM3 OSCOFF=0 SMCLK禁止 CPUOFF=1 ACLK活动SCG1=1 CPU禁止 SCG0=1 DCO被禁止,直流发生器被禁止 LPM4 OSCOFF=1 所有振荡器停止工作 MCLK、SMCLK禁止 CPUOFF=1 ACLK禁止低功耗的设计技巧问题1.LPM4:在振荡器关闭模式期间,处理机的所有部件工作停止,此时的电流消耗最小。此时只有在系统上电电路检测到低点电平或任一请求异步响应中断的外部中断事件时才会从新工作。因此在设计应含有可能需要用到的外部中断才采用这种模式,否则发生不可预料的结果。2.LPM3:在DC发生关闭期间,只有晶振是活动的。但此时设置基本时序条件的DC发生器的DC电流被关闭。由于此电路的高阻设计,使功耗被抑制。当从DC关闭到启动DC需要一段时间(nsus)3.LPM2:在此期间晶振和DC发生器是工作的,所以可以实现快速启动4.LPM1:在此期间振荡器已经工作,所以不存在启动延时问题_BIS_SR(LPM3_bits) _BIC_SR_IRQ(LPM3_bits)LPM3 LPM3_EXIT系统响应中断过程: 1.硬件自动中断服务 a.PC入栈 b.SR入栈 c.中断向量赋给PC d.GIE、SCG1、CPOOFF和OSCOFF清楚 e.IFG标志位清除(单源中断标志比如WDTIFG) 2.执行中断处理子程序 3.执行RETI指令 4.SR出栈 5.PC出栈 2.8 MSP430单片机MSP430定时器在MSP430系列单片机中带有功能强大的定时器资源,这定时器在单片机应用系统中起到重要的作用。利用MSP430(以下称为430)单片机的定时器可以用来实现计时,延时,信号频率测量,信号触发检测,脉冲脉宽信号测量,PWM信号发生。另外通过软件编写可以用作串口的波特率发生器。后面我们将用定时器A作为一个波特率发生器,来编写一个串口例程给初学者参考。以加强初学者对定时器A的理解和应用。 在430的大系列产品中,不同的子系列产品定时器资源有所不同;在F11X,F11X1中是不带定时器B资源的。430的定时器主要分为3部分模块:看门狗定时器,定时器A,定时器B。定时器A主要资源特点有16位定时计数器,其计数模式有4种。多种计数时钟信号供选择。3个可配置输入的捕获/比较功能寄存器和8种输出模式的3个可配置输出单片。以上各块定时器资源可作多种组合使用,以实现强大的功能。定时器资源功能说明(1)看门狗定时器(WDT):主要用于程序在生错误时用作单片机系统复位重起的。另外,也可作为一个基本定时器使用。(2)定时器A:作基本定时器使用,结合捕获/比较功能模块可实现时序控制,可编程波形信号发生输出。可作串口波特率发生器使用。(3)定时器B:作基本定时器使用,与定时器A基本相同,但是功能方面有某些功能会比A增强些。 33第3章 数字温度传感器第3章 数字温度传感器美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。目前DS18B20批量采购价格仅10元左右。在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。 新的一线器件DS18B20体积更小、适用电压更宽、更经济。DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的! DS18B20支持一线总线接口,测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。3.1 DS18B20的特性 (1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温 (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 (5)温范围55125,在-10+85时精度为0.5 (6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快 (8)测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。3.2 DS18B20的外形和内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图1: 图3-1 DS18B20外形DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地) 图3-2 DS18B20内部结构图 3.3 DS18B20工作原理DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图3-3 DS18B20测温原理框图DS18B20有4个主要的数据部件: (1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 (2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。 表3-1 DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论