MSP430教程13:MSP430单片机比较器A模块

发布者:江上HZ最新更新时间:2020-03-26 来源: eefocus关键字:MSP430  单片机  比较器A模块 手机看文章 扫描二维码
随时随地手机看文章

比较器A模块 
以下图可以看出比较器A的结构大概可以分4部分构成,分别为模拟输入,比较器A核心,低通虑波器,基准电压部分和中断部分组成。


首先,整个比较器A的工作必需由CAON位置为1时才能工作的,此位属CACTL1控制寄存器。单片机上电时此位是为0的,也就是说比较器是不工作的。
以下大概讲述几个部分电路的功能和一些相关信息。

模拟输入电路:
外部模拟引脚信号CA0,CA1(正负端)可以分别由P2CA0,P2CA1位控制开或关。经过软件的设置可以分别与内部的几个基准电压进行比较(0.5VCC,0.25VCC,三极管门值电压)或外部其中的电压进行比较。

应用的硬件比较可以分为以下三种组合:
两个外部引脚输入信号进行比较
其中一个外部引脚信号与内部的0.5VCC或0.25VCC比较
其中一个外部引脚信号与内部基准电压比较

参考电压发生器
参考电压电路是可以由CARSEL,CARERF0,CARERF1位来控制电压的产生。通过软件设置可以选择几种电压输出到比较器的输入中作为比较,当然此参考电压也可以通过单片机的引脚往外部提供参考电压之用。

比较器A核心
比较器CAON位控制开关,CAEX位控制位控制方向。

低通虑波器
低通虑波器只需一个CAF位来控制此虑波器的功能开与关。此虑波器功能是用于消除比较器输出信号的毛剌,以保证信号的质量和中断请求的可靠性。

中断请求
比较器A模块是具有中断功能的,如比较器功能CAIE中断允许开了,在CAIF信号产生时将生产中断(当然GIE要为1时)。比较器A模块是具有中断独立向量的,是一个单独的中断,CUP接受请求后会硬件自动清除中断标志位CAIFG。
        

比较器模块相关寄存器说明
CACTL1 比较器控制寄存器1

   
CAEX: 控制内部比较器A的输入信号和输出信号的方向

CARSEL:控制内部参考电压加到比较器A的正输入端还是负输入端 
由结构图可以看出,CAEX,CARSEL在不同设置时,比较器A输入端的所加的参考电压是有不同的.


请参考以下列表:
----------------------------------- 
CARSEL   CAEX     参考电压接入端
  0        0       内部参考源加到比较器的正端
  0        1       内部参考源加到比较器的负端 
  1        0       内部参考源加到比较器的负端 
  1        1       内部参考源加到比较器的正端

 

CAREF1, CAREF0 选择参考源:
 0 使用外部参考
 1 选择0.25VCC为参考电压
 2 选择0.5VCC为参考电压
 3 选择二极管电压为参考电压,须参见具体IC的资料

 

CAON: 控制比较器A的打开与关闭
 0 关闭比较器工作
 1 打开比较器工作

 

CAIES: 中断边沿触发模式选择
 0 上升沿使中断标志CAIFG置位
 1 下降沿使中断标志CAIFG置位

CAIE:比较器中断允许
 0 禁止中断
 1 允许中断

 

CAIFG: 比较器中断标志
 0 没有中断请求
 1 有中断请求标志信号



CACTL2 比较器控制寄存器2


   
P2CA1:控制输入端CA1
 0 外部引脚信号不与比较器A连接
 1 外部引脚信号与比较器A连接

 

P2CA0:控制输入端CA0
 0 外部引脚信号不与比较器A连接
 1 外部引脚信号与比较器A连接

 

CAF: 选择比较器输出端是否经过RC低通滤波器
 0 开通RC低通滤波器
 1 直通信号

 

CAOUT: 比较器A输出的信号
 0 CA0小于CA1
 1 CA0大于CA1


CAPD 端口禁止寄存器
比较器A模块的输入输出与IO口共用引脚,可以控制IO端口输入缓冲器的通断开关.CAPD控制位初始化为0,则端口输入缓冲器有效.当相应位为1时,端口输入缓冲器无效。

程序范例:
#include
void main (void)
 {
  WDTCTL = WDTPW + WDTHOLD;     // 停止WDT
  CAPD |= 0x08;           // 断开与IO端口输入
  CACTL2 = P2CA0;          // 设置P2.3为+comp
  CCTL0 = CCIE;           // CCR0 允许中断
  TACTL = TASSEL_2 + ID_3 + MC_2;  // SMCLK/8,计数模式
  _EINT();             // 开总中断

 

 while (1) // 循环
 {
  CACTL1 = 0x00;          // 没有参考电压
  _BIS_SR(LPM0_bits);        // 进入LPM0
  CACTL1 = CAREF0 + CAON;      // 0.25*Vcc=P2.3, 比较器开
  _BIS_SR(LPM0_bits);        // 再次进入LPM0
  CACTL1 = CAREF1 + CAON;      // 0.5*Vcc=P2.3, 比较器开
  _BIS_SR(LPM0_bits);        // 再次进入 LPM0
  CACTL1 = CAREF1 + CAREF0 + CAON;  // 0.55V on P2.3,比较器开
  _BIS_SR(LPM0_bits);        // 再次进入LPM0
  }
 }

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
 _BIC_SR_IRQ(LPM0_bits);       //退出LMP0模式
}

关键字:MSP430  单片机  比较器A模块 引用地址:MSP430教程13:MSP430单片机比较器A模块

上一篇:MSP430教程17:MSP430单片机开发总结
下一篇:MSP430教程12:MSP430单片机MSP430定时器

推荐阅读最新更新时间:2024-11-07 22:05

51单片机——LED发光二极管、蜂鸣器C语言入门编程
最近在哔站学完了51单片机,准备复习的时候却发现找不到比较适合自己的一些资料,所以就想自己总结一个适合已入门学者基于51单片机的资料。 接下来将参考江科大的代码风格根据普中51单片机开发攻略在A2开发板编写程序。 LED发光二极管: 长脚为正,短脚为负。由原理图可以知道,LED的正极都接了VCC,我们需要控制的引脚就约等于LED的负极,只需给低电平,LED两端有电压差就会点亮。(低电平点亮) 1.点亮第一个LED:P2_0亮 #include REGX52.H void main() { while(1) { P2_0=0; } } 2.LED闪烁:P2_0以1S为周期
[单片机]
51<font color='red'>单片机</font>——LED发光二极管、蜂鸣器C语言入门编程
基于C8051F920单片机在太阳能充电系统中的设计
在世界能源短缺、环境污染日益严重的今天,如何有效地利用清洁的太阳能正在成为各国可持续发展的能源战略。目前,大部分照明设备仍以传统能源来照明,所以充分利用太阳能作为照明设备的能源供给,在节约能源、保护环境等方面具有重要意义。 为此,设计了具有太阳能供电功能的金卤灯控制器。该控制器既具有金卤灯电子镇流器功能,又具有太阳能充电器功能。该控制器作为电子镇流器,与传统镇流器相比,具有功率因素高,运行稳定,体积小等优点。作为具有太阳能供电功能的控制器,根据设定,控制器白天控制太阳能充电系统对12 V/100 Ah蓄电池充电,晚上使金卤灯工作。由于太阳能光伏板在自然环境下容易受到雷击损坏,所以该控制器在设计时还兼顾了防雷击的保护功能。
[单片机]
基于C8051F920<font color='red'>单片机</font>在太阳能充电系统中的设计
基于单片机的简易电子琴设计
电路代码如下: #include reg51.h #define uint unsigned int #define uchar unsigned char #define output P1 #define input P1 //方便移植在其他电路板上,我的电路使用P1口做键盘输入接口 //定义16个按键 enum KEY{key0,key1,key2,key3,key4,key5,key6,key7,key8,key9,key10,key11,key12,key13,key14,key15}; uchar code table ={ //数组定义,显示数码管 0x3f,
[单片机]
基于<font color='red'>单片机</font>的简易电子琴设计
AVR_M8单片机串口控制应用程序
#include iom8v.h #include macros.h #include Io_define.h unsigned char RX_data ={0}; //串口接收的数据 unsigned char keyb_state=0; unsigned char keyc_state=0; unsigned char RX_counter=0; //串口接收到的字节数计数器 void UART_init (void); void putchar (unsigned char c); void puts (unsigned char *s
[单片机]
采用MSP430F247和TMP275的测温仪设计应用
  TI公司的MSP430单片机以独特的低功耗和模块化设计赢得了设计者的青睐。新型MSP430F247其性价比相当高,该16位单片机处理速度快,超低功耗,能节省很多资源;MSP430F247内置I2C模块,方便了程序编写,大大降低了程序的出错率。同时更多的I/O口可以级联更多的外围器件,而无需使用地址数据锁存器件,既方便了程序的编写,也简化了硬件电路的设计。   温度传感器TMP275可直接输出数字信号,而无需取样、放大、滤波和模数信号的转换,可以直接传输给单片机信号处理系统;而且输出信号分辨率可以达到0.062 5,测温精度±O.5℃,若使用MSP430F247做控制器,可直接与其自带的I2C模块相连,使用方便。   2
[单片机]
采用<font color='red'>MSP430</font>F247和TMP275的测温仪设计应用
基于微控制器的数控DC电流源系统设计
  本设计采用 单片机 作为主要控制部件,通过键盘预置输出电流值并采用液晶模块实时显示。整个系统硬件部分由微控制器模块、电压-电流转换模块、键盘模块、显示模块、直流稳压电源模块和语音提示模块组成。系统结构框图如图1所示。 图1 数控DC电流源系统   微控制器是整个系统的核心,负责整个系统的运作。为了能够做到硬件电路简单,系统性能稳定可靠,便于实现语音播报、键盘设置和信息实时显示等功能的协调,通过多种方案论证后,选用凌阳十六位单片机SPCE061A。该单片机采用现代电子技术——片上系统SOC(system on a chip)技术设计而成,内部集成有 ADC 、DAC、PLL、AGC、DTMF、LCD-DRIVER等电路(
[安防电子]
基于<font color='red'>微控制器</font>的数控DC电流源系统设计
单片机自身的抗干扰措施
  为提高单片机本身的可靠性。近年来单片机的制造商在单片机设计上采取了一系列措施以期提高可靠性。这些技术主要体现在以下几方面。   1.降低外时钟频率   外时钟是高频的噪声源,除能引起对本应用系统的干扰之外,还可能产生对外界的干扰,使电磁兼容检测不能达标。在对系统可靠性要求很高的应用系统中,选用频率低的单片机是降低系统噪声的原则之一。以8051单片机为例,最短指令周期1μs时,外时钟是12MHz。而同样速度的Motorola 单片机系统时钟只需4MHz,更适合用于工控系统。近年来,一些生产8051兼容单片机的厂商也采用了一些新技术,在不牺牲运算速度的前提下将对外时钟的需求降至原来的1/3。而Motorola 单片机在新推出的
[单片机]
STM32单片机的PSAM卡驱动模块设计
引言 刷卡消费随着人们生活水平的提高已经成为常用的支付方式之一。为了保证刷卡消费的安全性,将PSAM卡内嵌于各种终端刷卡设备中。PSAM(Purchase SecureAccess Module,销售点终端安全存取模块),由IC卡发行主管部门或者应用主管机构发行,是可以用于对IC卡进行脱机消费交易认证的安全认证卡,主要应用于商用POS、网点终端、直连终端等设备上,支持多级发卡机制,适用于多应用的环境,符合识别卡、带触点的集成电路卡标准、ISO/IEC 7816—1/2/3/4以及《中国人民银行PSAM卡规范》。 1 PSAM卡简介 PSAM卡是接触式CPU卡的一种。CPU卡也称智能卡,卡内集成电路带有微处理CPU,存储单元
[单片机]
STM32<font color='red'>单片机</font>的PSAM卡驱动<font color='red'>模块</font>设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved