我在编写51单片机ad转换程序的时候遇到一个问题。
用ADC0809 8位 的,也就是精度达到 1/256
输入电压是 0~5v 那么 量化单位就是 5/256 V
那么 我从ADC 0809 中采集到的数字 是二进制的 ,我现在要转换得到电压值
我将P0口猜到的转换后的二进制的数字给一个变量 a==P0
要得到电压对应的电压数字 V
我使用的是 V=a*5/256
这样做对吗??能得到对应的电压值吗??
我的疑惑是 ,AD转换器得到的数字是 二进制的,而用它跟十进制的数字相乘,能得到十进制的一个数字吗??感觉很多疑问??
另外,从ad转换器中采集到的二进制的数字量怎么处理啊??怎么进行标度变换,转换成有实际意义的工程数值??
请专家,高手指教,谢谢了 。
ADC0809的基准电压为5V,意思是输入的电压应该在0~5V之间,
因为ADC0809是八位的,所以它能把5V电压分成255份,所以一份就是
5除以255约为0.02V.
当电压为1.5V时数字量为1.5/0.02=75 变成16进制为0x4b.
那么我怎么把采集到的 16进制为0x4b 变成 1.5v 啊??
我用 0x4b*5/255 能直接得到 1.5 吗??一个是二进制的一个事十进制的能相乘吗?? 谢谢各位了??求教
...二进制能否与十进制数字直接相乘得到十进制的数值??【51高手进...
实际上二进制 十进制 都是数字的值而已 我们看到的 只是 他的表达方法不同 实际上一个意思 一样的值 所以可以相乘 那么你的问题 如果你把值通过pc显示 那么 pc会自己类型转换 成你要的 如果你用液晶显示 那么恭喜你 你要自己做一个小数显示 或者转换成字符串 如果你用串口调试工具 ...
51单片机采集的AD值的转换程序问题?
0~2.5V,对应于AD_data = 0~11111...1111(24位二进制);那么1V就是:6710886(十进制)。用24位值AD_data除以6710886,得到的整数部分就是0~5,即为电压的整数部分。再把刚才除得的余数,再除以10,取整数将得到0~9,即为电压的第一位小数;余数,再除以10,取整数将得到0~9,即为电压...
...读到的数据是十六进制的吗?另外十六进制和十进制能直接做加减法乘除...
首先回答问题:读入的数是二进制的,但是参加计算不用考虑转换。电脑中的数,严格地讲,都是二进制的!对于一个常数, 在不同的数进制之间转换时,需要按一定的方法进行。但是,不管你是什么进制的数,放在变量里,就是一样的!不需要考虑转换问题。a=254,你可以想成是16进制:0xfe,也可想成二进...
单片机AD转换问题。
例如数字式的万用表,它测量电压时,先有一个AD转换电路,把电压值转换成一个数值,然后把这个值送个单片机(当然万用表里的用的处理芯片不是单片机),单片机经过计算处理后,再把这电压值显示到显示到屏幕上。不过现在有一些比较强的单片机,其内部已经集成了AD转换器,不需要你再外接AD转换芯片。3...
怎样把51单片机读回来的AD值转换成电压值?
通常是0-5V,对应于0-11111...1111(24位二进制)那么1V就是:3355443(十进制)。用读回来的值AD_data除以3355443,得到的整数部分就是0~5,即为电压的整数部分。把AD_data除以3355443的余数,再除以0.1V所对应的数值(请自己算一下),取整数将得到0~9,即为电压的第一位小数。……取多少位...
你好你以前提出过一个ad转换中二进制与十进制相乘的问题,你最后是怎么...
我想这位同学说的是5V基准的8位AD吧,这只是一个比例关系,Dout \/ 0xff = Vin \/ 5。既然采到的数据是0x4b = 75,那么75 \/ 255 = Vin \/ 5,就可以算了Vin = 1.5V了。
单片机C51课程设计 16进制转为10进制
3、判断是否有定时器中断触发的标志,有的话就执行将数转换成BCD码(就是转换成10进制数)的过程,并显示出来。如此就完成了。至于定时器中断怎样搞,和汇编相比,更简单了,直接初始化定时器的特殊定时器,再在程序里定义中断服务程序就好了。我估计你的输入数字还没能整理,那样的话在上面的第2步里...
悬赏80! 写个C51单片机程序,能将int变量转为bit变量
比如我们平时说的数值65535,二进制就是1111 1111 1111 1111,即0xFFFF,在单片机中用两个字节存储,高字节内容是1111 1111或0xFF,低字节是1111 1111或0xFF,所以你要“十进制”转“二进制”只是多此一举。在编译器中我们用十进制方式来表示一个数字,比如你的程序中的定义的数字32769,你要知道这...
我想向你请教一下关于C51中十六进制计算的问题
而十进制数则是从0开始,到9结束 0,1,2,3,4,5,6,7,8,9 所以在单片机中,十六进制数用 char 字符形式存储,为便于区分,则用 0x作为开头 如 0x56 0xbf 0xff 等等 二进制中,则只有0和1,十六进制中的一个字符可以代表二进制的四个位 例如二进制数 1111 可以用十六进制 F 表达,二...
为什么24位的AD要转换芯片?
24位的AD要转换芯片是因为24位二进制数字位数太长,所以改用6位16进制数字来替代。2进制和16进制数字之间的转换很简单,每一位16进制数字对应四位2进制数字,这样比较简明一些。AD转换就是模数转换,可以把模拟信号转换成数字信号。AD芯片的8位,12位,16位,24位代表的是AD转换的二进制位数。比如8位...