1

好的,所以我正在尝试驱动基于 7 段的显示器,以便以摄氏度显示温度。所以,我有两个显示器,加上一个额外的 LED 来指示正数和负数。

我的问题在于软件。我必须找到一些驱动这些显示器的方法,这意味着将给定的整数转换为引脚上的相关电压,这意味着对于两个显示器中的每一个,我都需要知道整数中的十位数和 1 的数量。

到目前为止,我想出的东西对于 arduino 来说并不是很好,因为它依赖于除法。

tens = numberToDisplay / 10;
ones = numberToDisplay % 10;

诚然,我还没有对此进行测试,但我认为我可以假设对于具有有限除法能力的微控制器,这不是最佳解决方案。

我已经绞尽脑汁,四处寻找使用加法/减法/按位的解决方案,但我根本想不出一个。这个部门是我唯一能看到的。

4

2 回答 2

1

对于这个应用程序来说很好。您无需为简单的温度计的性能而烦恼。

但是,如果您确实需要比除法和模数更快的东西,那么按位运算会有所帮助。基本上,您将使用按位运算&符将要显示的值与描述要在显示器上显示的数字的模式进行比较。

请参阅此处的项目,例如: http: //fritzing.org/projects/2-digit-7-segment-0-99-counting-with-arduino/

于 2013-03-02T16:57:06.100 回答
1

您也可以尝试使用 7 段显示驱动芯片来简化输出并节省引脚。MC14511BCP(“4511”)是一个不错的选择。它将二进制编码的十进制 (BCD) 转换为适当的 7 段配置。规格表可在此处获得,并且通常可以在网上电子零件商店找到。

于 2013-03-04T02:21:27.983 回答