除此之外。MSP430G2553单片机上的状态寄存器SR能够保存低功耗休眠标志位。倘若在某一工作模块的中断发生之前CPU就已处于休眠状态,那么当中断状态返回时CPU依然会处于休眠状态。如果编程人员试图在返回主程序时唤醒休眠状态,在退出中断前,他能通过软件方式修改堆栈内的值。__low_power_mode-off_on_exit()函数可修改堆栈内状态寄存器SR,这个函数就是MSP430系列单片机研发人员就这一情况特别设计。
只要键入了这一函数,CPU就会在中断之后从休眠状态中唤醒。中断的定义方法有两种:①__interrupt[PORT1_VECTOR]voidPORT1(void),这种方法是较为常见的一种方式
②#pragma function=interrupt
void PORT1()
{
}
##pragma function=default
MSP430G2553的中断管理机制会把相同类别的中断汇总成为一个总中断源,软件会依据需要来判断标志位以确定中断类别是否相同。
2.2 温度传感器DS18B20
2.2.1 DS18B20的介绍
DS18B20是由美国达拉斯(DALLAS)公司旗下的一款温度传感器,其单总线、数字化显示的特点使DS18B20较之于传统的利用热敏电阻测温的温度传感器,该传感器可以直接显示测量温度。根据实际情况,通过编程方式进行9~12位分辨率的温度测量,读数时间随着分辨率的增加而相应地增加。读取数据或写入信息都只经过一条数据传输单线实现,只需要注意数据传输时候的时序就能实现数据命令的有序传输。DS18B20没有额外的电源,同样是依靠单线的供电。因此结构比较简单,操作起来也更加的方便。[2]与此同时,DS18B20“一线总线”以及经济实惠的得天独厚的特点,使它的使用者能够较容易地搭建传感器网络,同时为测量网络的搭建带来了革新的概念。温度传感器的温度测量区间为-55℃到+125℃,温度测量的精度在-10℃到+85℃的区间范围内更趋精准,误差范围不超过正负0.5℃。它的单线技术就起到了一般温度传感器写入、读取、供电三线的作用。抗干扰性的加强是基于该温度传感器本身十六位字节方式传输。基于这点,因此它十分适用于在极端恶劣的环境现场进行温度测量。DS18B20不仅在测温精度、转换时间取得了一定的突破,而且传输距离、都较它的前一款温度传感器DS1820有了长足的进步,给使用者以更为便捷的使用体验。不论是民用还是在工业、军事等领域都可广泛使用。
2.2.2 DS18B20的性能特点
(1)独创单线接口技术:通过一条单线,温度传感器便可以和微处理器建立通讯。
(2)一线起到写入、读取和供电的作用,无需引入任何外置元件。
(3)温度测量范围:-55℃到+125℃。温度测量固定分辨率为0.5℃,当在-10℃到+85℃区间内,能够保证测量的误差不会超过0.5℃,在-55℃到+125℃区间内,测量的误差不会超过2℃。[3]
(4)使用者可以自行设定的报警温度上下限值。 来!自~优尔论-文|网www.youerw.com
(5)可连接若干该温度传感器于一根单线上,支持多点测试。
(6)电源反接时,可以保护DS18B20不因温度过热而损坏。
(7)温度的转换速率高,九位温度的转换只需93.75毫秒。
(8)与多种单片机或系统兼容。
2.2.3 DS18B20的控制方法
温度传感器有两种方式与单片机建立控制。一种是依靠外部电源也是本次课题所用的方法,还有一种则是寄生电源。寄生电源因为没有用到故不做介绍。
依靠外部电源供电:VCC引脚连接电源,GND接地,其I/O端与单片机上的I/O端连接,该连接需要连接五千欧的上拉电阻。