c语言数码管显示小数点,8位数码管显示正整数和小数及解决鬼影问题

写的不知道好不好,有什么不对的地方还请指出,谢了。

正整数显示无异常,小数显示有点异常(小数会有精度问题,后面在处理,先给大家贴出来代码)。

本次,使用了数组用来存放要显示的数值。

用单独的数码管显示函数进行显示,之前把数码管显示函数放在数据处理里面了,那样会导致每次做无用的功。

另外,为了显示的稳定性,加入了清除数码管显示,初始化数码管代码。

最重要的是我解决了“鬼影问题”,我看别人写的数码管代码,大都是:送位选码——送段选码——延迟,然后下次循环。

这样均有产生“鬼影问题”,问题就在代码流程思路没有整好,应该这样:送位选码——送段选码——延迟——送段选码(假值,即不让数码管显示值),然后下次循环。这样思路对,数码管显示也对。

#ifndef __DT_H__

#define__DT_H__

#include sbit wei = P2^7;//锁存器位选

sbit duan = P2^6;//锁存器段选

#define dt_dt P0

//0≤x≤99999999 unsigned int 无符号整型

//将要显示的正整数临时存储在数组里面,然后循环显示数组里的元素即可

//x传递的数据10进制(x不是8位则高位不会亮)

//void dt(unsigned long int x, unsigned int y);

void convert_long_int(unsigned long int x);//原数据转换保存到数组里

//x为8位有符号小数 for 对于DS18B

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值