首页 > 其他分享 >51单片机独立按键控制LED灯,按键按一次亮,再按一次灭

51单片机独立按键控制LED灯,按键按一次亮,再按一次灭

时间:2024-06-06 19:30:43浏览次数:14  
标签:LED 高电平 寄存器 51 while 低电平 按下 按键

1、功能描述

独立按键控制LED灯,按键按一次亮,再按一次灭

2、实验原理

轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;

独立按键原理图如下:

其在MCU上的位置如下所示:

由上面两张图可以知道,独立按键是接在MCU的P3.0口到P3.3口的;可以看到,独立按键的右端是接地的;这里需要注意,独立按键的一端接地,独立按键就是一个开关;以K1为例,K1右端是GND,左端是RXD,我们知道,单片机在刚上电时,所有i/o口默认都是高电平的;所以当K1按键没有按下时,RXD是高电平,但当K1按键按下时,电路进行了连通,RXD接通了GND,所以RXD此时变成了低电平。在寄存器中写入一个值,该值就会同步到对应的i/o口上;其实反之也成立,即通过寄存器可以读到i/o口的状态,是高电平还是低电平。所以当按键没有按下时,寄存器读到的该i/o的状态就是高电平(即1)﹔反之,当按键按下时,寄存器就可以读到该i/o口的状态为低电平(即O)﹔我们则可以通过寄存器读到的i/o口的状态是高电平还是低电平,就知道按键是按下还是松开了。

3、编程思路

在main函数中,进入一个无限循环while(1),程序将一直在这个循环中执行。

在循环中,通过检查P31引脚是否为低电平来判断是否有按键按下。如果P31为低电平,说明有按键按下;当检测到按键按下时,首先进行一个短暂的延时,然后再次检查P3_1引脚的状态,以避免按键的抖动影响,然后,将P2_0引脚的状态取反,以实现LED的闪烁效果。

4、代码

#include <REGX52.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){
  Delay(20);
  while(P3_1==0);Delay(20);
  P2_0 = ~P2_0;}
}
}

标签:LED,高电平,寄存器,51,while,低电平,按下,按键
From: https://blog.csdn.net/ylazzy/article/details/139464865

相关文章

  • 要将dz_book_codebatch表的id字段从现有的大值(如3051571883xxxxxx1)重新设置为从1开始
    --备份数据CREATETABLEdz_book_codebatch_backupLIKEdz_book_codebatch;INSERTINTOdz_book_codebatch_backupSELECT*FROMdz_book_codebatch;--创建新表CREATETABLEdz_book_codebatch_newLIKEdz_book_codebatch;--设置自增初始值ALTERTABLEdz_book_codebatch_......
  • 13.56MHz电动车NFC刷卡解锁方案-SI522 SI512
    随着电动车市场的快速发展,车主对车辆的智能化和便捷性的要求也在不断提升。仪表盘作为电动车的重要组成部分,不仅需要提供基本的行驶信息,还需要具备智能交互功能。    基于13.56MHz频率的NFC(近场通信)技术为电动车仪表盘的智能化提供了有效解决方案。本文将介绍一种基于13.56MH......
  • 51单片机实现流水灯
    单片机的流水灯控制,无非就是控制led等的开通与关断,而开通与关断依照电路结构,就是某个引脚输入高低电平,比如说引脚P2.1控制led1灯的开通与关断,而引脚P2.2控制led2灯的开通与关断,那么交替闪烁,是不是就是流水灯了呢?我这里使用的是51单片机,用的软件是keil软件。具体代码如下:#i......
  • C51学习归纳5 --- 定时器
        个人觉得定时器是一个十分重要的内容,这东西忘简单说其实就是一个计数器,从设定的初始值开始加一操作,每当计数器满了,引发一次计数器中断,芯片的CPU过来进行中断处理,然后一直重复这样的过程。替代长时间的Delay,提高CPU的运行效率和处理速度。    首先,我们来考......
  • (十六)统计学基础练习题十(选择题T451-478)
    本文整理了统计学基础知识相关的练习题,共50道,适用于想巩固统计学基础或备考的同学。来源:如荷学数据科学题库(技术专项-统计学三)。序号之前的题请看往期文章。451)452)453)454)455)456)457)458)459)460)461)462)463)464)465)466)467)468)469)470)471)472)......
  • 如何解决 Docker Compose文件无法拉取:解决运维技术领域的Bug :Failed to pull Docker C
    如何解决DockerCompose文件无法拉取:解决运维技术领域的Bug:FailedtopullDockerComposeYAMLfilefromGitHubrepository原创作者:猫头虎作者微信号:Libin9iOak作者公众号:猫头虎技术团队更新日期:2024年6月6日博主猫头虎的技术世界......
  • 基于51单片机的智能晾衣架设计资料
    第三章:硬件单元电路经过上述分析明确了本次设计的主要目标,为了实现晾衣自身能够完成对外界数据的采集与分析,集成控制环节我们采用了ATMEL公司生产的AT89C52单片机,与市面上的其他嵌入式控制单元相比较在体积与功耗方面都相当出色。此次设计主要突破在于设计合理的控制电路单元......
  • STM32 HAL库开发——入门篇(3):OLED、LCD
    源自正点原子视频教程:【正点原子】手把手教你学STM32HAL库开发全集【真人出镜】STM32入门教学视频教程单片机嵌入式_哔哩哔哩_bilibili一、OLED二、内存保护(MPU)实验2.1内存保护单元 三、LCD3.1显示屏分类3.2LCD简介 3.3LCD驱动原理  ......
  • 402、基于51单片机的火灾报警(3房间,温度,数码管)(程序+Proteus仿真+原理图+流程图+元器件
    毕设帮助、开题指导、技术解答(有偿)见文未目录方案选择单片机的选择一、设计功能二、Proteus仿真图单片机模块设计三、原理图四、程序源码资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的选择方......
  • 400、基于51单片机的电压表(1路,ADC0832,LCD1602)(程序+Proteus仿真+原理图+流程图+元器件
    毕设帮助、开题指导、技术解答(有偿)见文未目录方案选择单片机的选择显示器选择方案一、设计功能二、Proteus仿真图单片机模块设计三、原理图四、程序源码资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择......