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

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部