基于msp430的AD9834扫频仪

发布者:DelightfulGaze最新更新时间:2012-08-22 来源: 51hei关键字:msp430  AD9834  扫频仪 手机看文章 扫描二维码
随时随地手机看文章
/*****************************************************
AD9834波形产生程序
*****************************************************/
#include

#define    FSYNCL   P2OUT &=  ~BIT5  
#define    FSYNCH   P2OUT |=   BIT5  
 
#define    SCLKL    P2OUT &= ~BIT6  
#define    SCLKH    P2OUT |=  BIT6  
#define    SDATAL   P2OUT &=  ~BIT7
#define    SDATAH   P2OUT |=   BIT7
double   data=1000 ;
#define FCLK 50
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long
int x;
/**************************
发送控制字
**************************/
void Send_Con(uint Con_word)
{
uchar i;
FSYNCL;
for(i=0;i<16;i++)
{

   if ((Con_word&0x8000)==0x8000)
   {SDATAH;}
     else
        SDATAL ;
    
Con_word<<=1;
SCLKL;
SCLKH;
}
FSYNCH;
}
/****************************************************
初始化函数:
-------------------------------------------------------------------
功能:软件位控制,IOUT正弦波,SIGNBITOUT方波,写FREQREG0,写PHASE0
Send_Con(0x2038)   一次性写FREQREG0
Send_Con(0x0038)   单独改写FREQREG0的LSB
Send_Con(0x1038)   单独改写FREQREG0的MSB
-------------------------------------------------------------------
功能:软件位控制,IOUT三角波写FREQREG0,写PHASE0
Send_Con(0x2002)   一次性写FREQREG0
Send_Con(0x0002)   单独改写FREQREG0的LSB
Send_Con(0x1008)   单独改写FREQREG0的 MSB*************************/

/****************************
发送频率字
****************************/
void Send_Freq(uint Freq_word)
{
uchar i;
FSYNCL;
for(i=0;i<16;i++)
{
if ((Freq_word&0x8000)==0x8000)
   {SDATAH;}
  else
        SDATAL ;
Freq_word<<=1;
SCLKL;
SCLKH;
}
FSYNCH;
}

/*****************************  q
发送相位字
注:根据情况可设定入口参数,设置相位
*****************************/
void Send_Phase()
{
Send_Con(0xC000);   //设置初相位为0
}


/*******************************************************
设置频率值   Freq_value(value)=Freq_data(data)*FCLK/2^28
2^28=268435456=0x10000000
*******************************************************/
void zhengxianbo(ulong Freq_value )
{
ulong value1,value2;
uint LSB_D,MSB_D;
SCLKH;
FSYNCH;
value1= Freq_value;
value2= Freq_value;


LSB_D=(value1%0x4000)+0x4000;  //写FREQ0 REG 的LSB
MSB_D=(value2/0x4000)+0x4000;   //写FREQ0 REG 的MSB

Send_Con(0x2038);    
//DDS初始化设置,IOUT正弦波,SIGNBITOUT方波,一次性写FREQREG0
Send_Freq(LSB_D); 
Send_Freq(MSB_D);
void Send_Phase();

}
void main()
{uint n;
static ulong x=0;
 static ulong Freq_value;
 WDTCTL=WDTPW+WDTHOLD;
 P2DIR=0Xff;
  while(1)
  {
 

 
  for(x=0;x<10;x++)
  {
    if(x==9)
      data=1000;
    else
    data=data+1000*x;
  Freq_value=(ulong)(data*5.3687);
  zhengxianbo(Freq_value);
   for(n=0;n<20000;n++);
  }
  }
}
关键字:msp430  AD9834  扫频仪 引用地址:基于msp430的AD9834扫频仪

上一篇:SPCE061A在传感器测试系统中的应用与设计
下一篇:MSP430在频率测量系统中的应用

推荐阅读最新更新时间:2024-03-16 13:06

MSP430F5529 (六)定时器Timer_A-1
MSP430F5529共有两类共4个定时器,分别是Timer_A定时器3个和Timer_B定时器1个,按照每个寄存器配备的捕获/比较器的个数分别命名为Timer0_A(内有5个捕获比较器)、Timer1_A(3个)、Timer2_A(3个)、Timer0_B(7个)。 这一章,我们讲定时器Timer0_A.(A类的都一样) 注意:下面所提到的所有寄存器,在TA后面插入0或1或2就分别表示Timer0_A、Timer1_A、Timer2_A(我这里省略了数字) 定时器很重要啊! 6.1 简介一下 定时器A是一个复合了捕获/比较寄存器的十六位的定时(加减)计数器。定时器A支持多重捕获/比较,PWM输
[单片机]
<font color='red'>MSP430</font>F5529 (六)定时器Timer_A-1
MSP430学习笔记-USART
Note: Initializing or Re-Configuring the USART Module The required USART initialization/re-configuration process is: 1) Set SWRST (BIS.B #SWRST,&UxCTL) 2) Initialize all USART registers with SWRST = 1 (including UxCTL) 3) Enable USART module via the MEx SFRs (URXEx and/or UTXEx) 4) Clear SWRST via software (BIC.B #SWR
[单片机]
msp430的定时器A 划分几个独立时间间隔
TAIV: #define TAIV_TACCR1 (0x0002) #define TAIV_TACCR2 (0x0004) #define TAIV_TAIFG (0x000A) TIMERA1_VECTOR是一个中断向量,主要处理CCR1,CCR2,以及定时器A溢出的中断标志,而CCR1,CCR2,以及定时器A产生中断是的TAIV是不同的,分别是2,4,10 switch( TAIV ) { case 2: break; case 4: break; case 10: P3OUT ^= BIT4; break; } 这一句的意思是,判断是哪个产生中断的,以
[单片机]
基于MSP430和LcoRE6的无线辐射监控系统设计
目前,在冶金、石油等企业的生产过程中普遍使用大量放射源,由于部分放射源活度较大,有可能对作业人员造成伤害,因此必须对射源周边的辐射剂量进行实时可靠的监控。此外,矿厂的作业现场环境一般比较恶劣且厂区面积较大,所以有线方式监控不能满足现实要求,而无线辐射监控系统则可以很好的进行无缝式区域辐射监控。 1 系统总体方案设计 系统采用模块化设计思想,主要包括高压电路、MSP430F149微处理器、IPORT以太网转串口模块、LcoRE6无线收发模块、上位机监控等部分组成。总体框图如图1所示。 GM计数管是探测辐射射线的常见元件,其管内充以惰性气体和少量有机气体。工作时,两极间加上适当的直流高压,射线粒子射入管内使气体电离,电
[单片机]
基于<font color='red'>MSP430</font>和LcoRE6的无线辐射监控系统设计
MSP430中Timer_A and Timer_B的UART运用
简介:自1996年MSP430十六位单片机问世以来,它的低功耗性能及丰富的片内资源受到各方面的好评,本文针对MSP430F13x及MSP43014X 系列单片机中的定时器进行介绍,利用定时器A(Timer_A)和定时器B(Timer_B)中的捕获比较寄存器来开发多个串行通信口,使十六位单片机在通信领域发挥更大的潜力。 一、 概述 MSP430具有丰富的外围模块,如MSP430F149就包含:12位A/D,精密模拟比较器,硬件乘法器,2组频率可达8MHZ的时钟模块,2个可以实现异步、同步及多址访问的串行通行接口,采用了超低功耗技术,可以进行在线调试与编程,其指令周期可达125ns。MSP430F14X系列目前在市场的售价大约
[单片机]
<font color='red'>MSP430</font>中Timer_A and Timer_B的UART运用
MSP430G2553学习笔记 DAY1 知识储备及设备初始化
寄存器 方向寄存器PxDIR 指定IO口输出/输入,0:input 1:output PxDIR = BIT0; PxDIR = 0x01;//两种形式等价,定义Px.0为输出; 输出寄存器PxOUT 指定IO口输出高电平或低电平 0:low 1:high P1OUT = BIT0;//P1为0xFF; P1OUT |= BIT0;//P1.0为1,P1为0x01; P1OUT &= ~BIT0;//P1.0为0; 输入寄存器PxIN 指定IO口输入状态 0:low 1:high 内部电阻上/下拉控制寄存器PxREN 控制单片机IO口内部电阻上拉或下拉,固定IO口初始状态 P1REN = BIT0;//P1
[单片机]
基于MSP430单片机的CCD相机调光电控系统设计
  1.引言   自我国研制出第一台大型经纬仪以来,摄影一直是电影经纬仪用于对飞行器(导弹,火箭,宇宙飞船)的主要测量记录手段。摄影胶片记录的内容在判读时能否被发现,与目标相对背景的对比度有极重要的关系。调光的目的在于使胶片的曝光量保持在胶片感光特性曲线的直线段所规定的范围之内:      (r为底片反差系数),而不受外界背景亮度变化的影响。以前经纬仪传统的摄影调光是采用变换平衡电桥参数的方法来控制像面照度,检测元件为光敏电阻。为了适应胶片感光度、摄影频率和天空背景亮度等各种摄影条件。就要由操作人员来装定数种不同,并按一定关系排列的背景照度值。每次摄影时,预先用照度计测出天空背景照度值,还要查曝光列表,选择合适的电阻装定在检
[单片机]
基于<font color='red'>MSP430</font>单片机的CCD相机调光电控系统设计
基于MSP430和NRF2401的WSN节点设计
0 引 言 无线传感器网络WSN(wireless sensor network)是一种自组织网络,它由大量低成本、资源有限的传感节点设备组成,节点间协同工作实现某一特定任务。由于无线传感网络所具有的易扩展、自组织、分布式结构和实时性的特点,无线传感网络的应用已经由军事领域扩展到其他许多领域,例如环境监测、气候监测、目标追踪、工业自动化等方面,此外还为未来的远程医疗和空间探索提供了很大的应用空间。 无线传感器网络体系结构如图1所示,通常包括传感器节点、汇聚节点(sinknode)、外部网络和用户界面。大量传感器节点随机部署在感知区域(Sensorfield)内部或附近,能够通过自组织方式构成网络,传感器节点将采集到的数据沿着
[工业控制]
基于<font color='red'>MSP430</font>和NRF2401的WSN节点设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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