




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...单片机产生正弦波一要求采用单片机map430g2553和运算放大器lmv358产生正弦波,周期1秒。二思路可通过单片机产生PWM,调节参数存放器的值,产生不同占空比的PWM信号。假设占空比的变化规律是正弦的,则滤波后可得到所需正弦波形。其中,PWM〔PulseWidthModulation〕控制——脉冲宽度调制技术是通过对一系列脉冲的宽度进展调制,来等效地获得所需要波形〔含形状和幅值〕。图1为用PWM波代替正弦半波的例子。〔单片机输出图1b,滤波后得到图1a〕图1用PWM波代替正弦半波三实践1PWM周期计算 正弦波周期1秒,需要采用多少个周期的PWM信号去表示数目过少,则波形不完整〔极端状况只有1个周期的PWM〕;数目过多,则增加了单片机的计算量,并对速度有要求。这里取N=200个。 则PWM信号的周期为T=1/200秒=5毫秒。2PWM参数计算PWM由定时器TimerA产生,参数主要包括:定时器时钟,周期计数,高电平计数三个。定时器时钟:定时器时钟来源有4个,两个内部的〔辅助时钟ACLK、子系统主时钟SMCLK〕,两个外部的。这里采用内部时钟。没有外部晶体时,ACLK由内部时钟源VLOCLK〔低频时钟源,12K赫兹〕产生,SMCLK由内部数字时钟DCOCLK〔默认1M赫兹〕产生。这里建议采用较高频率的。局部代码如下:BCSCTL1|=DIVA_0; //ACLK=VLOBCSCTL2|=SELM_0+DIVM_0+DIVS_0;//MCLK=DCO,SMCLK=DCO//ConfigureTimerATACTL=TASSEL1+MC_1;//Source:SMCLK,UPmode其中,ACLK可配置成VLOCLK的1,2,4,8分频,这里设置为1分频,即ACLK=VLO;第二行中,SELM_0的作用是选择MCLK的时钟源为DCOCLK,DIVM_0设置为MCLK=DCO,DIVS_0设置为SMCLK=DCO〔默认时钟源〕。TASSEL1将定时器时钟设置为SMCLK〔假设为TASSEL0则选择ACLK〕,且未分频。模式选择MC_1为上升模式。采用上述方法设置定时器时钟=SMCLK=DCO=1M赫兹。周期计数:上升模式说明定时器由0递增到一个上限值CCR0。CCR0需设置。因为周期T=1/200秒,而定时器时钟=SMCLK=DCO=1M赫兹,定时器周期t=1微秒,所以CCR0=T/t=5000,即5毫秒。高电平计数:定时器由0递增到一个上限值CCR0过程中,需设置脉宽CCR1。并且K=CCR1/CCR0的数值每个周期〔5毫秒〕都变化一次,变化趋势满足正弦变化,200个5毫秒构成一个正弦变化周期。 为获得CCR1值,在matlab中输入:t=0:pi/100:2*pi;k=(sin(t)+1)/2;CCR1=round(4999*k);可获得201个CCR1值。上式中,第一行设置了201个数,均匀分布在0-2pi之间,第一个和最后一个分别对应0弧度和2pi弧度;第二行计算201个正弦值,偏置为0.5,全幅度为1的正弦波幅度,如图2所示:图2偏置为0.5,全幅度为1的正弦波幅度 第三行计算CCR1值,为k与CCR0〔这里是5000〕的乘积,并取了四舍五入〔round函数〕。为将数据导出,便于单片机编程,在matlab中添加:fid=fopen('exp.txt','w');fprintf(fid,'%d,',CCR1);fclose(fid); 则在matlab工作目录中生成了带逗号的连续CCR1值。复制到程序中,定义一个数组temp[200],其数值为matlab生成的数值。3PWM实现流程程序包含两个中断,一个是定时器到达上限CCR0〔这里是4999〕时发出中断,并在中断服务程序中将输出置1,另一个是到达中间值CCR1〔0至4999〕时发出中断,并在中断服务程序中将输出置0。考虑到同时发出中断时,会有中断嵌套问题、以及优先级问题,所以在当CCR1需置为4999时,手动置为4998。软件流程如图3所示。图3软件流程图 程序为://******************************************************************************//LaunchPadLab4-TimerToggleP1.6,////MSP430G2553//-----------------///|\|XIN|-//|||//--|RSTXOUT|-//||//|P1.6|-->LED////******************************************************************************#include<msp430g2553.h>shorttemp[200]={2500,2578,2656,2735,2813,2891,2968,3045,3121,3197,3272,3346,3420, 3492,3564,3634,3704,3772,3839,3904,3969,4031,4093,4152,4211,4267,4322,4374, 4425,4474,4522,4567,4610,4651,4690,4727,4761,4793,4823,4851,4877,4900,4920, 4939,4955,4968,4979,4988,4994,4998,4999,4998,4994,4988,4979,4968,4955,4939, 4920,4900,4877,4851,4823,4793,4761,4727,4690,4651,4610,4567,4522,4474,4425, 4374,4322,4267,4211,4152,4093,4031,3969,3904,3839,3772,3704,3634,3564,3492, 3420,3346,3272,3197,3121,3045,2968,2891,2813,2735,2656,2578,2500,2421,2343, 2264,2186,2108,2031,1954,1878,1802,1727,1653,1579,1507,1435,1365,1295,1227, 1160,1095,1030,968,906,847,788,732,677,625,574,525,477,432,389,348,309,272, 238,206,176,148,122,99,79,60,44,31,20,11,5,1,0,1,5,11,20,31,44,60,79,99,122, 148,176,206,238,272,309,348,389,432,477,525,574,625,677,732,788,847,906,968, 1030,1095,1160,1227,1295,1365,1435,1507,1579,1653,1727,1802,1878,1954,2031, 2108,2186,2264,2343,2421};inti=0;voidmain(void){ WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimerif(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF) {while(1); //Ifcalibrationconstantserased,trapCPU!! } BCSCTL1=CALBC1_1MHZ; //Setrange DCOCTL=CALDCO_1MHZ; //SetDCOstep+modulation BCSCTL3|=LFXT1S_2;//LFXT1=VLO P1DIR=0x40;//P1.6output(greenLED) P1OUT=0;//LEDoff IFG1&=~OFIFG;//ClearOSCFaultflag BCSCTL1|=DIVA_0; //ACLK=VLO BCSCTL2|=SELM_0+DIVM_0+DIVS_0;//MCLK=DCO,SMCLK=DCO//ConfigureTimerA TACTL=TASSEL1+MC_1;//Source:ACLK,UPmodeCCR0=5000; //Timercount5100 CCR1=2500; //Timercount100 CCTL0=CCIE; //CCR0interruptenabled CCTL1=CCIE; //CCR1interruptenabled _BIS_SR(GIE);for(;;);}//TimerA0interruptserviceroutine#pragmavector=TIMER0_A0_VECTOR__interruptvoidTimer_A0(void){ P1OUT|=BIT6;//P1.6outputHighif(i==199) { i=0; }else { i++; }if(temp[i]==4999) { CCR1=4998; }else { CCR1=temp[i]; }}//TimerA1InterruptVector(TA0IV)handler#pragmavector=TIMER0_A1_VECTOR__interruptvoidTimer_A1(void){switch(TA0IV) {case2:P1OUT&=~BIT6;//P1.6outputLowbreak;case10:break;}}4输出滤波 输出运放采用lmv358。其管脚如以下列图4所示:图4358管脚示意图采用压控电压源二阶低通滤波电路。〔参考《模拟电子技术根基》,第三版,童诗白、华成英主编,7.4.2节,352页〕。其电路图如图
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年营养师基础知识考核试卷:营养师营养治疗与康复试题分析
- 2025年美容师(高级)理论知识考核试卷:美容行业国际化与跨文化沟通
- 2025年江西省公务员录用考试面试真题试卷(结构化小组)高分策略
- 2025年西式面点师实操考核试卷(高级)备考技巧分享会
- 终端门店物料管理制度
- 市场评估与管理制度
- 综治目标舆情管理制度
- 科研样品样机管理制度
- 硫铁矿浮选工管理制度
- 税务外部协同管理制度
- 2024年石家庄市市属国有企业招聘笔试真题
- 2025至2030中国汽车租赁行业发展分析及发展战略与市场策略报告
- 2025年烟台市中考地理试卷真题
- 关注老年人心理健康守护幸福 从心开始课件
- 安徽省合肥市名校2025届八年级英语第二学期期末统考试题含答案
- 2024年广东省广州市初中生物会考真题(含答案)
- 2025年电气工程基本知识考试试卷及答案
- 2025年河北省中考麒麟卷生物(一)
- 2025初升高数学衔接教材
- 2025年国家公务员考录《申论》真题及参考答案(行政执法卷)
- 2025年互联网营销专业考试卷及答案
评论
0/150
提交评论