我的這個程序,可以從這到暗,再從暗到亮。
#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++;
}
/*
此占空比的變化,數據是線性關系,但顯示出來的視覺不是線性關系。因為占空比是功率換算,
有平方根的倒數關系,所以這要進步算法才行。
*/
|