欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
初學,不知道這個程序能不能實現KEY1控制LED1閃爍,KEY3控制LED3亮滅
[打印本頁]
作者:
simas
時間:
2018-6-12 11:13
標題:
初學,不知道這個程序能不能實現KEY1控制LED1閃爍,KEY3控制LED3亮滅
本帖最后由 simas 于 2018-6-12 11:18 編輯
#include <STC15W.h>
#define ulong unsigned long
#define uchar unsigned char
#define uint unsigned int
sbit LED1 =P3^7;
sbit LED2 =P3^6;
sbit LED3 =P3^3;
sbit BUZZ =P3^2;
sbit KEY1 =P1^1;
sbit KEY2 =P1^2;
sbit KEY3 =P1^3;
sbit KEY4 =P1^4;
char KEY1_T,KEY2_T,KEY3_T;
void delay( unsigned int t)
{
unsigned char i,j;
for(i=t;i>0;i--)
for(j=250;j>0;j--);
}
void led1ss()
{
LED1=1;delay(1500);LED1=0;delay(1500);
}
void led2ss()
{
LED2=1;delay(1500);LED2=0;delay(1500);
}
void key_scan()
{
if(KEY1==0)
{
delay(10);
if(KEY1==0)
{
if ( (KEY1 == 0)&&(KEY1_T == 0) )
{led1ss();KEY1_T = 1;}
else if ( (KEY1 == 0)&&(KEY1_T == 1) )
{LED1 = 0;KEY1_T = 0;}
}
}
if(KEY2==0)
{
delay(10);
if (KEY2==0)
{
if ( (KEY2 == 0)&&(KEY2_T == 0) )
{led2ss();KEY2_T = 1;}
else if ( (KEY2 == 0)&&(KEY2_T == 1) )
{LED2 = 0;KEY2_T = 0;}
}
}
if(KEY3==0)
{
delay(10);
if(KEY3==0)
{
if ( (KEY3 == 0)&&(KEY3_T == 0) )
{LED3=1;KEY3_T = 1;}
else if ( (KEY3 == 0)&&(KEY3_T == 1) )
{LED3 = 0;KEY3_T = 0;}
}
}
if(KEY4==0)
{
delay(10);
if(KEY4==0)
{
BUZZ=1;
}
}
}
void main()
{
LED1=0;
LED2=0;
LED3=0;
BUZZ=0;
while(1)
{
key_scan();
}
}
作者:
134849694164151
時間:
2018-6-12 12:21
實驗一下就知道了呀
作者:
zsyzdx
時間:
2018-6-12 12:25
KEY3_T,這幾個T是做什么的沒看懂!!!!!
作者:
zzyo17
時間:
2018-6-12 12:54
可以的
作者:
simas
時間:
2018-6-12 14:11
zsyzdx 發表于 2018-6-12 12:25
KEY3_T,這幾個T是做什么的沒看懂!!!!!
按鍵標志
作者:
simas
時間:
2018-6-12 14:12
134849694164151 發表于 2018-6-12 12:21
實驗一下就知道了呀
實驗后,只有在KEY1,KEY2按著的情況下才閃爍
作者:
simas
時間:
2018-6-12 16:16
如何實現按下key1, led1持續閃爍,再按下熄滅,請各位大師教教我。
作者:
123qwerasdf
時間:
2018-6-12 16:35
如何實現按下key1, led1持續閃爍,再按下熄滅,請各位大師教教我。
作者:
xjanzy
時間:
2018-6-12 17:05
看程序沒有問題,只是還有其他功能,不是太懂,借用別人的代碼?
作者:
夢幻泡影
時間:
2018-6-12 17:47
if ( (KEY2_T == 0)
{led2ss();KEY2_T = 1;}
else if ( KEY2_T == 1 )
{LED2 = 0;KEY2_T = 0;}
改成這樣試試
作者:
miho
時間:
2018-6-12 18:11
看看這個
程序不一定正確,
程序不一定正確,
程序不一定正確,
只是提供一個思路,
每按一次key1,主程序里led1_flash_ctr取反一次,led1_flash_ctr控制led1是否閃爍
#include <STC15W.h>
#define ulong unsigned long
#define uchar unsigned char
#define uint unsigned int
sbit LED1 =P3^7;
sbit LED2 =P3^6;
sbit LED3 =P3^3;
sbit BUZZ =P3^2;
sbit KEY1 =P1^1;
sbit KEY2 =P1^2;
sbit KEY3 =P1^3;
sbit KEY4 =P1^4;
char KEY1_T,KEY2_T,KEY3_T;
void delay( unsigned int t)
{
unsigned char i,j;
for(i=t;i>0;i--)
for(j=250;j>0;j--);
}
void led1ss(char SW1)
{
if(SW1=1)
{ LED1=1;delay(1500);LED1=0;delay(1500);}
else
LED1=1;
}
char key1_pressed;
char key2_pressed;
char key3_pressed;
char key4_pressed;
char led1_flash_ctr;
void key_scan()
{
if(KEY1==0)
{
delay(10);
if(KEY1==0)
{
key1_pressed=1;
while(!KEY2); //檢測按鍵彈起
}
}
if(KEY2==0)
{
delay(10);
if (KEY2==0)
{
key2_pressed=1;
while(!KEY2);
}
}
if(KEY3==0)
{
delay(10);
if(KEY3==0)
{
key3_pressed=1;
while(!KEY3);
}
}
if(KEY4==0)
{
delay(10);
if(KEY4==0)
{
key4_pressed=1;
while(!KEY4);
}
}
}
void main()
{
LED1=0;
LED2=0;
LED3=0;
BUZZ=0;
while(1)
{
key_scan();
if(key1_pressed)
{
key1_pressed=0;
led1_flash_ctr=!led1_flash_ctr;
}
if(key2_pressed)
{
key2_pressed=0;
//按下key2的操作
}
led1ss(led1_flash_ctr);
}
}
作者:
我不后悔
時間:
2018-6-12 19:41
程序太繁長,還亂,程序不是越長越好。程序可以正常運行。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1