nbhkdz.com冰点文库

2012

时间:2014-05-08


利用运放设计输入为 4mA 和 20mA 输出 0V – 5V 输入 4mA 时,调节 1Rp 使 Vo1=1.25V,调节 2Rp 时 Vo2=0V 输入 20mA 时,调节 1Rp 使 Vo1=6.25V,调节 2Rp 使 Vo2=5V 即可

LM324 组成的 4-20mA 输入/5V 输出的 I/V 转换电路 下面是这个电路网上介绍的资料: 增加这级

运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源, 尤其单片机是采用 A/D 接口来接受这种零点信号不为零电压的输入时,可以保证 A/D 转 换位数的资源能够全部应用于有用信号上。 以 4~20mA 例,图 B 中的 RA0 是电流取样电阻,其值的大小主要受传感变送器供电 电压的制约, 当前级采用 24V 供电时, RA0 经常会使用 500Ω 的阻值, 对应 20mA 的时候, 转换电压为 10V,如果仅仅需要最大转换电压为 5V,可以取 RA0=250Ω,这时候,传感变 送器的供电只要 12V 就够用了。因为即使传送距离达到 1000 米,RA0 最多也就几百 Ω 而 已。 同时,线路输入与主电路的隔离作用,尤其是主电路为单片机系统的时候,这个隔离级 还可以起到保护单片机系统的作用。 图 2 采用的是廉价运放 LM324, 其对零点的处理是在反相输入端上加入一个调整电压, 其大小恰好为输入 4mA 时在 RAO 上的压降。有了运算放大器,还使得 RAO 的取值可以 更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。这样,就可 以真正把 4~20mA 电流转换成为 0~5V 电压了。

使用运算放大器也会带来一些麻烦, 尤其在注重低成本的时候, 选择的运放往往是最最 廉价的,运放的失调与漂移,以及因为运放的供电与单片机电路供电的稳定性,电源电压是 否可以保证足够稳定, 运放的输入阻抗是否对信号有分流影响, 以及运放是否在整个信号范 围内放大特性平坦,如此等等,造成这种廉价电路的实际效果不如人意。 而最大的不如人意之处还是在零点抵消电路上, 随着信号电流的变化, 运放的反相端的 电压总是会与零点调整电压发生矛盾,就是这个零点电压也在随着运放输出的变化而变化, 只不过由于有了信号有用电压的存在, 而在结果中不容易区分而已。 这种现象最容易造成非 线性加大。虽然可以在单片机里采用软件校正来纠正,但是,就具体措施而言,这样做需要 增加编程人员不少的工作量,而且需要多点采集数据来应对。

百度答题,4-20mA 转 1-10V
问题连接地址: http://zhidao.baidu.com/question/155189877.html

无需计算公式免费赠送,如需推导公式“黄金”百两

悬赏 100 分

参考程序
#include "reg52.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int #define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();} uchar code smg_du[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code smg_we[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; uchar code smg_du1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x7f}; 小数点的段选

// 有

sbit SDA = P2^1; sbit SCL = P2^0; sbit s7=P3^0; sbit s6=P3^1; uchar tflag,dspflag,qian,bai,shi,ge,qian1,bai1,shi1,ge1,num,temp,bb; uint t,aa,date; void delayms(uint x) { uchar t; while(x--)for(t=0;t<120;t++); } void keyscan() { if(s7==0) { delayms(10); if(s7==0) { P0=0x10;P2=0xa0;P2=0; TR0=1;num=1;t=0; while(!s7); } } if(s6==0) { delayms(10); if(s6==0) { date=t/2;TR0=0; P0=0;P2=0xa0;P2=0; num=2; TR0=1; while(!s6); } } } void display(uchar we,uchar du) { P0 = 0xFF; //消影子 P2 |= 0xE0;

P2 &= 0x1F; P0 = smg_du[du]; P2 |= 0xE0; P2 &= 0x1F; P0 =smg_we[we]; P2 |= 0xC0; P2 &= 0x3F; } ///////////////////////////////////////////////////////////////// void iic_start(void) { SDA = 1; _nop_(); SCL = 1; somenop; SDA = 0; somenop; SCL = 0; } void iic_stop(void) { SDA = 0; _nop_(); SCL = 1; somenop; SDA = 1; } void ack() { unsigned char i; SCL=1;somenop;while((SDA==1)&&(i<200))i++;SCL=0; } void iic_sendbyte(unsigned char byt) { unsigned char i; for(i=0;i<8;i++) { if(byt&0x80) SDA = 1;

else SDA = 0; somenop; SCL = 1; byt <<= 1; somenop; SCL = 0; } ack(); } unsigned char iic_recbyte(void) { unsigned char da; unsigned char i; for(i=0;i<8;i++) { SCL = 1; somenop; da <<= 1; if(SDA) da |= 0x01; SCL = 0; somenop; } return da; } unsigned char adc_pcf8591(void) { unsigned char temp; iic_start(); iic_sendbyte(0x91); temp = iic_recbyte(); iic_stop(); return temp; } void init_pcf8591(void) { iic_start(); iic_sendbyte(0x90); iic_sendbyte(0x01);

iic_stop(); delayms(10); } //////////////////////////////////////////////////////////////// void main() { P0=0xff;P2=0x80;P2=0; P0=0;P2=0xa0;P2=0; TMOD = 0x22; TH0 = 0x06; TL0 = 0x06; TH1 = 0x06; TL1 = 0x06; ET0 = 1; EA = 1; ET1=1;TR1=1; init_pcf8591(); //关蜂鸣器

while(1) { keyscan(); if(t==10000) { TR0=0; P0=0;P2=0xa0;P2=0; num=3; TR0=1; } } } void isr_t0(void) interrupt 1 //数码管显示 { tflag++; aa++; if(aa==400) //10ms t++ { aa=0; t++; if(t==10000) { P0=0;P2=0xa0;P2=0; } qian=t/1000;bai=t%1000/100;shi=t%100/10;ge=t%10; //超出标志

} if(num==1) { //计时标志

if(tflag == 4) //1ms 动态显示 { tflag = 0; dspflag++; if(dspflag == 7) dspflag = 0; if(dspflag==0) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0=smg_du1[bai];P2 |= 0xE0;P2 &= 0x1F; P0 =smg_we[5];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==1) display(6,shi); if(dspflag==2) display(7,ge); if(dspflag==3) display(4,qian); if(dspflag==4) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0=smg_du1[0];P2 |= 0xE0;P2 &= 0x1F; P0 =smg_we[1];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==5) display(2,5); if(dspflag==6) display(3,0); } } if(num==2) //算费标志 { if(tflag == 4) //1ms { tflag = 0;dspflag++; if(dspflag == 7) { dspflag = 0; qian1=date/1000;bai1=date%1000/100;shi1=date%100/10;ge1=date%10; }

if(dspflag==0) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0 = smg_du1[bai1];P2 |= 0xE0;P2 &= 0x1F; P0 =smg_we[5];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==1) display(6,shi1); if(dspflag==2) display(7,ge1); if(dspflag==3) display(4,qian1); if(dspflag==4) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0=smg_du1[0];P2 |= 0xE0;P2 &= 0x1F; P0 =smg_we[1];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==5) display(2,5); if(dspflag==6) display(3,0); } } if(num==3) { if(tflag == 4) //100ms { tflag = 0;dspflag++; if(dspflag == 7) { dspflag = 0; } if(dspflag==0) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0 = smg_du1[9];P2 |= 0xE0; P2 &= 0x1F; P0 =smg_we[5];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==1) display(6,9); if(dspflag==2) display(7,9); if(dspflag==3)

display(4,4); if(dspflag==4) { P0 = 0xFF;P2 |= 0xE0;P2 &= 0x1F; P0=smg_du1[0];P2 |= 0xE0;P2 &= 0x1F; P0 =smg_we[1];P2 |= 0xC0;P2 &= 0x3F; } if(dspflag==5) display(2,5); if(dspflag==6) display(3,0); } } } void T1_timer() interrupt 3 //LED PCF8591 { bb++; if(bb==8) { bb=0; temp=adc_pcf8591(); if(temp<64) { P0=0xfe;P2=0x80;P2=0; } if(temp>64) { P0=0xff;P2=0x80;P2=0; } } }


2012年海南省中考数学试卷及答案

2012年海南省中考数学试卷及答案_中考_初中教育_教育专区。2012中考2012 年海南省中考数学试题 (考试时间 100 分钟,满分 110 分) 一、选择题(木答题满分 42 分...

重庆市2012年中考数学试卷(解析版)

对称图形,故本选项错误; B、是轴对称图形,故本选项正确; C、不是轴对称图形,故本选项错误; D、不是轴对称图形,故本选项错误. 故选 B. 3. (2012 重庆)...

2012年山东省临沂市中考数学试卷及答案(解析版)

2012 年临沂市初中学生学业考试试题 数 学 一、选择题(本大题共 14 小题,每小题 3 分,满分 42 分)在每小题所给的四个选项中, 只有一项是符合题目要求的...

2012年安徽中考数学试卷及答案

2012年安徽中考数学试卷及答案_中考_初中教育_教育专区。2012年安徽中考数学试卷试题以及参考答案2012 年安徽省初中毕业学业考试 数学本试卷共 8 大题,计 23 小题...

2012年一级建造师考试真题及答案《工程法规》(完整)

2012年一级建造师考试真题及答案《工程法规》(完整)_从业资格考试_资格考试/认证_教育专区。2012年一级建造师考试真题及答案《工程法规》(完整) ...

2012年成都中考数学试卷答案解析

2012年成都中考数学试卷答案解析_初一数学_数学_初中教育_教育专区。2012中考数学成都市二 0 一二年高中阶段教育学校统一招生考试试卷 (含成都市初三毕业会考) 数学...

2012年市政实务真题答案(完整版)

2012 年市政实务真题及答案(最新补充完整版) 一、单选题 1、仅依靠墙体自重抵挡土压力作用的挡土墙,属于( A、衡重式 A、透水性 A、先低后高 B、重力式 B...

2012年北京市中考数学试卷解析版

22. (2012?北京)操作与探究: (1)对数轴上的点 P 进行如下操作:先把点 P 表示的数乘以 ,再把所得数对应的点向右平移 1 个单位,得到点 P 的对应点 P...

云南省2012年中考数学试题及答案

云南省2012年中考数学试题及答案_中考_初中教育_教育专区。云南省 2012 年中考(初中学业水平考试)数学试题详细解析(全卷三个大题,共 23 小题,满分 100 分,考试...

2012年高考数学文科(湖南卷)解析

2012年高考数学文科(湖南卷)解析_高三数学_数学_高中教育_教育专区。2012年高考数学文科(湖南卷)解析2012 年普通高等学校招生全国统一考试(湖南卷解析)数学(文科) ...