发新帖我要提问
12
返回列表
打印

51单片机十六进制转换十进制

[复制链接]
楼主: ilovecr
手机看帖
扫描二维码
随时随地手机跟帖
21
ayb_ice| | 2007-6-9 16:58 | 只看该作者 回帖奖励 |倒序浏览

随便说说

signed char result8;
signed int  result16;
result16 = result8;

使用特权

评论回复
22
mohanwei| | 2007-6-9 20:51 | 只看该作者

估计就是过采样了,想用8位的AD,得到16位“分辨率”的结果

使用特权

评论回复
23
ilovecr|  楼主 | 2007-6-9 20:53 | 只看该作者

谢谢

不好意思,在忙于搭建AD421的电路
现在是这样的
我用STC12C4052AD自带的A/D转换
A/D转换读入的数据是0~FF (十进制0~255)    因为他的进度只有8位
选用AD421 做4~20mA输出(16位精度)0~FFFF(十进制0~65535)
输入和输出必需要有个对应的关系
最开始的思路就是十六进制-十进制-十六进制
不知道还有没有更好的思路!
谢谢大家

使用特权

评论回复
24
floater| | 2007-6-9 22:27 | 只看该作者

不明白LZ说什么

说清楚一点,
8位的AD,读出来16位的数据,什么意思呢

使用特权

评论回复
25
conwh| | 2007-6-9 22:39 | 只看该作者

就是为了保持以前的格式,对吧LZ。

是要进行转换的,否则前后的程序不能保持一直性。因为分辨率不同,如前面(12位)表达的1为4095,而8位的则表达为255。

使用特权

评论回复
26
conwh| | 2007-6-10 10:19 | 只看该作者

直接放到高位字节就行了,因为你人为地减小了256倍,所以

时,要放大256倍。

使用特权

评论回复
27
ilovecr|  楼主 | 2007-6-10 13:48 | 只看该作者

哥们我说的很明白了!

使用特权

评论回复
28
ilovecr|  楼主 | 2007-6-10 13:56 | 只看该作者

我说的很明白了

比如说测量0~5V     A/D转换的数是0~255
输出是16位精度的DA  0~65535


我是想让0~255与0~65535有个成比例的线性对应关系


比如读数是1  输出就是256
读数是10     输出就是2560

但是应用到程序上输入输出都是16进制的
在16进制上怎么处理这个对应关系

楼上说的放在高危是不可行的
我用的AD421是4~20mA输出相应的就是0~FFFF

使用特权

评论回复
29
ayb_ice| | 2007-6-10 14:11 | 只看该作者

随便说说

按LZ的意思,人家不用做16~24位的AD,DA。。。

使用特权

评论回复
30
conwh| | 2007-6-10 15:29 | 只看该作者

这不是大整帐的事吗,使用8位的替代16位的牺牲的是精度

难道你还想用8位的完全替代16位的?缩小256倍,你就得放大256倍,具体中间的可能不能一一对应。

使用特权

评论回复
31
gyt| | 2007-6-10 17:45 | 只看该作者

26楼

从楼主26楼的说明来看,就是把8位的数据放到高字节,OK!

使用特权

评论回复
32
4101523| | 2007-6-11 01:27 | 只看该作者

恢复

多读几位!!

使用特权

评论回复
33
ilovecr|  楼主 | 2007-6-11 08:40 | 只看该作者

怎么多读

使用特权

评论回复
34
conwh| | 2007-6-11 09:02 | 只看该作者

读256遍

使用特权

评论回复
35
gyt| | 2007-6-11 18:05 | 只看该作者

这样最好

读256的办法最好,如果时间允许的话,应该这样做:)

使用特权

评论回复
36
conwh| | 2007-6-11 19:05 | 只看该作者

GYT是最了解人的,呵呵。

使用特权

评论回复
37
ilovecr|  楼主 | 2007-6-11 21:20 | 只看该作者

我的程序编完了

使用特权

评论回复
38
ilovecr|  楼主 | 2007-6-11 21:24 | 只看该作者

采用左移8位的方法

在读数是FF时候进行移位,完事低位字节加FF

使用特权

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

本版积分规则