利用STC12C系列单片机产生PWM波形(下)
定时器功能说明
STC12C2052AD系列有6个定时器,其中T0和T1是两个16位定时器,都具有计数方式及定时方式两种工作方式。对每个定时器/计数器,在特殊功能寄存器TMOD中都有一控制位来选择T0或T1为定时器还是计数器。其核心部件是一个加法的计数器,其本质是对脉冲进行计数。计数脉冲如果来自系统时钟就为定时器;计时脉冲来自单片机外部引脚(T0为P3.4,T1为P3.5)则为计数器。
特殊功能寄存器AUXR中的T0x12和T1x12,当工作在定时器模式时,分别用来决定系统时钟分频大小;当工作在计数器模式时,对外部脉冲不分频。
PCA功能说明
STC12C2052AD系列单片机集成了2路可编程计数器阵列(PCA)模块,可用于软件定时、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)的输出。
在此次的应用实现中,T0被用来控制PWM频率,设置及说明如下:
另外,还使用了外置中断来控制占空比,其中外部中断0用来增加PWM输出占空比,外部中断1用来减少占空比。代码如下:
通过上面的实例,我们就可以通过T0设置频率,PCA来设置占空比,中断0/1则用来调整占空比。
如果测试机需要使用及控制单片机,就可以使用外部中断,或者其它IO口,来控制单片机的输出。当然,也可以直接用串口进行控制。
本文地址: http://www.kanwoda.com/blog/archives/09230559131379.html