用STC单片机的PCA功能产生PWM脉冲.docx

上传人:小飞机 文档编号:3120369 上传时间:2023-03-10 格式:DOCX 页数:5 大小:37.68KB
返回 下载 相关 举报
用STC单片机的PCA功能产生PWM脉冲.docx_第1页
第1页 / 共5页
用STC单片机的PCA功能产生PWM脉冲.docx_第2页
第2页 / 共5页
用STC单片机的PCA功能产生PWM脉冲.docx_第3页
第3页 / 共5页
用STC单片机的PCA功能产生PWM脉冲.docx_第4页
第4页 / 共5页
用STC单片机的PCA功能产生PWM脉冲.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《用STC单片机的PCA功能产生PWM脉冲.docx》由会员分享,可在线阅读,更多相关《用STC单片机的PCA功能产生PWM脉冲.docx(5页珍藏版)》请在三一办公上搜索。

1、用STC单片机的PCA功能产生PWM脉冲用SST 单片机的PCA功能产生PWM 脉冲 一、程序说明: SST单片机带有5路PCA模块,PCA功能比普通的单片机相比提供更强的计时性,同时更少CPU的干预,用它可以减少软件的开销和改进精度。利用PCA的脉冲宽度调制模式可以产生一个8位PWM,它通过比PCA定时器的低位和比较寄存器的低位产生。当CL=CCAPnL是输出为高。要进入这个模式,可以对CCAPMn的PWM和ECOM位置位。 在PWM 模式,输出的频率决定于PCA定时器的源。由于只有一对CH 和CL寄存器,所有模块共享PCA定时器和频率。输出的占空比由装在高位CCAPnH的值控制。由于写入C

2、CAPnH寄存器不是同步的,写入高位的值不会马上装入CCAPnL做比较,直到输出的另一个周期。用下面的公式计算任何占空比CCAPnH 值: CCAPnH=256 CCAPnH 是8 位整数,占空比是分数。 脉冲宽度调制频率 PCA定时器模式 PWM 频率 12MHz 1/12振荡频率 1/4振荡频率 定时器0溢出: 8位 16位 8位自动重装 外部输入 5.9KHz 3.9KHz 11.8KHz 15.5Hz 0.06Hz 3.9KHz 到15.3KHz 16MHz 5.2KHz 15.6KHz 20.3Hz 0.08Hz 5.2KHz 到20.3KHz 7.8KHz 二、相关寄存器介绍: P

3、CA定时器/计数器模式寄存器 位置 D9H 7 CIDL 6 WDTE 5 - 4 - 3 - 2 CPS1 1 CPS0 0 ECF 标志 功能 CIDL 计数器空闲控制,CIDL=0时,PCA在空闲模式下继续工作。CIDL=1时,PCA在空闲模式下关闭。 WDTE 看门狗定时器使能:WDTE=0时,禁止PCA模块4的看门狗功能。WDTE=1时,使能。 CPS1 PCA计数脉宽选择位1 CPS0 PCA计数脉宽选择位0 CPS1 0 0 1 1 CPS0 0 1 0 1 选择PCA输入* 0 1 2 3 内部时钟6时钟模式下为fosc/6(12时钟模式下为fosc/12) 内部时钟6时钟模式

4、下为fosc/2(12时钟模式下为fosc/4) 定时器0溢出 ECI/P1.2脚输入的外部时钟(6时钟模式最大为osc/4,12 时钟模式下为fosc/8) fosc=振荡器频率 ECF PCA使能计数器溢出中断:ECF=1,使能CCON 中的CF位,产生中断。 ECF=0时禁止CF的功能。 PCA定时器/计数器控制寄存器 位置 D8H 7 CF 6 CR 5 - 4 CCF4 3 CCF3 2 CCF2 1 CCF1 0 CCF0 标志 功能 CR PCA计数器运行控制位,由软件置位将PCA计数器打开,要关闭PCA计数器必须由软件清零。 CL PCA计数器 低字节 CH PCA计数器 高字

5、节 CCAPM0 模块0模式寄DAH 存器 CCAP0模块0捕获高FAH H 字节 CCAP0L7:0 CCAP0H7:0 - ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0 F9H E9H CCAP0模块0捕获低EAH L 字节 三、PWM示例程序代码: #include #include “SST89x5x4Rx.h” / 程序通过比较CL寄存器和CCPA0L的值产生脉冲。 / 如果CL = CCAP0L输出为高,如果CL CCAP0L输出为低。 / 占空比由CCAP0H的值决定. void main CMOD = 0x02; / Setup PCA timer CL = 0x00; CH = 0x00; CCAP0L = 0x40; / Set the initial value same as CCAP0H CCAP0H = 0x40; / 75% Duty Cycle CCAPM0 = 0x42; / Setup PCA module 0 in PWM mode. CR = 1; / Start PCA Timer. while (1)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号