查看: 2263|回复: 1

[项目展示] 76+基于MSP430G2452的数字式电容表

[复制链接]
  • TA的每日心情
    开心
    2015-6-14 16:01
  • 签到天数: 87 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2019-12-11 19:58:06 | 显示全部楼层 |阅读模式
    分享到:
    项目概述:
          MSP430G2452是TI公司的低功耗16位微处理器,这款芯片自带2路比较器,非常适合用来制作一款低成本的数字式电容表。


    标题.jpg

                  图1


    设计方案:

       由MSP430G2452片内自带的轨对轨比较器Comparator_A+与外部少量阻容元件组成的RC自激振荡电路,待测电容Cx与Rf决定了振荡器的输出频率,基本不受供电电压影响。当Rf固定不变时,比较器输出端P1.3输出的方波频率与待测电容Cx的容量成反比。通过简单数学运算,就能得到待测电容的容量值(图2)。

    图1.png
                                 图2
    二、项目概述
    1、配置Comparator_A+中断,对脉冲个数进行累加。
    2、配置 MSP430G2452的TIMER0_A1每0.5秒中断1次,读取Comparator_A+脉冲个数。
    公式.png
    就能得到待测电容Cx的值。

    这款低成本自动量程切换的数字电容表的测量范围:
    1.0pf  - 1999.9pf
    2.0nf  - 1999.9nf
    0.2uf  - 2.0uf

    方案实施

    A、硬件资源:

    整机原理图:见图3。
    图3.png
                 图3

      MSP430G2452的P1.1~P1.3为比较器的+输入、-输入和输出引脚,P1.4~P1.5、P2.0~P2.3用来驱动OLED显示屏。大赛提供的MCP16331(U2)将9V层叠电池转换成3.3V VCC供电,这个供电方案省去了9V转5V再转-3.3V的过程,是一个不错的供电方案。P1是测试电容的接线端口,P2是DC9V供电端口。整个PCB板外形紧凑,见图1。
    设置S1为清零按键,开机后按动该键清除残余数据后即可进行测量。

    B、软件资源:

    软件流程很简单,见图4.
    图4.png
                                 图4
    D、开发环境:
    1、  使用IAR MSP430  7.12.1;

    E、主要代码
    Comparator_A中断函数
    1. #pragma vector=COMPARATORA_VECTOR
    2. __interrupt void ComparatorA()
    3. {
    4.    Comp_Count++;
    5.   _BIC_SR_IRQ(LPM0_bits);
    6. }
    复制代码

    Time0A 中断函数

    1. #pragma vector= TIMER0_A1_VECTOR
    2. __interrupt void Timer_A (void)
    3. {
    4.    switch( TA0IV )
    5.   {
    6.     case  2:
    7.       {
    8.         Cap=Comp_Count;
    9.         CCR1 += 35000;
    10.         Flag=0x01;
    11.         Comp_Count=0x00;
    12.         P2OUT ^=BIT4;
    13.         break;                        
    14.       }
    15.     case  4:  break;                       
    16.     case 10:  break;
    17.   }
    18.   
    19.   __bic_SR_register_on_exit(LPM0_bits);
    20. }
    复制代码

    min函数
    1. int main (void)
    2. {WDTCTL = WDTPW + WDTHOLD;  
    3.    OLED_Init();
    4.   TACTL = TASSEL_1 + MC_2 ;
    5.   CCTL1 = CCIE;
    6.   CCR1 = 35000;
    7.   CACTL1 = CAON + CAIE +CAIES;                             
    8.   CACTL2 = P2CA4+CAOUT + P2CA2 +CAF;
    9.   OLED_Clear();
    10.   LCD_Print(16,8,"数字式电容表",TYPE16X16,TYPE8X16);
    11. __bis_SR_register(LPM0_bits + GIE);           
    12.   while (1)                                 
    13.   {Display();} }
    复制代码

    运行结果:
    1u.jpg
    测试1uF

    100n.jpg
    测试100nF
    10n.jpg
    测试10nF


    1000p.jpg
    测试1000pF


    15p.jpg
    测试15pF


    [media=x,500,375][/media]
    视频地址:
    https://v.youku.com/v_show/id_XNDQ2NTY3MzI3Ng==.html

    【项目文档】76+基于MSP430G2452的数字电容表称.rar (1.34 MB, 下载次数: 2)
    封面图.jpg
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-6 12:50 , Processed in 0.119274 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.