基于stc单片机实现多位软件pwm

基于stc单片机实现多位软件pwm

ID:32636537

大小:64.86 KB

页数:8页

时间:2019-02-14

基于stc单片机实现多位软件pwm_第1页
基于stc单片机实现多位软件pwm_第2页
基于stc单片机实现多位软件pwm_第3页
基于stc单片机实现多位软件pwm_第4页
基于stc单片机实现多位软件pwm_第5页
资源描述:

《基于stc单片机实现多位软件pwm》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于STC单片机实现多位软件PWM摘要:本文针对当前带有硬件PWM的8位单片机普遍存在分辨率低,难以适应实际使用需要的问题,利用STC12C5A60S2系列单片机的PCA模块实现多位(9〜16位)软件PWM的基本方法,并给出实用控制程序。实验表明,该方法具有很强的实用性。关键词:STC单片机PCA模块软件PWMPWM全称为PulseWidthModulation,即脉冲宽度调制,简称为脉宽调制。常见的PWM调制方式是定频调宽,在固定的调制周期内,通过改变有效电平的宽度,即改变占空比(OWpWI),实现对输出电压的控制。随着单片机技术

2、的飞速发展,当前主流的单片机普遍在片上集成了硬件PWM等功能,使用起来非常方便。但对8位机而言,片内集成的硬件PWM大多为8位分辨率,虽然可以由硬件实现占空比的无缝刷新,但存在分辨率较低的现实问题。笔者利用深圳宏晶科技有限公司出品的51内核STC12C5A60S2系列单片机设计一种软件PWM,可实现从9〜16位之间任意分辨率,从而满足控制精度等要求。一、STC12C5A60S2系列单片机PCA模块介绍STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机。

3、内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换、双串口。它在工业电动机控制中,有不俗的表现。STC12C5A60S2系列单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器、外部脉冲捕捉、高速输出以及PWM输出四种工作模式。1.PCA模块的结构PCA含有一个特殊的16位定时器,有2个16位的捕获/比较模块与之相连,如图1所示。图1PCA模块结构每个模块可编程工作在4种工作模式:上升/下降沿捕获、软件定时器、高速输出或PWM输出。16位PCA定时器/计数器是2个模块的公共时间基准,其结构如图2所示。

4、图2PCA定时/计数器结构寄存器CH和CL的内容是正在自由递增计数的16位PCA定时器的值,可通过对CMOD(CM0D寄存器的说明参考下面描述)特殊功能寄存器中CPS2、CPS1和CPS0三个位的编程实现对时钟源的选择,具体配置关系如表1所示。表12.PCA模块相关寄存器PCA模块相关寄存器及其功能受篇幅限制,在此仅介绍几个关键寄存器,其他部分从略。(1)CC0N-PCA控制寄存器。CF:PCA计数器阵列溢出标志位。为1表示溢出;为0表示未溢出。可软硬件置位,只能软件复位。CR:PCA计数器阵列运行控制位。置1,启动;置0,停止。C

5、CF1:PCA模块1中断标志。当出现匹配或捕获时硬件置位;必须软件清零。CCFO:PCA模块0中断标志。当出现匹配或捕获时硬件置位;必须软件清零。(1)CMOD—PCA模式寄存器。CIDL:空闲模式下是否停止PCA计数的控制位。为1时,停止计数;为0时,继续工作。CPS2、CPS1、CPSO:PCA计数脉冲源选择控制位。具体配置见上文。ECF:PCA计数溢出中断使能位。为1时允许CF中断;为0时禁止CF中断。(2)CCAPMn(n=0,1)——PCA模块工作模式寄存器,配置如表2所示。表2PCA模块工作模式设定(CCAPMn,n=0

6、,1)-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn模块功能0000000无此操作00000108位PWM,无中断101008位PWM输出,由高变低可产生中断111008位PWM输出,由低变高或者由高变低增可产生中断X10000X16位捕获模式,由CEXn/PCAn的上升沿触发X01000X16位捕获模式,由CEXn/PCAn的下降沿触发X11000X16位捕获模式,由CEXn/PCAn的跳变触发100100X16位软件定时器100110X16位高速输出可见,通过配置,PCA能工作在多种工作模式,具有较强的灵活性

7、。二、软件实现PWM基本原理本设计应用PCA模块的高速输出模式实现多位PWM功能。当PCA计数器的计数值与模块捕获寄存器的值相匹配时,PCA模块的CCPn引脚输出将发生翻转。PCA模块高速输出模式框图,如图4所示。图4PCA高速输出模式由图4可见,当激活髙速输出模式时,CCAPMn寄存器的TOGn,MATn和ECOMn位都必须置位。一旦出现匹配,在比较匹配中断里判断高速输出的电平,如果是高电平,则向捕获寄存器装入高电平的PCA时钟数;如果是低电平,则装入低电平的PCA时钟数。设要求的PWM分辨率为n(OWnWl),则每个PWM周期为

8、DUTY=2n个PCA时钟。设PWM_high为PWM高电平持续时间,PWM_low为PWM低电平持续时间,则有DUTY-PWM_high+PWM_1ow,占空比。明显的,分辨率n的值越大,则分辨率越高。为实现设计功能,需要用到的资源

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。