STC单片机硬件PWM的使用分析

发布者:开元轩最新更新时间:2019-01-26 来源: eefocus关键字:STC单片机  硬件PWM 手机看文章 扫描二维码
随时随地手机看文章


STC单片机(具有PCA功能的),怎么实现可变频率的PWM输出?很多朋友还在使用定时器做可变频PWM, 这里我就介绍怎么使用硬件PWM,在定时器0的分频基数下设计PWM。 


这里写图片描述


首先看CMOD这个寄存器,这里我们主要关注 CPS0,CPS1,CPS2,这三个位控制选择PCA的计数脉冲源。 对应PWM功能,则是选择频率。 首先可以选择 6个固定分频,可以看图片看出,分别是1,2,4,6,8,12的系统分频。我们需要做可变频率的PWM,所以我们需要选择模式2,选择定时器0的溢出作为系统分频基数。 


然后,我么看怎么具体的去计算,去实现分频。 这里就需要上面这个图片的计算规则。 这里我举一个例子来说明,比如我们单片机的晶振使用的是12MHZ,而我们需要实现300HZ的频率。 如果得到呢? 


首先,如果我们采用CMOD的固定分频,可以发现,无论是1,2,4,8,12,分频下来的频率都不是300HZ。 所以这里也体现我们使用定时器0做分频基数的好处了。 


这里写图片描述


我们继续计算,12MHZ需要转化为300HZ,那么根据上图,首先我们需要确定PCA时钟输入频率,根据公式 300*256=76800HZ,这个值就是我们需要的PCA时钟输入频率。现在问题就是 ,我们怎么把12MHZ,转化为76.8KHZ, 12000KHZ/76.8KHZ=156.25 ,这个156.25就是分频基数,而这个分频基数由我们的定时器溢出参数来设定,意思就是当我们定时器如果计数156.25溢出就可以做到分频基数为156.25, 所以我们在设置定时器0的计数起始值就是65536-156=65380,对应TH0=0XFF,TL0=0X64。 


好了,怎么计算PWM在定时器0下实现我们自己需要的任意频率的计算方式这里就介绍完了。 如果要动态实现频率可变,我们就可以通过通讯去动态调整定时器0的计数基数,(实际就是调整了分频基数),就可以实现频率的改变了。 另外,说明:这里的定时器0,不需要中断,并且该定时器也不是作为产生PWM用的,是作为一个分频基数用!

关键字:STC单片机  硬件PWM 引用地址:STC单片机硬件PWM的使用分析

上一篇:STM8L15x系列DAC的使用
下一篇:STC15单片机6路专用PWM

推荐阅读最新更新时间:2024-03-16 16:23

STC单片机内置ADC的使用方法
STC系列单片机中的STC89LE516AD/X2提供了8路8位精度的高速A/D转换器,位于P1口上,从而省去了片外ADC的麻烦。这8路ADC为电压输入型,可做按键扫描,电池电压检测,频谱检测等。ADC转换过程需要17个机器周期。通过对相关功能寄存器的适当配置,就可以控制其工作。下面就对相关功能寄存器进行介绍。 A/D转换寄存器总表: 寄存器 地址 名称 7 6 5 4 3 2 1 0 初始初
[单片机]
STC单片机编程软件安装
STC单片机是由宏晶科技自主研发的可以款基于C51内核的单片机,在国内使用非常广泛。 STC在传统的C51单片机的基础上,性能设计得到了很大的提升,性能优越,而且价格比较低廉,获得了很多大学生和工程师的喜爱。 接下来,给大家简单的介绍一下STC 单片机(C51也兼容)开发环境的搭建 单片机开发最常用的编译软件有Keil,IAR 等,宏晶科技没有开发自己的单片机开发环境,是Keil C51软件来开发的。 STC单片机程序开发用的是Keil C51. (最常见的Keil 软件还有一个MDK版本,但MDK不适合STC单片机,MDK主要适用于ARM内核单片机开发使用),所以我们就需要下载并安装keil C51。 一、 下载Kei
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved