第13章STC单片机增强型PWM发生器原理及应用何宾2015.02如需原始PPT文件请点击此处增强型PWM发生器概述增强型PWM发生器相关寄存器组增强型PWM发生器应用1增强型PWM发生器应用2本章主要内容如需原始PPT文件请点击此处增强型PWM发生器概述STC15W4K32S4系列的单片机内部集成了一组(各自独立6路)增强型PWM波形发生器。PWM波形发生器内部有一个15位的PWM计数器供6路PWM使用。用户可以设置每路PWM的初始电平。此外,PWM波形发生器为每路PWM又设计了两个用于控制波形翻转的计数器T1/T2.可以非常灵活的控制每路PWM高低电平的宽度,从而达到对PWM占空比一级PWM输出延迟进行控制的目的。如需原始PPT文件请点击此处增强型PWM发生器概述每路PWM相对独立,且可以设置每路PWM的初始状态。用户可以将其中的任意两路PWM信号组合在一起使用。因此,可以实现互补对称输出以及死区控制等特殊的应用。增强型的PWM波形发生器还设计了对外部异常事件,其中包括:外部端口P2.4的电平异常、比较器比较结果异常,进行监控的功能,可用于紧急关闭PWM输出。PWM波形发生器还可以在15位的PWM计数器归零时触发外部事件(比如:ADC转换)。如需原始PPT文件请点击此处增强型PWM发生器概述STC15W4K32S4系列增强型PWM模块的输出端口可以使用:PWM2/P3.7、PWM3/P2.1、PWM4/P2.2、PWM5/P2.3、PWM6/P1.6、PWM7/P1.7可以通过寄存器将PWM输出切换到第2组端口:PWM2_2/P2.7、PWM3_2/P4.5、PWM4_2/P4.4、PWM5_2/P4.2、PWM6_2/P0.7、PWM7_2/P0.6如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--端口配置寄存器比特B7B6B5B4B3B2B1B0名字EAXSFR000-S4_SS3_SS2_S端口配置寄存器P_SW2该寄存器位于STC单片机特殊功能寄存器地址为0xBA的位置。当复位后,该寄存器的值为“000x0000”。端口配置寄存器各位的含义EAXSFR为访问扩展SFR使能控制位。当该位为0时,操作对象为扩展RAM(XRAM)。当该位为1时,操作对象为扩展SFR(XSFR)。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM配置寄存器比特B7B6B5B4B3B2B1B0名字-CBTADCC7INIC6INIC5INIC4INIC3INIC2INIPWM配置寄存器PWMCFG该寄存器位于STC单片机特殊功能寄存器地址为0xF1的位置。当复位后,该寄存器的值为“x0000000”。PWM配置寄存器PWMCFG各位的含义CBTADCPWM计数器归零触发ADC转换控制位。当该位为0时,PWM计数器归零不触发ADC转换;当该位为1时,PWM计数器归零触发ADC转换;如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM配置寄存器C7INI设置PWM7输出端口的初始电平。当该位为0时,PWM7输出端口的初始电平为低电平;当该位为1时,PWM7输出端口的初始电平为高电平。C6INI设置PWM6输出端口的初始电平。当该位为0时,PWM6输出端口的初始电平为低电平;当该位为1时,PWM6输出端口的初始电平为高电平。C5INI设置PWM5输出端口的初始电平。当该位为0时,PWM5输出端口的初始电平为低电平;当该位为1时,PWM5输出端口的初始电平为高电平。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM配置寄存器C3INI设置PWM3输出端口的初始电平。当该位为0时,PWM3输出端口的初始电平为低电平;当该位为1时,PWM3输出端口的初始电平为高电平。C2INI设置PWM2输出端口的初始电平。当该位为0时,PWM2输出端口的初始电平为低电平;当该位为1时,PWM2输出端口的初始电平为高电平。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM控制寄存器比特B7B6B5B4B3B2B1B0名字ENPWMECBIENC7OENC6OENC5OENC4OENC3OENC2OPWM控制寄存器PWMCR该寄存器位于STC单片机特殊功能寄存器地址为0xF5的位置。当复位后,该寄存器的值为“00000000”。PWM控制寄存器PWMCR各位的含义ENPWM使能增强PWM波形发生器。当该位为0时,关闭PWM波形发生器;当该位为1时,使能PWM波形发生器,PWM计数器开始计数。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM控制寄存器ECBIPWM计数器归零中断使能位。当该位为0时,关闭PWM计数器归零中断(CBIF依然会被硬件置位);当该位为1时,使能PWM计数器归零中断。ENC7OPWM7输出使能位。当该位为0时,PWM通道7的端口为GPIO;当该位为1时,PWM通道7的端口为PWM输出口,受PWM波形发生器控制。ENC6OPWM6输出使能位。当该位为0时,PWM通道6的端口为GPIO;当该位为1时,PWM通道6的端口为PWM输出口,受PWM波形发生器控制。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM控制寄存器ENC5OPWM5输出使能位。当该位为0时,PWM通道5的端口为GPIO;当该位为1时,PWM通道5的端口为PWM输出口,受PWM波形发生器控制。ENC4OPWM4输出使能位。当该位为0时,PWM通道4的端口为GPIO;当该位为1时,PWM通道4的端口为PWM输出口,受PWM波形发生器控制。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM控制寄存器ENC3OPWM3输出使能位。当该位为0时,PWM通道3的端口为GPIO;当该位为1时,PWM通道3的端口为PWM输出口,受PWM波形发生器控制。ENC2OPWM2输出使能位。当该位为0时,PWM通道2的端口为GPIO;当该位为1时,PWM通道2的端口为PWM输出口,受PWM波形发生器控制。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM中断标志寄存器比特B7B6B5B4B3B2B1B0名字-CBIFC7IFC6IFC5IFC4IFC3IFC2IFPWM中断标志寄存器PWMIF该寄存器位于STC单片机特殊功能寄存器地址为0xF6的位置。当复位后,该寄存器的值为“x0000000”。PWM中断标志寄存器PWMIF各位的含义CBIFPWM计数器归零中断标志位。当PWM计数器归零时,硬件将此位置为1。当ECBI为1时,程序会跳转到相应的中断入口执行中断服务程序。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM中断标志寄存器C7IF第7通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C7IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM7I位为1时,程序会跳转到相应中断入口执行中断服务程序。C6IF第6通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C6IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM6I位为1时,程序会跳转到相应中断入口执行中断服务程序。C5IF第5通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C5IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM5I位为1时,程序会跳转到相应中断入口执行中断服务程序。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM中断标志寄存器C4IF第4通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C4IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM4I位为1时,程序会跳转到相应中断入口执行中断服务程序。C3IF第3通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C3IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM3I位为1时,程序会跳转到相应中断入口执行中断服务程序。C2IF第2通道的PWM中断标志位。可设置在翻转点1和翻转点2触发C2IF。当PWM发生翻转时,硬件自动将该位置1。当EPWM2I位为1时,程序会跳转到相应中断入口执行中断服务程序。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM外部异常控制寄存器比特B7B6B5B4B3B2B1B0名字----ENFDFLTFLIOEEDIFDCMPFDIOFDIFPWM外部异常控制寄存器PWMCR该寄存器位于STC单片机特殊功能寄存器地址为0xF7的位置。当复位后,该寄存器的值为“xx000000”。PWM外部异常控制寄存器PWMCR各位的含义ENFDPWM外部异常检测功能控制位。当该位为0时,关闭PWM外部异常检测功能;当该位为1时,使能PWM外部异常检测功能。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM外部异常控制寄存器FLTFLIO发生PWM外部异常时,对PWM输出口控制位。当该位为0时,发生PWM外部异常时,PWM的输出口不作任何改变;当该位为1时,发生PWM外部异常时,PWM的输出口立即被设置为高阻输入模式。EFDIPWM异常检测中断使能位。当该位为0时,关闭PWM异常检测中断(FDIF仍然会被硬件置位);当该位为1时,使能PWM异常检测中断。FDCMP设定PWM异常检测源为比较器的输出。当该位为0时,比较器与PWM无关。当该位为1时,当比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高或者比较器正极P5.5/CMP+的电平比内部参考电压源1.28V高时,触发PWM异常。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM外部异常控制寄存器FDIO设定PWM异常检测源为端口P2.4的状态。当该位为0时,P2.4的状态与PWM无关;当该位为1时,P2.4的电平为高时,触发PWM异常。FDIFPWM异常检测中断标志位。当发生PWM异常,即:比较器正极P5.5/CMP+的电平比比较器负极P5.4/CMP-的电平高或者比较器正极P5.5/CMP+的电平比内部参考电压源1.28V高,或者P2.4的电平为高时,硬件自动将该位置1。当EFDI为1时,程序会跳转到中断入口执行中断服务程序。如需原始PPT文件请点击此处增强型PWM发生器相关寄存器组--PWM计数器PWM计数器包含PWM计数器高字节寄存器PWMCH和PWM计数器低字节寄存器PWMCL寄存器PWMCH位于STC单片机扩展特殊功能寄存器