#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
}
|