❶ 一路4-20mA输入,一路4-20mA输出的单片机怎么做,求大神指教
需要用到:
具有DAC,CAP的单片机;
如果需要较高精度的电流输出,可以采用:V-I变换芯片,将DAC输出的电压转换成对应的电流;如果精度不太高,则可以采用运放搭建V-I转换。
也可以采用F-V变换电路,单片机改变F,由F-V变换电路后再接采用运放搭建V-I转换。
如果主体要求较高,则DAC最好大于12位,最好采用16位的DAC。
❷ 请大家帮忙:单片机采集外来输入的脉冲,经过处理输出4到20ma的电流。
用51单片机控制的话,我建议如下
1.T1、T0设置工作方式为TMOD=0x52;这意思是,T1工作在16位计数状态,T0工作在8位计时状态
2.T1引线(P3.5)就可以直接接脉冲信号
3.利用定时T0中断,执行中断斗笑读取T1计数的程序。这里要注意设置T0中断的时间,该时间为脉冲最大频率小于65355的时间最好,但你也可以多次采样,求平均值的方法来获得频率F,再把这F存到全局变量K中,就可以了,这里要注意,存的位置是全局变量!!
4.采样来的频率F经过转换如下公式羡销哪转化为数字量D,我举例采用的是8位的D/A,DAC0832是个输出电流型D/A,你也可以选用16位的,可分点就更多了,如果要很精确的话,记得兄码数据类型要用FLOAT来计算结果转为INT,最后赋给D
D=((F+最大频率/5)/最大频率)*256
这里说明下,你要输出的是4~20,F=0时,D要等于4mA
❸ 单片机如何输出4~20mA信号
原理上,单片机可以完成控制输出4~20mA信号。有两种方案:
1、运放+三极管构成可控恒流源,单片机用PWM波形经滤波后输出控制电压,该电压作为可控恒流源基准电压,达到控制输出4~20mA信号目的。优点是简便易行,缺点是恒流值随单片机电源电压变化且温度特性不好。
1、运放+三极管构成可控恒流源,单片机用专用DAC和基准电压源通过数模转换输出控制电压,该电压作为可控恒流源基准电压,达到控制输出4~20mA信号目的。优点是恒流源指标好,缺点是结构复杂且成本提高。
❹ 定义单片机引脚输出
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit input=P2^0;
sbit output=P2^1;
void delay(uint x)
{
uchar j;
while(x--)
{
for(j=0;j<125;j++)
{;}
}
}
void main(void)
{
input=1;
output=0;
while(1)
{
if(input==0)
{
delay(10);
if(input==0)
output=1;
else
output=0;
}
}
}
❺ 如何通过单片机输出标准的4到20mA的电流
4~20mA电流环的零电平信号采用4mA大小的电流表示,满量程采用20mA电流表示,因此得名“4mA-20mA电流环(current loop)”。4mA以下的电流输出用来进行故障诊断功能,20mA以上电流被认为是超量程输出。不同电流输出的具体含义如下表所示。
需要注意的是,虽然4~20mA电流环以其结构简单是、可靠性高的特点在各种不同场合得到广泛应用,但在需要高速通信的场合,一般认为4~20mA不适合。电流源的高阻特性、
传输电缆的寄生参数等因素限制了整个环路的频率响应。
❻ stc单片机PCA高速输出脉冲程序
这个要看分别率的吧,你如果分别率是256*100khz那晶振至少都要25.6mhz
❼ 敬爱的合泰单片机高手!!!!!!!
1.怎样用软件设置:CMOSE输出,带或不带上拉电阻的斯密特触发输入,A/D输入????
输出就是输出,什么"CMOS输出"是Holtek官方术语,"斯密特触发输入"也是官方术语,带不带上拉电阻是在IDE掩膜选项中设置的
引脚是AD输入还是数字IO靠ADCR中的控制位来定义
2.怎样理解ADCR中的前六位设置???当设置好模义输入通道,为什么还要定义PB呢????
这是HT46R52的ADCR 参考(估计HT46R22是一样的):
0 ACS0 选择模拟输入通道
1 ACS1 选择模拟输入通道
2 ACS2 选择模拟输入通道
3 PCR0 为0 则关闭,减小功耗
4 PCR1 为0 则关闭,减小功耗
5 PCR2 为0 则关闭,减小功耗
6 EOC A/D 转换结束标志(0:A/D 转换结束)
每次bit3-5 状态的改变后都必须通过START 信号来初始化A/D 转换器,
否则EOC可能会处于不确定状态
7 START 0→1→0:开始; 0→1:A/D 转换复位并且置EOC为“1”
“当设置好模义输入通道,为什么还要定义PB呢????”
前面0-2只是个通道选择(多选1模拟开关),并不能决定PB口是模拟口还是数字IO
就像有一块内存空间,你选中了一个字节来用,但里面的内容到底什么不知道,设置一下就知道了。
3.端口问题:
1.控制寄存器:设定IO口是输入还是输出,数据寄存器(端口寄存器)读取/设置端口电平
2.设_pac=0b00000000;意思是pa口全部输出;设_pa= 0b00000000;则pa全部输出0
3.初始化端口的步骤示例:_pac=0x00; _pa=0x00;
4.其他问题:
#pragma vector isr_time @ 0x08 //中断服务程序定义
#pragma vector isr_ad @ 0x0c //中断服务程序定义
uchar sign0 @ 0x40; //在绝对地址定义变量
uchar sign1 @ 0x41; //在绝对地址定义变量
❽ 在89c51单片机中能不能设置多种对外输出频率模式怎么设置
可以利用89C51的两个定时器产生不同频率的中断周期,在中断程序中控制IO口的输出变化,实现两个不同的频率输出,也可以以定时的中断产生一个时基信号,用软件计数时基数控制IO口输出,这样可以实现多个输出频率。