#include "stc12.h"
#include "intrins.h"
typedef unsigned int uint;
typedef unsigned char uchar;
sbit PWM1=P1^1;
sbit PWM2=P1^2;
sbit PWM3=P1^3;
sbit PWM4=P1^4;
sbit INT_CLK=P2^1;
sbit OUT_EN=P2^2;
sbit INT_DATA=P2^3;
sbit OUT_CLK=P2^4;
sbit CHECK_MID=P3^1;
uint pw1,pw2,pw3,pw4;
void Init_timer0()
{
TMOD=0x02;
TH0=0xF6;
TL0=0xF6;
TR0=1;
ET0=1;
EA=1;
}
void HC595_DATA(uchar dat)
{
uchar a;
OUT_EN=0;
INT_CLK=1;
OUT_CLK=1;
for(a=0;a<8;a++)
{
INT_DATA=dat>>7;
dat<<=1;
INT_CLK=0;
_nop_();
_nop_();
INT_CLK=1;
}
OUT_CLK=0;
_nop_();
_nop_();
OUT_CLK=1;
}
void pwm1f(uint z)
{
pw1=z;
}
void pwm2f(uint x)
{
pw2=x;
}
void pwm3f(uint c)
{
pw3=c;
}
void pwm4f(uint v)
{
pw4=v;
}
void main()
{
Init_timer0();
HC595_DATA(0xD8);
pwm1f(0);
pwm2f(0);
pwm3f(40);
pwm4f(0);
while(1)
{
}
}
void PWM_timer0() interrupt 1
{
uchar a=0;
a++;
if(a==100)
a=0;
if(a<pw1)
PWM1=1;
else
PWM1=0;
if(a<pw2)
PWM2=1;
else
PWM2=0;
if(a<pw3)
PWM3=1;
else
PWM3=0;
if(a<pw4)
PWM4=1;
else
PWM4=0;
} |