news 2026/8/18 18:08:20

51单片机流水灯往返设计(源码+仿真)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
51单片机流水灯往返设计(源码+仿真)

文章目录

概要

硬件搭建

代码编写

编译下载

小结


概要

本项目基于STC89C52单片机设计并实现了具有往返效果的流水灯系统,通过程序控制8路LED依次点亮并在两端自动折返,最终形成循环流动的灯光效果。项目采用Proteus仿真验证设计,同时提供了完整的Keil工程代码与硬件连接参考,帮助学习者快速掌握单片机IO口操作、循环控制与位运算编程技巧。

硬件搭建

本次设计采用51单片机最小系统作为核心控制单元,硬件电路主要包含以下部分: 1. STC89C52RC单片机核心模块

2. 8路LED发光二极管组(含100Ω限流电阻)

3. 11.0592MHz晶振电路与复位电路

4. 5V直流电源供电系统

proteus仿真电路图如下:

电路连接说明:P0.0-P0.7引脚分别通过总线连接至8路LED的阴极,LED阳极通过限流电阻串连统一接+5V电源,然后再通过控制P0口输出高低电平实现LED的点亮与熄灭控制。

代码编写

使用Keil5软件进行代码的编写,源码如下:

#include <reg52.h>// 包含51单片机寄存器定义的头文件,必须写 #include "delayms.h"// 包含毫秒级延时函数定义的头文件,必须写 //主函数 void main() { u8 i; // 先定义变量 while(1) { // 从左往右流 for(i=0;i<8;i++) { P0 = ~(0x01 << i);//i=0 先左移后翻转位:0000 0001(P0.7 --P0.0)-->0000 0001-->翻转位1111 1110 delay_ms(500); } // 从右往左边流 for(i=6;i>0;i--) { P0 = ~(0x01 << i); delay_ms(500); } } } /* 开始 i=0 先左移后翻转位:0000 0001移位0-->0000 0001-->翻转位1111 1110 i=1 先左移后翻转位:0000 0001移位1-->0000 0010-->翻转位1111 1101 i=2 先左移后翻转位:0000 0001移位2-->0000 0100-->翻转位1111 1011 。。。。。 i=7 先左移后翻转位:0000 0001移位7-->1000 0000-->翻转位0111 1111 跳出第一个for循环 i=6 先左移后翻转位:0000 0001移位6-->0100 0000-->翻转位1011 1111 i=5 先左移后翻转位:0000 0001移位5-->0010 0000-->翻转位1101 1111 。。。。。 i=1 先左移后翻转位:0000 0001移位1-->0000 0010-->翻转位1111 1101 跳出循环 */

编译下载

1.程序编写好后进行编译,点击图中左上角的编译按键,然后查看下方的编译结果以及下载文件(.hex)的路径。

2.程序没问题后就可以将hex文件导入proteus工程中。

3.导入完下载文件后,点运行就可以看到流水灯左右往返的效果了。

小结

程序里面没花里胡哨的函数,主要就是靠左移、右移指令配合循环判断来控制灯的走位,这样来回跑的效果就做出来了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:19:50

WPF实现可擦除的Tab标签页

项目目标是展示如何在 WPF 应用中动态管理标签页&#xff0c;包括新增、关闭和切换标签页。 效果 该demo使用CommunityToolkit.Mvvm 实现MVVM数据绑定与命令&#xff0c;通过 Microsoft.Extensions.DependencyInjection 配置 DI 容器&#xff0c;如要复刻需安装这两个包或自己…

作者头像 李华
网站建设 2026/7/14 16:19:51

从零搭建个人独立博客:Hexo + GitHub Pages 极速建站与踩坑实录

引言作为一名爱折腾的开发者&#xff0c;刚解决完一个极其棘手的 WebGL 3D 网页滚动陷阱 Bug&#xff0c;最爽的事情莫过于把这份血汗经验写成文章分享出来&#xff01;这篇文章将为你带来一份实战教程&#xff0c;完整记录我是如何使用 Hexo 配合 GitHub Pages 建站&#xff0…

作者头像 李华
网站建设 2026/7/14 16:20:07

平行链协议深度拆解 | 一个区块如何穿越六道关卡获得最终确认

原文作者&#xff1a;PaperMoon 团队一个平行链区块要想获得 Polkadot 网络的最终安全背书&#xff0c;需要经历候选、附议、可背书、已背书、待可用、已包含六个状态——任何一步失败都会被丢弃。这套机制的名字听起来很学术&#xff0c;但它解决的问题极其现实&#xff1a;几…

作者头像 李华
网站建设 2026/7/14 16:20:05

什么是管理

什么是管理1.管理是“管事”而不是“管人”&#xff0c;也就是说我们要清晰地界定必须要做的事情&#xff0c;以及做事的标准。虽然管理行为是依据人来判断的&#xff0c;但不能只关心人的态度和表现。 2.就是要让下属明白自己的工作职责&#xff0c;帮助他明确和分析自己要做的…

作者头像 李华
网站建设 2026/7/14 16:20:06

2026论文降重盘点:AIGC严查下谁能活?

摘要/前言&#xff1a; 2026年&#xff0c;还在用老一套的AI方法降重&#xff1f;醒醒&#xff01;高校的检测系统早已迭代&#xff0c;现在是“重复率”“AIGC成分”双重核查。你以为的“降重”&#xff0c;在系统后台可能已标记为“学术不端高危行为”。本文将进行一次硬核盘…

作者头像 李华
网站建设 2026/7/14 16:19:51

如何通过一张照片辨别拍照位置

1如何通过这张照片分辨出是哪个电信公司2将图片保存到桌面&#xff0c;右键找到属性并打开 。点击详细信息3找到该照片的元信息拍摄地点拍摄设备分辨率等信息4接下来我们通过图中的gps获取定位打开谷歌地图在左边搜索输入gps获取的经纬度就可以找到图片拍摄的大概位置再通过大概…

作者头像 李华