表2.1 基本工作模式
SCG1 SCG0 OSCOFF CPUOFF 模式 CPU和时钟状态
0 0 0 0 AM CPU、MCLK、SMCLK、ACLK活动
0 0 0 1 LMP0 CPU、MCLK禁止,SMCLK、ACLK活动
0 1 0 1 LMP1 CPU、MCLK禁止,SMCLK、ACLK活动。在AM模式时若DCO没有用作MCLK或者SMCLK,则DCO的内部直流发生器关闭,DCO禁止
1 0 0 1 LMP2 CPU、MCLK、SMCLK禁止,ACLK活动。DCO内部直流发生器保留,DCO禁止
1 1 0 1 LMP3 CPU、MCLK、SMCLK禁止,ACLK活动。DCO内部直流发生器关闭,DCO禁止
1 1 1 1 LMP4 CPU、MCLK、SMCLK、ACLK禁止。DCO内部直流发生器关闭,DCO禁止。
而中断是MSP430单片机的一大特色,几乎每个外围模块都能产生中断。MSP430可以在没有时间发生时进入低功耗状态,时间发生时,通过中断唤醒CPU,时间处理完毕后,CPU再次进入低功耗状态。由于CPU运算速度和退出低功耗状态速度很快,所以在大部分的应用中,CPU基本都能处于低功耗状态,这是MSP430能够如此省电的重要原因之一。
定义中断的方式有两种: 一种是比较常用的:
Interrupt[中断向量] void 函数名(void)
另外一种编译命令不提供适量选择:
#pragma function=interrupt
Void Timer_ISR()
{
} #pragma function=default
MSP430的中断管理是将同类的中断合并成一个总中断源。根据需要由软件判断标志位来确定。MSP430中还有数百个寄存器,数千个控制位,通过这些寄存器可以配置各个模块的工作方式、状态、连接参数等关系。如:
P1DIR=0xff;//将P1口的I/O性质设置为输出
还可以对寄存器的某位进行操作,如:
P1DIR︱=BIT0;//将P1.0置成高电平
P1DIR︱=~BIT0;//将P1.0置低电平
P1DIR︱=^ BIT0;//将P1.0取反
注意:大部分寄存器在上电复位后会自动清零,初始化后各寄存器标志位的值可以用“︱=”来赋值,一般不会影响到其他标志位的设置,但一定要保证被赋值的若干标志位在赋值之前为0。所以为保证程序的正确性,一般在赋值之前,先给寄存器送0。
2.1.3 小结
总结上述对MSP430单片机的介绍,该系列单片机具有低电压、超低功耗、片内外资源丰富、数据处理能力强大得特点,而且有16个中断源,可以嵌套使用,通过中断将CPU从低功耗模式下唤醒,所以可以编写出实时性很高的程序且实现系统低功耗的要求。而现有的其他单片机如89C51,虽然性能较高,但是它的功耗较大,由于在设计工作中对设备低功耗要求越来越高,故本次设计采用该些列单片机开做温度控制系统的控制芯片。
2.2 DS18B20数字温度传感器
温度控制系统的一个核心内容就是要将需要控制的温度测量出来,变成数字信号,再经过系统的传送转换,最后达到控制的目的。而所测温度的精度将直接影响后续的控制精度,所以整个系统对温度测量器件的要求很重要。结合实际系统对精度的要求以及现场环境对设备的要求,模拟温度信号容易受到干扰产生测量误差,所以就需要采用抗干扰能力强的新型数字温度传感器来解决这个问题。而DS18B20数字温度传感器就符合上述要求。下面将对该数字温度传感器做具体介绍。 MSP430单片机温湿度测控系统试验系统驱动设计(5):http://www.youerw.com/zidonghua/lunwen_8557.html