怎样将ad采样数据转换成10进制数发送串口显示

作者&投稿:莘泉 (若有异议请与网页底部的电邮联系)
51单片机,怎么把通过AD转换器采集到的数据(电压值)通过单片机的串口输出?~

看看我这个 adc0808 测电压 然后串口发送,另一边数码管显示

AD转换过来是二进制,而电脑串口里面是ASCII码 转换一下发过去就行了

因为接受方(PC)通过串口接受后还要显示,而PC中显示都是用ASCII码的.所以所谓的把ADC的数据发送串口显示,关键的不是转换成10进制,而是转换成ASCII码.
因为不知道你要传的是ADC原值,还是经过换算后的电压值(可能是带小数的),所以最好的方法的是输出为字符串,然后把这个字符串从串口发送:
float adc_val;//ADC值.如果是原值,可以定义为int
char a[100], i=0;

void uart_send(char data_send)
{
ES=0;
TI=1;
SBUF=data_send;
while(!TI);
TI=0;
ES=1;
}

//下面的语句可以在main函数中使用
sprintf(a, "%f", adc_val);//如果adc_val是int,那么用sprinf(a, "%d", adc_val);
while (0 != a[i])
{
uart_send(a[i]);
}


有做过 对AD转换的输出结果进行FIR滤波处理的么?
…n-M个采样点的值与特定滤波系数进行乘加运算以后得到的值(也就是与第n个采样点前M个采样点的值有关)。其中的M为FIR滤波器系数个数。一般来讲系数越多,滤波效果越好。你需要把第n个采样点前M个采样点的数值作为buffer保存下来,和FIR系数做乘加运算。“对采样ADC输出的N个数据处理,得一个...

将采样值转换为电压值的程序,为什么计算出来,电压值AD
嘿嘿俺来帮助你吧1单片机采集某一电压值,即经过AD转换,将电压值转换成二进制数的数字量。2经过标度变换,将AD转换成二进制数的数字量变换成带有单位(伏特)的实际电压值。3将计算出的实际电压值送人lcd上显示即可。呵呵只给出程序的算法程序自己写吧满意就选满意回答啊 ...

自带ad的单片机如何实现ad采样的?
自带ad的单片机其实是把adc内置了,所以他其实是芯片内部就有了比较器之类adc的东西,通俗的说,他在mcu里又装了个ad芯片。你修改他的采集通道后,他可以通过内部adc把你的io的电压转换为数字量,大多内置的都是8位10位12位。换算公式都是一样的。你只需要修改中断,修改io,开始转换,读取结果就o...

这段程序什么意思,怎么实现AD转换。在线等
for语句从AdcRegs.ADCRESULT0采集512个数据(电压模拟值),存于取样表SampleTable数组,同时将采样数据转换成实际电压数值,存放于dianya数组。将512个电压值求平均值,作为当时的电压值(sum先累加再平均)然后显示出来并且延时。整个过程无限循环(while(1){})。

ad9223采样点数是怎样算的
采样频率是指你作AD转换晨一秒种采集多少次数据。采样点数就是采样频率乘以采样时间。所谓采样就是采集模拟信号的样本。采样是将时间上、幅值上都连续的模拟信号,在采样脉冲的作用,转换成时间上离散(时间上有固定间隔)、但幅值上仍连续的离散模拟信号。所以采样又称为波形的离散化过程。

如何将AD采集到的数据,用FFT进行变换
include<math.h> kkfft(double pr[], double pi[], int n, int k, double fr[], double fi[], int l, int il){ int it,m,is,i,j,nv,l0;double p,q,s,vr,vi,poddr,poddi;for (it=0; it<=n-1; it++){ m = it;is = 0;for (i=0; i<=k-1; i++){ j = m...

ad转换器是什么
然后,进行量化处理,即将每个采样值映射为一个最接近的数字值,并保持该数字值不变。AD转换器的主要作用是将模拟量转换为数字量,方便数字电路进行处理和传输,实现信号检测、控制、处理和传输等功能。随着集成技术的发展,现已研制和生产出许多单片的和混合集成型的AD转换器,具有更先进的技术指标,...

三菱AD模块通过压力传感采集后的数据怎么转换成相应的压力
通过TO指令从PLC对增设的特殊单元(如FX2N-2DA)缓冲存储器(BFM)写入数,,对你的CH1通道进行设定。TO K0 K0 H3311 K1 建立4-20MA的模拟通道。然后用FROM 命令读取通道的平均数.FROM K0 K5 D0 K2 ,读取通道1、2的平均数,存在D0,D2.另外你的采样时间也要进行设定。

我有一组adc采样数据怎么用算法获取里面这个曲线
AD 采样 是 通过ADC模数转换器 对测量的 电压 进行转换, 获得 电压的数字量 。曲线 是说 要定时 ,按照一定的时间间隔 测量 ,然后 绘制 V-t 坐标系,将电压随时间变化的 关系已曲线方式显示出来。

一般单片机信号采集作AD转换的话,采集的是什么信号?电流还是电压?为什么...
肯定采集电压信号了,因为ADC的核心是电压比较器。如果被采集的信号很弱,比如最大幅度低于参考电压的10%,那就需要适当放大来减少误差了。如果输入电压大于参考电压,那肯定要分压。输入阻抗无穷大这样是最好的,这样采集的误差最小,当然一般ADC的输入阻抗都不算大(10KΩ级别),所以一般用电压跟随器...

永红区13958617674: 怎样将ad采样数据转换成10进制数发送串口显示 -
帛香迪帕: 因为接受方(PC)通过串口接受后还要显示,而PC中显示都是用ASCII码的.所以所谓的把ADC的数据发送串口显示,关键的不是转换成10进制,而是转换成ASCII码.因为不知道你要传的是ADC原值,还是经过换算后的电压值(可能是...

永红区13958617674: 用单片机ad采样后存在寄存器中的值是个二进制的,怎么将它转换成十进制的呢,我用的是12位的 -
帛香迪帕: 你拿什么显示?写个程序把寄存器里的数循环求余后除以10,循环到0就行了,然后把得到的数组逆向输出

永红区13958617674: adc0809的数据GET之后怎么处理成十进制 -
帛香迪帕: adc0809的数据GET之后,是八位二进制数:0000 0000~1111 1111.也就是十进制的:0~255.该数据,除以 10,取整数,就是百位数.余数,再除以 10,取整数,就是十位数.余数,就是个位数.

永红区13958617674: 求教:怎样将AD转换的二进制数据转换成十进制,用LCD1602显示?单片机C语言程序不知道怎么写...谢谢~ -
帛香迪帕: 8位AD,最大255;uchar num; num=AD_receive();//把AD采集回来的数据保存 write_com(0x80);//1602从0x80开始显示数据 write_data(num/100+0x30); //显示字符百位,后面以此类推 write_data(num%100/10+0x30);//十位数 write_data(num%10+0x30);//个位数 至于1602的驱动程序,网上多得是,找找就有了

永红区13958617674: 单片机AD采样结果如何以十进制发送到串口调试助手 -
帛香迪帕: 思路:假如你得到AD值是“1314”,那么就用除法把每位数据分出来并且变成ASCII码:'1' '3' '1' '4',然后通过串口发送.

永红区13958617674: 怎样把51单片机读回来的AD值转换成电压值? -
帛香迪帕: 24位AD! 不知道楼主用这么高精度AD在什么场合 感觉一般16位AD采样就足够了 另外串行数据24位转化为10进制的不难的 就是一个24位的二进制转化为10进制即可 比如data=A*2exp23+B*2exp22+......+Z2exp0; 然后通过查data的字模或者液晶自带的cgroom将十进制显示出来另外需要注意的是楼主采的电压如果是交流电压的话需要求有效值 不过看楼主的意思应该是直流电压 直接送LCD显示即可..

永红区13958617674: 数据收集的AD值和实际数据怎样转换例如;33E2等于10进制多少? -
帛香迪帕: 实际电压=分辨率*采样数据.分辨率=(2的n次方⑴)除于2的n次方,n的AD的位数,如8位的AD的分辨率等于255/256=0.9961

永红区13958617674: 怎样将单片机AD转换中的8位2进制数转换为十进制(用汇编语言) -
帛香迪帕: 就用除法,每次除以10,

永红区13958617674: keil中如何把AD输出的信号转化为十进制输出
帛香迪帕: 可以对IO口直接赋值,不需要进制转换

永红区13958617674: 模拟信号经AD采样转化后的二进制由单片机和12864显示器显示成对应的十进制数,怎么写c程序
帛香迪帕: 取得的AD结果如0x02a6,0x02a6 等于十进制678, 用除法及求余可以转换成十进制数.678 除100 得6,C会自动舍去小数,用这个数做百位;678 除100 求余,这里余78,78再除10,得7舍8, 用7做十位数678 除10求余 ,这里余8 ,直接用这个8做 个位数.程序如下:假设 AD结果保存在V,dis_buf0、1、2 是 百、十、个位的显示缓冲. dis_buf[0] =V / 100;//获取百位数 dis_buf[1] =V % 100/10;// 获取十位数 dis_buf[2] =V % 10 ;//获取个位数.12864显示时从显示缓冲取数就可以了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网