


这是普中科技的51单片机,数码管是共阴连接的,我按着普中科技给的视频敲代码,功能是让 LED8控制的灯显示出数字零,可显示了一个8.,并且我并未点亮第四个数码管,它为什么会存在余晖



很高兴在 CSDN 上回答你的问题,本次回答使用 【豆包】让我们一起探讨,找到解决问题的最佳方案吧。以下是对该问题的分析及解决方法:
0x3F(假设使用常规的共阴数码管编码),如果显示为“8”,可能是发送了 0x7F 的编码。unsigned char code smgduan[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
- 在代码中,将正确的编码发送到对应的数码管。
#include <reg52.h>
// 共阴数码管编码表
unsigned char code smgduan[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
// 延时函数
void delay(unsigned int i)
{
while(i--);
}
void main()
{
while(1)
{
// 先关闭所有数码管
P2 = 0xFF;
// 选择第8个数码管(假设P0控制数码管位选)
P0 = 0x80;
// 发送数字“0”的编码到第8个数码管(假设P2控制数码管段选)
P2 = smgduan[0];
// 延时一段时间,以稳定显示
delay(500);
}
}