173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

单片机多个按键控制多个程序

htxw 2023-03-15 资讯中心 30 ℃

单片机如何实现多按键同时控制?

先设定8个按键标志位,

再进行按键扫描,开机,关机,暂停,继续四个功能通过短按和长按区分,当检测到按键按下后,将相应的标志位置1,向串行输入口rxd发送命令后再将标志位清零.

按键扫描可以采用定时器中断定时扫描.

按键时间长短控制,当检测到有键按下时暂停定时器,延时判断长短按键,再打开定时器,继续...

51单片机怎样用两个以上按键同时控制相应程序的执行

按键按下,给一标志位,子函数 通过识别 标志位,判断是否 执行流水。

猜测:又一个受 郭大侠荼毒的孩子!

51单片机8路流水灯! 用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序!

#includereg51.h

#define uchar unsigned char

sbit key1=P1^0;

sbit key2=P1^1;

sbit key3=P1^2;

uchar led1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar led2[]={0xe7,0xdb,0xbd,0x7e};

bit flag;

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i120;i++);

}

void prog1(void)

{

uchar i;

while(flag)

{

P0=led1[i];

i++;

i%=8;

delay(200);

}

}

void prog2(void)

{

uchar i;

while(flag)

{

P0=led2[i];

i++;

i%=4;

delay(200);

}

}

viud prog3{void)

{

uchar i=7;

while(flag)

{

P0=led1[i];

i--;

if(i7)i=7;

delay(200);

}

}

main()

{

flag=0;

while(1)

{

if(key1==0)

{

flag=0;

while(key1==0);

flag=1;

}

if(key2==0)

{

flag=0;

while(key2==0);

flag=1;

}

if(key3==0)

{

flag=0;

while(key3==0);

flag=1;

}

}

}

单片机多个按键控制多个程序的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:单片机多个按键控制多个程序

<