51单片机中怎样用一个按键控制三种模式的流水灯,如控制流水灯流水速率(每按一下加速,到三后返回和第一次
发布网友
发布时间:2022-04-19 10:04
我来回答
共2个回答
热心网友
时间:2023-10-24 01:29
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit anjian = P1^0; //按键位
void delay(uint16 h) //延时程序
{
while(h--);
}
main()
{uint8 k = 0 , i = 0;
P0 = 0xff;
anjian = 1;
while(1)
{
P0 = ~(1<<k++);
if(anjian == 0)
{
delay(200);
if(anjina == 0) i++;
if(i == 3)
i = 0;
}
switch(i)
{
case 0: delay(10000);break;
case 1: delay(20000);break;
case 2: delay(20000); break;
}
if(k==8) k=0;
}
}
//头一次回答问题,多多支持,全部知识都是自学的,但是我试验过可以符合你的要求运行,谢谢
热心网友
时间:2023-10-24 01:29
简单介绍一下思路:定义一个控制变量,存储按键按下的次数并确定定时初值。每次流水完了以后检测该变量的值并赋相应的初值给定时程序。追问程序写过,但没有出来结果,所以想参考一下别人的程序,不过还是要谢谢你