黄金会员
主题
帖子
积分5257
阅读权限40
注册时间2012-6-13
最后登录1970-1-1
在线时间 小时
|
#include <reg52.h>
#define LED_on P1=0x00
#define led_off P1=0xff
#define pwm_max 99
#define pwm_min 0
unsigned char timenum;
signed char ledpwm,ledpwm_temp,kk,ZhanKongBi=0;
bit leddirction=1,Head;
void delayms(int tt)
{
int i;
while(--tt>0)
{
for(i=255;i>0;i--);
}
}
void main(void)
{
TMOD=0x02; //BY HE 20130517
TL0=156; //0.1MS 12MHz
TH0=156;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(kk>120)
{
kk=0;
}
if(kk<ZhanKongBi)
{
P1=0;
if(ZhanKongBi==0)
{
TR0=0;
delayms(255);
delayms(255);
TR0=1;
}
}
else
{
P1=0xff;
}
}
}
void timer0(void) interrupt 1
{
kk++;
if((++timenum)>=250)
{
timenum=0;
if(leddirction)
{
if(++ZhanKongBi>99) leddirction=0;
else leddirction=1;
}
else
{
if(--ZhanKongBi<0) leddirction=1;
else leddirction=0;
}
}
}
|
|