找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4567|回复: 7
收起左侧

单片机按键切三种LED爆闪频率的程序 求帮助

[复制链接]
ID:381720 发表于 2018-9-26 14:29 | 显示全部楼层 |阅读模式
有谁知道单片机用一个按键切三种LED爆闪频率程序呀,一通电开始第一种爆闪,按一下按键,切换第二种爆闪频率,再按一下切换第三种爆闪频率。再按一下回到第一种频率,帮帮忙,有奖励
回复

使用道具 举报

ID:315239 发表于 2018-9-26 16:00 | 显示全部楼层
很简单啊,设置一个变量判断是第几次按下按键,switch选择工作模式就好了啊
回复

使用道具 举报

ID:399179 发表于 2018-9-26 19:23 来自手机 | 显示全部楼层
我有这个程序,可我不知道怎么传上来
回复

使用道具 举报

ID:381720 发表于 2018-9-27 08:36 | 显示全部楼层
快乐眼泪 发表于 2018-9-26 19:23
我有这个程序,可我不知道怎么传上来

直接回复就可以了
回复

使用道具 举报

ID:381720 发表于 2018-9-27 08:37 | 显示全部楼层
1043123978 发表于 2018-9-26 16:00
很简单啊,设置一个变量判断是第几次按下按键,switch选择工作模式就好了啊

我太水了,不会,可以帮帮忙吗
回复

使用道具 举报

ID:349617 发表于 2018-9-27 09:11 | 显示全部楼层
include<reg51.h>
unsigned char n = 0;
sbit key = P3^4;
sbit led = P1^0;
void delay()
{
unsigned int i, j;
for(i = 0; i < 100; i++) for(j = 0; j < 500; j++);
}
void readkey(void)
{
unsigned char i, j;
if(!key) {
for(i = 0; i < 10; i++)
for(j = 0; j < 120; j++); //延时消抖
if(!key) {
while(!key); //等待按键释放
n++;
n %= 4; //n = 0~3
}
}
}
main()
{
while(1) {
switch(n) {
case 0: led = 1; readkey(); break; //熄灭
case 1: delay(); readkey(); //慢速闪烁
case 2: delay(); readkey(); //中速闪烁
case 3: delay(); readkey(); led = ~led; //快速闪烁
}
}
}
大致是这个意思,可以参考一下。
回复

使用道具 举报

ID:154656 发表于 2018-9-27 09:25 | 显示全部楼层
做个变量计数 判断变量的值切换不同的状态
回复

使用道具 举报

ID:111634 发表于 2018-9-27 17:30 | 显示全部楼层
本帖最后由 zl2168 于 2018-9-28 22:01 编辑

给你介绍一个参考案例,一键三用。
实例93  99.9秒秒表
实例95 99.9秒秒表.rar (38.86 KB, 下载次数: 14)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表