求一个STC单片机的PWM单片机方波发生器频率占空比可调调程序

89C51芯片没有自带PWM发生器如果要用51來产生PWM波就必须要用软件编程的方法来模拟。方法大概可以分为软件延时和定时器产生两种方法下面将逐一介绍。

利用软件延时函数控制电平持续的时间,达到模拟pwm的效果

proteus软件仿真结果如下:

可见,用这种延时函数的方法就能简单地模拟出pwm输出但是这种方法的缺点吔相当明显。当程序除了要输出pwm波还要执行其他操作比如键盘扫描、显示等操作时需要占用CPU一定的机器周期,这样就会影响pwm的准确度現在很少会用到这种方法,接下来要介绍的是比较常用的方法

这种方法利用了定时器溢出中断,在中断服务程序改变电平的高低在程序较复杂、多操作时仍能输出较准确的pwm波形。

  这个题目的要求是用msp430f149模拟一个信號发生器信号发生器的频率在100-1000hz,通过按键可以实现每次加减100hz另外加入串口通信,还可以通过pc机发送来的数值将频率调整为相应的频率值。

  信号的产生用到的是timerA 来产生pwm波通过控制周期从而达到控制频率的目的。

有错误的话还请路过的大佬们指正。

我要回帖

更多关于 单片机方波发生器频率占空比可调 的文章

 

随机推荐