我正在用C语言编写一个程序,我必须读取TM-1638中按钮的值并将其发送到7段显示器。我现在通过阅读部分,我有问题在显示器中显示值。 我已使用以下代码将值转换为BCD:
const uint8_t dec[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d,0x07,0x7f,0x6f};
if(readbyte > 0)
{
num <<= 4;
num |= readbyte % 10;
readbyte /= 10;
}
senddatabyte(0x0a, dec[num]);
senddatabyte(0x0c, dec[num]);
senddatabyte(0x0e, dec[num &0x0f]);
其中senddatabyte
将值发送到7段显示的选定地址。
当它必须显示一位数字时它很好用,但是当它显示数十和数百时它不起作用。
答案 0 :(得分:1)
对于较大的数字,您必须使用循环。在数字大于或等于10时循环。取数字模数10得到最低有效数字,您可以在显示屏上打印。然后将数字除以10并再次循环。然后最后当循环完成并且剩下的数字是小于10的数字时,也打印该数字。