版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于msp430的信号发生器设计目录目录1课程设计任务书2摘要31.概述41.1作品基本情况介绍41.2系统硬件和软件框图42硬件系统设计52.1msp430系列launchpad开发板介绍52.2 方案论证与选择52.3系统原理图设计52.4系统pcb图设计83 程序设计93.1 程序主流程93.2 程序设计93.2.1初始化程序93.2.2主程序103.2.3 按键中断103.2.4波形输出函数154 程序调试与运行结果17结束语18参考文献19附录120完整程序20附录2:29.本科生课程设计成绩评定表29课程设计任务书学生姓名: 专业班级: 自动化 指导教师: 工作单位: 题 目: 基
2、于msp430的信号发生器设计 初始条件:1.运用所学的单片机和c语言等知识;2.用到元件:msp430 launchpad,iar软件,led灯。要求完成的主要任务: 基于msp430单片机设计一款信号发生器,作品采用msp430launch pad结合dac和运算放大器,实现可产生正弦波、三角波、锯齿波的信号发生器。 能产生正弦波,三角波,锯齿波; 能通过按键切换波形; 幅值连续可调,频率按键可调,输出使能控制,led指示; 搭建硬件电路,编制完整的程序并调试; 撰写设计说明书及调试心得。时间安排:1. 1月10日-1月12日 查阅资料及确定方案总体设计2. 1月13日-1月15日 编程3
3、. 1月16日 开始调试程序4. 1月17日 撰写课程设计报告5. 1月18日 正式开始答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日 摘要 信号发生器是电子实验室的基本设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全、性能指标较高,但是价格较贵,且许多功能用不上。本设计介绍一款基于msp430g2452单片机的信号发生器。该信号发生器虽然功能及性能指标赶不上标准信号发生器,但能满足一般的实验要求,且结构简单,成本较低。本次需要完成的任务是以msp430 launchpad的单片机为控制核心、led作为指示、dac模块作为转换与按键电路作为输入构成的一种电子产品。
4、msp430 launchpad单片机为控制核心,能实时的进行控制;按键输入调整输出状态,led灯显示输出波形状态,dac0832将单片机输出的数字信号转化为模拟量,经运放放大后输出。在本次程序设计中充分利用了单片机内部资源,涉及到了led驱动、中断系统、函数调用等。关键字:msp430 launchpad ,按键输入,dac0832,opa071 概述 1.1作品基本情况介绍本作品基于ti的launchpad,选用ti的msp430g2452这款单片机设计了一款信号发生器。作品采用查表原理来实现信号的产生,外围使用一些基本的dac和放大电路,实现了可产生正弦波、三角波、锯齿波的信号发生器。信
5、号发生器的主要技术参数如下:1.频率范围:1hz-1khz2.频率步进间隔:1hz3.输出幅值:8v4.其他:幅度连续可调、频率按键可调、输出使能控制、led指示 1.2 系统硬件和软件框图 1)系统硬件框图 图1 系统硬件框图 2)系统软件框图:main函数波形输出函数按键中断函数图2 系统软件框图2 硬件系统设计2.1 msp430g2系列launchpad开发板介绍ti的msp430g2系列launchpad开发板是一款适用于ti 最新msp430g2xx 系列产品的完整开发解决方案。其基于usb 的集成型仿真器可提供为全系列msp430g2xx 器件开发应用所必需的所有软、硬件。lau
6、nchpad 具有集成的dip插座,可支持多达20 个引脚,从而使msp430 value line器件能够简便地插入launchpad电路板中。此外,其还可提供板上flash 仿真工具,以直接连接至pc 轻松进行编程、调试和评估。此外,它还提供了从msp430g2xx 器件到主机pc 或相连目标板的9600 波特率的uart 串行连接。msp430g2系列launchpad开发板的特性:usb 调试与编程接口无需驱动即可安装使用,且具备高达9600 波特的uart 串行通信速度。支持所有采用pdip14 或pdip20 封装的msp430g2xx 和msp430f20xx 器件。 两个通用数
7、字i/o 引脚分别连接至绿光和红光的led 灯可提供视觉反馈。 两个按钮可实现用户反馈和芯片复位。器件引脚可通过插座引出,既可以方便的用于调试,也可用来添加定制的扩展板。 2.2 方案论证与选择方案一:控制部分由msp430g2452实现,波形产生采用单片压控函数发生器(max038等),可同时产生频率可控可变的正弦波、三角波、方波。优缺点:简单易行,采用专用芯片,系统体积大大减小;但频率步进的步长很难控制,并且整个设计中msp430g2452仅完成简单的控制功能,资源没有充分利用。方案二:由msp430g2452实现对专门的dds芯片(如ad9850)的控制,产生各种波形。优缺点:此方案产生
8、波形的频率稳定度高,易于程控。但dds芯片价格高,系统成本高。方案三:由msp430g2452结合dac0832实现各种波形的产生。优缺点:此方案可以充分利用msp430g2452上的资源,降低系统成本,但是产生波形频率较低。综上,方案三充分利用msp430g2452的资源,外围电路简单、系统成本较低,可以满足信号发生器的要求,所以最终采用方案三。2.3 硬件电路系统设计 系统主控部分采用it的msp430g2452 launchpad开发板;外围电路主要包括dac模块、电源及按键模块。1) dac模块:dac模块主要由dac0832和opa227pa运算放大器组成。dac0832 是8分辨率
9、的d/a转换集成芯片。与微处理器完全兼容。这个da芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。其主要参数如下:* 分辨率为8位;*电流稳定时间1us;* 可单缓冲、双缓冲或直接数字输入;* 只需在满量程下调整其线性度;* 单一电源供电(+5v+15v);* 低功耗,20mw其引脚功能如下:* d0d7:8位数据输入线,ttl电平,有效时间应大于90ns(否则锁存器的数据会出错);* ile:数据锁存允许控制信号输入线,高电平有效;* cs:片选信号输入线(选通数据锁存器),低电平有效;* wr1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
10、由ile、cs、wr1的逻辑组合产生le1,当le1为高电平时,数据锁存器状态随输入数据线变换,le1的负跳变时将输入数据锁存;* xfer:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;* wr2:dac寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由wr2、xfer的逻辑组合产生le2,当le2为高电平时,dac寄存器的输出随寄存器的输入而变化,le2的负跳变时将数据锁存器的内容打入dac寄存器并开始d/a转换。* iout1:电流输出端1,其值随dac寄存器的内容线性变化;* iout2:电流输出端2,其值与iout1值之和为一常数;* rfb:反馈信号
11、输入线,改变rfb端外接电阻值可调整转换满量程精度;* vcc:电源输入端,vcc的范围为+5v+15v;* vref:基准电压输入线,vref的范围为-10v+10v;* agnd:模拟信号地;* dgnd:数字信号地。图3 dac0832引脚图电路原理图如下图所示: 图4.dac模块原理图 2)电源及按键模块:系统共使用了四种电源:12v、-12v、5v、-5v。其中12v和-12v由电源模块产生,5v和-5v由l7805和l7905产生。四个按键功能分别为:信号输出使能、频率+、频率-、信号切换。电源及按键模块电路原理图如下图所示: 图5.电源及按键模块原理图2.4 系统pcb图设计 1
12、)dac及放大模块pcb图如下图所示: 图6. dac模块pcb图2)电源及按键模块pcb图如下图所示:图7. 电源及按键模块pcb图3 程序设计3.1 程序主流程如图8所示为程序主流程图:图8系统主流程框图3.2 程序设计 系统程序主要分为以下几个模块:初始化程序、主程序、输出程序和中断函数。3.2.1初始化程序初始化程序主要完成的引脚的配置 void port_init() /p2.0,p2.5点灯 p2dir|=(bit0+bit5); p2out|=bit0;/初始为sine,点亮相应指示灯 p2out&=(bit5); /四个按键p2.1使能,p2.2波形选择,p2.3频率加,p2.
13、4频率减 p2ies|=0x1e; p2ie|=0x1e; p2ifg|=0x1e; p1dir=0xff; p1out=0xaa; 3.2.2主程序主程序要负责总体程序管理功能,全局变量赋值。int main( void ) wdtctl = wdtpw + wdthold;/关看门狗 waveselect=5; f_out=50; m=0; key=0; k=countf_out; port_init(); /io口初始化 _bis_sr(gie); /开系统中断 while(1) if(key=1) output(); ;3.2.3 按键中断程序主要完成按键的读取,以及相应的输出量赋值。
14、 图9 按键中断流程图#pragma vector = port2_vector_interrupt void p2_isr_keys(void)unsigned int i,keytime1=0,keytime2=0;unsigned char pushkey; pushkey=p2ifg&(bit1+bit2+bit3+bit4); for(i=0;i60000) keytime2+; keytime1=0; if(keytime210) if(f_out=100)f_out+=5; else f_out=1; keytime2=0; if(f_out60000) keytime2+; k
15、eytime1=0; if(keytime210) if(f_out) f_out-=5; keytime2=0; if(f_out) f_out-=1; p2ifg=0; return;3.2.4输出程序根据各参数量,输出相应数字信号 图10 输出函数流程图void output(void) unsigned long j; k=countf_out; if(waveselect=5)/正弦波 p1out=sinm; for(j=0;j100000;j+=k); m+; if(m=255)m=0; if(waveselect=10)/锯齿波 if(m=255) p1out=valuem; f
16、or(j=0;j255) p1out=value510-m; for(j=0;j100000;j+=k); m+; if(m=510)m=0; if(waveselect=15)/三角波 p1out=valuem; for(j=0;j100000;j+=k); m+; if(m=255)m=0; 4程序调试与运行结果烧录程序后,将launchpad重新上电,用示波器观测输出波形,开始时有一个固定电平输出,只有当按下输出允许键后才有输出波形,开始默认输出正弦波,按下波形选择键后表示波形的led灯会亮,且输出为一固定电平,只有当再次按下输出允许键后才会再次有波形输出;按下频率加减键后,输出波形的频
17、率会做出相应变化,但是由于波形效果不太理想,所以无法测出其频率。实测波形如下: 正弦波 锯齿波、 三角波 结束语当我选这个题目的时候,我是想结合电赛的题目,做一下信号类题目的训练,于是就确定了简易波形发生器这个题目。开始时我查阅了很多资料,找了好几套方案,实际也做了三套方案,结果使用max038以及采用单片机模拟dds的方案都没有成功,所以最后才确定使用dac0832,结果实验结果还可以,但是由于时间问题,在波形的频率调节和设定这一块并没有得到完善,波形还好,但是频率调节效果不明显,这也是由于波形的输出和频率调节都是采用数组的方式来实现的,但是由于数组并没有经过精确测量,所以还是有一定的偏差,
18、相信在后面的时间里我会逐渐把系统完善,做到真正准确的频率可调。通过这次课设,感受颇多,不仅停留在成功完成自我满足上,而且还有调试过程中经验的收获,这些对于我来说,都是格外宝贵的。一次经历,一次收获,很多时候,只有经历了,才明白其中滋味,才会找到适合自己的。对于我来说,这也可以看做一次学习,如何面对困难,面对未知,我想这次课设给了我一些,尽管不是全部,但我从中瞧见了自己进步,瞧见了自己学习热情,我想这才是最宝贵,最值得珍惜的。参考文献1 沈建华 杨艳琴主编.msp430系列16位超低功耗单片机原理与实验.北京航空航天大学出版社,2008年7月2 郭天祥主编. 51单片机c语言教程. 电子工业出版
19、社,2009年3 洪利 章扬 李世宝主编,msp430单片机原理与应用实例,北京航空航天大学出版社,2010年7月 4 谭浩强主编.c程序设计(第四版)。清华大学出版社,2010年7月 5 . 2003附录1完整程序*设计者:周晓奇-设计时间:2014年1月12日*/#include const unsigned char sin256=0x80,0x83,0x86,0x89,0x8c,0x8f,0x91,0x94,0x95,0x98,0x9e,0xa1,0xa4,0xa7,0xaa,0xad,0xb0,0xb3,0xb6,0xb9,0xbb,0xbe,0xc1,0xc3,0xc6,0xc9,
20、0xcb,0xce,0xd0,0xd2,0xd5,0xd7,0xd9,0xdb,0xde,0xe0,0xe2,0xe4,0xe6,0xe7,0xe9,0xeb,0xec,0xee,0xf0,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf2,0xf0,0xee,
21、0xec,0xeb,0xea,0xe7,0xe6,0xe4,0xe2,0xe0,0xde,0xdb,0xd9,0xd7,0xd5,0xd2,0xdb,0xce,0xcb,0xc9,0xc6,0xc3,0xc1,0xbe,0xbb,0xb9,0xb6,0xb3,0xb0,0xad,0xaa,0xa7,0xa4,0xa1,0x9e,0x9b,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83,0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5e,0x5b,0x58,0x55,0x52,0x4f,0x4c,
22、0x49,0x46,0x44,0x41,0x3e,0x3c,0x39,0x36,0x34,0x31,0x2f,0x2d,0x2a,0x28,0x26,0x24,0x21,0x1f,0x1d,0x1b,0x19,0x18,0x16,0x14,0x13,0x11,0x0f,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x04,0x03,0x02,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x03,0x04,0x04,0x05,0x06,0x07,
23、0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x0f,0x11,0x13,0x14,0x16,0x18,0x19,0x1b,0x1d,0x1f,0x21,0x24,0x26,0x28,0x2a,0x2d,0x2e,0x31,0x34,0x36,0x39,0x3c,0x3e,0x41,0x44,0x46,0x49,0x4c,0x4f,0x52,0x55,0x58,0x5b,0x5e,0x61,0x64,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x80;const unsigned int count101=0,4,8,12,16,20,24,28,3
24、2,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268,272,276,280,284,288,292,296,300,304,308,312,316,320,324,328,332,336,340,344,34
25、8,352,356,360,364,368,372,376,380,384,388,392,396,400;const unsigned char value256=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x
26、2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x
27、67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0x
28、a3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0x
29、df,0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,;void port_init();void output();unsigned int waveselect,f_out,m,k;unsigned char key;int main( void ) wdtctl = wdtpw + wdthold;/关看门狗 waveselect=5; f_out=50; m=0; key=0; k=countf_out; port_init(); /io口初始化 _bis_sr(gie); /开系统中断 while(1) if(key=1) output(); void port_init() /p2.0,p2.5点灯 p2dir|=(bit0+bit5); p2out|=bit0;/初始为sine,点亮相应指示灯 p2out&=(bit5); /四个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年年幼儿园大班班级工作计划
- 社区民政工作计划集合
- 2024年建筑工程师工作计划范文
- 2024年社区卫生服务中心工作计划范文格式
- 大班年级组学习活动计划
- 2024年工会工作计划表
- 供销社总结和计划
- 2024酒店新年工作计划范本
- 五年级2024班主任工作计划第一学期
- 奶茶店创业计划书模板
- 2025年中国蛋糕行业市场规模及发展前景研究报告(智研咨询发布)
- 东北三省精准教学2024年12月高三联考语文试卷(含答案详解)
- 人教统编版语文七年级上册全册大单元整体教学设计
- 2024年玉林客运从业资格证考试题目
- 结婚婚宴父母答谢词(3篇)
- 2024年度-工程造价培训课件全新
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 2024年甘肃省民航机场集团社会招聘公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 高教版【中职专用】《中国特色社会主义》期末试卷+答案
- 中国历史地理智慧树知到期末考试答案章节答案2024年北京大学
- MOOC 跨文化交际通识通论-扬州大学 中国大学慕课答案
评论
0/150
提交评论