所在位置:主页 > 数据处理 > [求助]关于单片机A/D转换后的数据处理

[求助]关于单片机A/D转换后的数据处理

发布时间:2024-01-13 04:51来源:www.sf1369.com作者:宇宇

一、[求助]关于单片机A/D转换后的数据处理

楼上的不对,你没考虑参考电压怎么可能写对 假设参考电压是5v(也就是说,当你读入的10位数据为0b1111 1111 11时候,电压是5V,这个值是根据你接的参考电压选的) a=ADC_DATA; b=ADC_LOW; a=a*4+b; 这个时候,a里面保存的是ADC的读数,不是实际电压值 double x; x = 5.0 * a / 1023.0;注意要写.0,否则,int除int是整除 这个时候,x中得到的数据就是实际电压。 当然,如果这个数是有实际意义的物理量,这里要把x用对应公式计算为该物理量,如果想输出的就是得到的a这个无意义比例值,直接x=a; 然后就是把这个转为8位数码管 如果转换为定点数据,很简单: unsigned char outData[8]; outData[0] = (unsigned char)(x);//由于x最大为5,所以整数部分直接处理,否则要整除, x = x - outData[0];//把整数部分减掉 x = x * 10;//把下一位移到整数部分 outData[1] = (unsigned char)(x);//这样读出0.1这一位 上面是原理,为了让你明白,实际程序如下: unsigned char outData[8]; x = x / 1.0;//后面常数是你的最高位,如果是10位就是除10.0,同样可以为0.1 for(i = 0;i<8;i++) { outData[i] = (unsigned char)x; x = x - outData[i]; x = x*10; } 这个时候,数组outData中就是你要的各位数据了,输出你会吧,别忘了点小数点。 另:有个东西可能你犯糊涂了,AD采样那个10位是2进制10位,也就是0到1023,数码管8位是10进制8位。也就是0到999999 如果你想输出8位2进制的话(就是p2口直接连8个发光二极管),那么直接把ADC_DATA给p2口就可以了,因为低位是可以不关心的。

二、西门子1200 PLC 在主程序内断开FC块是保持吗

如果FC中用线圈的话,输入断开后,输出也是断开的。

如果想实现输入断开后,输出不断开,用置位指令。

三、步步高s7清除所有数据会怎样?清除所有数据是什么意思?是指什么?

清除所有数据就会把机身内存的里数据都清除并且恢复到出厂状态。

清除所有数据:会丢失手机上的所有数据(TF卡上的数据除外),包括安装的应用程序、电话本、短信息等。(说明:当手机出现严重异常,无其它办法解决时,才使用此项,谨慎使用。)

四、oracle如何处理各级文件夹里的数据?(如何建表)

加一个字段就不得了,此字段保留文件的文件夹级别