热度 21
2012-12-10 21:41
8798 次阅读|
1 个评论
由于STC12C2052AD单片机是作于1个时钟/机器周期,且有增强型8051内核,故其速度比普通8051快8~12倍。该单片机有2路可编程计数器阵列(PCA)/PWM,其中PCA1模块用作捕获模式,可识别输入的PWM调制信号,PCA0模块用作脉宽调节模式(PWM),可实现频率转换。此外,由于该单片机价格比较便宜,故采用此单片机作为核心控制芯片。 前期曾写过一个不用PCA模块实现的PWM程序,是软件实现,下面是一个stc单片机PCA的自带PWM编程实例参考 。 #includereg52.h sfr CCON = 0xD8; sfr CMOD = 0xD9; sfr CL = 0xE9; sfr CH = 0xF9; sfr CCAP0L = 0xEA; sfr CCAP0H = 0xFA; sfr CCAPM0 = 0xDA; sfr CCAPM1 = 0xDB; sbit CR = 0xDE; void main(void) { CMOD = 0x02; // 设置 PCA 定时器 CL = 0x00;//清零 CH = 0x00; CCAP0L = 0x40; //设置75%占空比 CCAP0H = 0x40; // 当CL由ff变为00溢出时,CCAP0H装载到CCAP0L中,实现无干扰的更新PWM。 CCAPM0 = 0x42; //0100,0010 设置使用PWM模式 CR = 1; //开启 PCA 定时器. while(1){}; }