波特律动

【04】流水灯

本课资源下载
3 个资源
P03流水灯

本节课的标准源代码工程/可供参考

V1.0压缩包18 KB
下载
XL-1608SURC-06

LED红色(0603)

PDF 文档1.5 MB
预览下载
流水灯原理图

交互式原理图❇️

原理图

课程笔记


本节目标概括

创建工程> AiCube生成100ms定时函数 > 编写流水灯代码 >LED灯组依次亮灭

1.创建工程

按照【01】打造开发环境【02】点灯大师 的讲解创建新工程 "P03流水灯" 并创建main.c文件。

2.生成100ms延时函数

在AICube-ISP中找到“软件延时计算器”工具:

  1. 系统频率设置为11.0592MHz
  2. 定时长度设置为500,单位设置为毫秒
  3. 指令集设置为STC89。
  4. 点击“复制代码”按钮

3.编写代码

  1. 在第1行点右键,添加头文件#include <STC89C5xRC.H>
  2. 粘贴上一步复制的100ms延时函数
C语言
1#include <STC89C5xRC.H>
2
3void Delay100ms(void) //@11.0592MHz
4{
5 unsigned char data i, j;
6
7 i = 180;
8 j = 73;
9 do
10 {
11 while (--j);
12 } while (--i);
13}
14
15void main(){
16 char i;
17 while (1){
18 for(i = 0; i < 8; i++) {
19 P0 = ~(0x01 << i); // 依次将 0 移动到对应引脚(取反实现低电平点亮)
20 Delay100ms(); // 逐个灯亮起的时间间隔
21 }
22 }
23}

代码含义解释:

P0 = ~(0x01 << i);

0x01 逐位左移实现移位效果,再整体取反电平,实现 LED 逐个依次点亮

Delay100ms();为延时0.1s。

4.现象展示