1852|0

1704

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

基于Proteus的MSP430单片机仿真实例19-D/A转换之正弦波发生器 [复制链接]

一、任务要求
利用MSP30F247单片机作为控制器,实现正弦波信号输出,最大值正负5V,频率50Hz。。

二、硬件电路
硬件电路如下图所示。

输出最大值正负5V正弦信号,运放电路采用两级设计,第二级为加法电路,可实现双极性输出。

三、程序设计
//main.c

#include "msp430f247.h"

#include "stdlib.h"

#include "string.h"

/*****************************************软件延时,主频1M*******************/

#define CPU_F1 ((double)1000000)

#define delay_us1M(x) __delay_cycles((long)(CPU_F1*(double)x/1000000.0))

#define delay_ms1M(x) __delay_cycles((long)(CPU_F1*(double)x/1000.0))

/****************************************************************************/

/*****************************************软件延时,主频1M*******************/

#define CPU_F8 ((double)8000000)

#define delay_us8M(x) __delay_cycles((long)(CPU_F8*(double)x/1000000.0))

#define delay_ms8M(x) __delay_cycles((long)(CPU_F8*(double)x/1000.0))

/****************************************************************************/

//128点输出正弦波样本值

char data_Sin[128]={

128,134,140,147,153,159,165,171,177,182,188,193,199,204,209,213,

218,222,226,230,234,237,240,243,245,248,250,251,253,254,254,255,

255,255,254,254,253,251,250,248,245,243,240,237,234,230,226,222,

218,213,209,204,199,193,188,182,177,171,165,159,153,147,140,134,

128,122,116,109,103,97,91,85,79,74,68,63,57,52,47,43,38,34,30,26,

22,19,16,13,11,8,6,5,3,2,2,1,1,1,2,2,3,5,6,8,11,13,16,19,22,26,30,

34,38,43,47,52,57,63,68,74,79,85,91,97,103,109,116,122};

/************************************************

函数名称:主函数

函数功能:D/A转换器应用二:正弦波发生器

入口参数:无

出口参数:无

************************************************/

main()

{

unsigned int i;

WDTCTL = WDTPW + WDTHOLD;//关看门狗

P4DIR=0xff;

while(1)

{

for(i=0;i<128;i++)

{

P4OUT=data_Sin;

delay_us1M(156);

}

}

}

四、程序说明
单片机产生正弦波信号的一般方法是:先建立一张正弦波数据表,单片机按查表方式经D/A输出得到正弦波信号。实例中采用的D/A转换器是8位的,因此正弦波数据表最多有256个值,一般单片机输出64点或128点,经D/A电路后得到的正弦波波形就比较完美了。。

五、仿真结果与分析
在proteus中画好电路图后,双击单片机,将可执行文件装载到单片机内,点击运行,观察虚拟示波器的波形。如下图所示。

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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