怎么把液位变送器输出的4-20mA的模拟信号,通过电流转电压,再AD转换成数字信号,数码管显示。

怎么把液位变送器输出的4-20mA的模拟信号,通过电流转电压,再AD转换成数字信号,数码管显示。,第1张

液位变送器原理,容器介质的静压力分别作用于集成硅压力敏感元件的两端,其差压使硅片变形(位移很小,仅μm级),以使硅片上用半导体技术制成的全动态惠斯登电桥在外部电流源驱动下输出正比于压力的mV级电压信号。由于硅材料的强性极佳,所以输出信号的线性度及变差指标均很高。工作时,变送器将被测物理量转换成mV级的电压信号,并送往放大倍数很高而又可以互相抵消温度漂移的差动式放大器。放大后的信号经电压电流转换变换成相应的电流信号,再经过非线性校正,最后产生与输入压力成线性对应关系的标准电流信号(4---20ma)。

深圳市中航电脑智能系统

问题不大,挺麻烦,开始的三行都是赋值语句,第三行的话,把0x2E装换为二进制00101110,代码太不全了,那些数组的只有个名称,应该是把某位置为1或者0,一般情况下1为开,0为关,下面的TxBuf的代表某个标志位吧,下面几句意思都差不多,拿TxBuf[0]=0x02;做例子,意思就是TxBuf[0]这个标志位把倒数第二位置为1(0000 0010),下面的依次类推!

for语句从AdcRegsADCRESULT0采集512个数据(电压模拟值),存于取样表SampleTable数组,同时将采样数据转换成实际电压数值,存放于dianya数组。将512个电压值求平均值,作为当时的电压值(sum先累加再平均)

然后显示出来并且延时。

整个过程无限循环(while(1){})。

兄弟:不知道你玩不玩32 ,有个32 的在工程上用过,直接刷程序,串口连接电脑就可以输出AD 转换的结果。如果不玩32 的话。

首先第一步排查: 排查单片机能不能正确显示 你测试到的 AD 信号,显示正确不?

比如给他 3V 电压 ,用数码管显示出来。

第二: 串口发送,找个能正确发送数据的代码 ,直接把 ,你检查的数值给这个变量,让串口发送,

一步一步找问题,你绝对能解决的。我把AD0809 的代码给你用数码管测试

#include <reg52h>

#define uint unsigned int

#define uchar unsigned char

uchar code LEDData[]=

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f

};

sbit OE = P1^0;

sbit EOC = P1^1;

sbit ST = P1^2;

sbit CLK = P1^3;

void DelayMS(uint ms)

{

uchar i;

while(ms--)

{

for(i=0;i<120;i++);

}

}

void Display_Result(uchar d)

{

P2 = 0xf7;

P0 = LEDData[d%10];

DelayMS(5);

P2 = 0xfb;

P0 = LEDData[d%100/10];

DelayMS(5);

P2 = 0xfd;

P0 = LEDData[d/100];

DelayMS(5);

}

void main()

{

TMOD = 0x02;

TH0 = 0x14;

TL0 = 0x00;

IE = 0x82;

TR0 = 1;

P1 = 0x3f;

while(1)

{

ST = 0;

ST = 1;

ST = 0;

while(EOC == 0);

OE = 1;

Display_Result(P3);

OE = 0;

}

}

void Timer0_INT() interrupt 1

{

CLK = !CLK;

}

void Timer3_Init()

{

TMR3CN = 0x02;

TMR3R = -44236; //定时2ms

TMR3 = 0xffff;

EIE2 &= ~0x01;

TMR3CN |= 0x04;

}

void ADC0_Init(void)

{

AMX0SL=0x00; //选择通道0

AMX0CF=0x00; //选择AIN0和AIN1为独立输入

REF0CN=0x03; //选择外部的电压为基准电压

ADC0CF=(SYSCLK/2500000)<<3;//时钟为 ,增益为1

ADC0CN=0x84;//ADC0使能且为ADCBUSY的开启方式

EIE2|=0x02;//开启ADC0的中断

}

void ADC0_ISR() interrupt 15

{

static unsigned int_dec=INT_DEC;

static long accumulator=0L;

AD0INT = 0; // 清 ADC 中断标志位

accumulator += ADC0; // 累加ADC采样数据

int_dec--; // 指针减1

if (int_dec == 0) // 累加完了吗?

{

int_dec = INT_DEC; // 指针复位

result = accumulator >> 8;

accumulator = 0L; // 累加和变量清0

t=1;

}

}ADC0转换,定时器3开启的方式

结构及工作原理

水温水位传感器由温控器部分与水位控制部分组成,与其配套的还有电动阀前的减压装置,及用于加热的旋转式消声加热器 原理 容器内的水位传感器,将感受到的水位信号传送到控制器,控制器内的计算机将实测的水位信号与设定信号进行比较,得出偏差,然后根据偏差的性质,向给水电动阀发出"开""关"的指令,保证容器达到设定水位。进水程序完成后,温控部份的计算机向供给热媒的电动阀发出"开"的指令,于是系统开始对容器内的水进行加热。到设定温度时。控制器才发出关阀的命令、切断热源,系统进入保温状态。程序编制过程中,确保系统在没有达到安全水位的情况下,控制热源的电动调节阀不开阀,从而避免了热量的损失与事故的发生。

变极距电容传感器具有灵敏度最高的特点,其非线性特性可以这样解决:

1,将结构设计成差动形式,也就是在两个固定极板之间插入动极板,动极板与两边固定极板构成两个互为差动的电容。其中一个电容增加多少,另一个电容就减少多少。

2,将上述差动结构的电容作为桥式电路中相邻的两个桥臂,此时,电桥的输出电压与动极板的移动距离呈线性关系(并且灵敏度较之单个电容增加到2倍)。 这一步的依据请参阅桥式电路原理。

以上就是关于怎么把液位变送器输出的4-20mA的模拟信号,通过电流转电压,再AD转换成数字信号,数码管显示。全部的内容,包括:怎么把液位变送器输出的4-20mA的模拟信号,通过电流转电压,再AD转换成数字信号,数码管显示。、MSP430AD转换实验帮忙解释下面程序,尽可能每句都解释、这段程序什么意思,怎么实现AD转换。在线等等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10113503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存