打印

基于MSP430F449的数字频率计

[复制链接]
2359|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
51xlf|  楼主 | 2014-7-5 00:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
51xlf|  楼主 | 2014-7-5 00:06 | 只看该作者
  主要器件介绍


  MSP430F449单片机


  MSP430F449 采用16位RISC结构,具有丰富的片内外设和大容量的片内工作寄存器和存储器,性能价格比很高。它的特点包括:


  · 超低的功耗:能够在1.8V~ 3.6V的电压下工作;具有工作模式(AM)和5种低功耗模式(LPM)。在低功耗模式下,CPU可以被中断唤醒,响应时间小于6ps。


  · 较强的运算能力:16位的RISC结构,丰富的寻址方式;具有16个中断源,可以任意嵌套;在8MHz时钟驱动下指令周期可达125ns; 内部包含硬件乘法器和大量寄存器,以及多达64KB的Flash程序空间和2KB的RAM,为存储数据和运算提供了保证。


  · 丰富的片上外设:包括看门狗定时器,基本定时器,比较器,16位定时器(TA、TB),串口0、1,液晶显示驱动器,6个8位的I/O端口,12位A

DC (最高采样率200kHz)等。丰富的片上外设可以很方便地构建一个较为完整的系统。另外,充分利用计数器的多路任意波形产生功能和中断控制功能,保证了一些复杂的时序控制任务的完成。


  ·方便高效的开发环境:MSP430F449是Flash型器件,片内有调试接口和电可擦写的Flash存储器,可以先下载程序到Flash内,再在器件内通过软件控制程序的运行,由JTAG接口读取片内信息供设计师调试。这种方式不需要仿真器和编程器,调试十分方便。

使用特权

评论回复
板凳
51xlf|  楼主 | 2014-7-5 00:07 | 只看该作者
  前置分频器SAB6456A

  SAB6456A是专为UHF/VHF设计的前置分频器。内部的MCpin为分频控制端,可对频率范围为70MHz-1GHz的信号进行64/256分频,当MC pin开路时为64分频;当MC pin接地时为256分频。有较高的灵敏度和较强的谐波抑制能力。

  

图2 单片机外围电路

使用特权

评论回复
地板
51xlf|  楼主 | 2014-7-5 00:07 | 只看该作者
  工作原理


  该设计主要分两部分:分频和计数。首先,输入信号限幅后经SAB6456A分频,256分频后的信号再经两片74HC390高速分频器进行1000分频,此时模拟信号变为低频数字信号,频率在10kHz以下;其次,分频后的信号直接接入MSP430F449单片机,利用内部的16位定时器A来定时和计数。该定时器可分为几个部分:计数器部分,捕获/比较寄存器及输出单元。其中,计数器有4种工作模式,3个捕获/比较寄存器。利用计数器的连续计数模式和上升沿捕获模式,在定时器中断中计数N个脉冲信号时间,再除N得到频率。


  硬件设计


  图1为信号的前端处理及分频设计。输出后的信号再经两片SN74HC390分频,SN74HC390是高速分频器件,最高分频频率为50MHz。每片SN74HC390可实现100分频,采用两片串联,可实现对信号的1000分频,经分频后的数字信号频率较低,约4kHz以下,可由单片机直接计数。


  图2为单片机外围电路,包括复位电路,电源电路和单片机工作必须的晶振。晶振有8MHz和32.768kHz两种,8MHz 作为定时器A的计数器输入时钟源;32.768kHz 作为数码管的显示频率。74LS373为D型锁存器,5V单电源供电,因输出电流足够大,也可以直接驱动共阴极LG3631AH型数码管。

使用特权

评论回复
5
51xlf|  楼主 | 2014-7-5 00:07 | 只看该作者
  软件设计


  将分频的输出端OUT接至单片机的频率输入端,程序开始先延时一段时间,待信号稳定。开捕获中断和定时器A,在定时器A 中断中计数N个脉冲,测量结束后得到N个脉冲的时间,然后除N得到脉冲的频率,乘以分频系数得到实际频率并显示,经过短暂延时后重新测量,如此循环测量并显示。


  在测量频率时,为保证精度要关掉LED显示,所以,对于频率较低的信号会发生LED闪烁的情况,解决办法是测量较少个脉冲以减少平均测量时间或减少延时。


  采用动态扫描显示,动态扫描显示的原理是:由P4向各个位轮流输出扫描信号,使每一位瞬间只有一个数码管被选通,然后由P3向该位输入显示的字型码,驱动该位字形段显示字形。这样,在P3送出的码段和P4送出的位段的配合下,使各个数码管轮流显示各自的字形,每位的显示时间要超过1ms,这样人眼就感觉不到闪烁了。

使用特权

评论回复
6
51xlf|  楼主 | 2014-7-5 00:07 | 只看该作者
     测量主程序如下:


  void frequency_measure(void)


  {float tmp,tmp1;


  key_flag=0;//按键标志清0


  P1OUT|=BIT0;


  Delay(1000);file://延时一段时间等待信号稳定


  while(1)


  { IE2&=~0X80; file://关BT,关LED




  firstflag=1;//开始测量第一个脉冲


  TACTL|=TAIE; file://开捕获


  CCTL1|=CCIE;//开timer a


  while (f_ok_flag==0);//等待测量结束


  f_ok_flag=0;


  if (aa1>aa2)


  overflow=overflow-1;


  tmp=aa2-aa1;


  tmp1=40.0/(overflow*0.008191875+(tmp/8000000.0));


  result=tmp1*0.256;


  IE2|=0X80;//开BT,开LED


  yanshi(2,2);//可以修改这里的参数,越大表示延时越长,太小的话LED就会变暗


  CCTL1&=~CCIE;//关捕获


  TACTL&=~TAIE;//关timer a


  return;


  }


  }

使用特权

评论回复
7
51xlf|  楼主 | 2014-7-5 00:08 | 只看该作者
 流程图如图3所示。

  

图3 主程序流程

使用特权

评论回复
8
51xlf|  楼主 | 2014-7-5 00:09 | 只看该作者
结语


 

 本文给出的硬件和软件均经过实践检验,使用该测量仪器所测结果精度较高。该测量仪器价格较低,结构简单,是一种经济型的频率测试仪。

使用特权

评论回复
9
yklstudent| | 2014-7-5 15:26 | 只看该作者
我真佩服这程序

使用特权

评论回复
10
u880| | 2014-7-13 14:18 | 只看该作者
学习了 刚刚接触这里好多地方太头大了

使用特权

评论回复
11
huigoushang| | 2014-7-13 14:25 | 只看该作者
性能价格比很高 值得选择

使用特权

评论回复
12
G21372| | 2014-7-13 14:35 | 只看该作者
具有丰富的片内外设和大容量的片内工作寄存器和存储器

使用特权

评论回复
13
yangguangaisha| | 2014-7-13 15:14 | 只看该作者
给出了一种新颖的、全自动的数显测量射频频率的设计方案

使用特权

评论回复
14
acer4736| | 2014-7-13 15:48 | 只看该作者
结合新型的MSP430F449单片机,给出了一种新颖的、全自动的数显测量射频频率的设计方案

使用特权

评论回复
15
jinpaidianzi| | 2014-7-13 16:04 | 只看该作者
丰富的片上外设:包括看门狗定时器,基本定时器,比较器,16位定时器(TA、TB),串口0、1,液晶显示驱动器,6个8位的I/O端口,12位A

使用特权

评论回复
16
teabottle| | 2014-7-13 17:19 | 只看该作者
本文利用前置分频器SAB6456A和高速数字分频器74HC390的分频功能,结合新型的MSP430F449单片机

使用特权

评论回复
17
waitingf| | 2014-7-14 07:53 | 只看该作者
代码很有用 收藏了

使用特权

评论回复
18
someonewho| | 2014-7-14 08:08 | 只看该作者
多谢楼主分享

使用特权

评论回复
19
justbybing| | 2014-7-14 08:14 | 只看该作者
图片好模糊

使用特权

评论回复
20
specialfrin| | 2014-7-14 08:21 | 只看该作者
貌似图不是很全

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

535

主题

9598

帖子

23

粉丝