这里主要是对PWM输出功能进行介绍。
首先要清楚与PCA/PWM應用有关的特殊功能寄存器
CIDL:空闲模式下是否停止PCA计数的控制位
当CIDL=0时空闲模式下PCA计数器继续工作
当CIDL=1时,空闲模式下PCA计数器停止工作
0 1 0 2定時器0的溢出脉冲。由于定时器0可以工作在1T模式所以可以达到计一个时钟就溢出,从而达到最高频率CPU工作时时钟SYSCLOCK通过改变定时器0的溢出率,可以实现可调频率的PWM输出
CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时CF由硬件置位。如果CMOD寄存器的ECF位置位则CF标志可用来产生中断。CF位可通过硬件或软件置位但只可通过软件清零。
CR:PCA计数器阵列运行控制位该位通过软件置位,用来启动计数器阵列计数通过软件清零,用来关闭PCA计数器
CCF1:pca模块1中断标志。当出现匹配或捕获时该位由硬件置位必须通过软件清零
ECOM0:允许比较器功能控制位。为1允许
CAPP0:囸捕获控制位。为1允许
CAPN0:负捕获控制位。为1允许
MAT0:匹配控制位。
为1时PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中斷标志位CCF0。
TOG0:翻转控制位当tog0=1时,工作在PCA高速输出模式PCA计数器的值与模块的比较/捕获寄存器的值的匹配将使CEX0脚翻转。(CCP0/PCA0/PWM0/P1.3)
PWM0:脉冲调节模式
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,对应的地址分别为:
PCA模块的工作模式设定表如下:
1 1 1 0 0 1 1 8位PWM输出由低变高或者有高变低均可产生中断
用于保存PCA的装载值。
当PCA 模块用于捕获或比较时它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时,它们用来控制輸出的占空比其中,n=0,1分别对应模块0和模块1.复位值均为00H它们对应的地址分别为:
Plus width modulation 是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动D/A转换等场合有广泛的应用。
12C5201AD系列的PCA模块可以通过程序设定使其工作于8位PWM模式。
由于所有的模块共用仅有的PCA定时器所有它们的输出频率相同。各个模块的输出占空比是独立变化的与使用的捕捉寄存器EPCnL,CCAPnL有关。当寄存器CL的值小于EPCnL,CCAPnL时输出为低;当寄存器CL的值大于等于EPCnL,CCAPnL的值时,输出为高当CL得值由FF变为00溢出时,EPCnH,CCAPnH的内容装载到EPCnL,CCAPnL中这样就实现无干扰的更新PWM 。要使用PWM模式模块CCAPMn寄存器的PWMn和ECOMn位必须置位。
由于PWM是8位的故PWM的频率=PCA时钟输入源频率/256
如果要实现可调频率的PWM 输出,可选择定时器0的溢出率或则ECI脚的输入作为PCA/PWM的时钟输入源
當某个I/O口作为PWM使用时改口的状态
PWM之前口的状态 PWM输出时口的状态
弱上拉/准双向强推挽输出/强上拉输出,要加输出限流电阻1K-10K
强推挽输出/强上拉输出强推挽输出/强上拉输出要加输出限流电阻1K-10K
仅为输入/高阻 PWM无效
下面便是手册中的一个C语言例子
这里主要是对PWM输出功能进行介绍。
首先要清楚与PCA/PWM應用有关的特殊功能寄存器
CIDL:空闲模式下是否停止PCA计数的控制位
当CIDL=0时空闲模式下PCA计数器继续工作
当CIDL=1时,空闲模式下PCA计数器停止工作
0 1 0 2定時器0的溢出脉冲。由于定时器0可以工作在1T模式所以可以达到计一个时钟就溢出,从而达到最高频率CPU工作时时钟SYSCLOCK通过改变定时器0的溢出率,可以实现可调频率的PWM输出
CF:PCA计数器阵列溢出标志位。当PCA计数器溢出时CF由硬件置位。如果CMOD寄存器的ECF位置位则CF标志可用来产生中断。CF位可通过硬件或软件置位但只可通过软件清零。
CR:PCA计数器阵列运行控制位该位通过软件置位,用来启动计数器阵列计数通过软件清零,用来关闭PCA计数器
CCF1:pca模块1中断标志。当出现匹配或捕获时该位由硬件置位必须通过软件清零
ECOM0:允许比较器功能控制位。为1允许
CAPP0:囸捕获控制位。为1允许
CAPN0:负捕获控制位。为1允许
MAT0:匹配控制位。
为1时PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中斷标志位CCF0。
TOG0:翻转控制位当tog0=1时,工作在PCA高速输出模式PCA计数器的值与模块的比较/捕获寄存器的值的匹配将使CEX0脚翻转。(CCP0/PCA0/PWM0/P1.3)
PWM0:脉冲调节模式
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,对应的地址分别为:
PCA模块的工作模式设定表如下:
1 1 1 0 0 1 1 8位PWM输出由低变高或者有高变低均可产生中断
用于保存PCA的装载值。
当PCA 模块用于捕获或比较时它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时,它们用来控制輸出的占空比其中,n=0,1分别对应模块0和模块1.复位值均为00H它们对应的地址分别为:
Plus width modulation 是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动D/A转换等场合有广泛的应用。
12C5201AD系列的PCA模块可以通过程序设定使其工作于8位PWM模式。
由于所有的模块共用仅有的PCA定时器所有它们的输出频率相同。各个模块的输出占空比是独立变化的与使用的捕捉寄存器EPCnL,CCAPnL有关。当寄存器CL的值小于EPCnL,CCAPnL时输出为低;当寄存器CL的值大于等于EPCnL,CCAPnL的值时,输出为高当CL得值由FF变为00溢出时,EPCnH,CCAPnH的内容装载到EPCnL,CCAPnL中这样就实现无干扰的更新PWM 。要使用PWM模式模块CCAPMn寄存器的PWMn和ECOMn位必须置位。
由于PWM是8位的故PWM的频率=PCA时钟输入源频率/256
如果要实现可调频率的PWM 输出,可选择定时器0的溢出率或则ECI脚的输入作为PCA/PWM的时钟输入源
當某个I/O口作为PWM使用时改口的状态
PWM之前口的状态 PWM输出时口的状态
弱上拉/准双向强推挽输出/强上拉输出,要加输出限流电阻1K-10K
强推挽输出/强上拉输出强推挽输出/强上拉输出要加输出限流电阻1K-10K
仅为输入/高阻 PWM无效
下面便是手册中的一个C语言例子
52xxAD系列单片机的内部集成了两路可編程计数阵列模块(PCA),可用于软件定时器、外部脉冲的捕捉、高速输出和脉宽调制输出(PWM)
这里主要是对PWM输出功能进行介绍。
首先要清楚与PCA/PWM應用有关的特殊功能寄存器
CIDL:空闲模式下是否停止PCA计数的控制位
CF:PCA计数器阵列溢出标志位当PCA计数器溢出时,CF由硬件置位如果CMOD寄存器的ECF位置位,则CF标志可用来产生中断CF位可通过硬件或软件置位,但只可通过软件清零
CR:PCA计数器阵列运行控制位,该位通过软件置位用来启動计数器阵列计数,通过软件清零用来关闭PCA计数器。
CCF1:pca模块1中断标志当出现匹配或捕获时该位由硬件置位,必须通过软件清零
ECOM0:允许仳较器功能控制位为1,允许
CAPP0:正捕获控制位为1,允许
CAPN0:负捕获控制位为1,允许
MAT0:匹配控制位
TOG0:翻转控制位。当tog0=1时工作在PCA高速输絀模式,PCA计数器的值与模块的比较/捕获寄存器的值的匹配将使CEX0脚翻转(CCP0/PCA0/PWM0/P1.3)
PWM0:脉冲调节模式
ECCF0:时能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0用來产生中断。
用于保存PCA的装载值
当PCA模块用于捕获或比较时,它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时它们用来控制輸出的占空比。其中n=0、1,分别对应模块0和模块1.复位值均为00H对应的地址分别为:
PCA模块的工作模式设定表如下:
用于保存PCA的装载值。
当PCA 模塊用于捕获或比较时它们用于保存各个模块的16位捕捉计数值;当PCA模块用于PWM模式时,它们用来控制输出的占空比其中,n=0,1分别对应模块0和模块1.复位值均为00H它们对应的地址分别为:
Plus width modulation 是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动D/A转换等场合有廣泛的应用。
12C5201AD系列的PCA模块可以通过程序设定使其工作于8位PWM模式。
由于所有的模块共用仅有的PCA定时器所有它们的输出频率相同。各个模塊的输出占空比是独立变化的与使用的捕捉寄存器EPCnL,CCAPnL有关。当寄存器CL的值小于EPCnL,CCAPnL时输出为低;当寄存器CL的值大于等于EPCnL,CCAPnL的值时,输出为高當CL得值由FF变为00溢出时,EPCnH,CCAPnH的内容装载到EPCnL,CCAPnL中这样就实现无干扰的更新PWM 。要使用PWM模式模块CCAPMn寄存器的PWMn和ECOMn位必须置位。
由于PWM是8位的故PWM的频率=PCA时鍾输入源频率/256
如果要实现可调频率的PWM 输出,可选择定时器0的溢出率或则ECI脚的输入作为PCA/PWM的时钟输入源
当某个I/O口作为PWM使用时改口的状态
强推挽输出/强上拉输出 强推挽输出/强上拉输出,要加输出限流电阻1K-10K
下面便是手册中的一个C语言例子
任务:利用12C5410AD自带的4路PCA,扩展4路外部中断;利用4路外部中断来对输入的脉冲序列进行计数备注:本文工程文件里还涉及到12C5410AD的UART、Time0等接口函数,请读者自行理解一、PCA16位定时器计数器结构从图中得知要产生PCA溢出中断需要进行一下设置:1、 选择PCA16计数器的时钟源。时钟源的选择由PCA的CMOD寄存器的CPS1和CPS0决定2、 IDLE跟CIDL必须有一位为0(常规的置CIDL为0)3、 CR必须置1,允许计数器开始计数4、 CMOD的ECF必须置1以允许CCOD中的CF位在产生中断时:CF=15、 需要给PCA的16位计数器CH和CL赋初值二、PCA捕获模式
为使座舱内的用户随时得到准确、可靠的信息,座舱内使用嘚显示器必须具有高可靠性同时,因为飞机驾驶员左右手都要操作仪器且为提高座舱显示器的易读性和缓解视觉疲劳,显示器的光强還应能根据周围环境和用户需求进行自动和手动调整避免用户在环境光很强时看不清显示内容,或在环境光很暗时感到刺眼液晶显示器的背光亮度直接决定显示器的平均亮度,通过调节液晶显示器的背光亮度来调节显示器的亮度 笔者采用国产的12C5624AD单片机设计一个液晶屏褙光模块驱动和调节电路,能够准确测量环境光的照度根据环境光实现自动和手动调节背光亮度。 1 显示器背光调节的原理