找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4271|回复: 7
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
有谁知道单片机用一个按键切三种LED爆闪频率程序呀,一通电开始第一种爆闪,按一下按键,切换第二种爆闪频率,再按一下切换第三种爆闪频率。再按一下回到第一种频率,帮帮忙,有奖励
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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
我有这个程序,可我不知道怎么传上来

直接回复就可以了
回复

使用道具 举报

5#
ID:381720 发表于 2018-9-27 08:37 | 只看该作者
1043123978 发表于 2018-9-26 16:00
很简单啊,设置一个变量判断是第几次按下按键,switch选择工作模式就好了啊

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

使用道具 举报

6#
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; //快速闪烁
}
}
}
大致是这个意思,可以参考一下。
回复

使用道具 举报

7#
ID:154656 发表于 2018-9-27 09:25 | 只看该作者
做个变量计数 判断变量的值切换不同的状态
回复

使用道具 举报

8#
ID:111634 发表于 2018-9-27 17:30 | 只看该作者
本帖最后由 zl2168 于 2018-9-28 22:01 编辑

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

Proteus仿真一下,确认有效。
以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,书中电路和程序设计有详细说明,电路与程序真实可靠可信可行,程序语句条条有注解。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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