单片机用c语言,按钮控制一个LED灯,要求按下松开,LED亮,按下松开,LED暗!循环

 我来答
刺友互
高粉答主

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

1、首先打开桌面上的keil软件,在进行对51单片机进行编程时最常用的就是keil软件。

2、编写相应的代码:#include<reg52.h>    //定义单片机的头文件sbit led=P2^0;           //定义单片机的管脚,void main(void)         //主函数{    while(1)                 //无限循环     {led=0x1f;         //点亮前面三个灯。这里是十六进制的换算,                                                    //不懂得可以查一下资料  }。

3、打开烧写软件,点击【打开文件】,寻找刚刚编写的程序。

4、找到相应的文件夹以后,寻找HEX文件。这是所能烧写软件识别的程序。

5、找到程序以后,将单片机连接到电脑,并点击程序下载,将程序烧写进单片机。

6、程序下载进单片机以后就能够看到八个led点亮了前面三个。

宿兴电子
2024-11-28 广告
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里面多个震荡... 点击进入详情页
本回答由宿兴电子提供
自我编程
2018-08-05 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部

你要什么单片机。

我这里只能用51单片机(晶振11.0592Mhz)演示

比如我将按钮连P1.6,led连P1.7。如下图:

那你代码里,只要写一个延迟函数,主函数循环检查按钮,按钮弹起时P1.7取反就行。

//大致代码如下:
#include <reg52.h>
sbit k1=P1^6;
sbit led=P1^7;
void delay(uint xms);
void main()
{
    while(1)
    {
        if(k1==0)
     {
    delay(5);
    if(k1==0)
    {
        while(k1==0);
led=~led;
    }
}
    }
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式