51单片机 4个独立按键控制LED灯 仿真操作及代码展示 _ (protues仿真)_(C语言版)

一、思路及相关问题

1、逻辑思路:

当按下key1时 led1亮起来 因为按下去具有瞬时性不用while,用if语句,当松开时,用while(!key1) ,函数调用。
先在脑海里想象它的大致运行过程,其次在仿真软件protues上摆好元器件并连接,最后用keil4写对应代码。
需注意keil4软件上的设置如波特率,添加文件,勾选等等。
至少要了解C语言程序设计的基本功。

2、关于消抖:

通常的按键所用开关为机械性开关,当机械触电断开、闭合时、由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开、因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖
按键消抖有两种,
一种是 软件消抖: ;硬件消抖是通过采用外加零件来消除干扰抖动杂脉冲波,通常采用电容滤波、单稳延时电路等等。
一种是 软件消抖: 延时函数
参考链接:http://www.eeworld.com.cn/mcu/2012/0806/article_9776.html

二、有proteus及keil进行仿真效果

第二步找到按键开关BUTTON及LED灯还有电阻

第三步 将相关元器件连好线

三、打开keil4创建工程 代码及注释 调好波特率及添加文件相关工作 -----代码如下

#include<reg52.h>

unsigned int i;
sbit led1=P2^0; //定义第一个led灯
sbit led2=P2^1; //定义第二个led灯
sbit led3=P2^2; //定义第三个led灯
sbit led4=P2^3; //定义第四个led灯

sbit key1=P3^1; __ //定义第一个开关__
sbit key2=P3^2; //定义第二个开关
sbit key3=P3^3; //定义第三个开关
sbit key4=P3^4; //定义第四个开关

void delay() //延时函数 用于消抖
{
for(i=0;i<10;i++);
}
void key()
{
if(key10)
{
delay(); //延时 消抖
if(key10) //表示K1按下去
{
led1=0; // led1灯点亮
}
while(!key1); //表示_松开_按键key1
}
if(key20)
{
delay(); //延时 消抖
if(key20) //表示key2键被按下
{
led2=0; // led2灯点亮
}

  while(!key2);     //表示松开按键key2
}
if(k3==0)
{delay();           //延时 消抖if(key3==0)    //表示key3键被按下{led3=0;       // led3灯点亮}while(!key3);    //表示松开按键key3
}
if(key4==0)
{delay();            //延时 消抖if(key4==0)   //表示key4键被按下{led4=0;        // led4灯点亮}while(!key4);        //表示松开按键key4
}

}

void main()
{
while(1)
{
key();
}
}

四、运行程序后成功后,打开proteus右键单击单片机AT89C51,找到编辑,然后添加hex文件

51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)相关推荐

  1. 51单片机入门学习------独立按键控制LED亮灭

    一.独立按键 1.特点:同侧导通,异侧断开 2.独立按键的I/O口  单片机上电后,所有I/O口默认都是高电平.没有按开关时都是高电平,按下后变成低电平. 寄存器通过检测高低电平检测按键是否被按下 1 ...

  2. 51单片机:独立按键控制LED灯

    1. 独立按键控制LED灯状态 亮灭实验完成后,就可以控制LED状态,首先我们知道由于机械结构的弹性作用,按键开关在闭合时不会一瞬间稳定的接通,在断开时,也不会一下子断开.所以就得需要程序消抖,也就是 ...

  3. 单片机C51(STC89C52RC)独立按键控制LED亮灭、状态、显示二进制、位移

    目录 1.独立按键控制LED灯亮灭 2.独立按键控制LED灯状态 3.独立按键控制LED灯显示二进制 4.独立按键控制LED灯位移 5.附录 1.独立按键控制LED灯亮灭 独立按键控制LED灯状态,在 ...

  4. 51单片机实现独立按键控制LED灯

    本节博客主要实现以下效果: 3-1独立按键控制LED亮灭 本段代码主要使用了if...else...语句实现按下按下灯亮,松开按键时灯灭 #include <REGX51.H>void m ...

  5. 按键控制led灯亮灭c语言原理,4个独立按键控制4个LED亮灭的单片机程序问题

    本帖最后由 ll13536121668 于 2017-11-2 17:32 编辑 4只独立按键控制4只LED亮和灭,按下按键,LED亮,再按下,LED灭.因为我们很多都是按完按键,松开手LED才亮. ...

  6. 51单片机通过WIFI模块ESP8266控制LED灯

    完整源码下载地址:https://download.csdn.net/download/tongxin082/21440621 一.系统方案 手机APP通过ESP8266 WIFI模块与51单片机通信 ...

  7. 按键控制led灯亮灭c语言实验报告,通过按键控制LED灯的实验

    通过查看开发板的核心电路原理图,加上查阅SUMSANG 2440的datasheed得知四个按键K1,K2,K3,K4对应GPF中的GPF1,GPF4,GPF2,GPF0.将这四个引脚配置为输入模式, ...

  8. 【51单片机】独立按键控制LED灯(四种形式)

  9. C51---3.2 独立按键控制LED亮灭状态

    C51---3.2 独立按键控制LED亮灭状态 原理图 按键消抖 main函数 原理图 按键消抖 对于机械开关,当机械触点断开.闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断 ...

最新文章

  1. Redis缓存穿透击穿雪崩
  2. Turtlebot3-burger使用时一些注意事项
  3. settimeout怎么用_怎么实现一个3d翻书效果
  4. 解析URI与URL之间的区别与联系
  5. centos7升级openssh
  6. mysql实例详解_MySQL 多实例详解
  7. @Python 程序员,如何实现狂拽酷炫的 3D 编程技术?
  8. zabbix如何监控linux磁盘性能IO
  9. 【优化调度】基于matlab求解共享储能电站工业用户日前经济调度优化问题【含Matlab源码 1103期】
  10. 电子邮件地址中服务器怎么看,你如何检查电子邮件服务器(gmail)中的某个地址,并基于该地址运行一些东西?...
  11. java replace三个参数_javascript replace()第二个参数为函数时的参数用法
  12. Ext4文件系统架构分析
  13. 软件设计师【软考中级】复习笔记 —— 第十章(多媒体基础知识)
  14. 2022.0831学习Java 笔记之Java常用类库(二)
  15. VirtualBox中出现“0x00000000指令引用的0x00000000内存该内存不能为written 和visual studio Just in time debugger error
  16. mysql没有data文件夹
  17. ffmpeg命令行使用
  18. 明源云客微信公众号 矩阵 开盘淘宝抢房 的一些技巧
  19. IntelliJ IDEA 之 Spring Boot (五) Freemarker 模板引擎渲染 Web 试图
  20. 机械制造工艺及计算机辅助工艺设计,机械制造工艺及计算机辅助工艺设计pdf

热门文章

  1. Jetpack Compose中的Accompanist
  2. angular5 升级到 angular7 步骤
  3. 可禁用的Win10服务
  4. 创新先行者Barsetto百胜图咖啡
  5. 怎样给云机房服务器做系统,如何搭建云服务器机房
  6. 基于FFmpeg, 实现 8k 16bit 立体声 转码 16k 16bit 单声道。
  7. idea 提示 TKK 更新TKK失败,请检查网络连接(有效解决)
  8. 中国光伏逆变器行业市场规模及未来发展趋势
  9. PhotoScan集群,空三加密导入CC,正射影像生成及拼接(附航测练习数据)
  10. 服务器型号sc2312怎么看,HP MSA2312sa实施过程全记录