MSP430教程13:MSP430单片机比较器A模块比较器A模块以下图.DOC

MSP430教程13:MSP430单片机比较器A模块比较器A模块以下图.DOC

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MSP430教程13:MSP430单片机比较器A模块比较器A模块以下图

MSP430教程13: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 msp430x11x1.h 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=

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档