比较器A是一个实现模拟电压比较的外围模块,广泛应用于工业仪表,手持式仪表等产品中,可以实现多咱测量功能,如测量电流,电压,电阻,电容监测以及外部模拟信号,也可结合其他模块实现精确的A/D转换功能。MSP430系列单片机大多数系列中都含有比较器A .
比较器A具有中断能力,比较器A响应中断的条件为
1:比较器A模块有比较结果输出;
2:CAIES选择比较器输出的上升沿或下降沿使中断标志CAIFG置位;
3:比较器A中断允许,系统总中断允许。
中断响应后,因为比较器A具有独立的中断向量,硬件会自动清除中断标志CAIFG。
如下例
利用比较器A的中断,实现当输入P2.3的高电压高于0.5Vcc时,使P1.2置位;当P2.3的电压低于0.5Vcc时,使P1.2复位。
# include"MSP430x14x.h"
void main(void)
{
WDTCTL=WDTPW + WDTHOLD; //停止看门狗
P2SELl |=0x08; //P2.3设置为比较器输入CA1
P1DLR |=0x04; //p1.2设置为输出
P10UT&=~0x04; //p1.2输出低电平
CACTL1=CARSEL+CAEX+CAREE1+CAON;//0.5Vcc加到正端,打开比较器
CACTL2=P2CA1; //P2.3加到比较器负端
while(1)
{
if((CAOUT&CACTL2)<>CAOUT) //检查输出,若为0,则p1.2输出高电平否
//输出低电平
{
P1OUT|=0x40;
}else
{
P1OUT&=~0x40;
}
}
} |