51单片机中怎样用一个按键控制三种模式的流水灯,如控制流水灯流水速率(每按一下加速,到三后返回和第一次

麻烦高手贴个程序参考一下... 麻烦高手贴个程序参考一下 展开
 我来答
梦幻人生979
2012-05-08
知道答主
回答量:20
采纳率:0%
帮助的人:14.2万
展开全部
#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;
}

}
//头一次回答问题,多多支持,全部知识都是自学的,但是我试验过可以符合你的要求运行,谢谢
更多追问追答
追问
麻烦你了,不过你的程序不容易看懂啊,它不能一直执行下去,只会执行一次
追答
请问你的是什么按键,我的是矩阵的,所以我在我的板子上是用一个矩阵的按键式,我的可以连续,程序还要根据你的板子布置按键不同需要改的
QQ594681479
2012-05-04
知道答主
回答量:46
采纳率:100%
帮助的人:37.9万
展开全部
简单介绍一下思路:定义一个控制变量,存储按键按下的次数并确定定时初值。每次流水完了以后检测该变量的值并赋相应的初值给定时程序。
追问
程序写过,但没有出来结果,所以想参考一下别人的程序,不过还是要谢谢你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式