欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機使用定時器中斷控制LED先200ms閃爍三次,再500ms閃爍三次,再200ms....
[打印本頁]
作者:
EHJUDSZ
時間:
2024-8-12 17:02
標題:
單片機使用定時器中斷控制LED先200ms閃爍三次,再500ms閃爍三次,再200ms....
要求使單片機的定時器中斷控制LED先200ms閃爍三次,再500ms閃爍三次,再200ms閃爍三次,跪求一下思路
作者:
xiaobendan001
時間:
2024-8-13 07:32
弄個計數(shù)器,每50毫秒++,然后在計數(shù)器==2時反轉(zhuǎn)輸出,==4再反轉(zhuǎn),然后==6再反轉(zhuǎn),……==10再反轉(zhuǎn),==15再反轉(zhuǎn)……
作者:
597259498
時間:
2024-8-13 08:03
定義三個變量就可以了
作者:
zmc419
時間:
2024-8-13 11:33
定義三個變量,在定時器中斷中累加。主程序循環(huán)判定三個變量,到時間清零并反轉(zhuǎn)LED電平。
作者:
xing_121
時間:
2024-8-13 21:58
本帖最后由 xing_121 于 2024-8-14 20:01 編輯
思路:設(shè)個變量j,j為Led閃爍的次數(shù),將j平分,每部分為6,即不管200ms還是500msLed都會閃爍三次(亮燈加上滅燈為一次),然后定義i,為200ms和500ms的時間標志位,每次輪完一次大周期,記得要清零,不過j不能等于0,因為j是從1開始計的。
#include <reg52.h>
sbit Led = P2^0;
/*********
函 數(shù) 名:void Timer0Init(void)
函數(shù)功能:初始化
參 數(shù):none
返 回:none
**********/
void Timer0Init(void) //1毫秒@12.000MHz
{
TMOD &= 0xF0; //設(shè)置定時器模式
TMOD |= 0x01; //設(shè)置定時器模式
TL0 = 0x18; //設(shè)置定時初始值
TH0 = 0xFC; //設(shè)置定時初始值
TF0 = 0; //清除TF0標志
TR0 = 1; //定時器0開始計時
ET0 = 1;
EA = 1;
}
void main()
{
Timer0Init();
while(1);
}
/**********
函 數(shù) 名:void Timer0() interrupt 1
函數(shù)功能:
參 數(shù):none
返 回:none
*********/
void Timer0() interrupt 1 //1ms
{
static unsigned char j=1;
static unsigned int i;
TL0 = 0x18; //設(shè)置定時初始值
TH0 = 0xFC; //設(shè)置定時初始值
if(j <= 6)
{
if(++i >= 200)
{
i = 0;
j++;
Led =~ Led;
}
}
else
{
if(++i >= 500)
{
i = 0;
j++;
Led =~Led;
}
}
if(j > 12)
{
j = 1;
}
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1