ARM报告PWM.doc_第1页
ARM报告PWM.doc_第2页
ARM报告PWM.doc_第3页
ARM报告PWM.doc_第4页
ARM报告PWM.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

龙 岩 学 院实 验 报 告班 级07电本一班 学号2007050326 姓 名 刘桂银 同组人 实验日期2010.5.6 室温 大气压 成 绩 实验题目: PWM音乐输出一、实验目的1、复习GPIO的管脚功能及蜂鸣器电路蜂鸣的工作原理。2、掌握PWM模块的基本原理及应用。3、了解简谱和频率的关系4、锻炼学生自己的设计、创造和综合性。二、实验仪器微型电子计算机(含软件H-JTAG V0.3.1和ADSv1_2)、Easy ARM2131开发板、UART0接口线、USB接口电源线和JTAG接口线以及部分跳线。三、实验原理(1)蜂鸣器控制电路在EasyARM2131开发板上,接有一个蜂鸣器,由P0.7控制,通过跳线JP11选择连接。蜂鸣器控制电路如图一所示。 图一 蜂鸣器控制电路电路说明:如果跳线JP11选择蜂鸣器,当P0.7输出低电平时,蜂鸣器鸣叫,当P0.7输出高电平则停止鸣叫。 实验利用P0.7的输出功能,控制蜂鸣器鸣叫。程序设置PINSEL0使P0.7连接GPIO,并通过IO0DIR将其设置为输出状态,然后通过IO0CLR和IO0SET清零和置位P0.7口,控制蜂鸣器。LPC2131中,具有I2C总线功能的I/O口(P0.2SCL、P0.3SDA0;P0.11SCL1、P0.14SDA1)为开漏输出,在用作I2C总线以及其它功能时,需要加1K10K的上拉电阻。则此电路图在JP11前,加R22=10K的上拉电阻。 2、概述 LPC2131的脉宽调制器PWM建立在标准定时器0/1之上。应用在PWM和匹配功能当中进行选择。PWM基于标准的定时器模块并具有其所有特性;PWM可独立控制上升沿和下降沿的的位置,这样是它能够应用于更多的领域;2个匹配寄存器可用于单边沿控制PWM输出。3个匹配寄存器共同控制一个双边沿PWM输出。3、特性脉宽调制器的特性如下:(1)7个匹配寄存器,可实现6个单边沿控制或3个双边沿控制PWM输出,或这两种类型的混合输出:-连续操作,可选择在匹配时产生中断;-匹配时停止定时器,可选择产生中断;-匹配时复位定时器,可选择产生中断。(2)每个匹配寄存器对应一个外部输出,具有下列特性:-匹配时设置为低电平;-匹配时设置为高电平;-匹配时翻转;-匹配时无动作。(3)支持单边沿控制和/或双边沿控制的PWM输出。(4)脉冲周期和宽度可以是任何的定时器计数值。(5)双边沿控制的PWM输出可编程位正脉冲或负脉冲。(6)匹配寄存器更新与脉冲输出同步,防止产生错误的脉冲。软件必须在心的匹配值生效之前将它们释放。(7)如果不能使能PWM模式,可作为一个标准定时器。(8)带可编程32位预分频器的32位定时器/计数器。(9)当输入信号跳变时,4个捕获寄存器可取得定时器的瞬时值,也可以选择是捕获事件产生中断。4、结构图(A)所示为PWM的方框图。在标准定时器模块上增加的部分位于图的右边和顶端。图(A)的PWM输出逻辑允许通过PWMSELn(在PWM控制寄存器PWMPCR中)位选择单边沿或者双边沿控制的PWM输出。 图(A) PWM方框图5、基本操作 LPC2131微控制器的PWM功能是建立在标准的定时器之上的,它同样拥有32位定时器及预分频控制电路和7个匹配寄存器,可实现6个单边沿PWM或3个双边PWM输出,也可采用者两种类型的混合输出。它具有匹配中断,匹配PWMTC复位和匹配PWMTC停止功能,如果不使能PWM模式,可作为一个标准的定时器。PWM的基本寄存器功能框图如图4.103所示。如图4.103所示,32位定时器计数器PWMTC的计数频率由pclk经过PWMPR进行预分频控制得到,而定时器的启动/停止、计数复位由PWMTCR控制。当有比较匹配事件发生时,PWMIR会设置相关中断标志(因为不是定时器溢出而产生中断,所以上图采用虚线连接)。若已打开中断允许(VIC),则会产生中断。当然,预分频寄存器PWMPR只是控制分频数,而其对应的预分频计数器是PWMPC,但用户不需要操作PWMPC。6、 寄存器描述 外部中断具有 4 个相关的寄存器,如 表 (一) 所示。EXTINT寄存器包含中断标志, EXTWAKEUP寄存器包含使能唤醒位,可使能独立的外部中断输入将处理器从掉电模式唤 醒,EXTMODE和EXTPOLAR寄存器用来指定管脚使用电平或边沿激活方式。 表 (一)外部中断寄存器(1)、 外部中断标志寄存器External Interrupt Flag Register(EXTINT - 0xE01FC140) 当一个管脚选择使用外部中断功能时,对应在 EXTPOLAR 和 EXTMODE 寄存器中的 位选择的电平或边沿将置位 EXTINT 寄存器中的中断标志,向 VIC 提出中断请求,如果管 脚中断使能,将会产生中断。 向 EXTINT 寄存器的位 EINT0位 EINT3 写入 1 可清除相应的外部中断标志。在电平 激活方式下,只有在该管脚处于无效状态时才能清除相应的中断标志。 一旦 EINT0EINT3 中的一位被置位并开始执行相应的代码(处理唤醒和/或外部中 断),必须将该位清零,否则以后该 EINT 管脚所触发的事件将不能再被识别。 例如,如果外部中断 0 管脚的低电平将系统从掉电模式唤醒,为了将来还能进入掉电模 式,唤醒后的程序必须将 EINT0 位复位。如果 EINT0 位仍保持置位状态,后来的唤醒掉电模式的任何操作都将失败,外部中断也不例外。外部中断标志寄存器的位功能描述见 表 (二)。 表 (二) 外部中断标志寄存器 (2)、 外部中断方式寄存器External Interrupt Mode Register (EXTMODE - 0xE01FC148) EXTMODE寄存器中的位用来选择每个EINT脚是电平触发还是边沿触发。只有选择用 作EINT功能(通过管脚连接模块)并已通过VICIntEnable(向量中断使能寄存器)使能的管 脚才能产生外部中断(当然,如果管脚选择用作其它功能,则可能产生其它功能的中断)。 外部中断方式寄存器的位功能描述见 表(三)。 注:当某个中断在 VICIntEnable 中被禁能时,软件应该只改变 EXTMODE 寄存器中相 应位的值。中断重新使能前,软件向 EXTINT 写入 1 来清除 EXTINT 位,EXTINT 位可通 过改变激活方式来置位。 表(三) 外部中断方式寄存器 四、 实验程序1.实验程序#includeconfig.h#includemusic.h#defineBEEP10;dly-)for(i=0;i0x50000;i+);/nsaFFFF/音乐函数1voidMUSIC_1(uint32cnt)uint32j;PINSEL0=0x0214;/P0.7选择PWM2功能/*PWM初始化*/PWMPR=0x00;/不分频,计数频率为FpclkPWMMCR=0x02;/设置PWMMR0匹配时复位PWMTCPWMPCR=0x0400;/允许PWM2输出,单边PWMPWMMR0=Fpclk/1000;PWMMR2=PWMMR0/2;/50%占空比PWMLER=0x05;/PWM0和PWM2匹配锁存PWMTCR=0x02;/复位PWMTCPWMTCR=0x09;/*启动PWM输出*/for(j=0;jcnt;j+)PWMMR0=Fpclk/HCMMj;/设置输出频率PWMLER=0x05;/更新匹配值后,必须锁存Delay(HCMM_Lj);/延时,控制播放速度PINSEL0=0x00;IO0DIR=17;IO0SET=17;/音乐函数2voidMUSIC_2(uint32cnt)uint32j;PINSEL0=0x0214;/P0.7选择PWM2功能/*PWM初始化*/PWMPR=0x00;/不分频,计数频率为FpclkPWMMCR=0x02;/设置PWMMR0匹配时复位PWMTCPWMPCR=0x0400;/允许PWM2输出,单边PWMPWMMR0=Fpclk/1000;PWMMR2=PWMMR0/2;/50%占空比PWMLER=0x05;/PWM0和PWM2匹配锁存PWMTCR=0x02;/复位PWMTCPWMTCR=0x09;/*启动PWM输出*/for(j=0;jcnt;j+)PWMMR0=Fpclk/HCMM1j;/设置输出频率PWMLER=0x05;/更新匹配值后,必须锁存Delay(HCMM_L1j);/延时,控制播放速度PINSEL0=0x00;IO0DIR=17;IO0SET=17;/*函数名称:IRQ_Eint0()*函数功能:外部中断0EINT0服务程序口。*入口参数:无。*出口擦数:无。*/void_irqIRQ_Eint0(void)MUSIC_1(15);/播放歌曲/*等待外部中断信号恢复为高电平若信号保持为低电平,中断标志会一直置位。*/while(EXTINT&0x01)!=0)EXTINT=0x01;/*清除EINT0中断标志*/VICVectAddr=0;/*向量中断结束*/*函数名称:IRQ_Eint1()*函数功能:外部中断1EINT1服务程序口。*入口参数:无。*出口擦数:无。*/void_irqIRQ_Eint3(void)MUSIC_2(20);/播放歌曲/*等待外部中断信号恢复为高电平若信号保持为低电平,中断标志会一直置位。*/while(EXTINT&0x08)!=0)EXTINT=0x08;/*清除EINT3中断标志*/VICVectAddr=0;/*向量中断结束*/intmain(void)PINSEL0=0x00;PINSEL1=0x00000301;/*设置管脚连接,P0.16为EINT0*/IO0DIR=BEEP;EXTMODE=0x00;/*设置EINT0EINT1为电平触发*/*极性寄存器使用默认值0*/IRQEnable();/使能IRQ中断/*打开EINT0EINT1中断(使用向量中断)*/VICIntSelect=0x00000000;/*设置所有中断分配为IRQ中断*/VICVectCntl0=0x20|14;/*分配外部中断0到向量中断0*/VICVectAddr0=(uint32)IRQ_Eint0;/*设置中断服务程序地址*/ VICVectCntl1=0x20|17; /*分配外部中断3到向量中断1*/VICVectAddr1=(uint32)IRQ_Eint3; /*设置中断服务程序地址*/EXTINT=0x09;/*清除EINT0EINT3中断标志*/VICIntEnable=(114)|(117);/*使能EINT0EINT3中断*/while(1)IO0CLR=BEE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论