单片机产生正弦波 一 要求 采用单片机map430g2553 和运算放大器lmv 358 产生正弦波,周期1 秒
二 思路 可通过单片机产生PWM,调节参数寄存器的值,产生不同占空比的 PWM 信号
若占空比的变化规律是正弦的,则滤波后可得到所需正弦波形
其中,PWM(Pu lse Width Modu lation)控制——脉冲宽度调制技术是通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)
图 1 为用PWM波代替正弦半波的例子
(单片机输出图 1b,滤波后得到图 1a) 图 1 用PWM波代替正弦半波 三 实践 1 PW M 周期计算 正弦波周期1 秒,需要采用多少个周期的PWM 信号去表示
数目过少,则波形不完整(极端状况只有1 个周期的PWM);数目过多,则增加了单片机的计算量,并对速度有要求
这里取N=200 个
则PWM 信号的周期为T=1/200 秒=5 毫秒
2 PW M 参数计算 PWM 由定时器TimerA 产生,参数主要包括:定时器时钟,周期计数,高电平计数三个
定时器时钟:定时器时钟来源有4 个,两个内部的(辅助时钟ACLK、子系统主时钟SMCLK),两个外部的
这里采用内部时钟
没有外部晶体时,ACLK 由内部时钟源VLOCLK(低频时钟源,12K 赫兹)产生,SMCLK 由内部数字时钟DCOCLK(默认1M 赫兹)产生
这里建议采用较高频率的
部分代码如下: BCSCTL1 |= DIVA_0; // ACLK = VLO BCSCTL2 |= SELM_0 + DIVM_0 + DIVS_0; // MCLK = DCO, SMCLK = DCO // Configure TimerA TACTL = TASSEL1 +MC_1; // Source: SMCLK, UP mode 其中,ACLK 可配置成