2014北京市电子设计大赛一等奖.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2014北京市电子设计大赛一等奖

我今年刚参加的,一等奖: 电路仿真图在后面: 竞赛中只发了1个放大器芯片,双通道。所以滤波方面,我没使用放大器。鉴于我的脉冲波是固定1000HZ,所以我采用三阶RC滤波,也可采用四阶,五阶,阶数越多,滤波效果越好,但功耗,压降越大。应适当选择,我选三阶,效果亦不错。 滤波后直接采用同相比例放大器,简单易懂。利用放大器,还有程序占空比调节1V-3V-5V。 选用RC滤波器应注意 R*C=1/1000.根据实际情况寻找电阻,竞赛场那不是多大的电阻都提供,特抠。 PWM程序: 为便于滤波,我采用固定1000HZ频率,调节占空比即可改变滤波后直流电压的大小。 #include msp430g2553.h #include TA_PWM.h int i=0,k=0; void main(void) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; // Set DCO to 1MHz DCOCTL = CALDCO_1MHZ;; TA1_PWM_Init(S,1,F,0); TA1_PWM_SetPeriod(1000); // TA1CCR1=500; CCTL1 = CCIE; CCTL0 = CCIE; // CCR0 interrupt enabled CCR0 = 1000; CCR2=900; TACTL = TASSEL_2 + MC_1; //P2.1波形输出 _EINT(); while(1); } #pragma vector=TIMER0_A0_VECTOR __interrupt void Timer0_A0 (void)//1.0shu { i++; if(i=10000) { i=0; k++; if(k=3)k=0; } } #pragma vector=TIMER0_A1_VECTOR __interrupt void Timer0_A1(void) { if(k==0) TA1CCR1=91;//三个占空比 if(k==1) TA1CCR1=281; if(k==2) TA1CCR1=470; } 电路仿真图: /*需要调用的C文件 * TA_PWM.c * * Created on: 2013-2-9 * Author: Administrator */ #include msp430g2553.h #define DEADTIME 0 //预设死区时间,以TA的clk为单位 /*******设定TA输出IO口,目前设定为MSP430G2553,20Pin封装无TA0.2********/ #define TA01_SET P1SEL |= BIT2; P1DIR |= BIT2 //P1.6 #define TA02_SET P3SEL |= BIT0; P3DIR |= BIT0 //P3.0 #define TA11_SET P2SEL |= BIT1; P2DIR |= BIT1 //P2.1 #define TA12_SET P2SEL |= BIT4; P2DIR |= BIT4 //P2.4 #define TA01_OFF P1SEL= ~BIT6; //P1.6 #define TA02_OFF P3SEL = ~BIT0; //P3.0 #define TA11_OFF P2SEL = ~BIT1; //P2.1 #define TA12_OFF P2SEL = ~BIT4; //P2.4 /**************************************************************************** * 名 称:TA0_PWM_Init() * 功 能:TA0定时器作为PWM发生器的初始化设置函数 * 入口参数:Clk:时钟源 S=SMCLK; A=ACLK ; E=TACLK(外部输入); e= TACLK(TACLK取反) Div:时钟分频系数: 1/2/4/8 Mode1:通道1的输出模式 F设为超前PWM(模式7),B滞后PWM(模式3) ,D带死区增PWM(模式6),0=禁用 Mode2

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档