实现LED流水灯的几种方法

embedded/2025/2/21 7:22:15/

1.实现原理

通过不断给P1中不同的IO口置低电平,从而达到LED流水灯的效果。

2.程序思路

方法一:通过给P1口赋不同的值从而达到流水灯的效果

/* 头文件声明区域 */
#include <REGX52.H>/* 延时函数 */			//需要记!!!
void Delay(unsigned char xms)	//@12.000MHz
{unsigned char data i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}/* 流水灯Main */
void main()
{while(1){//法一:通过给P1口赋不同的值从而达到流水灯的效果P1_3 = 1;P1_0 = 0;Delay(500);P1_0 = 1;P1_1 = 0;Delay(500);P1_1 = 1;P1_2 = 0;Delay(500);P1_2 = 1;P1_3 = 0;Delay(500);}
}

方法二:通过内置函数库实现流水灯效果

_crol_:循环左移        _cror_:循环右移        所属库:intrins.h

/* 头文件声明区域 */
#include <REGX52.H>
#include <intrins.h>/* 延时函数 */			//需要记!!!
void Delay(unsigned char xms)	//@12.000MHz
{unsigned char data i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}/* 变量声明区域 */
unsigned char ucLed = 0xfe;//第一个灯点亮/* 流水灯Main */
void main()
{while(1){//法二:通过内置函数库达到流水灯效果// _crol_:循环左移		_cror_:循环右移		所属库:intrins.hucLed = _crol_(ucLed,1);	//(变量名,移动位数)P1 = ucLed;Delay(500);}
}

 若想实现流水灯变速,可以再定义一个变量time,然后延时。

/* 头文件声明区域 */
#include <REGX52.H>
#include <intrins.h>/* 延时函数 */			//需要记!!!
void Delay(unsigned char xms)	//@12.000MHz
{unsigned char data i, j;while(xms--){i = 2;j = 239;do{while (--j);} while (--i);}
}/* 变量声明区域 */
unsigned char ucLed = 0xfe;//第一个灯点亮
unsigned int time = 1000;//做变速处理/* 流水灯Main */
void main()
{while(1){//法二:通过内置函数库达到流水灯效果// _crol_:循环左移		_cror_:循环右移		所属库:intrins.hucLed = _crol_(ucLed,1);	//(变量名,移动位数)P1 = ucLed;Delay(time);time = time - 100;}
}

http://www.ppmy.cn/embedded/163509.html

相关文章

根据CAN通讯矩阵使用CANoe生成DBC

目录 1 DBC文件作用2 根据CAN通讯矩阵表使用CANoe建立DBC文件3 总结 1 DBC文件作用 DBC&#xff08;DataBase CAN&#xff09;文件是一种流转与各类开发测试软件的交互性文件&#xff0c;其内容根据CAN通讯矩阵表建立&#xff0c;用于解释描述can通讯报文 2 根据CAN通讯矩阵表…

DeepSeek 助力 Vue 开发:打造丝滑的颜色选择器(Color Picker)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

筛选相同项

# import os # import pandas as pd# # 文件路径&#xff0c;根据实际情况修改 # file_path_1 rC:\Users\Administrator\Desktop\python\文件1.xlsx # file_path_2 rC:\Users\Administrator\Desktop\python\文件2.xlsximport os import pandas as pd# 获取当前脚本所在的目录…

opencv实时二维码识别的一种实现与思路分享

在嵌入式平台上比如 rk3568 这种弱鸡的平台,要做到实时视频处理就非常鸡肋,不像英伟达那种 deepstrem 什么的。 开始的时候,我们使用python 下的 pyzbar + opencv opencv 读取摄像头的数据然后每帧送到 pyzbar 二维码识别函数里面进行处理,然后打印出识别的数字。结果,非常…

Python实现语音识别详细教程【2025】最新教程

文章目录 前言一、环境搭建1. 下载 Python2. 安装 Python3 使用 pip 安装必要的库 二、使用 SpeechRecognition 库进行语音识别1.识别本地音频文件2.实时语音识别3. 使用其他语音识别引擎 注意事项 前言 以下是一份较为完整的 Python 语音识别教程&#xff0c;涵盖环境搭建、使…

Android - Handler使用post之后,Runnable没有执行

问题&#xff1a;子线程创建的Handler。如果 post 之后&#xff0c;在Handler.removeCallbacks(run)移除了&#xff0c;下次再使用Handler.postDelayed(Runnable)接口或者使用post时&#xff0c;Runnable是没有执行。导致没有收到消息。 解决办法&#xff1a;只有主线程创建的…

Python中requests库

Python中requests库 flyfish Python requests 库概述 1. 简介 什么是requests&#xff1f; requests是一个简单易用的HTTP库&#xff0c;用于发送所有类型的HTTP请求。它简化了与Web服务的交互&#xff0c;支持复杂的操作如会话维持、文件上传等。 安装requests pip instal…

Mongo导入导出详解

一、二进制导入导出&#xff08;推荐&#xff09; 适用场景&#xff1a;全量备份/恢复&#xff0c;保留索引和元数据 工具&#xff1a;mongodump 和 mongorestore 1. 导出数据 (mongodump) mongodump --host <hostname> --port <port> \--username <username…