欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
小白求助51單片機(jī)切換流水燈模式該怎么設(shè)計(jì)
[打印本頁(yè)]
作者:
小白1211
時(shí)間:
2022-1-29 20:55
標(biāo)題:
小白求助51單片機(jī)切換流水燈模式該怎么設(shè)計(jì)
問(wèn)題是不會(huì)寫(xiě)按鍵切換模式的代碼
比如說(shuō)按一下是閃爍模式
再按一下是呼吸燈模式
再按一下是跑馬燈模式
一個(gè)按鍵控制八個(gè)led燈
作者:
豆豆王一
時(shí)間:
2022-1-30 07:53
用一串if,按鍵按下進(jìn)入下一個(gè)循環(huán)就像這樣
if(按鍵按下&&計(jì)數(shù)變量為x)
{
函數(shù)體;
if(按鍵按下)
{
計(jì)數(shù)變量增加1;//進(jìn)入到下一個(gè)函數(shù)中
}
}
不知道我說(shuō)的你能否明白
作者:
lkc8210
時(shí)間:
2022-1-30 15:39
給個(gè)栗子
#include <reg52.h>
typedef unsigned char u8; //0 to 255
typedef unsigned int u16; //0 to 65535
typedef unsigned long u32; //0 to 4294967295
sbit KEY_32 = P3^2;
u8 mode = 0;
u16 TMR_XX_PRE = 6000;
u8 index = 0;
void key_Proc()
{
static u16 Delay_XD=0;
if(!KEY_32)
{
if(Delay_XD<0xFFFF)Delay_XD++;
if(Delay_XD==250)
{
mode = ++mode %4;
index = 0;
P1 = 0xFF;
}
}
else
Delay_XD = 0;
}
void Led_Flow()
{
static u16 TMR_XX_ACC;
if(++TMR_XX_ACC >= TMR_XX_PRE)
{TMR_XX_ACC=0;
switch (mode)
{
case 0:
P1 = ~(0x01 << index);
index = ++index %8;
break;
case 1:
P1 = ~(0x80 >> index);
index = ++index %8;
break;
case 2:
if(index < 8)
P1 &= ~(0x01 <<index);
else
P1 |= (0x01 <<(index-8));
if(++index >15)
{
index = 0;
}
break;
}
}
}
void main()
{
while (1)
{
key_Proc();
Led_Flow();
}
}
復(fù)制代碼
作者:
lucheng77
時(shí)間:
2022-1-31 01:19
用一串if語(yǔ)句可以,用一個(gè)switch也可以
if(ann==0) //宏定義把實(shí)際端口映射到變量ann上, 如果有按鈕按下
{delay(10); //延時(shí)消抖
if(ann==0)
{
i++; //i變量加1,為后面選擇做準(zhǔn)備
}
}
if(i>2)
{i=0;} //給變量i設(shè)定一個(gè)邊界。
switch (i)
{
case 0:閃爍模式程序;break;
case 1:呼吸燈模式;break;
case 2:跑馬燈模式;break;
default:break;
}
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1