由原理图可见,按键1是P31引脚,并且按键是共阴极的,所以按下的时候应该是低电平;单P31引脚为低电平的时候LED灯亮

所以代码如下

#include <REGX51.H>void main()
{while(1){if(P3_1==0 )    //如果K1按键        {P2_0=0;       //LED1输出0,点亮}else{P2_0=1;       //LED1输出1,熄灭}}
}

按键控制LED灯的状态,按键按下LED灯亮,再按下LED灯灭反复;因为开发板的按键是弹片按键,会存在一定的误触

所以我们要消除这个抖动,常见的方法有两大类 软件消抖和硬件消抖,软件消抖则增加延时,硬件消抖可增加电容等因为每增加一个器件都会增加成本所以大多数时候都是使用软件消抖

代码如下:

#include <REGX51.H>void Delay(unsigned int xms)//延时函数
{unsigned char i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;}
}
void main()
{while(1){if(P3_1==0)         //如果K1按键按下{Delay(20);       //延时消抖while(P3_1==0); //松手检测Delay(20);        //延时消抖P2_0=~P2_0;      //LED1取反}}
}

按键控制LED灯移位 每按一下LED灯移一位

#include <REGX51.H>unsigned char Num;void Delay(unsigned int xms)
{unsigned char i, j;while(xms){i = 2;j = 239;do{while (--j);} while (--i);xms--;}
}
void main()
{P2=~0x01;             //上电默认LED1点亮while(1){   if(P3_1==0)           //如果K1按键按下{Delay(20);       //延时消抖while(P3_1==0);  Delay(20);Num++;     //Num自增if(Num>=8)   //限制Num自增范围LEDNum=0;P2=~(0x01<<Num);    //LED的第Num位点亮}if(P3_0==0)         //如果K2按键按下{Delay(20);while(P3_0==0);Delay(20);if(Num==0)    //Num减到0后变为7Num=7;else         //Num未减到0,自减Num--;P2=~(0x01<<Num);    //LED的第Num位点亮}}}

STC89C52RC 按键控制LED相关推荐

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

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

  2. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

  3. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  4. STM32按键控制led四种方法

    文章目录 回顾按键电路 按照之前文章方法在工程文件下加入Hardware中的key.c和key.h 打开固件库用户手册查询io读取相关的函数 第一种方式实现按键控制 第二种方式实现按键控制led 第三 ...

  5. 8个独立按键控制LED

    8个独立按键控制LED

  6. 按键控制LED实现启动、停止按钮

    按键控制LED实现启动.停止按钮

  7. 简单的按键控制LED

    简单的按键控制LED

  8. petalinux zynq spi_ZYNQ 系列 01 | PL 实现按键控制 LED(1)

    注:本篇文章由[开源骚客:OpenSoc]公众号首发,现转载至头条号. 新的开始,这一篇文章,就算是使用 Vitis 开发 ZYNQ 的第一篇文章吧. 计划把 ZYNQ 开发写成一个系列,所使用的的软 ...

  9. 基于Verilog的按键控制LED灯

    按键控制LED灯 原理图 程序设计 `timescale 1ns / 1psmodule key_led( input sys_clk, input sys_rst_n, input [3:0] ke ...

最新文章

  1. 程序员总结:帮助你早些明白一些道理
  2. HDU-3746-Cyclic Nacklace
  3. 【Java Web开发指南】FilterListener笔记
  4. 在使用net start mysql命令时提示键入 net helpmsg 3523错误
  5. android 设置点击ProgressDialog外的区域不消失
  6. 红黄蓝收购新加坡某民营儿童教育集团,宣布更名为GEH Education...
  7. 实现本机拷贝带进度的方法
  8. C++二维数组作为函数参数
  9. 前端学习(2404):表单验证总结
  10. linux php环境搭建 图文教程,linux php环境搭建教程
  11. 母版页Master中Html控件img,a,javascript相对路径问题
  12. MatConvNet训练自己的网络
  13. MentoHUST的使用教程
  14. 企业实施PDM能解决这些问题
  15. web怎么将dwg转换图片_怎么将DWG图纸转换成JPG格式图片
  16. 提供一个 无限存储 空间 免费网盘
  17. JavaWeb基础知识总结
  18. 关于mos管的压降问题(项目遇到问题总结)
  19. ESP32 强制门户 WEB配网
  20. Hadoop权威指南(第二版)pdf中文版

热门文章

  1. vlayout源码解析
  2. Scrapy Spider中间件,你学会了吗?本篇博客有一案例
  3. 小白都能看懂的实战教程 手把手教你Python Web全栈开发(DAY 1)
  4. Windows10怎么显示我的电脑
  5. 微信小程序:关于物流样式的显示
  6. Qt设计师-提升法(自定义部件)“提升为”
  7. 对JS文件中每个函数单独混淆加密
  8. zmap 工具简单了解
  9. 软件供应链攻击的新形式
  10. Thread常用使用方法