-
STC15F2K60S2
的脉冲捕获应用
<
/p>
1
.
PCA
工作
模式寄存器
CMOD
PCA
工作模式寄存器的格式如下:
CMOD
:
PCA
工作模式寄存器
SFR name
CCON
Address
D9H
bit
name
B7
CIDL
B6
-
B5
-
B4
-
B3
CPS2
B2
CPS1
B1
CPS0
B0
ECF
CIDL:
空闲模式下是否停止
PCA
计数的控制位。
当
CI
DL=0
时,空闲模式下
PCA
计数器
继续工作;
当
CIDL=1
时,空闲模式下
PCA
计数器停止工作。
CPS2
、
CPS
1
、
CPS0:PCA
计数脉冲源选择
控制位。
PCA
计数脉冲选择如下表所示。
CPS2
0
0
0
0
1
1
1
1
CPS1
0
0
1
1
0
0
1
1
CPS0
0
1
0
1
0
1
0
1
选择
PCA/PWM
时钟源输入
0
,系统时钟,
SYSclk/12
1
,系统时钟,
SYSclk/2 <
/p>
2
,定时器
0
的
溢出脉冲。由于定时器
0
可以工作在
T
1
模式,所以可以达到
记一个时钟就溢出,
从而达到最高频率
CPU
工作时钟
SYSclk
,
通过改变定时
器
0
的溢出率,可以实现可调频率的
PWM
p>
输出
3
,
ECI/P1.2(
或
P4.1)
脚输入的外部时钟(最大速率
=SYSclk/2
)
4
,系统时钟,
SYSclk
5
,系统时钟
/4
,
SYSclk/4
6
,系统时钟
p>
/6
,
SYSclk/6
7
,系统时钟
/8
,
SYSclk/8
例如,
CPS2/CPS1
/CPS0=1/0/0
时,
PCA/PWM
< br>的时钟源是
SYSclk,
不用定时器
< br>0
,
PWM
的频率为
SYSclk/256
如果要用系统时钟
/3<
/p>
来作为
PCA
的时钟源,应让
T0
工作在
1T
模式,计
数
3
个脉冲即
产生溢出。输出
14K~19K
频率的
PWM
< br>。用
T0
的溢出可对系统时钟进行
1~256
级分频。
ECF
:
PCA
计数溢出中断使能位。
当
ECF=0
时,禁止寄
存器
CCON
中
CF
< br>位的中断。
当
ECF=1
p>
时,允许寄存器
CCON
中
CF
位的中断。
2
.
PCA
控制寄存器
C
CON
PCA
控制寄存器的格式如下:
p>
CCON
:
PCA
控制控制寄存器
SFR name
CCON
Address
D8H
bit
name
B7
CF
B6
CR
B5
-
B4
-
B3
-
B2
-
B1
CCF1
B0
CCF0
CF
:
PCA
计数器阵
列溢出标志位。
当
PCA
计数器溢出时
,
CF
由硬件置位。
如果
CMOD
寄存器的
ECF
位
置位,则
CF
标志可用来产生中断。
C
F
位可通过硬件或软件置位,但只可
通过软件清零。
CR
:
PCA
计数器阵列运行控制位。
该位通过软件置位,
用
来起动
PCA
计数器阵列计数。
该位通
过软件清零,用来关闭
PCA
计数器。
CCF1:PCA
模块
1
中断标志。
当出现匹配或捕获时该位有硬件置位。
该
位必须通过软件
清零
.
CCF0:P
CA
模块
0
中断标志。
当出现匹配或捕获时改为由硬件置位。
该位必须通过软件
清零。
3
.
PCA
比较
/
捕获寄存器
CCAPM0
和
CCAPM1
< br>PCA
模块
0
的比较
/
捕获寄存器的格式如下:
CCAPM0
:
PCA
模块
0
的比较、捕获寄存器
SFR name
Address
CCAPM0
DAH
Bit
name
B7
-
B6
B5
B4
B3
B2
B1
B0
ECCF0
ECOM0
CAPP0
CAPN0
MAT0
TOG0
PWM0
B7
:
保留为将来之用。
ECOM0
:允许比较器功能控制位。
当
ECOM0
=1
时,允许比较器功能。
CAPP0
:正捕获控制位。
当
CAPP0 =
1
时,允许上升沿捕获。
CAPN0
:
负捕获控制位。
当
CAPN0 =
1
时,允许下降沿捕获。
MAT0
:匹配控制位。
当
MAT0
=
1
时,
PCA
计数值与模块的比较
/
捕获寄存器的值的匹配将置位
CCO
N
寄存器的中断段标志位
CCF0.
TOG0
:翻转控制位。
当
TOG0 = 1
时。工作在
PCA
高速输出模式,
PCA
计数器的值与模块的比较
/
捕获
寄存器的值得匹配将使
CEX0
脚翻转。
(
CEX0 / PCA0 / PWM0 /
P1.3
或
CEX0 / PCA0/PWM 0 /
P4.2
)
PWM0:
脉宽调节模式。
当
PWM0 = 1
时,允许
CEX0
脚用作脉宽调节输出。
(
CEX0 / PCA0 /PWM0 /
P1.3
或
CEX0/PCA0/PWM0 /
P4.2
)
ECCF0
:使能
CCF0
中断。使能寄存器
CCON
的比较
/
捕获标志
CCF0<
/p>
,用来产生中
断。
PCA
模块
1
的比较
/
捕获寄存器的格式如下:
CCAPM
1
:
PCA
模块
1
的比较
/
捕获寄存器
SFR name
Address
CCAPM1
DBH
Bit
name
B7
-
B6
B5
B4
B3
B2
B1
B0
ECOM1
CAPP1
CAPN1
MAT1
TOG1
PWM1
ECCF1
B7
:保留为将来之用。
ECOM1
:允许比较器功能控制位。
当
ECOM1=1
时,允许比较器功能
。
CAPP1
:正捕获控制位。
当
CAPP1 =
1
时,允许上升沿捕获。
CAPN1
:负捕获控制位。
当
CAPN1=
1
,允许下降沿捕获。
MAT1
:匹配控制位。
当
MAT1=1
,
PCA
计数值与模块的比较
/
捕获寄存器的值得匹配将置位
CCON
寄
存器的中断标志位
CCF1
。
< br>
TOG1
翻转控制位。
当
TOG1=
1
时。工作在
PCA
高速输出模式,
PCA
计数器的值与模块的比较
/
捕获
寄存器的值得匹配将使
CEX1
翻转。
(
CEX1/ PCA1/
PWM1 P1.4
或
EX1 /CA1/WM 1/
P4.3
PWM1
脉宽调节模式。
当
PWM1= 1
时,允许
CEX1
脚作脉宽调节输出。
(
CEX1/ PCA1/PWM1/
P1.4
或
EX1/CA1/WM1/ P4.3
ECCF1
:使能
CCF0
中断。使能寄存器
CCON
的比较
/
捕获标志
CCF1<
/p>
,用来产生中
断。
PCA
模块的工作模式设定表如下表所列:
PCA
模块工作模式设定(
CCAPMn
寄存器,
n=0,1
)
-
ECOMn
CAPPn
CAPNn
MATn
TOGn
PWMn
ECCFn
模块功能
0
0
0
0
0
0
0
无此操作
1
0
0
0
0
1
0
8
位
PW
M
,无中断
1
1
0
0
0
1
1
8
位
PW
M
输出,由低变高产生中断
1
0
1
0
0
1
1
8
位
PW
M
输出,由高变低产生中断
1
1
1
0
0
1
1
8
位
PW
M
输出,由高变低或由低到高
X
1
0
0
0
0
X
16
位捕获模式,
由
CEXn/PCAn
的上升沿触发
< br>
X
0
1
0
0
0
X
16
位捕获模式,
由
CEXn/PCAn
的
下降沿触发
X
1
1
0
0
0
X
16
位捕获模式,由
CEXn/PCAn
的跳变触发
1
0
0
1
0
0
X
16
位软件定时器
1
0
0
1
1
0
X
16
位高速输出
PCA
的
16
位计数器——低
p>
8
位
CL
和
8
位
CH
CL
p>
和
CH
地址分别为
E9H
和
F9H
,复位值均为
00H
,用于保存
PCA
的装载值。
PCA
捕捉
/
比较寄存器——
CCAPnL
< br>(低位字节)和
CCAPnH
(高位字节)
当
PCA
模块用于捕获或
比较时,它们用于保存各个模块的
16
位捕捉计数值;当
PCA
模块用于
PWM
模式时,它们用于控制输出的占空比。其中,
n = 0
、<
/p>
1
,分别对应模块
0
和
模块
1
。复位值均为
00H
。它们对应的地址分别为:
CCAP0L
——
EAH
、
CCAP0H
——
FAH
:模块
0
的捕捉
/
比较寄存器。
CCAP1L
< br>——
EBH
、
CCAP1H
p>
——
FBH
:模块
1
的捕捉
/
比较寄存器。
PCA
模块
PWM
寄存器
PCA_PWM0
和
< br>PCA_PWM1
PCA
模块
0
的
PWM
寄存器的格式如下:
PCA_PWM0
:
PCA
模块
0
的
PWM
寄存器
SFR name
Address
bit
B7
B6
B5
B4
B3
B2
B1
B0
PCA_PWM0
F2H
name
-
-
-
-
-
-
EPC0H
EPC0L
EPC0H:
在
PWM
模式下,与
CCAP0H
组成
9
p>
位数。
EPC0L:
在
PWM
模式下,与
CCAP0L
组成
9
位数。
PCA
模块
1
的
PWM
寄存器的格式如下:
PCA_PWM1
:
PCA
< br>模块
1
的
PWM
寄存器
SFR name
Address
bit
B7
B6
B5
B4
B3
B2
B1
B0
PCA_PWM1
F3H
name
-
-
-
-
-
-
EPC1H
EPC1L
EPC1H:
在
PWM
模式下,与
CCAP1H
组成
9
p>
位数。
EPC1L:
在
PWM
模式下,与
CCAP1L
组成
9
位数。
PCA
模块的工作模式
捕获模式
:
要使一个
PCA
模块工作在捕获模式,寄存器
< br>CCAPMn
的两位(
CAPNn
和
CAPPn
)或
其中任何一位必须
置
1
。
PCA
模块工作于捕获模式时,
对模块的外部
CCPn
输入
(
CCP0/P1.3
,
CCP1/P1.4
)的跳变进行采样。当采样到有效跳变时,
PCA
硬件就将
PCA
计数器阵列寄存
器(
CH
和<
/p>
CL
)的值装载到模块的捕获寄存器中(
CCAPnL
和
CCAPnH
)
。
如果
CCON<
/p>
特殊功能寄存器的位
CCFn
和
CCAPMn
特殊功能寄存器中的位
ECCFn
位
被置位,
将产生中断。
可在中断服务程序中判断哪一个模块产生了中断,
并注意中断标志位
的软件清零问题。
位软件定时器模式
通过置位
CCAPMn
寄存器的
ECOM
和
MA
T
位,
可使
PCA
模块用作软件定时器
(上图)
。
PCA
定时器的值与模块
捕获寄存器的值相比较,当两者相等时,如果位
CCFn
(在<
/p>
CCON
特殊功能寄存器中)和位
ECC
Fn
(在
CCAPMn
特殊功能寄存器
中)都置位,将产生中断。
[CH,CL]
< br>每隔一定的时间自动加
1
,时间间隔取决于选择的时钟源
。例如,当选择的时
钟源为
SYSclk/12,
每
12
个时钟周期
[CH,
CL]
加
1
。
当
[CH,CL]
增加到等于
[CCA
P nH,CCAPnL]
时
,
CCF
n=1,
产
生
中
断请
求
。
如
果
每
次
PCA
模
块
中
断
后<
/p>
,
在
中
断
服务
程
序
中
断
给
[CCAPnH,CCAPnL]
增加一个相同的数值,那么下次中断来临的间隔时间
T
< br>也是相同的,从
而实现了定时功能。定时时间的长短取决于时钟源的选择以及
p>
PCA
计数器数值的设置。下
面举例说明<
/p>
PCA
计数器计数值的计算方法。
假设,
系统时钟频率
SYSclk =
18.432MHz,
选择的时钟源为
SYSclk/12,<
/p>
定时时间
T
为
5
ms,
则
PCA
计数器计数值为:
p>
PCA
计数器的计数值
< br>=T/
(
(
1/SYSclk<
/p>
)
*
12
)
=
0.005/(1/18432000)
*
12
)
=
7680
(
10
进制数)
=
1E00H(16
进制数
)
也
就
是
说
,
PCA
计
时
器
计
数
1E00H
次
,
定
时
时
间
才
是
5ms,
这
也
就
是
每
次
给
[CCAPnH,C
CAPnL]
增加的数值(步长)
。
脉宽调节模式(
PWM
)
脉宽调节模式(
PWM, Pulse
Width
Modulation
)是一种使用程序来控制波形占空比、
周期、相位波形的技术,在三相电机驱动、
D/A
转换等场合有广泛的应用。
STC12
C5A60S2
系列单片机的
PCA
模
块可以通过程序设定,使其工作于
8
位
PWM
模式。
PWM
模式的结构
如下图所示。
-
-
-
-
-
-
-
-
-
上一篇:各个国家的英文
下一篇:世界各国及首都英文名称(带ISO国家代码、音标、国旗)