用單片機led去實作呼吸燈
include<reg52.h>
sbit led=P2^0; //定義一個引腳
unsigned int i,j,,k,b=0;
void Timer0Init(void) //1毫秒@11.0592MHz
{ TMOD &= 0xF0; //設定定時器模式
TMOD |= 0x01; //設定定時器模式
TL0 = 0x33; //設定定時初值
TH0 = 0xFE; //設定定時初值
TR0 = 1; //定時器0開始計時
ET0=1;
EA=1;
}
void main() //主函式
{
Timer0Init();
while(1);
}
void init0() interrupt 1 // 中斷服務函式
{ i++;
j++;
TL0 = 0x33; //定時器賦初值
TH0 = 0xFE;
if(j==300) //變數j,控制呼吸燈的頻率
{
j=0;
if(b==0) //變數b,使k進行反轉
{
k++;
if(k==10)
b=1;
}
else
{
k--;
if(k==1)
b=0;
}
}
if(i==k) //通過變數i來設定pwm的占空比
{
led=0;
}
if(i==10) //這個10代表PWM的周期
{
i=0;
led=1;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/278536.html
標籤:其他
