kscheang 发表于 2021-11-4 13:09 已经明确的告诉你问题出在段码和位码,还在瞎折腾。数组前面少了0x3f,后面多了0xff。位码低位高位顺序反了。
|
谢谢 但修改了还是显示 2 while(1) { P0 = 0X00; HC138_A = 0; HC138_B = 0; HC138_C = 0; P0 = smgduan[z/1000%10]; delay7ms(); } |
取各位的代码,应该要改一下 z/1000%10//千位 z/100%10//百位 z/10%10//十位 z%10 //个位,最低位 |
可能用于显示的代码出问题了 |
你四位数提取每一位的计算对吗???我咋觉得不太对哎。 |
x,y定义的是char,你结果又超出255,所以答案就不可测,需要看编译器怎么翻译的,你可以通过强制类转换方式计算。 |
检查一下段吗。 |
计算结果本身没有错,是显示出错。你驱动数码管的段码和位码错位。把1650显示成2761,位序反后2761就成1672。 |