標(biāo)題:
單片機(jī)pwm呼吸燈代碼
[打印本頁]
作者:
七七才
時間:
2021-12-7 11:04
標(biāo)題:
單片機(jī)pwm呼吸燈代碼
unsigned char PWM_COUNT; //計數(shù)
unsigned int HUXI_COUNT; //占空比更新時間
unsigned char PWM_VLAUE; //占空比比對值
bit direc_flag; //占空比更新方向
void timer0_init()
{
TMOD = 0x02; //模式設(shè)置,00010000,定時器0,工作于模式2(M1=1,M0=0)
TH0 = 0x47; //定時器溢出值設(shè)置,每隔200us發(fā)起一次中斷。
TL0 = 0X47;
TR0 =1; //定時器0開始計時
ET0 =1; //開定時器0中斷
EA = 1; //開總中斷
PWM_COUNT =0;
}
void time0() interrupt 1
{
PWM_COUNT++;
HUXI_COUNT++;
if(PWM_COUNT == PWM_VLAUE) //判斷是否到了點亮LED的時候 這里pwm_count==pwm_vlaue 里的pwm_count是指的計數(shù) 為什么計數(shù)加到和
PWM_VLAUE相等時就點亮
還有這個計數(shù)又是什么
LED = 1; //點亮LED
if(PWM_COUNT == 10) //當(dāng)前周期結(jié)束
{
LED = 0; //熄滅LED
PWM_COUNT = 0; //重新計時
}
if((HUXI_COUNT == 600) && (direc_flag == 0))
{
//占空比增加10%
HUXI_COUNT = 0;
PWM_VLAUE++;
if(PWM_VLAUE == 9) //占空比更改方向
direc_flag = 1;
}
if((HUXI_COUNT == 600) && (direc_flag == 1))
{
//占空比減少10%
HUXI_COUNT = 0;
PWM_VLAUE--;
IF(PWM_VLAUE == 1) //占空比更改方向
DIREC_FLAG = 0;
}
}
void main()
{
HUXI_COUNT = 0;
PWM_COUNT = 0;
PWM_VLAUE = 5;
direc_flag = 0;
LED = 1; //默認(rèn)LED熄滅
timer0_init(); //定時器0初始化
while(1);
}
復(fù)制代碼
作者:
bbbaddd
時間:
2023-4-18 17:50
你好,我想將通過單片機(jī)內(nèi)部adc獲取的光敏電阻數(shù)值和led燈的亮暗結(jié)合起來,該怎么寫
作者:
fggy
時間:
2023-11-27 22:14
有原理圖嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1