❶ 用单片机ad采样后存在寄存器中的值是个二进制的,怎么将它转换成十进制的呢,我用的是12位的
你拿什么显示?写个程序把寄存器里的数循环求余后除以10,循环到0就行了,然后把得到的数组逆向输出
❷ 单片机AD采集回来的数值如何能显示为对应的电压值
voltage=AD_data*Vref/16777216。
voltage为电压值:AD_data为AD芯片的采集离散数值。
Vref为基准电压:16777216为2^24。
比如是2.5V,ADC转换的电压就是2.5/65535 *nAdc(V)。nAdc就是采集的ADC的值,也就是说,ADC的量程为0~2.5V,最小分辨率为2.5/65535=38uV。
Vref就是AD的参考电压,比如要转换5V的电压~ Vref=10V, GND=0V
那么输出的AD结果就是32768(65536的一半),而如果Vref=5V,GND=0V
那么输出的AD结果就是65536。
(2)单片机采样怎样还原实际值扩展阅读:
电压表,测电压,电路符号圈中V.
测谁电压跟谁并(联),“+”进“-”出勿接反。
(注:实际上电压表不是开路,有电流流过,但由于电压表电阻在10kΩ以上,因此在初中物理中被视为断路。理想中的电压表电阻无限大,但这种电压表是不存在的)
通常先画连电路,最后添加电压表。
量程选用3V,0.1伏一小格。
量程选用15V,一小格为0.5(V)。
❸ 单片机的模拟信号采样后的处理
对于低电压的脉冲信号,你所述的15ms脉宽是比较大的,你可以用运放,如lm358或lm324放大后送给mcu的中断输入脚,用定时器对脉冲进行计时即可测出宽度和周期.
❹ 关于单片机做的一个数字存储示波器有关采样速率的问题
1
s/div
每格
10个点,是指在屏幕上绘制时候的值,这跟你真正采样率关系并不密切。
你可以采样率设置成1000,然后100个点绘制在1个点就可以了。
如果内存足够大,我建议采样频率不变。但是因为内存有限,你改变时基,实际上改变了显示宽度(总时间),采样率不变的话,需要的内存会有变化的,若内存不够,你必须要调整采样率
❺ 用AD采样电流单片机控制,AD采样值0~255如何换算成实际检测电流值
这样好像是实现不了的,只能从0到20A,无法从15-20A。
如果ADC是5V的输入范围,那就是说明参考源是5V的,在这种情况下使用串联在回路中的电阻来分得5V电压才能测量,即设计在20A时电阻两端的电压为20A,根据欧姆定率,得到R=U/I=5/20=0.25欧。
另外要注意电阻上的功率是很大的,它要达到P=UI=5*20=100W。
看来只能使用瓷管电阻了。
这么高的参考电压用在这个场合,电流还这么大,十分不推荐。
如果可以的话,应该使用运放来放大,这样就可以使用更小功率的电阻,并且让回路中有更小的阻值,减小损耗和发热。
不过话说回来,按前理,既然有刚才的公式了,那么每个数值代表的电流数也显而易见了,就是20A/255=0.078431A,就是说,每个示数代表78.431mA电流。
❻ 用单片机制作数字电压表,待测电压经A/D转换器得到的8位数字量进入51单片机后怎样转换成实际的电压数值
假设ADC的参考电压是Vref,ADC转换结果是X所示实际电压V是:
V=Vref×X÷256
要得到两位小数?如果使用C语言编写那就没有问题了。但是还有一种方法,假设Vref=2.56V,即2560mV,所以V=2560×X÷256=10×X,单位是mV,只要自己加小数点就行了,比如X=65H=101,则V=1010mV=1.01V。
❼ stc15系列单片机ADC采样转实际电压电流值
STC12系列单片机的ADC只能采用内部参考电压,而没有外部参考电压,而且在ADC采样前需要将ADC电源控制位置1,以打开ADC电源,并需适当延迟,等待内部模拟电源稳定后,再启动A/D转换。如果外部电源不稳定,势必造成内部参考电压的不稳定。
解决办法是:利用8路A/D转换的一个通道外接一个稳定的参考电源,来计算此时的工作电压VCC,再计算出其它几路A/D转换通道的电压。采用这种办法可以提高A/D转换的精度。
❽ 如何实现通过单片机采集某一电压值并在lcd上显示该电压值
嘿嘿 俺来帮助你吧
1 单片机采集某一电压值,即经过AD转换,将电压值转换成二进制数的数字量。
2 经过标度变换,将AD转换成二进制数的数字量变换成带有单位(伏特)的实际电压值。
3 将计算出的实际电压值送人lcd上显示 即可。
呵呵 只给出程序的算法 程序自己写吧
满意就选满意回答啊
❾ 单片机是如何把数字信号还原为模拟信号的
DA转换,数模转换就是将离散的数字量转换为连接变化的模拟量.
主要类型有:电压输出型、电流输出型、乘算型。
它将数字值转换为脉冲宽度调制或频率调制的输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。
在网络可以找到DA和AD的相关资料。
❿ 51单片机中AD0808采集到的电压值和实际的不一样,不知道什么原因
把你计算采集电压的公式贴出来看看。
unsigned int num1;
unsigned char ge,shi,;
num1 = ((num1 * 5.0) / 255.0) *100;
= num1 / 100;
shi = num1 %100 / 10;
ge = num1 % 10;
把你的程序改为这样试试。