C++/Arduino 7digit 不显示 5 或 6

C++/Arduino 7digit doesn't show the 5 or 6

我的问题很简单,但我似乎无法解决。 我正在尝试在我的 7 位数字显示屏 (0-9) 上获取基本数字。我正在使用二进制代码进行输出。 但不知何故,我的显示器显示了 9,而实际上需要显示的是 5。另外,如果我想显示 6,它会显示 8。 有人能帮我吗? 这是我正在使用的二进制代码。

0 = B00000011
1 = B10011111
2 = B01001011
3 = B00001101
4 = B10011001
5 = B01001001
6 = B01000001
7 = B00011111
8 = B00000001
9 = B00001001

如果无法访问您正在使用的开发板,则很难准确查明发生了什么,但我可以做出一些有根据的猜测。既然你在学习,我就有点长篇大论了(反正我的本性)。

这是一个 7 段显示及其标签(并排)的图表

 --    aa
|  |  f  b
 --    gg
|  |  e  c
 --    dd

从你的代码来看,从你的值到显示器的接线似乎在一个字节内如下(位号在顶部,X 表示未使用),其中 0 为开,1 为关:

76543210
abcdefgX

基于此,您的 table 中使用的值应该是:

0 = B00000011
1 = B10011111
2 = B00100101
3 = B00001101
4 = B10011001
5 = B01001001
6 = B01000001
7 = B00011111
8 = B00000001
9 = B00001001

除非我犯了错误(这很有可能),否则我认为您对“2”的实现是不正确的。这更有可能是因为“2”值应该有 5 "ON" 位,而您的实现中只有四个 0。

由于您认为 2 是正确的,这意味着第 6 位的电线(上面 7 段图中的 "b")松动或接线错误(或者可能与另一根电线短路),因为当那个位上有“1”时,它显然仍然是 "ON"。如您所述,这将导致 6 显示为 8,5 显示为 9。