微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STC12C5201AD单片机的PWM功能的应用总结

STC12C5201AD单片机的PWM功能的应用总结

时间:12-01 来源:互联网 点击:
52xxAD系列单片机的内部集成了两路可编程计数阵列模块(PCA),可用于软件定时器、外部脉冲的捕捉、高速输出和脉宽调制输出(PWM)。

这里主要是对PWM输出功能进行介绍。

首先要清楚与PCA/PWM应用有关的特殊功能寄存器

符号

描述

地址

位地址及其符号

复位值

B7

B6

B5

B4

B3

B2

B1

B0

CCON

PCA control register

D8H

CF

CR

CCF1

CCF0

00xx,xx00

CMOD

PCA mode register

D9H

CIDL

CPS2

CPS1

CPS0

ECF

0xxx,0000

CCAPM0

PCA module 0 mode register

DAH

ECOM0

CAPP0

CAPN0

MAT0

TOG0

PWM0

ECCF0

X000,0000

CCAPM1

PCA module 1 mode register

DBH

ECOM1

CAPP1

CAPN1

MAT1

TOG1

PWM1

ECCF1

X000,0000

CL

PCA base time low

E9H

0000,0000

CH

PCA base time high

F9H

0000,0000

CCAP0L

PCA module_0 captureregister low

EAH

0000,0000

CCAP0H

PCA module0 capture register high

FAH

CCAP1L

PCA module_1 capture register low

EBH

0000,0000

CCAP1H

PCA module_1 capture register high

FBH

0000,0000

PCA_PWM0

PCA PWM mode auxiliary register 0

F2H

EPC0H

EPC0L

Xxxx,xx00

PCA_PWM1

PCA PWM mode auxilia

F3H

EPC1H

EPC1L

Xxxx,xx00

1、PCA工作模式寄存器CMOD

CIDL:空闲模式下是否停止PCA计数的控制位

当CIDL=0时,空闲模式下PCA计数器继续工作

当CIDL=1时,空闲模式下PCA计数器停止工作

CPS2CPS1CPS0:pca计数器脉冲源选择控制位。

0 0 0 0,系统时钟SYSCLK/12

0 0 1 1,系统时钟SYSCLK/2

0 1 0 2,定时器0的溢出脉冲。由于定时器0可以工作在1T模式,所以可以达到计一个时钟就溢出,从而达到最高频率CPU工作时时钟SYSCLOCK,通过改变定时器0的溢出率,可以实现可调频率的PWM输出。

0 1 1 3,ECI/P1.2(或P1.4)脚输入的外部时钟(最大速率=SYSCLK/2)

1 0 0 4,系统时钟 SYSCLK

1 0 1 5,系统时钟/4,sysclk/4

1 1 0 6,系统时钟/6,

1 1 1 7, 系统时钟/8

2、PCA控制寄存器CCON

CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时,CF由硬件置位。如果CMOD寄存器的ECF位置位,则CF标志可用来产生中断。CF位可通过硬件或软件置位,但只可通过软件清零。

CR:PCA计数器阵列运行控制位,该位通过软件置位,用来启动计数器阵列计数,通过软件清零,用来关闭PCA计数器。

CCF1:pca模块1中断标志。当出现匹配或捕获时该位由硬件置位,必须通过软件清零

CCF0:PCA模块0中断标志。

3、PCA比较/捕获寄存器CCAPM0和CCAPM1

ECOM0:允许比较器功能控制位。为1,允许

CAPP0:正捕获控制位。为1,允许

CAPN0:负捕获控制位。为1,允许

MAT0:匹配控制位。

为1时,PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中断标志位CCF0。

TOG0:翻转控制位。当tog0=1时,工作在PCA高速输出模式,PCA计数器的值与模块的比较/捕获寄存器的值的匹配将使CEX0脚翻转。(CCP0/PCA0/PWM0/P1.3)

PWM0:脉冲调节模式

当PWM0=1时,允许CEX0脚用作脉宽调节输出(CCP0/PCA0/PWM0/P1.3)

ECCF0:时能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0,用来产生中断。

4、PCA的16位寄存器——低8位CL和高8位CH

用于保存PCA的装载值。

5、PCA捕捉/比较寄存器——CCAPnL(低位字节)和CCAPnH(高位字节)

当PCA模块用于捕获或比较时,它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时,它们用来控制输出的占空比。其中,n=0、1,分别对应模块0和模块1.复位值均为00H,对应的地址分别为:

CCAP0_EAH CCAP0H_FAH:

CCAP1_EBHCCAP1H_FAH;

PCA模块的工作模式设定表如下:

ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn模块功能

0 0 0 0 0 0 0无此操作

1 0 0 0 0 1 0 8位PWM,无中断

1 1 0 0 0 1 1 8位PWM输出,由低变高可产生中断

1 0 1 0 0 1 1 8位PWM输出,由高变低可产生中断

1 1 1 0 0 1 1 8位PWM输出,由低变高或者有高变低均可产生中断

X 1 0 0 0 0 x 16位捕获模式,由CCPn/PCAn的上升沿触发

X 0 1 0 0 0 x 16位捕获模式,由CCPn/PCAn的下降沿触发

X 1 1 0 0 0 x 16位捕获模式,由CCPn/PCAn的跳变触发

1 0 0 1 0 0 x 16位软件定时器

1 0 0 1 1 0 x 16位高速输出

6、 PCA的16位计数器——低8位CL和高8位CH

用于保存PCA的装载值。

7、 PCA捕捉/比较寄存器CCAPnL(低位字节)和CCAPnH(高位字节)

当PCA 模块用于捕获或比较时,它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时,它们用来控制输出的占空比。其中,n=0,1分别对应模块0和模块1.复位值均为00H。它们对应的地址分别为:

CCAP0L_EAH CCAP0H_FAH:模块0的捕捉/比较寄存器

CCAP1L_EBH CCAP1H_FBH:模块1的捕捉/比较寄存器。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top