STC12C5201AD单片机的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的捕捉/比较寄存器。
脉
STC12C5201AD单片机PWM功 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)