基于C8051的软开关用移相PWM的实现.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C8051的软开关用移相PWM的实现.doc

  基于C8051的软开关用移相PWM的实现|第1 摘要:通过C8051单片机的可编程计数器列阵PCA来实现软开关用移相P触发脉冲,实验结果表明通过此法产生的P波调试方便,运行可靠,可应用于多种软开关电路中。 关键词:软开关,移相P,C8051 0 引言 软开关技术近年来已经得到了深入广泛的研究并且发展迅速。但在各种软开关电路中,使开关管实现软开关的触发脉冲比较特殊:例如在典型的Boost ZCT-P电路[1]中,主开关管的触发脉冲超前于辅助开关管的触发脉冲,两者虽然频率相同,但占空比不同。在实验中发现,利用Cygnal公司的C8051F系列单片机可以方便地产生此种软开关用的、多路占空比不等的移相P脉冲。 1 C8051F系列单片机可编程计数器阵列PCA简介 图1为PCA原理框图,以C8051F040为例,PCA包含1个专用的16位计数器/定时器和6个16位捕捉/比较模块。从图1中可见,16位PCA专用计数器/定时器的时基信号可有多种选择,可通过配置相关的系统控制器的特殊功能寄存器(SFR)来实现。每个捕捉/比较模块有自己的I/O线CEXn,可通过配制交叉开关寄存器(XBR0)将每个模块的I/O线连接到端口I/O;每个模块都可配制为独立工作,有4种工作方式:边沿触发捕捉方式、软件定时器比较方式、高速输出和脉宽调制器。本文中产生多路占空比不等的移相P是使用了捕捉/比较模块的高速输出工作方式,其原理如图2所示。500)this.style.ouseg(this)图1 PCA原理框图500)this.style.ouseg(this)图2 PCA高速输出方式原理图 PCA0L和PCA0H分别为系统16位PCA计数器/定时器的低8位和高8位,PCA0CPLn和PCA0CPHn分别为捕捉/比较模块寄存器低8位和高8位。在高速输出方式下,配制模块工作方式的寄存器PCA0CPM值如图2中所示。当系统PCA计数器/定时器与模块寄存器值发生匹配时,模块的CEXn引脚上的逻辑电平将发生变化,如果将相应模块的I/O线CEXn连接到端口I/O,单片机相应端口输出电平即发生变化,这就可实现P脉冲的高、低电平输出。每个模块的工作是单独进行的,需要的CPU干预较少,这就可同时输出多路P。 控制寄存器PCA0中,CF是当PCA计数器/定时器溢出时,由硬件置位,如CF中断被允许则此时CPU转向CF中断服务程序,该位只能由软件清零。CR置1是允许PCA计数器/定时器工作,置0是禁止。CCF0~CCF5是模块捕捉比较标志,当匹配发生时,该位由硬件置位,如CCF中断被允许则此时CPU转向相应CCF中断服务程序,该位只能由软件清零。 可见要产生多路移相P,可允许多个捕捉/比较模块同时工作,当发生匹配即电平转换时,允许CPU转向CCF中断服务程序,在中断服务程序中,将相应的数值偏移量与寄存器PCA0CPLn和PCA0CPHn值相加,这一数值偏移量便决定了下一次匹配的时间,P的高、低电平脉宽便由各自相应的数值偏移量决定。 2 软件系统设计及编程语言的选择 系统主程序框图如图3所示。500)this.style.ouseg(this)图3 主程序框图 在针对具体电路应用时,须加入主开关管P触发脉冲调节子程序,根据输出电压采样反馈来调节其占空比以保证输出电压稳定。在选择编程语言时,同时用C51和汇编语言来产生2路移相P,并作了比较。比较如下:设定开关频率为20kHz,主开关管触发脉冲占空比为50%,辅助管为20%并滞后于主开关管21μs开通。进入CCF中断服务程序后,CPU进行捕捉/比较模块寄存器偏移量计算时,以模块0计算主开关管高电压脉宽偏移量为例,C51语句为: temp1=(PCA0CPH08)|PCA0CPL0;//取寄存器当前值 temp1+=0x0271;//上升沿,加上高电压脉宽 PCA0CPL0=(0xff&temp1); PCA0CPH0=〔0xff&(temp8)〕;//计算结果返回寄存器 编译后的语句执行过程为: MOV R7,FCH MOV A,R7 MOV R3,FBH MOV 0CH,A MOV A,R3 MOV 0DH,A ADD A,#71H MOV 0DH,A MOV A,#02H ADD CA,0CH//以上为取寄存器当前值,并加上高电压脉宽计算 MOV 0CH,A MOV A,0DH MOV FBH,A MOV A,0CH MOV FCH,A//计算结果返回寄存器 直接使用汇编语言实现相同功能时,汇编语句为 mov A,R0 add A,#071h mov R0,A clr A a

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档