【发布时间】:2021-03-10 15:17:25
【问题描述】:
嘿,所有程序员,我有一个非常有趣且非常简单的问题。我正在使用 esp32,并且正在使用 2 个多路复用 7 段显示器。我已经创建了我的代码,它也可以工作,但我想让我们说一种更漂亮的方式来编码这些行。我已将我的号码分成 2 个数字(例如 34 --> [3,4]),然后我正在查看这个 if-elif 并附加正确的行(用于 GPIO 上的输出),因此 3 将是 0000110。你有什么想法可以让这段代码更简单吗?
if number == 0:
dcd_input_list.append([0,0,0,0,0,0,1])
elif number == 1:
dcd_input_list.append([1,0,0,1,1,1,1])
elif number == 2:
dcd_input_list.append([0,0,1,0,0,1,0])
elif number == 3:
dcd_input_list.append([0,0,0,0,1,1,0])
elif number == 4:
dcd_input_list.append([1,0,0,1,1,0,0])
elif number == 5:
dcd_input_list.append([0,1,0,0,1,0,0])
elif number == 6:
dcd_input_list.append([0,1,0,0,0,0,0])
elif number == 7:
dcd_input_list.append([0,0,0,1,1,1,1])
elif number == 8:
dcd_input_list.append([0,0,0,0,0,0,0])
elif number == 9:
dcd_input_list.append([0,0,0,0,1,0,0])
非常感谢您的帮助!如果我必须发送更多信息,请询问。
Ps:这是一个 Python 代码,但应该很清楚。
最好的问候
【问题讨论】:
-
那个数字是二进制转换吗?因为如果是这样的话,转换就大错特错了。
-
制作一个 7 段显示列表的列表,以便您可以使用
number作为该列表的索引。 -
@Sagitario 不,这不是直接的二进制转换。所以我们正在使用 open_drains,为此我们当然需要所有位的反转。但我现在有很多解决方案,它们对我和我的应用程序都非常有用。
-
@ScottHunter 非常感谢您的帮助!