首页 > 其他分享 >51单片机独立按键控制流水灯,按一次左流水,再按一次反向流水

51单片机独立按键控制流水灯,按一次左流水,再按一次反向流水

时间:2024-06-06 19:31:40浏览次数:16  
标签:count P3 LEDNum 51 Delay1ms 单片机 while 流水

1、功能描述

独立按键控制流水灯,按一次左流水,再按一次反向流水

2、实验原理

单片机的I/O口可以通过编程设置为输入或输出模式。在流水灯实验中,我们将I/O口配置为输出模式,用于控制LED灯的亮灭。同时,我们还需要一个输入口来检测按键的状态,以实现按键控制流水灯的功能。流水灯的效果是通过依次点亮LED灯来实现的。我们可以通过编程,按照一定的顺序和时间间隔来控制LED灯的亮灭,从而形成流水灯的效果。当按键被按下时,单片机会检测到输入的变化,并通过编程逻辑改变流水灯的方向。

3、编程思路

根据按键P3_1的状态来控制流水方向,按下时改变流水方向。代码中使用了一个全局变量count来标记流水方向,当count为0时表示正向流水,为1时表示反向流水。整个流程在一个无限循环中,不断地检测按键状态并控制LED的流水方向。

4、代码

#include <REGX52.H>
#include <INTRINS.H>  
unsigned char LEDNum;
unsigned int count;
void Delay1ms(unsigned int xms) 
{
unsigned char i, j;
while (xms--)
{
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
 
}
}
 
void main()
{
while(1)
{
if(P3_1==0)
{
Delay1ms(20);
while(P3_1==0);
Delay1ms(20); 
P2=0xFE;
Delay1ms(500);
LEDNum = 0xFE;
while(1)
{
while(count == 0) 
{
LEDNum =_crol_(LEDNum,1);
P2 = LEDNum;
Delay1ms(500);//1
if(P3_1==0)
{
Delay1ms(20);
while(P3_1==0);
Delay1ms(20);
count = 1; 
LEDNum = LEDNum;
}
}
while(count == 1) 
{
LEDNum =_cror_(LEDNum,1);
P2 = LEDNum;
Delay1ms(500);
if(P3_1==0)
{
Delay1ms(20);
while(P3_1==0);
Delay1ms(20);
count = 0; 
LEDNum = LEDNum;
}
}
} 
}
}
}

标签:count,P3,LEDNum,51,Delay1ms,单片机,while,流水
From: https://blog.csdn.net/ylazzy/article/details/139508239

相关文章

  • 51单片机独立按键控制LED灯,按键按一次亮,再按一次灭
    1、功能描述独立按键控制LED灯,按键按一次亮,再按一次灭2、实验原理轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;独立按键原理图如下:其在MCU上的位置如下所示:由上面两张图可以知道,独立按键......
  • 要将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......
  • 前端菜鸡流水账日记 -- checkbox二级菜单滚动条设置
    下午好哇,今天二更咯,这次想说的是一个ElemenuUI中的一个组件--checkbox多选框,管网的地址是https://element.eleme.cn/#/zh-CN/component/installation,关于这个的具体的写法,感兴趣的小伙伴可以去管网看看,很快就能找到的我今天要记录的是关于他的二级菜单当盒子的内容过多时,超......
  • 前端菜鸡流水账日记 -- geoserver的使用
    哈喽哇大家早上好,今天是个好日子,6月6祝我们大家永远666,而且是疯狂星期四,大家有疯狂起来吗,昨天本来打算更新的,但是由于一些特殊的原因么有更新上,所以一早没有什么特别要求的紧急事情就直接先来更新吧,我今天要说的是一个新的东西--geoserver,大家可能听说过,但是我是第一次听说,......
  • 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)......
  • 基于51单片机的智能晾衣架设计资料
    第三章:硬件单元电路经过上述分析明确了本次设计的主要目标,为了实现晾衣自身能够完成对外界数据的采集与分析,集成控制环节我们采用了ATMEL公司生产的AT89C52单片机,与市面上的其他嵌入式控制单元相比较在体积与功耗方面都相当出色。此次设计主要突破在于设计合理的控制电路单元......
  • 单片机火灾报警器(防火系统)设计
    火灾作为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安全构成了极大的威胁。由此引发的重大安全事故比皆是,所以人类一直也未停止过对它的研究。火灾早已成为我国常发性和破坏性以及影响力最强的灾害之一。随着经济和城市建设的快速发展,城市高层、地下建筑以......