收藏 分享(赏)

STC15W4K32S4-PWM使用详解.pdf

上传人:精品资料 文档编号:8666837 上传时间:2019-07-07 格式:PDF 页数:15 大小:204.13KB
下载 相关 举报
STC15W4K32S4-PWM使用详解.pdf_第1页
第1页 / 共15页
STC15W4K32S4-PWM使用详解.pdf_第2页
第2页 / 共15页
STC15W4K32S4-PWM使用详解.pdf_第3页
第3页 / 共15页
STC15W4K32S4-PWM使用详解.pdf_第4页
第4页 / 共15页
STC15W4K32S4-PWM使用详解.pdf_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、STC15W4K32S4系列新增系列新增系列新增系列新增6通道通道通道通道增强型带死区控制高精度增强型带死区控制高精度增强型带死区控制高精度增强型带死区控制高精度PWM波形发生器应用波形发生器应用波形发生器应用波形发生器应用STC15W4K32S4系列的单片机集成了一组 ( 各自独立 6路 ) 增强型的 PWM波形发生器 。 PWM波形发生器内部有一个 15位的 PWM计数器供 6路 PWM使用,用户可以设置每路 PWM的初始电平。另外, PWM波形发生器为每路 PWM又设计了两个用于控制波形翻转的计数器 T1/T2,可以非常灵活的每路 PWM的高低电平宽度,从而达到对 PWM的占空比以及 P

2、WM的输出延迟进行控制的目的 。由于 6路 PWM是各自独立的 , 且每路 PWM的初始状态可以进行设定 , 所以用户可以将其中的任意两路配合起来使用,即可实现互补对称输出以及死区控制等特殊应用。增强型的 PWM波形发生 器还设计了对外部 异常事件(包括外 部端口 P2.4的电平异 常、比较器比较结 果异常)进行监控 的功能,可用于紧 急关闭 PWM输出。 PWM波形发生 器还可在 15位 的PWM计数器归零时出发外部事件( ADC转换)。STC15W4K32S4系列增强型 PWM输出端口定义如下:PWM2:P3.7,PWM3:P2.1,PWM4:P2.2,PWM5:P2.3,PWM6:P1.

3、6,PWM7:P1.7每路 PWM的输出端口都可使用特殊功能寄存器位 CnPINSEL分别独立的切换到第二组PWM2_2:P2.7,PWM3_2:P4.5,PWM4_2:P4.4,PWM5_2:P4.2,PWM6_2:P0.7,PWM7_2:P0.6所有 与 PWM相关 的端 口,在 上电后 均为 高阻输 入态, 必须 在程序 中将这 些口 设置为 双向口 或强推挽模式才可正常输出波形端口模式设置相关特殊功能寄存器符号 描述 地址 位地址及符号 初始值B7 B6 B5 B4 B3 B2 B1 B0P1M1 P1模式 配置 1 91H 0000,0000P1M0 P1模式 配置 0 92H 00

4、00,0000P0M1 P0模式 配置 1 93H 0000,0000P0M0 P0模式 配置 0 94H 0000,0000P2M1 P2模式 配置 1 95H 0000,0000P2M0 P2模式 配置 0 96H 0000,0000P3M1 P3模式 配置 1 B1H 0000,0000P3M0 P3模式 配置 0 B2H 0000,0000P4M1 P4模式 配置 1 B3H 0000,0000P4M0 P4模式 配置 0 B4H 0000,0000端口模式设置PxM1 PxM0 模式0 0 准双向口0 1 强推挽输出1 0 高阻输入1 1 开漏输出若需要正常使用与 PWM相关的端口,

5、则需要将相应的端口设置为准双向口或强推挽输出口例如将端口均设置为准双向口的汇编代码如下:MOVP0M0,#00HMOVP0M1,#00HMOVP1M0,#00HMOVP1M1,#00HMOVP2M0,#00HMOVP2M1,#00HMOVP3M0,#00HMOVP3M1,#00HMOVP4M0,#00HMOVP4M1,#00H增强型 PWM波形发生器相关的特殊功能寄存器符号 描述 地址 位地址及符号 初始值B7 B6 B5 B4 B3 B2 B1 B0P_SW2 端口 配置 寄存 器 BAHEAXSFR 0 0 0 - S4_SS3_S S2_S0000,0000PWMCFG PWM配置 F1

6、H - CBTADCC7INI C6INI C5INI C4INI C3INI C2INI 0000,0000PWMCR PWM控制 F5H ENPWM ECBIENC7O ENC6O ENC5O ENC4O ENC3O ENC2O 0000,0000PWMIF PWM中断 标志 F6H - CBIFC7IFC6IF C5IFC4IFC3IF C2IFx000,0000PWMFDCRPWM外部 异常 控制 F7H - - ENFDFLTFLIOEFDIFDCMP FDIO FDIFxx00,0000PWMCH PWM计数 器高 位 FFF0H - PWMCH14:8 x000,0000PWMC

7、L PWM计数 器低 位 FFF1H PWMCL7:0 0000,0000PWMCKS PWM时钟 选择 FFF2H - - - SELT2 PS3:0 xxx0,0000PWM2T1HPWM2T1计数 高位 FF00H - PWM2T1H14:8 x000,0000PWM2T1LPWM2T1计数 低位 FF01H PWM2T1L7:0 0000,0000PWM2T2HPWM2T2计数 高位 FF02H - PWM2T2H14:8 x000,0000PWM2T2LPWM2T2计数 低位 FF03H PWM2T2L7:0 0000,0000PWM2CR PWM2控制 FF04H - - - -

8、PWM2_PSEPWM2I EC2T2SIEC2T1SIxxxx,0000PWM3T1HPWM3T1计数 高位 FF10H - PWM3T1H14:8 x000,0000PWM3T1LPWM3T1计数 低位 FF11H PWM3T1L7:0 0000,0000PWM3T2HPWM3T2计数 高位 FF12H - PWM3T2H14:8 x000,0000PWM3T2LPWM3T2计数 低位 FF13H PWM3T2L7:0 0000,0000PWM3CR PWM3控制 FF14H - - - - PWM3_PSEPWM3I EC3T2SIEC3T1SIxxxx,0000PWM4T1HPWM4T

9、1计数 高位 FF20H - PWM4T1H14:8 x000,0000PWM4T1LPWM4T1计数 低位 FF21H PWM4T1L7:0 0000,0000PWM4T2HPWM4T2计数 高位 FF22H - PWM4T2H14:8 x000,0000PWM4T2LPWM4T2计数 低位 FF23H PWM4T2L7:0 0000,0000PWM4CR PWM4控制 FF24H - - - - PWM4_PSEPWM4I EC4T2SIEC4T1SIxxxx,0000PWM5T1HPWM5T1计数 高位 FF30H - PWM5T1H14:8 x000,0000PWM5T1LPWM5T1

10、计数 低位 FF31H PWM5T1L7:0 0000,0000PWM5T2HPWM5T2计数 高位 FF32H - PWM5T2H14:8 x000,0000PWM5T2LPWM5T2计数 低位 FF33H PWM5T2L7:0 0000,0000PWM5CR PWM5控制 FF34H - - - - PWM5_PSEPWM5I EC5T2SIEC5T1SIxxxx,0000PWM6T1HPWM6T1计数 高位 FF40H - PWM6T1H14:8 x000,0000PWM6T1LPWM6T1计数 低位 FF41H PWM6T1L7:0 0000,0000PWM6T2HPWM6T2计数 高

11、位 FF42H - PWM6T2H14:8 x000,0000PWM6T2LPWM6T2计数 低位 FF43H PWM6T2L7:0 0000,0000PWM6CR PWM6控制 FF44H - - - - PWM6_PSEPWM6I EC6T2SIEC6T1SIxxxx,0000PWM7T1HPWM7T1计数 高位 FF50H - PWM7T1H14:8 x000,0000PWM7T1LPWM7T1计数 低位 FF51H PWM7T1L7:0 0000,0000PWM7T2HPWM7T2计数 高位 FF52H - PWM7T2H14:8 x000,0000PWM7T2LPWM7T2计数 低位

12、 FF53H PWM7T2L7:0 0000,0000PWM7CR PWM7控制 FF54H - - - - PWM7_PSEPWM7I EC7T2SIEC7T1SIxxxx,0000端口配置寄存器 P_SW2地址: BAH 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0EAXSFR 0 0 0 - S4_S S3_S S2_SEAXSFR:扩展 SFR访问控制使能0: MOVXA,DPTR/MOVXDPTR,A指令的操作对象为扩展 RAM( XRAM)1: MOVXA,DPTR/MOVXDPTR,A指令的操作对象为扩展 SFR( XSFR)注意:若要访问 PWM

13、在扩展 RAM区的特殊功能寄存器,必须先将 EAXSFR位置为 1BIT6,BIT5,BIT4为内部测试使用,用户必须填 0PWM配置寄存器 PWMCFG地址: F1H 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0- CBTADCC7INI C6INI C5INI C4INI C3INI C2INICBTADC: PWM计数器归零时( CBIF=1时)触发 ADC转换0: PWM计数器归零时不触发 ADC转换1: PWM计数器归零时自动触发 ADC转换 。 ( 注 : 前提条件是 PWM和 ADC必须被使能 , 即 ENPWM=1,且 ADCON=1)CnINI

14、:设置 PWM输出端口的初始电平0: PWM输出端口的初始电平为低电平1: PWM输出端口的初始电平为高电平PWM控制寄存器 PWMCR地址: F5H 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0ENPWM ECBI ENC7O ENC6O ENC5O ENC4O ENC3O ENC2OENPWM:使能增强型 PWM波形发生器0:关闭 PWM波形发生器1:使能 PWM波形发生器, PWM计数器开始计数ECBI: PWM计数器归零中断使能位0:关闭 PWM计数器归零中断( CBIF依然会被硬件置位)1:使能 PWM计数器归零中断ENCnO: PWM输出使能位0:相

15、应 PWM通道的端口为 GPIO1:相应 PWM通道的端口为 PWM输出口,受 PWM波形发生器控制PWM中断标志寄存器 PWMIF地址: F6H 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- CBIF C7IF C6IF C5IF C4IF C3IF C2IFCBIF: PWM计数器归零中断标志位当 PWM计数器归零时 , 硬件自动将此位置 1。 当 ECBI=1时 , 程序会跳转到相应中断入口执行中断服务程序。需要软件清零。 CnIF:第 n通道的 PWM中断标志位可设置在 翻转点 1和翻转点 2触发 CnIF(详见 ECnT1SI和 ECnT2SI)。

16、当 PWM发生翻转 时,硬件自动将此位置 1。 当 EPWMnI=1时 , 程序会跳转到相应中断入口执行中断服务程序 。 需要软件清零 。PWM外部异常控制寄存器 PWMFDCR地址: F7H 初始值: xx00,0000BB7 B6 B5 B4 B3 B2 B1 B0- - ENFD FLTFLIOEFDI FDCMP FDIO FDIFENFD: PWM外部异常检测功能控制位0:关闭 PWM的外部异常检测功能1:使能 PWM的外部异常检测功能FLTFLIO:发生 PWM外部异常时对 PWM输出口控制位0:发生 WM外部异常时, PWM的输出口不作任何改变1:发生 WM外部异常 时, PWM

17、的输出口 立即被设置为高阻 输入模式。(注: 只有 ENCnO=1所对应的端口才会被强制悬空) EFDI: PWM异常检测中断使能位0:关闭 PWM异常检测中断( FDIF依然会被硬件置位)1:使能 PWM异常检测中断FDCMP:设定 PWM异常检测源为比较器的输出0:比较器与 PWM无关1:当比较器的输出由低变高时,触发 PWM异常FDIO:设定 PWM异常检测源为端口 P2.4的状态0: P2.4的状态与 PWM无关1:当 P2.4的电平由低变高时,触发 PWM异常FDIF: PWM异常检测中断标志位当发生 PWM异常 ( 比较器的输出由低变高或者 P2.4的电平由低变高 ) 时 , 硬件

18、自动将此位置 1。当 EFDI=1时,程序会跳转到相应中断入口执行中断服务程序。需要软件清零。PWM计数器的高字节 PWMCH(高 7位)地址: FFF0H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWMCH14:8PWM计数器的低字节 PWMCL(低 8位)地址: FFF1H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWMCL7:0PWM计数器位一个 15位的寄存器 , 可设定 132767之间的任意值作为 PWM的周期 。 PWM波形发生器内部的计数器从 0开始计数,每个 PWM时钟周期

19、递增 1,当内部计数器的计数值达到 PWMCH,PWMCL所设定的 PWM周期时 , PWM波形发生器内部的计数器将会从 0重新开始开始计数 , 硬件会自动将 PWM归零中断中断标志位 CBIF置 1, 若 ECBI=1, 程序将跳转到相应中断入口执行中断服务程序。PWM时钟选择寄存器 PWMCKS地址: FFF2H( XSFR) 初始值: xxx0,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - SELT2 PS3:0SELT2: PWM时钟源选择0: PWM时钟源为系统时钟经分频器分频之后的时钟1: PWM时钟源为定时器 2的溢出脉冲PS3:0:系统时钟预分频参数。当

20、SELT2=0时, PWM时钟为系统时钟 /(PS3:0+1)PWM2的第一次翻转计数器的高字节 PWM2T1H地址: FF00H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM2T1H14:8PWM2的第一次翻转计数器的低字节 PWM2T1L地址: FF01H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM2T1L7:0PWM2的第二次翻转计时器的高字节 PWM2T2H地址: FF02H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM2

21、T2H14:8PWM2的第二次翻转计时器的低字节 PWM2T2L地址: FF03H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM2T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数器 ,可设定 132767之间的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM2的控制寄存器 PWM2CR地址: FF04H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PWM2_PSEPWM2IEC2

22、T2SIEC2T1SIPWM2_PS: PWM2输出管脚选择位0: PWM2的输出管脚为 PWM2: P3.71: PWM2的输出管脚为 PWM2_2: P2.7EPWM2I: PWM2中断使能控制位0:关闭 PWM2中断1:使能 PWM2中断,当 C2IF被硬件置 1时,程序将跳转到相应中断入口执行中断服务程序。EC2T2SI: PWM2的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C2IF置 1, 此时若 EPWM2I=1, 则

23、程序将跳转到相应中断入口执行中断服务程序。EC2T1SI: PWM2的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C2IF置 1, 此时若 EPWM2I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM3的第一次翻转计数器的高字节 PWM3T1H地址: FF10H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM3T1H14:8PWM3的第一次翻转计数器的低字节 PWM3T

24、1L地址: FF11H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM3T1L7:0PWM3的第二次翻转计时器的高字节 PWM3T2H地址: FF12H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM3T2H14:8PWM3的第二次翻转计时器的低字节 PWM3T2L地址: FF13H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM3T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数器 ,可设定 132767之间

25、的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM3的控制寄存器 PWM3CR地址: FF14H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PWM3_PSEPWM3IEC3T2SIEC3T1SIPWM3_PS: PWM3输出管脚选择位0: PWM3的输出管脚为 PWM3: P2.11: PWM3的输出管脚为 PWM3_2: P4.5EPWM3I: PWM3中断使能控制位0:关闭 PWM3中断1:使能 PWM3中断,当 C3IF被硬件置 1时,程序将跳转到相应中断

26、入口执行中断服务程序。EC3T2SI: PWM3的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C3IF置 1, 此时若 EPWM3I=1, 则程序将跳转到相应中断入口执行中断服务程序。 EC3T1SI: PWM3的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C3IF置 1

27、, 此时若 EPWM3I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM4的第一次翻转计数器的高字节 PWM4T1H地址: FF20H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM4T1H14:8PWM4的第一次翻转计数器的低字节 PWM4T1L地址: FF21H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM4T1L7:0PWM4的第二次翻转计时器的高字节 PWM4T2H地址: FF22H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B

28、0- PWM4T2H14:8PWM4的第二次翻转计时器的低字节 PWM4T2L地址: FF23H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM4T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数器 ,可设定 132767之间的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM4的控制寄存器 PWM4CR地址: FF24H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PWM4_PSEP

29、WM4IEC4T2SIEC4T1SIPWM4_PS: PWM4输出管脚选择位0: PWM4的输出管脚为 PWM4: P2.21: PWM4的输出管脚为 PWM4_2: P4.4EPWM4I: PWM4中断使能控制位0:关闭 PWM4中断1:使能 PWM4中断,当 C4IF被硬件置 1时,程序将跳转到相应中断入口执行中断服务程序。EC4T2SI: PWM4的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C4IF置 1, 此时若 EPWM

30、4I=1, 则程序将跳转到相应中断入口执行中断服务程序。EC4T1SI: PWM4的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C4IF置 1, 此时若 EPWM4I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM5的第一次翻转计数器的高字节 PWM5T1H地址: FF30H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM5T1H14:8PWM5的第一次翻转计数器的低字

31、节 PWM5T1L地址: FF31H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM5T1L7:0PWM5的第二次翻转计时器的高字节 PWM5T2H地址: FF32H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM5T2H14:8PWM5的第二次翻转计时器的低字节 PWM5T2L地址: FF33H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM5T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数器 ,可设定 1

32、32767之间的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM5的控制寄存器 PWM5CR地址: FF34H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PWM5_PSEPWM5IEC5T2SIEC5T1SIPWM5_PS: PWM5输出管脚选择位0: PWM5的输出管脚为 PWM5: P2.31: PWM5的输出管脚为 PWM5_2: P4.2EPWM5I: PWM5中断使能控制位0:关闭 PWM5中断1:使能 PWM5中断,当 C5IF被硬件置 1时,程序将

33、跳转到相应中断入口执行中断服务程序。EC5T2SI: PWM5的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C5IF置 1, 此时若 EPWM5I=1, 则程序将跳转到相应中断入口执行中断服务程序。 EC5T1SI: PWM5的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将

34、C5IF置 1, 此时若 EPWM5I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM6的第一次翻转计数器的高字节 PWM6T1H地址: FF40H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM6T1H14:8PWM6的第一次翻转计数器的低字节 PWM6T1L地址: FF41H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM6T1L7:0PWM6的第二次翻转计时器的高字节 PWM6T2H地址: FF42H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3

35、B2 B1 B0- PWM6T2H14:8PWM6的第二次翻转计时器的低字节 PWM6T2L地址: FF43H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM6T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数器 ,可设定 132767之间的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM6的控制寄存器 PWM6CR地址: FF44H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PW

36、M6_PSEPWM6IEC6T2SIEC6T1SIPWM6_PS: PWM6输出管脚选择位0: PWM6的输出管脚为 PWM6: P1.61: PWM6的输出管脚为 PWM6_2: P0.7EPWM6I: PWM6中断使能控制位0:关闭 PWM6中断1:使能 PWM6中断,当 C6IF被硬件置 1时,程序将跳转到相应中断入口执行中断服务程序。EC6T2SI: PWM6的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C6IF置 1, 此

37、时若 EPWM6I=1, 则程序将跳转到相应中断入口执行中断服务程序。 EC6T1SI: PWM6的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C6IF置 1, 此时若 EPWM6I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM7的第一次翻转计数器的高字节 PWM7T1H地址: FF50H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM7T1H14:8PWM7的第一次

38、翻转计数器的低字节 PWM7T1L地址: FF51H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM7T1L7:0PWM7的第二次翻转计时器的高字节 PWM7T2H地址: FF52H( XSFR) 初始值: x000,0000BB7 B6 B5 B4 B3 B2 B1 B0- PWM7T2H14:8PWM7的第二次翻转计时器的低字节 PWM7T2L地址: FF53H( XSFR) 初始值: 0000,0000BB7 B6 B5 B4 B3 B2 B1 B0PWM7T2L7:0PWM波形发生 器设计了两个用于 控制 PWM波形翻转 的 15位计数

39、器 ,可设定 132767之间的任 意值。 PWM波形发生器内部的计数器的计数值与 T1/T2所设定的值相匹配时, PWM的输出波形将发生翻转。PWM7的控制寄存器 PWM7CR地址: FF54H( XSFR) 初始值: xxxx,0000BB7 B6 B5 B4 B3 B2 B1 B0- - - - PWM7_PSEPWM7IEC7T2SIEC7T1SIPWM7_PS: PWM7输出管脚选择位0: PWM7的输出管脚为 PWM7: P1.71: PWM7的输出管脚为 PWM7_2: P0.6EPWM7I: PWM7中断使能控制位0:关闭 PWM7中断1:使能 PWM7中断,当 C7IF被硬件

40、置 1时,程序将跳转到相应中断入口执行中断服务程序。EC7T2SI: PWM7的 T2匹配发生波形翻转时的中断控制位0:关闭 T2翻转时中断1:使 能 T2翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T2计数 器所设定 的值相匹 配时, PWM的波形发生翻转 , 同时硬件将 C7IF置 1, 此时若 EPWM7I=1, 则程序将跳转到相应中断入口执行中断服务程序。 EC7T1SI: PWM7的 T1匹配发生波形翻转时的中断控制位0:关闭 T1翻转时中断1:使 能 T1翻转 时中断, 当 PWM波形 发生器内 部计数值 与 T1计数 器所设定 的值相匹 配时, PWM的波形发生翻转

41、, 同时硬件将 C7IF置 1, 此时若 EPWM7I=1, 则程序将跳转到相应中断入口执行中断服务程序。PWM波形发生器中断控制PWM波形发生器中断相关的寄存器IP2 中断 优先 级控 制 B5H - - - PX4 PPWMFD PPWM PSPI PS2 xxx0,0000PWMCR PWM控制 F5H ENPWMECBIENC7O ENC6O ENC5O ENC4O ENC3O ENC2O 0000,0000PWMIF PWM中断 标志 F6H - CBIFC7IFC6IF C5IF C4IF C3IF C2IF x000,0000PWMFDCR PWM外部 异常 控制 F7H - -

42、 ENFDFLTFLIO EFDIFDCMP FDIO FDIF xx00,0000PWM2CR PWM2控制 FF04H - - - - PWM2_PSEPWM2IEC2T2SIEC2T1SI xxxx,0000PWM3CR PWM3控制 FF14H - - - - PWM3_PSEPWM3IEC3T2SIEC3T1SI xxxx,0000PWM4CR PWM4控制 FF24H - - - - PWM4_PSEPWM4IEC4T2SIEC4T1SI xxxx,0000PWM5CR PWM5控制 FF34H - - - - PWM5_PSEPWM5IEC5T2SIEC5T1SI xxxx,00

43、00PWM6CR PWM6控制 FF44H - - - - PWM6_PSEPWM6IEC6T2SIEC6T1SI xxxx,0000PWM7CR PWM7控制 FF54H - - - - PWM7_PSEPWM7IEC7T2SIEC7T1SI xxxx,0000中断向量地址及中断控制中断 名称 入口 地址 优先 级设 置 中断 请求 位 中断 允许 控制 中断 标志 清 除方 式PWM中断 00B3H(22) PPWMCBIF ENPWM/ECBI/EA 需软 件清 除C2IF ENPWM/EPWM2I/EC2T2SI|EC2T1SI/EA 需软 件清 除C3IF ENPWM/EPWM3I/

44、EC3T2SI|EC3T1SI/EA 需软 件清 除C4IF ENPWM/EPWM4I/EC4T2SI|EC4T1SI/EA 需软 件清 除C5IF ENPWM/EPWM5I/EC5T2SI|EC5T1SI/EA 需软 件清 除C6IF ENPWM/EPWM6I/EC6T2SI|EC6T1SI/EA 需软 件清 除C7IF ENPWM/EPWM7I/EC7T2SI|EC7T1SI/EA 需软 件清 除PWM异常 检测 中断 00BBH(23) PPWMFD FDIF ENPWM/ENFD/EFDI/EA 需软 件清 除在 KeilC中声明中断函数voidPWM_Routine(void)int

45、errupt22;voidPWMFD_Routine(void)interrupt23;PWM波形发生器的结构框图PWMCH,PWMCL计 数 器匹 配PWM 时 钟 R匹 配 匹 配T1H,T1L T2H,T2L周 期 结束翻 转 翻 转清 零匹 配 匹 配T1H,T1L T2H,T2L周 期 结束翻 转 翻 转匹 配 匹 配T1H,T1L T2H,T2L周 期 结束翻 转 翻 转PWM波 形 发 生 器 框 图周 期 结 束汇编示例代码 1假如要生成一个重复的 PWM波形,波形如下:PWM波形发生 器的时钟频率为系 统时钟 /4,波形由 通道 4输出,周 期为 20个 PWM时钟,占 空比

46、为 1/3,由 4个 PWM时钟的相位延迟(波形如下图所示)0 1 2 34 5 6 7 8 91 0 1 6 1 9 0 1 2 3 4 5 6 7 8 91 0 1 6 1 9 0 1 2 34 5 6 7 8 91 0 1 6 1 9Initialized LOWPeriod=( 1 6 +1) Channel -4: toggle -point -1= = 3(0003H) toggle -point -2= = 16 (0010 H)汇编代码可以如下设计:;+-+;|GlobalConfiguration |;+-+;SetEAXSFRtoenablexSFRwritingagain

47、stXRAM writingmov A,P_SW2orl A,#10000000Bmov P_SW2,A;Setchannel-4 outputregisterstartatLOWmov A,PWMCFGanl A,#11111011B ;channel-4start atLOWmov PWMCFG,A;Setaclockofthe waveformgenerator consists of4Foscmov DPTR, #PWMCKS ;FFF2Hmov A,#00000011BmovxDPTR,A; Set periodas20;PWMCH,PWMCL =19mov DPTR, #PWMCH

48、 ;FFF0Hmov A,#00H ;PWMCHshouldbechanged firstmovxDPTR,Amov DPTR, #PWMCL ;FFF1Hmov A,#13H ;WritePWMCL simultaneousupdatePWMCHmovxDPTR,A;+-+;|Channel-4Configuration |;+-+;Settogglepoint1ofChannel-4as3mov DPTR, #PWM4T1H ;FF20Hmov A,#00HmovxDPTR,A;mov DPTR, #PWM4T1L ;FF21Hmov A,#03HmovxDPTR,A;Settogglepoint2ofChannel-4as16mov DPTR, #PWM4T2H ;FF22Hmov A,#00HmovxDPTR,A;mov DPTR, #PWM4T2L ;FF23Hmov A,#10HmovxDPTR,A;SetChannel-4 outputpinasdefault,anddisableinterruptingmov DPTR, #PWM4CR ;FF24Hmov A,#00HmovxDPTR,A;Clear EAXSFRtodisablexSFR, returnmovx-DPTR tonormalXRAMaccessmov A,P_SW2anl A,#01111111B

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报