LPC2138脉宽调制器PWM的基本操作方法如下:
●连接PWM功能引脚输出,即设置PINSEL0、PINSEL1。
●设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟。
●设置比较匹配控制(PWMMCR),并设置相应的比较值(PWMMRx)。
●设置PWM输出方式并允许PWM输出(PWMPCR)及锁存使能控制(PWMLER)。
●设置PWMTCR,启动定时器,使能PWM。
●如果运行过程中需要更改比较值,更改之后要设置锁存使能。
使用双边沿PWM输出时,建议使用PWM2、PWM4、PWM6;使用单边PWM输出时,在PWM周期开始时为高电平,匹配后为低电平,使用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。
1.单边沿PWM设置
2.双边沿PWM设置
3.PWM作为定时器
4.更新PWM输出频率
例4-13 利用PWM作32位定时器。虽然LPC2138具有两个标准的32位定时器,但是在某些特定场合,可能仍不能满足实际的需要,此时,如果不需要使用PWM功能,则可以将其作为32位定时器使用。Proteus仿真电路如图4-24所示。
主程序文件main.c如下:
图4-24 利用PWM作32位定时器的Proteus仿真电路
(www.daowen.com)
读者可以将本例的代码与前面例4-10(定时器匹配中断方式)的代码进行比较,可以发现,两者有很多相似之处,说明将PWM用作32位定时器的操作和普通定时器操作方法一样。
例4-14 利用PWM输出占空比可调节的方波波形。Proteus仿真电路如图4-25所示,每按一次按键KEY,输出波形的占空比就会发生一次改变。
主程序文件main.c如下:
图4-25 利用PWM输出占空比可调波形的Proteus仿真电路
例4-15 利用PWM实现音乐输出。通过改变PWMMR0的值,可以改变PWM输出频率。本例设定PWM输出单边沿PWM方波,控制蜂鸣器发声,改变PWM的频率,蜂鸣器发出不同频率的声音,实现音乐输出。Proteus仿真电路如图4-26所示。
图4-26 利用PWM实现音乐输出的Proteus仿真电路
将乐曲简谱和节拍数各自存放于不同数组中,依次从简谱数组中得到相应频率后装入PWMMR0中,然后进行锁存,用以改变PWM输出频率,并从节拍数组中获得相应的延时参数,两者配合得到音乐输出。
乐曲简谱和节拍头文件music.h如下:
主程序文件main.c如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。