打印

16位二进制数转十进制输出(请教)

[复制链接]
2146|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
prince_fang|  楼主 | 2009-11-20 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!我用的是89s52定时器2的计数模式,要实现的功能是数码管显示T2引脚每秒采集的次数。
原理:T2引脚接为外部脉冲计数,每1秒钟送下降沿脉冲给T2EX时,定时器2内部RCAP2H和RCAP2L寄存器捕捉TH2和TL2的数据,
以下是我写的读取RCAP2H和RCAP2L寄存器数据并转换位码的代码,但是不能实现,请高手指点转换方法,感激不尽!
     temp_high=RCAP2H; //读取高8位数据
     temp_low=RCAP2L; //读取低8位数据  
     temp=temp_high;   
     temp<<=8;         //向高移8位
     temp|=temp_low;   //合并成16位2进制数
     wan=temp/10000;   
     qian=temp%10000/1000;
     bai=temp%1000/100;
     shi=temp%100/10;
     ge=temp%10;
....
display(wan,qian,bai,shi,ge)   //动态显示数据

相关帖子

沙发
tyrone3000| | 2009-11-20 13:41 | 只看该作者
不能实现 具体什么情况?

使用特权

评论回复
板凳
prince_fang|  楼主 | 2009-11-20 14:46 | 只看该作者
就是数码管不能显示啊,
    temp<<=8;         //向高移8位
     temp|=temp_low;   //合并成16位2进制数
请temp得出来的是16位的二进制数吗?
     wan=temp/10000;   
     qian=temp%10000/1000;
     bai=temp%1000/100;
     shi=temp%100/10;
     ge=temp%10;
如此对temp直接运算,得出的结果会不会是十进制数?

使用特权

评论回复
地板
cwei8545| | 2009-11-26 12:17 | 只看该作者
结果是十进制的,

使用特权

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

本版积分规则

3

主题

7

帖子

1

粉丝