#include<reg52.h>
#define uint unsigned int
#define led1 P1//P1口全接發光管,驗證程序請自行修改
/**********占空比太小會熄滅,故一開始有3.3%,最大占空比也看不出變化了,故最大為80%**********/
void delay (uint yc) //延遲函數,定時器中斷更好,這里就偷懶了
{
uint i,j;
for (i=yc;i>0;i--)
for (j=10;j>0;j--);
}
void main()
{
uint i=5,n=0; //此處初始化i不得小于最小占空比
while(1)
{
if(i==120) //調節最大占空比
n=1;
if(i==4) //最小占空比
n=0;
led1=0x00;//此處自行修改
delay(i);
led1=0xff;//此處自行修改
delay(150-i);//半周期時間
if(n==0)
i++;
if(n==1)
i--;
}
}
呼吸燈,建議樓主仔細理解一下PWM的含義,簡單說PWM是固定時間長度的周期內,高低電平占時間比的變化量。 |