#include <stc12c5a.H>
void PWM_init();
void ys (uint x);
sbit q1=P0^0;
sbit q2=P0^1;
sbit z2=P2^0;
sbit z1=P2^1;
sbit y1=P2^2;
sbit y2=P2^3;
sbit zj=P2^4;
void qian()
{
q1=1;q2=1;
CCAP0H = 70;
}
void zuo()
{
q1=1;q2=0;
CCAP0H = 130;
}
void you()
{
q1=0;q2=1;
CCAP0H = 130;
}
void main ()
{
PWM_init();
while(1)
{
qian();
if(z1==1&&y1==0)
{
zuo();
while(zj==0);
qian();
}
if(z2==1&&y1==0)
{
zuo();
while(zj==0);
qian();
}
if(y1==1&&z1==0)
{
you();
while(zj==0);
qian();
}
if(y2==1&&z1==0)
{
you();
while(zj==0);
qian();
}
if(z1==1&&zj==1&&y1==1)
{
qian();
}
}
}
void ys (uint x)
{
uint a,b,c;
for(c=x;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
void PWM_init()
{
CCON=0X00; //CF中断标志位为0 CR运行控制位清零 CCF1 CCF2模块中断标志位为0
CMOD=0x02; //CIDL在空闲状态下继续工作 时钟源选择系统时钟/2 ECF计数器中断溢出使能位 0
CCAPM0=0X42; //模式选择位0
CCAPM1=0X42; //模式选择位1
CL=CH=0; //PWM内的计数器高低位TH0 TL0
CR=1; //运行控制位 打开PWM
}
|