欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機LED燈出現(xiàn)不滅或一直閃爍怎么解決?
[打印本頁]
作者:
strong_g
時間:
2019-3-4 14:18
標題:
單片機LED燈出現(xiàn)不滅或一直閃爍怎么解決?
1.jpg
(85.85 KB, 下載次數(shù): 37)
下載附件
2019-3-4 14:17 上傳
#include<reg52.h> //52系列單片機頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
sbit led1=P2^0;sbit led2=P2^1;
sbit led3=P2^2;sbit led4=P2^3;
sbit led5=P2^4;sbit led6=P2^5;
sbit led7=P2^6;sbit led8=P2^7;
sbit led9=P3^0;
sbit key1=P3^1;sbit key2=P3^2;
sbit key3=P3^3;sbit key4=P3^4;
/*************************延時函數(shù)*****************************/
void delay1ms(uint y)
{
uint j;
while(y--)for(j=0;j<120;j++);
}
/*************************子函數(shù)******************************/
uchar flag;
uchar flag2;
void keyplus(void)
{
if(key1==0) //確認按鍵是否被按下
{
delay1ms(5); //延時消抖動
if(key1==0) //消抖后在判斷按鍵是否按下
{
while(!key1); //等待按鍵釋放
flag++;
if(flag==10)flag=1;
}
}
switch(flag)
{
case 1:
led1=0;
break;
case 2:
led2=0;
break;
case 3:
led3=0;
break;
case 4:
led4=0;
break;
case 5:
led5=0;
break;
case 6:
led6=0;
break;
case 7:
led7=0;
break;
case 8:
led8=0;
break;
case 9:
led9=0;
break;
}
}
void keyreduce(void)
{
if(key2==0) //確認按鍵是否被按下
{
delay1ms(5); //延時消抖動
if(key2==0) //消抖后在判斷按鍵是否按下
{
while(!key2); //等待按鍵釋放
flag2++;
if(flag2==10)flag2=1;
}
}
switch(flag2)
{
case 1:
led9=1;
break;
case 2:
led8=1;
break;
case 3:
led7=1;
break;
case 4:
led6=1;
break;
case 5:
led5=1;
break;
case 6:
led4=1;
break;
case 7:
led3=1;
break;
case 8:
led2=1;
break;
case 9:
led1=1;
break;
}
}
/*************************主函數(shù)******************************/
void main()
{
while(1)
{
keyjia();
keyjian();
}
}
復制代碼
作者:
wulin
時間:
2019-3-4 18:05
這樣寫就沒有問題了
#include<reg52.h> //52系列單片機頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int
sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit led6=P2^5;
sbit led7=P2^6;
sbit led8=P2^7;
sbit led9=P3^0;
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
sbit key4=P3^4;
uchar flag;
//uchar flag2;
/*************************延時函數(shù)*****************************/
void delay1ms(uint y)
{
uint j;
while(y--)
for(j=0;j<120;j++);
}
/*************************子函數(shù)******************************/
void keyscan()
{
if(key1==0) //確認按鍵是否被按下
{
delay1ms(5); //延時消抖動
if(key1==0) //消抖后在判斷按鍵是否按下
{
if(flag<9)
flag++;
switch(flag)
{
case 1:led1=0;break;
case 2:led2=0;break;
case 3:led3=0;break;
case 4:led4=0;break;
case 5:led5=0;break;
case 6:led6=0;break;
case 7:led7=0;break;
case 8:led8=0;break;
case 9:led9=0;break;
}
while(!key1); //等待按鍵釋放
}
}
if(key2==0) //確認按鍵是否被按下
{
delay1ms(5); //延時消抖動
if(key2==0) //消抖后在判斷按鍵是否按下
{
if(flag>0)
flag--;
switch(flag)
{
case 0:led1=1;break;
case 1:led2=1;break;
case 2:led3=1;break;
case 3:led4=1;break;
case 4:led5=1;break;
case 5:led6=1;break;
case 6:led7=1;break;
case 7:led8=1;break;
case 8:led9=1;break;
}
while(!key2); //等待按鍵釋放
}
}
}
/*************************主函數(shù)******************************/
void main()
{
while(1)
{
keyscan();
}
}
復制代碼
作者:
lfc315
時間:
2019-3-4 18:48
每個分支里,亮燈1秒后滅燈
作者:
狂飆的小葉嗎
時間:
2019-3-4 19:59
是不是 延時太短了
作者:
kakaokok
時間:
2019-3-5 09:28
寫的很詳細,感謝分享!
作者:
strong_g
時間:
2019-3-5 16:45
wulin 發(fā)表于 2019-3-4 18:05
這樣寫就沒有問題了
C:\Users\Administrator\Desktop\12.jpg想加多個按鍵依次點亮LED循環(huán)怎么寫
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1