按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,51单片机。
求按键点灯程序,51程序,P1^2口为KEY,P2^2口为LED,高电平LED亮,低电平灭,按一下KEY,灯亮(长亮),再轻按一下KEY,灯灭。求程序。...
求按键点灯程序, 51程序, P1^2口为KEY, P2^2口为LED, 高电平LED亮,低电平灭, 按一下KEY,灯亮(长亮),再轻按一下KEY, 灯灭。求程序。
展开
7个回答
展开全部
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-11-26 广告
2024-11-26 广告
NFC感应线圈是北京航源高科科技有限公司专业研发与生产的关键组件之一。该线圈采用高品质材料精制而成,具有优异的感应性能和稳定的传输能力。在NFC(近场通信)技术中,感应线圈扮演着至关重要的角色,它负责实现设备间的无线数据传输和能量交换。我们...
点击进入详情页
本回答由北京航源高科科技有限公司_提供
展开全部
按键点灯程序,按一下按键灯亮(一直亮),再按一下灭,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 软件,将程序添加到该电路中,然后按下启动按钮。
2、然后选择单片机型号是 Atmel 公司的 AT89c52,单击OK。
3、再单击工具栏上新建按钮,新建一个文档,然后再点击保存,输入保存的路径,输入名字。
4、右键单击将这个文件添加到到工程文件夹中。
5、打开新建的文档,在文档中进行写程序。
6、点击下面方框中的图标,在Target项晶振的上写上:12.0代表晶振是12M,然后跳到Output项在生成HEX文件上打勾,点击OK。
7、然后点击三个编译按钮意思分别为:单个文件编译、编译已修改的文件、产生HEX文件,HEX文件用来下载到单片机上的,也可用来做仿真。
8、我们打开ISIS 7 Professional 软件,将程序添加到该电路中,然后按下启动按钮。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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();
}
}
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();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按一次1亮,再按一次灭。。。我自己写的检测管脚==0,然后去抖,等待释放什么的都写上了,不过效果是,当按着的时候有效果,放开就没效果了(恢复原来状态)。也就是让他亮,按着就亮,放开就灭了....囧...我需要的是1个按键分别让5个led成流水灯
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用小丿緣的回答:
你这个不对,按住按键不动后,程序高速跑起来,无法正确控制led开关,全部凭松开时间决定单片机运行到on位置或off位置
你这个不对,按住按键不动后,程序高速跑起来,无法正确控制led开关,全部凭松开时间决定单片机运行到on位置或off位置
展开全部
你这个不对,按住按键不动后,程序高速跑起来,无法正确控制led开关,全部凭松开时间决定单片机运行到on位置或off位置
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询