原创 STC12C5412AD程序!!!

2007-6-4 22:16 3091 11 11 分类: MCU/ 嵌入式

#include<stc12c5412ad.h>
sbit   P3_7=P3^7;
unsigned long  output,pwm_low;
/*pca模块0,控制舵机1,输出引脚为P3_7*/
void PCA_timer(void) interrupt 6
{
P3_7=!P3_7;       //p3.7 取反//
pwm_low=100000-output;   // 重新设置计数初值//
CCAP0L=(unsigned char)(pwm_low/12%256);
CCAP0H=(unsigned char)(pwm_low/12/256);
CCF0=0;
}
void main(void)
{


P3_7=1; //设置P3.7口为高电平//
CMOD=0x80;  //PCA在空闲模式下停止PCA计数器工作,时钟源为fosc/12  //
CCON=0x00;   //CF=0,清0 PCA计数器溢出中断请求标志位,CR=0,不允许PCA计数器计数,清0  PCA各模块请求中断标志位 //
CH=0;         //清0 PCA计数器//
CL=0;
CCAPM0=0x49;    //设置PCA模块0为16位软件定时器,ECCF0=1允许PCA模块0中断;当[CH,CL]==[CCAP0H, CCAP0L]时,产生中断请求,CCF0=1, //
output=4550;
CCAP0L=(unsigned char)(output/12%256);            //设置PCA模块0的CCAP0L初值//
CCAP0H=(unsigned char)(output/12/256);            //设置PCA模块0的CCAP0H初值//
EPCA_LVD=1;       //开PCA中断和LVD(低压检测)中断共享的总中断控制位//
EA=1;   //开整个单片机所有中断共享的总中断控制位//
CR=1;   //启动PCA计数器(CH,CL)计数//
while(1);
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
11
关闭 站长推荐上一条 /3 下一条