打印
[51单片机]

初学者问题,二进制用数码管显示

[复制链接]
1526|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ppxiaop|  楼主 | 2014-2-10 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ppxiaop 于 2014-2-10 22:04 编辑

没上过正规课程,基础不好。

我用51芯片+DHT11做温湿度计,取得了8位*5的共40bit的信号。为无符号二进制,我需要放到7段数码管显示

找了一些网上的例子,用以下方式实现了显示(m为湿度的高8位):
P0=table[m%10];           //个位   

...动态扫描...

P0=table[(m/10)%10];      //十位

疑问1:为什么用上述方式可以获得十进制的数据放到数码管显示?如果m是十进制才可以理解。

现在,我计划用DHT22代替DHT11,DHT22的数据位16bit的二进制(湿度/温度)

疑问2:怎样才能将16bit的数据送到数码管以十进制的形式显示?

我尝试一下方法,但不正确:

P0=table[(m%100)/10];           //个位   

...动态扫描...

P0=table[m/100];      //十位

我的问题可能很初级,先谢谢大家。

相关帖子

沙发
dirtwillfly| | 2014-2-10 23:23 | 只看该作者
建议楼主提供完整的代码和原理图

使用特权

评论回复
板凳
ppxiaop|  楼主 | 2014-2-11 00:20 | 只看该作者
dirtwillfly 发表于 2014-2-10 23:23
建议楼主提供完整的代码和原理图

谢谢。刚才自己弄好了。是变量类型的问题。将变量定义为整型之后就可以了

之前DHT11定义的是uchar类型,只能装下8位的数据。

结贴。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

40

帖子

1

粉丝