按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。

求按键点灯程序,51程序,P1^2口为KEY,P2^2口为LED,高电平LED亮,低电平灭,按一下KEY,灯亮(长亮),再轻按一下KEY,灯灭。求程序。... 求按键点灯程序, 51程序, P1^2口为KEY, P2^2口为LED, 高电平LED亮,低电平灭, 按一下KEY,灯亮(长亮),再轻按一下KEY, 灯灭。求程序。 展开
 我来答
刺友互
高粉答主

2019-06-19 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:65.2万
展开全部

1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。

2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。

3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,输入保存的路径,输入名字。

4、右键单击将这个文件添加到到工程文件夹中。

5、打开新建的文档,在文档中进行写程序。

6、点击下面方框中的图标,在Target项晶振的上写上:12.0代表晶振是12M,然后跳到Output项在生成HEX文件上打勾,点击OK。

7、然后点击三个编译按钮意思分别为:单个文件编译、编译已修改的文件、产生HEX文件,HEX文件用来下载到单片机上的,也可用来做仿真。

8、我们打开ISIS 7 Professional 软件,将程序添加到该电路中,然后按下启动按钮。

宿兴电子
2024-10-18 广告
联系我们蜂鸣器的种类规格繁多,需先知道几个参数 ( 电压,电流,驱动方式,尺寸,连接/固定方式),当然更重要的是,想要获的声音 (音压大小,频率高低).工作电压:电磁式蜂鸣器,从1.5到24V, 压电式的从3V到220V都是可行的,但一般压... 点击进入详情页
本回答由宿兴电子提供
茫茫人海一亮星

2021-04-14 · TA获得超过4.4万个赞
知道大有可为答主
回答量:4.1万
采纳率:82%
帮助的人:1423万
展开全部
按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。?1、首先打开编程软件Keil uVision4,新建一个工程文件,在菜单栏中Project—— New uVision Project..。
2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。
3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,输入保存的路径,输入名字。
4、右键单击将这个文件添加到到工程文件夹中。
5、打开新建的文档,在文档中进行写程序。
6、点击下面方框中的图标,在Target项晶振的上写上:12.0代表晶振是12M,然后跳到Output项在生成HEX文件上打勾,点击OK。
7、然后点击三个编译按钮意思分别为:单个文件编译、编译已修改的文件、产生HEX文件,HEX文件用来下载到单片机上的,也可用来做仿真。
8、我们打开ISIS 7 Professional 软件,将程序添加到该电路中,然后按下启动按钮。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sening45
2018-10-18
知道答主
回答量:5
采纳率:0%
帮助的人:3809
展开全部
#include<reg52.h>
typedef int u16;
typedef char u8;
sbit led1=P2^0; //D1
sbit led2=P2^1; //D2
sbit led3=P2^2; //D3
sbit led4=P2^3; //D4
sbit k1=P3^1;//定义一个独立按键
sbit k2=P3^2;//定义一个独立按键
sbit k3=P3^3;//定义一个独立按键
sbit k4=P3^4;//定义一个独立按键
//定义延时函数
void delay(u16 i)
{
while(i--);
}
void keypros()//定义独立按键控制
{
if(k1==0)//说明按下去了
{
delay(1000);//消抖
if(k1==0)
{
led1=~led1;//翻转
}
while(!k1);//按键松开
}
if(k2==0)//说明按下去了
{
delay(1000);//消抖
if(k2==0)
{
led2=~led2;//翻转
}
while(!k2);//按键松开
}
if(k3==0)//说明按下去了
{
delay(1000);//消抖
if(k3==0)
{
led3=~led3;//翻转
}
while(!k3);//按键松开
}
if(k4==0)//说明按下去了
{
delay(1000);//消抖
if(k4==0)
{
led4=~led4;//翻转
}
while(!k4);//按键松开
}
}
void main()
{
while(1)
{
keypros();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
旷文玉清戊
2019-09-22 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:944万
展开全部
按一次1亮,再按一次灭。。。我自己写的检测管脚==0,然后去抖,等待释放什么的都写上了,不过效果是,当按着的时候有效果,放开就没效果了(恢复原来状态)。也就是让他亮,按着就亮,放开就灭了....囧...我需要的是1个按键分别让5个led成流水灯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小丿緣
推荐于2018-02-26
知道答主
回答量:6
采纳率:100%
帮助的人:5163
引用小丿緣的回答:
你这个不对,按住按键不动后,程序高速跑起来,无法正确控制led开关,全部凭松开时间决定单片机运行到on位置或off位置
展开全部
你这个不对,按住按键不动后,程序高速跑起来,无法正确控制led开关,全部凭松开时间决定单片机运行到on位置或off位置
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式