欢迎来到天天文库
浏览记录
ID:39468476
大小:75.00 KB
页数:18页
时间:2019-07-04
《STC单片机PCA模块示例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、STC单片机之PCA/*2路PCA的捕获、高速输出、16bit定时器、PWM模块PCA.c *文件名:PCA.c *芯 片:STC12C5A60S2 *晶 振:12MHz *创建者:冷月 *创建日期:2010.8.18 *修改者: *修改日期:2010.9.3 修改设置波特率参数为x%,增加定时器0作为PCA时钟源 *功能描述:2路PCA的捕获、高速输出、16bit定时器、PWM实现 */ #include#include"PCA.h" #define uchar
2、 unsignedchar#define uint unsignedint //CCAPnL,CCAPnH步进,//CCAPnL,CCAPnH增加一个相同的数值,下一次中断来临的间隔时间也是相同的//无须赋值,PCA初始化函数中自动赋值staticuintstep0=0;staticuintstep1=0; /* *函数名:PCA_Capture_Init *功能描述:PCA捕获模式初
3、始化 *输入参数:module:0-PCA模块0,1-PCA模块1; * PCA_CCAPMn:设置模块工作模式; * PCA_CCAPnH,PCA_CCAPnL:16bit的捕获寄存器 * PCACLK:PCA时钟源 *返回值:无 */voidPCA_Init(bitmodule,ucharPCA_CCAPMn,ucharPCA_CCAPnH,ucharPCA_CCAPnL,ucharPCACLK){ //CID
4、L - - - CPS2 CPS1 CPS0 ECF CMOD=0x80
5、PCACLK; //空闲模式下PCA停止工作,PCA/PWM时钟源输入 //CF CR - - - - CCF1 CCF0 CCON=0x00; if(module==0) //PCA模块0 { CCAP
6、M0=PCA_CCAPMn; CCAP0L=PCA_CCAPnL; CCAP0H=PCA_CCAPnH; step0=((PCA_CCAPnH&0x00FF)<<8)
7、PCA_CCAPnL; } else //PCA模块1 { CCAPM1=PCA_CCAPMn; CCAP1L=PCA_CCAPnL;
8、 CCAP1H=PCA_CCAPnH; step1=((PCA_CCAPnH&0x00FF)<<8)
9、PCA_CCAPnL; } CL=0x00; //清PCA计数器 CH=0x00; //- - - - - - EPCnH EPCnL PCA_PWM0=0x00; //PWM模式下,CCAPnL,CCA
10、PnH第九位 PCA_PWM1=0x00; //PWM模式下,CCAPnL,CCAPnH第九位 //高速脉冲输出时,将中断优先级设为最高级,以避免其他中断干扰 IPH=0x80; IP=0x80; EA=1; CR=1; //启动PCA计数器计数} /* *函数名:InitTimer0 *功能描述:定时器0作为PCA时钟输入源,工作方式2,1T模式 *输入参数:无 *返回值:无 */voi
11、dInitTimer0(void){ TMOD
12、=0x02; //方式2 TH0=0x00; TL0=0x00; //T0x12 T1x12 UM0x6 BRTR S2SMOD BRTx12 EXTRAM S1BRS AUXR
13、=0x80;
此文档下载收益归作者所有