51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)
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语言版)相关推荐
- 51单片机入门学习------独立按键控制LED亮灭
一.独立按键 1.特点:同侧导通,异侧断开 2.独立按键的I/O口 单片机上电后,所有I/O口默认都是高电平.没有按开关时都是高电平,按下后变成低电平. 寄存器通过检测高低电平检测按键是否被按下 1 ...
- 51单片机:独立按键控制LED灯
1. 独立按键控制LED灯状态 亮灭实验完成后,就可以控制LED状态,首先我们知道由于机械结构的弹性作用,按键开关在闭合时不会一瞬间稳定的接通,在断开时,也不会一下子断开.所以就得需要程序消抖,也就是 ...
- 单片机C51(STC89C52RC)独立按键控制LED亮灭、状态、显示二进制、位移
目录 1.独立按键控制LED灯亮灭 2.独立按键控制LED灯状态 3.独立按键控制LED灯显示二进制 4.独立按键控制LED灯位移 5.附录 1.独立按键控制LED灯亮灭 独立按键控制LED灯状态,在 ...
- 51单片机实现独立按键控制LED灯
本节博客主要实现以下效果: 3-1独立按键控制LED亮灭 本段代码主要使用了if...else...语句实现按下按下灯亮,松开按键时灯灭 #include <REGX51.H>void m ...
- 按键控制led灯亮灭c语言原理,4个独立按键控制4个LED亮灭的单片机程序问题
本帖最后由 ll13536121668 于 2017-11-2 17:32 编辑 4只独立按键控制4只LED亮和灭,按下按键,LED亮,再按下,LED灭.因为我们很多都是按完按键,松开手LED才亮. ...
- 51单片机通过WIFI模块ESP8266控制LED灯
完整源码下载地址:https://download.csdn.net/download/tongxin082/21440621 一.系统方案 手机APP通过ESP8266 WIFI模块与51单片机通信 ...
- 按键控制led灯亮灭c语言实验报告,通过按键控制LED灯的实验
通过查看开发板的核心电路原理图,加上查阅SUMSANG 2440的datasheed得知四个按键K1,K2,K3,K4对应GPF中的GPF1,GPF4,GPF2,GPF0.将这四个引脚配置为输入模式, ...
- 【51单片机】独立按键控制LED灯(四种形式)
- C51---3.2 独立按键控制LED亮灭状态
C51---3.2 独立按键控制LED亮灭状态 原理图 按键消抖 main函数 原理图 按键消抖 对于机械开关,当机械触点断开.闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断 ...
最新文章
- Redis缓存穿透击穿雪崩
- Turtlebot3-burger使用时一些注意事项
- settimeout怎么用_怎么实现一个3d翻书效果
- 解析URI与URL之间的区别与联系
- centos7升级openssh
- mysql实例详解_MySQL 多实例详解
- @Python 程序员,如何实现狂拽酷炫的 3D 编程技术?
- zabbix如何监控linux磁盘性能IO
- 【优化调度】基于matlab求解共享储能电站工业用户日前经济调度优化问题【含Matlab源码 1103期】
- 电子邮件地址中服务器怎么看,你如何检查电子邮件服务器(gmail)中的某个地址,并基于该地址运行一些东西?...
- java replace三个参数_javascript replace()第二个参数为函数时的参数用法
- Ext4文件系统架构分析
- 软件设计师【软考中级】复习笔记 —— 第十章(多媒体基础知识)
- 2022.0831学习Java 笔记之Java常用类库(二)
- VirtualBox中出现“0x00000000指令引用的0x00000000内存该内存不能为written 和visual studio Just in time debugger error
- mysql没有data文件夹
- ffmpeg命令行使用
- 明源云客微信公众号 矩阵 开盘淘宝抢房 的一些技巧
- IntelliJ IDEA 之 Spring Boot (五) Freemarker 模板引擎渲染 Web 试图
- 机械制造工艺及计算机辅助工艺设计,机械制造工艺及计算机辅助工艺设计pdf