理论教育 ARM嵌入式系统应用举例

ARM嵌入式系统应用举例

时间:2023-11-03 理论教育 版权反馈
【摘要】:虽然LPC2138具有两个标准的32位定时器,但是在某些特定场合,可能仍不能满足实际的需要,此时,如果不需要使用PWM功能,则可以将其作为32位定时器使用。主程序文件main.c如下:图4-25 利用PWM输出占空比可调波形的Proteus仿真电路例4-15 利用PWM实现音乐输出。

ARM嵌入式系统应用举例

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设置

978-7-111-44508-1-Chapter04-129.jpg

2.双边沿PWM设置

978-7-111-44508-1-Chapter04-130.jpg

3.PWM作为定时器

978-7-111-44508-1-Chapter04-131.jpg

4.更新PWM输出频率

978-7-111-44508-1-Chapter04-132.jpg

例4-13 利用PWM作32位定时器。虽然LPC2138具有两个标准的32位定时器,但是在某些特定场合,可能仍不能满足实际的需要,此时,如果不需要使用PWM功能,则可以将其作为32位定时器使用。Proteus仿真电路如图4-24所示。

主程序文件main.c如下:

978-7-111-44508-1-Chapter04-133.jpg

978-7-111-44508-1-Chapter04-134.jpg

图4-24 利用PWM作32位定时器的Proteus仿真电路

978-7-111-44508-1-Chapter04-135.jpg(www.daowen.com)

978-7-111-44508-1-Chapter04-136.jpg

读者可以将本例的代码与前面例4-10(定时器匹配中断方式)的代码进行比较,可以发现,两者有很多相似之处,说明将PWM用作32位定时器的操作和普通定时器操作方法一样。

例4-14 利用PWM输出占空比可调节的方波波形。Proteus仿真电路如图4-25所示,每按一次按键KEY,输出波形的占空比就会发生一次改变。

主程序文件main.c如下:

978-7-111-44508-1-Chapter04-137.jpg

978-7-111-44508-1-Chapter04-138.jpg

图4-25 利用PWM输出占空比可调波形的Proteus仿真电路

978-7-111-44508-1-Chapter04-139.jpg

978-7-111-44508-1-Chapter04-140.jpg

例4-15 利用PWM实现音乐输出。通过改变PWMMR0的值,可以改变PWM输出频率。本例设定PWM输出单边沿PWM方波,控制蜂鸣器发声,改变PWM的频率,蜂鸣器发出不同频率的声音,实现音乐输出。Proteus仿真电路如图4-26所示。

978-7-111-44508-1-Chapter04-141.jpg

图4-26 利用PWM实现音乐输出的Proteus仿真电路

将乐曲简谱和节拍数各自存放于不同数组中,依次从简谱数组中得到相应频率后装入PWMMR0中,然后进行锁存,用以改变PWM输出频率,并从节拍数组中获得相应的延时参数,两者配合得到音乐输出。

乐曲简谱和节拍头文件music.h如下:

978-7-111-44508-1-Chapter04-142.jpg

978-7-111-44508-1-Chapter04-143.jpg

主程序文件main.c如下:

978-7-111-44508-1-Chapter04-144.jpg

978-7-111-44508-1-Chapter04-145.jpg

978-7-111-44508-1-Chapter04-146.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈