单片机应用,一个键多次按下,能够依次控制红黄蓝绿四个灯控制第一次按下亮红灯然后绿灯依次四下 10

单片机应用,一个键多次按下,能够依次控制红黄蓝绿四个灯控制第一次按下亮红灯然后绿灯依次四下再第五次按下交替闪烁,松开够都熄灭... 单片机应用,一个键多次按下,能够依次控制红黄蓝绿四个灯控制第一次按下亮红灯然后绿灯依次四下再第五次按下交替闪烁,松开够都熄灭 展开
 我来答
happy19941128
2018-01-10 · TA获得超过132个赞
知道小有建树答主
回答量:147
采纳率:50%
帮助的人:14.1万
展开全部
#include<reg52.h>
typedef unsigned char uint8_t; //定义数据类型
sbit key0 = P3^2;//按键对应的引脚,根据实际情况修改。
sbit led0 = P1^0;//LED 对应的引脚,根据实际情况修改。
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
#define LED_ON 0 //低电平亮灯,根据实际情况修改。
#define LED_OFF (!LED_ON)
bit changeByKey; //换灯标志位
uint8_t cnt;//亮灯状态寄存器
void delay()//短延时函数
{
uint8_t i = 200;
while(-- i);
}
main()
{
key0 = 1;
changeByKey = 0;
led0 = LED_ON;
led1 = LED_OFF;
led2 = LED_OFF;
led3 = LED_OFF;
while(1)
{
delay();
if(key0)//如果按键松开
{
changeByKey = 1;//按键控制换灯
led0 = LED_OFF; //全部熄灭
led1 = LED_OFF;
led2 = LED_OFF;
led3 = LED_OFF;
}
else//按下
{
if(changeByKey)//松开下次按下才能再次生效
{
changeByKey = 0;
cnt ++;
switch(cnt & 3)
{
case 0:
led0 = LED_ON; //亮灯
break;
case 1:
led1 = LED_ON;
break;
case 2:
led2 = LED_ON;
break;
case 3:
led3 = LED_ON;
break;
}
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2021-11-19 · TA获得超过5528个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:697万
展开全部
一个键多次按下,能够依次控制红黄蓝绿四个灯控制。
第一次按下亮红灯
然后绿灯
依次四下
再第五次按下交替闪烁,松开够都熄灭。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式