1. 彩灯设计 (LED Design)
① 位移操作规范
-
文档逻辑:
-
使用
_crol_函数。 -
核心要求:
不要对寄存器直接进行操作,使用中间变量过渡。
-
-
复原代码:
C
#include <intrins.h>
unsigned char LED_Buf = 0xFE; // 定义中间变量
void LED_Move()
{
// 错误写法:P0 = _crol_(P0, 1);
// 正确写法:先移位中间变量,再赋值给端口
LED_Buf = _crol_(LED_Buf, 1);
P0 = LED_Buf;
}
② 模式切换边界 (Mode 4 → Mode 1)
-
文档逻辑:
避免模式4到模式1忽略L1。 -
复原代码:

2. 数码管闪烁 (Seg Blink)
① 闪烁逻辑
-
文档逻辑:
设置闪烁时间和取反变量,覆盖闪烁显示。 -
复原代码:
全部正常显示

设置闪烁时间和取反变量

覆盖闪烁显示

② 避免程序卡死
-
文档逻辑:
闪烁避免程序卡死。 -
复原代码:

3. 按键逻辑 (Key Logic)
① 避免默认多执行一次
-
文档逻辑:
避免按下切换按键后默认多执行一次。 -
复原代码:

② 按键长按
-
文档逻辑:
按键长按。 -
复原代码:

③ 输入限制
-
文档逻辑:
输入限制。 -
复原代码:

4. 数据处理 (Data Process)
① 四舍五入
-
文档逻辑:
四舍五入保留两位数字。 -
复原代码:

② Float 显示与小数点
-
文档逻辑:
Float显示数码管。 -
复原代码:

③ 电压进位 (mV → V)
-
文档逻辑:
9999mV进位之后10.0V。 -
复原代码:


④ 高位熄灭
-
文档逻辑:
高位熄灭。 -
复原代码:

⑤ 计数值增加
-
文档逻辑:
计数值增加。 -
复原代码:

Seg_Dula(段选):控制显示什么内容
数码管内部由 8 个发光二极管(LED)组成,分别标记为 a, b, c, d, e, f, g 和 dp (小数点)。
Seg_Wela(位选):控制哪一位亮
Seg_Wela 控制的是如果你有多个数码管排在一起(比如 4 位或 6 位数码管),哪一个数码管应该工作。