SJ-002 实训项目 · 精品课程

控制 8 路
流水灯实训

基于 STC89C52RC 单片机 P1 端口,深入掌握 IO 口位操作、循环移位、延时控制与 PWM 调光等核心技能,由简到难 9 种经典玩法一网打尽。

9 个递进子项目 汇编语言实战 配套电路图与代码
首页 实训项目 控制8路流水灯
单片机 IO 控制 · 入门必学

控制 8 路流水灯 · 9 大经典玩法

本项目以 8 颗 LED 灯为载体,覆盖单向流水、双向往返、奇偶交替、PWM 渐变、随机跑马等 9 种典型控制方式,从最基础的 RL 循环移位到 PWM 脉宽调制,逐步深入单片机 IO 控制核心知识。

9 大递进式子项目
汇编语言
约 9 学时
配套评分标准
PROJECT MATRIX

9 大经典玩法一览

由简到难,循序渐进点亮 LED 灯阵列 · 点击任意卡片开始学习

基础实训 进阶实训 综合实训
01 基础实训

从左到右流水灯

RL 循环左移 · 入门必学

SJ-002-01 开始学习 →
02 基础实训

从右到左流水灯

RR 循环右移 · 反向流动

SJ-002-02 开始学习 →
03 基础实训

双向往返流水灯

左右碰壁回弹 · 来回往返

SJ-002-03 开始学习 →
04 进阶实训

奇偶交替流水灯

奇偶位分组 · 棋盘闪烁

SJ-002-04 开始学习 →
05 进阶实训

变速可调流水灯

延时参数可调 · 快慢随心

SJ-002-05 开始学习 →
06 进阶实训

间隔闪烁流水灯

双灯一组 · 追逐闪烁

SJ-002-06 开始学习 →
07 综合实训

按键可控流水灯

外部中断 · 启停可控

SJ-002-07 开始学习 →
08 综合实训

渐亮渐灭流水灯

PWM 脉宽调制 · 呼吸效果

SJ-002-08 开始学习 →
09 综合实训

16路花样灯

查表+模块化 · 5 大花样

P0 P1
SJ-002-09 开始学习 →

从左到右流水灯

基础实训
实训编号
SJ-002-01
实训类型
IO控制
实训学时
40分钟
适用年级
高二,高三
指导教师
王老师

1 项目简介

本项目实现8只LED灯从左到右依次点亮的流水效果。通过编写汇编程序控制单片机P2端口,使用循环移位指令实现LED灯逐个点亮,形成流水灯效果。学生将掌握循环移位指令的使用、延时子程序的设计与调用。

对应岗位技能

  • • 单片机P2端口操作
  • • 循环移位指令应用
  • • 延时子程序设计

课堂教学意义

  • • 理解循环控制结构
  • • 掌握移位指令原理
  • • 培养程序逻辑思维

2 电路图

电路图

电路说明

  • • 8 只 LED(LED1~LED8)分别接单片机 P2.0~P2.7
  • • LED 正极接 P2 口引脚,负极经 220Ω 限流电阻接地
  • • 单片机 P2 口输出低电平时对应 LED 点亮,高电平时熄灭

3 硬件连接

单片机引脚 连接元器件 说明
P2.0LED1 → 220Ω → GND第1只LED(最左侧)
P2.1LED2 → 220Ω → GND第2只LED
P2.2LED3 → 220Ω → GND第3只LED
P2.3LED4 → 220Ω → GND第4只LED
P2.4LED5 → 220Ω → GND第5只LED
P2.5LED6 → 220Ω → GND第6只LED
P2.6LED7 → 220Ω → GND第7只LED
P2.7LED8 → 220Ω → GND第8只LED(最右侧)

LED正极接单片机P2口对应引脚,负极通过220Ω限流电阻接地。单片机输出低电平(0)时LED点亮。

4 实训目标

知识目标

  • • 理解P2端口结构与位操作
  • • 掌握RL循环左移指令
  • • 理解延时子程序原理

能力目标

  • • 能连接8路LED硬件电路
  • • 能编写流水灯汇编程序
  • • 能调试运行程序

素养目标

  • • 培养严谨的编程习惯
  • • 学会分析问题和解决问题
  • • 遵守实训安全规范

5 程序内容(汇编语言)

程序功能说明

程序初始化P2口为全高电平(LED全灭),然后通过RL循环左移指令,每次移动一位,实现从左到右依次点亮LED的效果。

LED_LEFT_TO_RIGHT.ASM
;==================================================
; 项目名称:从左到右流水灯
; 芯片型号:STC89C52RC
; 时钟频率:12MHz
;==================================================
P2      DATA    0A0H

        ORG     0000H
        LJMP    MAIN

MAIN:
        MOV     P2, #0FEH      ; P2=11111110B,第1只LED点亮
MAIN_LOOP:
        LCALL   DELAY_300MS    ; 延时300ms
        MOV     A, P2
        RL      A             ; P2循环左移一位
        MOV     P2, A
        LJMP    MAIN_LOOP      ; 无限循环

DELAY_300MS:
        MOV     R0, #200
DLY1:   MOV     R1, #230
DLY2:   DJNZ    R1, DLY2
        DJNZ    R0, DLY1
        RET

        END

6 实训步骤

硬件连接

将8只LED依次连接到P2.0~P2.7,负极通过220Ω电阻接地

创建工程

打开Keil软件,新建项目并添加汇编源文件

编写代码

输入上述汇编代码,注意指令格式和寄存器使用

编译下载

编译程序生成hex文件,使用STC-ISP下载到单片机

效果验证

观察LED是否从左到右依次点亮流动

7 评分标准

考核项目 分值 评分标准
硬件连接30分接线正确、规范、牢固
程序编写40分指令正确、逻辑清晰、有注释
编译下载20分编译无错误,下载成功
效果验证10分流水效果符合预期

8 注意事项与安全规范

安全规范

  • • 严禁带电插拔电路板,必须先断开电源
  • • 接线时注意正负极,避免短路损坏器件
  • • 限流电阻必须正确连接,防止LED烧毁
  • • 保持工作台整洁,避免导线缠绕

注意事项

  • • 下载程序前确保单片机型号选择正确
  • • 检查串口连接是否正常
  • • 观察LED亮度是否均匀,如有异常检查接线
  • • 程序下载失败时检查COM口是否被占用

操作提示

  • • 使用STC-ISP软件下载程序
  • • 选择正确的COM端口和波特率
  • • 点击下载后再给单片机上电
  • • 观察下载进度条,确保下载成功