文档详情

stc15w4k32s4-pwm使用详解资料

E****
实名认证
店铺
PDF
204.13KB
约15页
文档ID:99415682
stc15w4k32s4-pwm使用详解资料_第1页
1/15

STC15W4K32S4STC15W4K32S4STC15W4K32S4STC15W4K32S4 系列新增系列新增系列新增系列新增 6 6 6 6 通道通道通道通道 增强型带死区控制高精度增强型带死区控制高精度增强型带死区控制高精度增强型带死区控制高精度 PWMPWMPWMPWM 波形发生器应用波形发生器应用波形发生器应用波形发生器应用 STC15W4K32S4 系列的单片机集成了一组(各自独立 6 路)增强型的 PWM 波形发生器PWM 波 形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用,用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,可以非常灵 活的每路 PWM 的高低电平宽度,从而达到对 PWM 的占空比以及 PWM 的输出延迟进行控制的目的 由于 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.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] 所有与所有与 PWMPWM 相关的端口,在上电后均为高阻输入态,必须在程序中将这些口设置为双向口或强相关的端口,在上电后均为高阻输入态,必须在程序中将这些口设置为双向口或强 推挽模式才可正常输出波形推挽模式才可正常输出波形 端口模式设置相关特殊功能寄存器 符号符号描述描述地址地址 位地址及符号位地址及符号 初始值初始值 B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 P1M1P1 模式配置191H0000,0000 P1M0P1 模式配置092H0000,0000 P0M1P0 模式配置193H0000,0000 P0M0P0 模式配置094H0000,0000 P2M1P2 模式配置195H0000,0000 P2M0P2 模式配置096H0000,0000 P3M1P3 模式配置1B1H0000,0000 P3M0P3 模式配置0B2H0000,0000 P4M1P4 模式配置1B3H0000,0000 P4M0P4 模式配置0B4H0000,0000 端口模式设置 PxM1PxM0模式 00准双向口 01强推挽输出 10高阻输入 11开漏输出 若需要正常使用与 PWM 相关的端口,则需要将相应的端口设置为准双向口或强推挽输出口 例如将端口均设置为准双向口的汇编代码如下: MOV P0M0,#00H MOV P0M1,#00H MOV P1M0,#00H MOV P1M1,#00H MOV P2M0,#00H MOV P2M1,#00H MOV P3M0,#00H MOV P3M1,#00H MOV P4M0,#00H MOV P4M1,#00H 增强型 PWM 波形发生器相关的特殊功能寄存器 符号符号描述描述地址地址 位地址及符号位地址及符号 初始值初始值 B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 P_SW2端口配置寄存器BAHEAXSFR000-S4_SS3_SS2_S0000,0000 PWMCFGPWM 配置F1H-CBTADCC7INIC6INIC5INIC4INIC3INIC2INI0000,0000 PWMCRPWM 控制F5HENPWMECBIENC7OENC6OENC5OENC4OENC3OENC2O0000,0000 PWMIFPWM 中断标志F6H-CBIFC7IFC6IFC5IFC4IFC3IFC2IFx000,0000 PWMFDCRPWM 外部异常控制F7H--ENFDFLTFLIOEFDIFDCMPFDIOFDIFxx00,0000 PWMCHPWM计数器高位FFF0H-PWMCH[14:8]x000,0000 PWMCLPWM计数器低位FFF1HPWMCL[7:0]0000,0000 PWMCKSPWM 时钟选择FFF2H---SELT2PS[3:0]xxx0,0000 PWM2T1HPWM2T1 计数高位FF00H-PWM2T1H[14:8]x000,0000 PWM2T1LPWM2T1 计数低位FF01HPWM2T1L[7:0]0000,0000 PWM2T2HPWM2T2 计数高位FF02H-PWM2T2H[14:8]x000,0000 PWM2T2LPWM2T2 计数低位FF03HPWM2T2L[7:0]0000,0000 PWM2CRPWM2 控制FF04H----PWM2_PSEPWM2IEC2T2SIEC2T1SIxxxx,0000 PWM3T1HPWM3T1 计数高位FF10H-PWM3T1H[14:8]x000,0000 PWM3T1LPWM3T1 计数低位FF11HPWM3T1L[7:0]0000,0000 PWM3T2HPWM3T2 计数高位FF12H-PWM3T2H[14:8]x000,0000 PWM3T2LPWM3T2 计数低位FF13HPWM3T2L[7:0]0000,0000 PWM3CRPWM3 控制FF14H----PWM3_PSEPWM3IEC3T2SIEC3T1SIxxxx,0000 PWM4T1HPWM4T1 计数高位FF20H-PWM4T1H[14:8]x000,0000 PWM4T1LPWM4T1 计数低位FF21HPWM4T1L[7:0]0000,0000 PWM4T2HPWM4T2 计数高位FF22H-PWM4T2H[14:8]x000,0000 PWM4T2LPWM4T2 计数低位FF23HPWM4T2L[7:0]0000,0000 PWM4CRPWM4 控制FF24H----PWM4_PSEPWM4IEC4T2SIEC4T1SIxxxx,0000 PWM5T1HPWM5T1 计数高位FF30H-PWM5T1H[14:8]x000,0000 PWM5T1LPWM5T1 计数低位FF31HPWM5T1L[7:0]0000,0000 PWM5T2HPWM5T2 计数高位FF32H-PWM5T2H[14:8]x000,0000 PWM5T2LPWM5T2 计数低位FF33HPWM5T2L[7:0]0000,0000 PWM5CRPWM5 控制FF34H----PWM5_PSEPWM5IEC5T2SIEC5T1SIxxxx,0000 PWM6T1HPWM6T1 计数高位FF40H-PWM6T1H[14:8]x000,0000 PWM6T1LPWM6T1 计数低位FF41HPWM6T1L[7:0]0000,0000 PWM6T2HPWM6T2 计数高位FF42H-PWM6T2H[14:8]x000,0000 PWM6T2LPWM6T2 计数低位FF43HPWM6T2L[7:0]0000,0000 PWM6CRPWM6 控制FF44H----PWM6_PSEPWM6IEC6T2SIEC6T1SIxxxx,0000 PWM7T1HPWM7T1 计数高位FF50H-PWM7T1H[14:8]x000,0000 PWM7T1LPWM7T1 计数低位FF51HPWM7T1L[7:0]0000,0000 PWM7T2HPWM7T2 计数高位FF52H-PWM7T2H[14:8]x000,0000 PWM7T2LPWM7T2 计数低位FF53HPWM7T2L[7:0]0000,0000 PWM7CRPWM7 控制FF54H----PWM7_PSEPWM7IEC7T2SIEC7T1SIxxxx,0000 端口配置寄存器端口配置寄存器 P_SW2P_SW2P_SW2P_SW2 地址:BAH初始值:0000,0000B B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 EAXSFR000-S4_SS3_SS2_S EAXSFREAXSFR:扩展 SFR 访问控制使能 0:MOVX A,@DPTR/MOVX @DPTR,A 指令的操作对象为扩展 RAM(XRAM) 1:MOVX A,@DPTR/MOVX @DPTR,A 指令的操作对象为扩展 SFR(XSFR) 注意:若要访问 PWM 在扩展 RAM 区的特殊功能寄存器,必须先将 EAXSFR 位置为 1 BIT6,BIT5,BIT4 为内部测试使用,用户必须填 0 PWMPWMPWMPWM 配置寄存器配置寄存器 PWMCFGPWMCFGPWMCFGPWMCFG 地址:F1H初始值:0000,0000B B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 -CBTADCC7INIC6INIC5INIC4INIC3INIC2INI CBTADCCBTADC:PWM 计数器归零时(CBIF==1 时)触发 ADC 转换 0:PWM 计数器归零时不触发 ADC 转换 1: PWM 计数器归零时自动触发 ADC 转换。

(注: 前提条件是 PWM 和 ADC 必须被使能, 即 ENPWM==1, 且 ADCON==1) CnINICnINI:设置 PWM 输出端口的初始电平 0:PWM 输出端口的初始电平为低电平 1:PWM 输出端口的初始电平为高电平 PWMPWMPWMPWM 控制寄存器控制寄存器 PWMCRPWMCRPWMCRPWMCR 地址:F5H初始值:0000,0000B B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 ENPWMECBIENC7OENC6OENC5OENC4OENC3OENC2O ENPWMENPWM:使能增强型 PWM 波形发生器 0:关闭 PWM 波形发生器 1:使能 PWM 波形发生器,PWM 计数器开始计数 ECBIECBI:PWM 计数器归零中断使能位 0:关闭 PWM 计数器归零中断(CBIF 依然会被硬件置位) 1:使能 PWM 计数器归零中断 ENCnOENCnO:PWM 输出使能位 0:相应 PWM 通道的端口为 GPIO 1:相应 PWM 通道的端口为 PWM 输出口,受 PWM 波形发生器控制 PWMPWMPWMPWM 中断标志寄存器中断标志寄存器 PWMIFPWMIFPWMIFPWMIF 地址:F6H初始值:x000,0000B B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 -CBIFC7IFC6IFC5IFC4IFC3IFC2IF CBIFCBIF:PWM 计数器归零中断标志位 当 PWM 计数器归零时,硬件自动将此位置 1。

当 ECBI==1 时,程序会跳转到相应中断入口执行中 断服务程序需要软件清零 CnIFCnIF:第 n 通道的 PWM 中断标志位 可设置在翻转点 1 和翻转点 2 触发 CnIF(详见ECnT1SI 和 ECnT2SI)当 PWM 发生翻转时,硬件自 动将此位置 1 当 EPWMnI==1 时, 程序会跳转到相应中断入口执行中断服务程序 需要软件清零 PWMPWMPWMPWM 外部异常控制寄存器外部异常控制寄存器 PWMFDCRPWMFDCRPWMFDCRPWMFDCR 地址:F7H初始值:xx00,0000B B7B7B6B6B5B5B4B4B3B3B2B2B1B1B0B0 --ENFDFLTFLIOEFDIF。

下载提示
相似文档
正为您匹配相似的精品文档