怎样用led数码管显示小数

来源:百度知道 编辑:UC知道 时间:2024/07/02 10:01:03
我在用单片机做一个计算器遇到了这么一个问题,比如说显示3.2,最好有用C写的程序。
显示3.2,应该是先显示2,在显示3.,问题是怎样把它们分开。

数码管上面的 小数点 就是 dp 位
平时dp位是灭的,用1来表示(看你是共阴还是共阳)
要让它亮就是 0
相当于把显示的代码dp的对应位变 0

比如
┌—————┬————————————————┬————┐
ㄧ ㄧ P*.*: 7 6 5 4 3 2 1 0 ㄧ I/O口值ㄧ
ㄧ 十进制数 ㄧ 段 : d dp e c g b f a ㄧ 即段码 ㄧ
├—————┼————————————————┼————┤
ㄧ 0 ㄧ 0 1 0 0 1 0 0 0 ㄧ 48H ㄧ
ㄧ 1 ㄧ 1 1 1 0 1 0 1 1 ㄧ ebH ㄧ
ㄧ 2 ㄧ 0 1 0 1 0 0 1 0 ㄧ 52H ㄧ
ㄧ 3 ㄧ 0 1 1 0 0 0 1 0 ㄧ 62H ㄧ
ㄧ 4 ㄧ 1 1 1 0 0 0 0 1 ㄧ e1H ㄧ
ㄧ 5 ㄧ 0 1 1 0 0 1 0 0 ㄧ 64H ㄧ
ㄧ 6 ㄧ 0 1 0 0 0 1 0 0 ㄧ 44H ㄧ
ㄧ 7 ㄧ 1 1 1 0 1 0 1 0 ㄧ eaH ㄧ
ㄧ 8 ㄧ 0 1 0 0 0 0 0 0 ㄧ 40H ㄧ
ㄧ 9 ㄧ 0 1 1 0 0 0 0 0 ㄧ 60H ㄧ
└—————┴————————————————┴————┘
所以当你要显示的是3.的时候
就把0x62-0x40

这样,所有的要显示小数点,只要 -0x40 就可以了