我的这个程序,可以从这到暗,再从暗到亮。
#include<reg51.h>
#define LED P2
unsigned int T=0,Tt=500,i=0,Ii=100,j=0;
bit A=1;
void TimeConfig();
void main(void)
{
TimeConfig();
while(1)
{
if (T>=Tt)
{
T=0;
}
if (i>=Ii)
{
i=0;
if (A==1)
{
j++;
}
else
{
j--;
}
}
if (j==Tt)
{
A=0;
}
if (j==0)
{
A=1;
}
if (T<=j)
{
LED=0x00;//LED灯亮
}
else
{
LED=0xff;
}
}
}
void TimeConfig()
{
TMOD = 0x01;
TH0 = 0xff;
TL0 = 0xff;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Time0() interrupt 1
{
TH0 = 0xff;
TL0 = 0xff;
T++;
i++;
}
/*
此占空比的变化,数据是线性关系,但显示出来的视觉不是线性关系。因为占空比是功率换算,
有平方根的倒数关系,所以这要进步算法才行。
*/
|