单片微型计算机原理及接口技术-32-PWM模块-6_第1页
单片微型计算机原理及接口技术-32-PWM模块-6_第2页
单片微型计算机原理及接口技术-32-PWM模块-6_第3页
单片微型计算机原理及接口技术-32-PWM模块-6_第4页
单片微型计算机原理及接口技术-32-PWM模块-6_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

单片微型计算机原理及接口技术(32)1/41内容提纲STC8H8K64U单片机PWM模块的应用举例-22/413、捕获模式的应用举例(1)输入捕获模式测量脉冲波形的周期。原理:使用高级PWM内部的某一通道的捕获模块CCx,捕获外部的端口的上升沿或者下降沿,两个上升沿之间或者两个下降沿之间的时间即为脉冲的周期,也就是说,两次捕获计数值的差值即为周期值。只有PWM1P、PWM2P、PWM3P、PWM4P、PWM5、PWM6、PWM7、PWM8才有捕获功能。3/413、捕获模式的应用举例例:使用PWMA的第一组捕获模块CC1捕获功能,捕获PWM1P(P6.0)引脚上的上升沿,在中断中对前后两次的捕获值相减得到周期。使用P4.2输出周期为50ms,占空比2:5的波形进行测试。4/41核心代码

P_SW2|=0x80;//扩展寄存器(XFR)访问使能符号地址b7b6b5b4b3b2b1b0复位值P_SW2BAHEAXFR-I2C_S[1:0]CMPO_SS4_SS3_SS2_S0x00,0000P4M0=0x04;P4M1=0x00; //P4.2推挽输出P6M0=0x00;P6M1=0x01; //P6.0高阻输入PnM1.xPnM0.xI/O口模式00准双向口01推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(OpenDrain)5/41符号地址b7b6b5b4b3b2b1b0复位值PWMA_PSFEB2HC4PS[1:0]C3PS[1:0]C2PS[1:0]C1PS[1:0]0000,0000PWMA_PS=0x02; //PWM通道输出脚选择位 PWM1P:P6.0高级PWM通道1的输出脚可以在三个地方切换,由C1PS[1:0]选择:00:PWM1P在P1.0/PWM1P,PWM1N在P1.1/PWM1N;01:PWM1P在P2.0/PWM1P_2,PWM1N在P2.1/PWM1N_2;10:PWM1P在P6.0/PWM1P_3,PWM1N在P6.1/PWM1N_3。6/41预分频器的设计原则:系统时钟为11.0592MHz,不分频时,可以捕获的波形最大周期为:65536/11.0592(us)≈5.926(ms)若周期超过6ms,则需要分频。在本利中,周期为50毫秒,因此,预分频器的值设置为9。PWMA_PSCRH=0x00; //预分频寄存器PWMA_PSCRL=0x09; 符号地址b7b6b5b4b3b2b1b0PWMA_PSCRHFED0HPSCA[15:8]PWMA_PSCRLFED1HPSCA[7:0]7/41PWMA_CCER1=0x00; //关闭PWM通道1PWMA_CNTRH=0x00; //计数器清0PWMA_CNTRL=0x00;符号地址b7b6b5b4b3b2b1b0PWMA_CNTRHFECEHCNTA[15:8]PWMA_CNTRLFECFHCNTA[7:0]8/41符号地址b7b6b5b4b3b2b1b0PWMA_CCMR1FEC8HIC1F[3:0]IC1PSC[1:0]CC1S[1:0]

PWMA_CCMR1=0x01; //CC1为输入模式,且映射到TI1FP1上CC1S[1:0]:捕获/比较1选择。定义通道的方向(输入/输出),及输入脚的选择。01:输入。IC1映射在TI1FP1上。9/41PWMA_CCER1=0x01; //使能CC1上的捕获功能符号地址b7b6b5b4b3b2b1b0PWMA_CCER1FECCHCC2NPCC2NECC2PCC2ECC1NPCC1NECC1PCC1ECC1P:OC1输入捕获/比较输出极性。CC1通道配置为输出时:0:高电平有效;1:低电平有效。CC1通道配置为输入或者捕获:0:捕获发生在TI1F或TI2F的上升沿;1:捕获发生在TI1F或TI2F的下降沿。CC1E:OC1输入捕获/比较输出使能。0:关闭输入捕获/比较输出;1:开启输入捕获/比较输出。10/41符号地址b7b6b5b4b3b2b1b0PWMA_SMCRFEC2HMSMATSA[2:0]-SMSA[2:0]PWMA_SMCR=0x54; //TS=TI1FP1,SMS=TI1上升沿复位模式MSMn:主/从模式触发输入延迟控制位。0:无作用;1:触发输入(TRGI)上的事件被延迟。TSA[2:0]:PWMA触发源选择位。101:滤波后的定时器输入1(TI1FP1)SMSA[2:0]:PWMA时钟/触发/从模式选择位。100:复位模式。在选中的触发输入(TRGI)的上升沿时重新初始化计数器,并且产生一个更新寄存器的信号。11/41符号地址b7b6b5b4b3b2b1b0PWMA_CR1FEC0HARPEACMSA[1:0]DIRAOPMAURSAUDISACENAPWMA_CR1=0x01;//开始计时CENn:允许计数器控制位。0:禁止计数器;1:使能计数器。12/41符号地址b7b6b5b4b3b2b1b0PWMA_IERFEC4HBIEATIEACOMIEACC4IECC3IECC2IECC1IEUIEAPWMA_IER=0x02; //使能CC1中断CC1IE:捕获/比较1中断允许位。0:禁止捕获/比较1中断;1:允许捕获/比较1中断。13/41符号地址b7b6b5b4b3b2b1b0PWMA_SR1FEC5HBIFATIFACOMIFACC4IFCC3IFCC2IFCC1IFUIFAPWMA_SR1&=~0x02; //标志清零CC1IF:捕获/比较1中断标记。当捕获事件发生时该位由硬件置1,它由软件清0或通过读PWMA_CCR1L清0。0:无输入捕获产生;1:计数器值已被捕获至PWMA_CCR1。14/41代码演示!!!15/413、捕获模式的应用举例(2)输入捕获模式测量脉冲波形的高电平宽度。原理:使用高级PWM内部的两通道的捕获模块CCx和CCx+1同时捕获外部的同一个引脚,CCx捕获此引脚的上升沿,CCx+1捕获此引脚的下降沿,然利用CCx+1的捕获值减去CCx的捕获值,其差值即为脉冲高电平的宽度。注意:只有CC1+CC2、CC3+CC4、CC5+CC6、CC7+CC8这4种组合才能完成上面的功能。CC1+CC2组合可以同时捕获PWM1P引脚,也可以同时捕获PWM2P引脚;CC3+CC4组合可以同时捕获PWM3P引脚,也可以同时捕获PWM4P引脚;CC5+CC6组合可以同时捕获PWM5引脚,也可以同时捕获PWM6引脚;CC7+CC8组合可以同时捕获PWM7引脚,也可以同时捕获PWM8引脚。16/413、捕获模式的应用举例例:使用PWMA的第一组捕获模块CC1捕获功能和第二组捕获模块CC2,CC1捕获PWM1P(P6.0)引脚上的上升沿,CC2捕获PWM1P的下降沿,在中断中使用CC2的捕获值减去CC1的捕获值,其差值即为脉冲高电平的宽度。使用P4.2输出周期为50ms,占空比2:5的波形进行测试。17/41核心代码

P_SW2|=0x80;//扩展寄存器(XFR)访问使能符号地址b7b6b5b4b3b2b1b0复位值P_SW2BAHEAXFR-I2C_S[1:0]CMPO_SS4_SS3_SS2_S0x00,0000P4M0=0x04;P4M1=0x00; //P4.2推挽输出P6M0=0x00;P6M1=0x01; //P6.0高阻输入PnM1.xPnM0.xI/O口模式00准双向口01推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(OpenDrain)18/41符号地址b7b6b5b4b3b2b1b0复位值PWMA_PSFEB2HC4PS[1:0]C3PS[1:0]C2PS[1:0]C1PS[1:0]0000,0000PWMA_PS=0x02; //PWM通道输出脚选择位 PWM1P:P6.0高级PWM通道1的输出脚可以在三个地方切换,由C1PS[1:0]选择:00:PWM1P在P1.0/PWM1P,PWM1N在P1.1/PWM1N;01:PWM1P在P2.0/PWM1P_2,PWM1N在P2.1/PWM1N_2;10:PWM1P在P6.0/PWM1P_3,PWM1N在P6.1/PWM1N_3。19/41预分频器的设计原则:系统时钟为11.0592MHz,不分频时,可以捕获的波形最大周期为:65536/11.0592(us)≈5.926(ms)若周期超过6ms,则需要分频。在本利中,周期为50毫秒,因此,预分频器的值设置为9。PWMA_PSCRH=0x00; //预分频寄存器PWMA_PSCRL=0x09; 符号地址b7b6b5b4b3b2b1b0PWMA_PSCRHFED0HPSCA[15:8]PWMA_PSCRLFED1HPSCA[7:0]20/41PWMA_CCER1=0x00; //关闭PWM通道1PWMA_CNTRH=0x00; //计数器清0PWMA_CNTRL=0x00;符号地址b7b6b5b4b3b2b1b0PWMA_CNTRHFECEHCNTA[15:8]PWMA_CNTRLFECFHCNTA[7:0]21/41符号地址b7b6b5b4b3b2b1b0PWMA_CCMR2FEC9HIC2F[3:0]IC2PSC[1:0]CC2S[1:0]符号地址b7b6b5b4b3b2b1b0PWMA_CCMR1FEC8HIC1F[3:0]IC1PSC[1:0]CC1S[1:0]PWMA_CCMR1=0x01; //CC1为输入模式,且映射到TI1FP1上PWMA_CCMR1=0x02; //CC2为输入模式,且映射到TI1FP2上CC1S[1:0]:捕获/比较1选择。定义通道的方向(输入/输出),及输入脚的选择。01:输入。IC1映射在TI1FP1上。CC2S[1:0]:捕获/比较2选择。定义通道的方向(输入/输出),及输入脚的选择。10:输入。IC2映射在TI1FP2上。22/41PWMA_CCER1=0x31;//使能CC1和CC2上的捕获功能,CC1捕获发生在TI1F的上升沿,CC2捕获发生在TI1F的下降沿符号地址b7b6b5b4b3b2b1b0PWMA_CCER1FECCHCC2NPCC2NECC2PCC2ECC1NPCC1NECC1PCC1ECC1P:OC1输入捕获/比较输出极性。CC1通道配置为输出时:0:高电平有效;1:低电平有效。CC1通道配置为输入或者捕获:0:捕获发生在TI1F或TI2F的上升沿;1:捕获发生在TI1F或TI2F的下降沿。CC1E:OC1输入捕获/比较输出使能。0:关闭输入捕获/比较输出;1:开启输入捕获/比较输出。23/41符号地址b7b6b5b4b3b2b1b0PWMA_CR1FEC0HARPEACMSA[1:0]DIRAOPMAURSAUDISACENAPWMA_CR1=0x01;//开始计时CENn:允许计数器控制位。0:禁止计数器;1:使能计数器。24/41符号地址b7b6b5b4b3b2b1b0PWMA_IERFEC4HBIEATIEACOMIEACC4IECC3IECC2IECC1IEUIEAPWMA_IER=0x04; //使能CC2中断CC2IE:捕获/比较2中断允许位。0:禁止捕获/比较2中断;1:允许捕获/比较2中断。25/41符号地址b7b6b5b4b3b2b1b0PWMA_SR1FEC5HBIFATIFACOMIFACC4IFCC3IFCC2IFCC1IFUIFAPWMA_SR1&=~0x04; //标志清零CC2IF:捕获/比较2中断标记。当捕获事件发生时该位由硬件置1,它由软件清0或通过读PWMA_CCR2L清0。0:无输入捕获产生;1:计数器值已被捕获至PWMA_CCR2。26/41代码演示!!!27/413、捕获模式的应用举例(3)输入捕获模式测量脉冲波形的周期和高电平宽度。原理:使用高级PWM内部的两通道的捕获模块CCx和CCx+1同时捕获外部的同一个引脚,CCx捕获此引脚的上升沿,CCx+1捕获此引脚的下降沿,同时使能此引脚的上升沿信号为复位触发信号,CCx的捕获值即为周期,CCx+1的捕获值即为高电平宽度。注意:只有CC1+CC2、CC3+CC4、CC5+CC6、CC7+CC8这4种组合才能完成上面的功能。CC1+CC2组合可以同时捕获PWM1P引脚,也可以同时捕获PWM2P引脚;CC3+CC4组合可以同时捕获PWM3P引脚,也可以同时捕获PWM4P引脚;CC5+CC6组合可以同时捕获PWM5引脚,也可以同时捕获PWM6引脚;CC7+CC8组合可以同时捕获PWM7引脚,也可以同时捕获PWM8引脚。28/413、捕获模式的应用举例例:使用PWMA的第一组捕获模块CC1捕获功能和第二组捕获模块CC2,CC1捕获PWM1P(P6.0)引脚上的上升沿,CC2捕获PWM1P的下降沿,并设置PWM1P的上升沿信号为复位触发信号,CC1的捕获值即为周期,CC2的捕获值即为占空比。。使用P4.2输出周期为50ms,占空比2:3的波形进行测试。29/41核心代码

P_SW2|=0x80;//扩展寄存器(XFR)访问使能符号地址b7b6b5b4b3b2b1b0复位值P_SW2BAHEAXFR-I2C_S[1:0]CMPO_SS4_SS3_SS2_S0x00,0000P4M0=0x04;P4M1=0x00; //P4.2推挽输出P6M0=0x00;P6M1=0x01; //P6.0高阻输入PnM1.xPnM0.xI/O口模式00准双向口01推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(OpenDrain)30/41符号地址b7b6b5b4b3b2b1b0复位值PWMA_PSFEB2HC4PS[1:0]C3PS[1:0]C2PS[1:0]C1PS[1:0]0000,0000PWMA_PS=0x02; //PWM通道输出脚选择位 PWM1P:P6.0高级PWM通道1的输出脚可以在三个地方切换,由C1PS[1:0]选择:00:PWM1P在P1.0/PWM1P,PWM1N在P1.1/PWM1N;01:PWM1P在P2.0/PWM1P_2,PWM1N在P2.1/PWM1N_2;10:PWM1P在P6.0/PWM1P_3,PWM1N在P6.1/PWM1N_3。31/41预分频器的设计原则:系统时钟为11.0592MHz,不分频时,可以捕获的波形最大周期为:65536/11.0592(us)≈5.926(ms)若周期超过6ms,则需要分频。在本利中,周期为50毫秒,因此,预分频器的值设置为9。PWMA_PSCRH=0x00; //预分频寄存器PWMA_PSCRL=0x09; 符号地址b7b6b5b4b3b2b1b0PWMA_PSCRHFED0HPSCA[15:8]PWMA_PSCRLFED1HPSCA[7:0]32/41PWMA_CCER1=0x00; //关闭PWM通道1PWMA_CNTRH=0x00; //计数器清0PWMA_CNTRL=0x00;符号地址b7b6b5b4b3b2b1b0PWMA_CNTRHFECEHCNTA[15:8]PWMA_CNTRLFECFHCNTA[7:0]33/41符号地址b7b6b5b4b3b2b1b0PWMA_CCMR2FEC9HIC2F[3:0]IC2PSC[1:0]CC2S[1:0]符号地址b7b6b5b4b3b2b1b0PWMA_CCMR1FEC8HIC1F[3:0]IC1PSC[1:0]CC1S[1:0]PWMA_CCMR1=0x01; //CC1为输入模式,且映射到TI1FP1上PWMA_CCMR2=0x02; //CC2为输入模式,且映射到TI1FP2上CC1S[1:0]:捕获/比较1选择。定义通道的方向(输入/输出),及输入脚的选择。01:输入。IC1映射在TI1FP1上。CC2S[1:0]:捕获/比较2选择。定义通道的方向(输入/输出),及输入脚的选择。10:输入。IC2映射在TI1FP2上。34/41PWMA_CCER1=0x31;//使能CC1和CC2上的捕获功能,CC1捕获发生在TI1F的上升沿,CC2捕获发生在TI1F的下降沿符号地址b7b6b5b4b3b2b1b0PWMA_CCER1FECCHCC2NPCC2NECC2PCC2ECC1NPCC1NECC1PCC1ECC1P:OC1输入捕获/比较输出极性。CC1通道配置为输出时:0:高电平有效;1:低电平有效。CC1通道配置为输入或者捕获:0:捕获发生在TI1F或TI2F的上升沿;1:捕获发生在TI1F或TI2F的下降沿。CC1E:OC1输入捕获/比较输出使能。0:关闭输入捕获/比较输出;1:开启输入捕获/比较输出。35/41符号地址b7b6b5b4b3b2b1b0PWMA_SMCRFEC2HMSMATSA[2:0]-SMSA[2:0]PWMA_SMCR=0x54; //TS=TI1FP1,

温馨提示

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

评论

0/150

提交评论