第1个回答 2010-08-27
硬件部分别人已经说的很清楚了,我就重点说明下软件部分吧。
由于输入的电压范围与输出的电压范围不一样,所以要用到量程转换。
即让1V输入对应的输出为0v,当输入为1.7v的时候对应的输出为0.35v
设输入电压为x,则对应的输出电压 y=(x - 1)*0.35/(1.7-1)
最简单的硬件电路莫过于用一个内部带AD和DA的单片机了,AD输入引脚接信号输入端,DA端口输出的信号用示波器即可以观察到。
程序流程为:初始化AD和DA,进入主循环后,先启动AD采样,并等待AD采样完成标志置位,然后立即将采样结果送入DA寄存器。
第2个回答 2010-08-27
用51实现是可以实现,不过麻烦一点,这个过程设计到AD/DA转化,整个过程分2步。
第一步AD转换,选择带AD转换的单片机,比如STC12C5201AD等或者使用普通单片机加ADC0804。此时可以把外部输入的
电压转化为数字信号。
第二步DA转换,使用单片机加DAC0832可以把数字信号转换为电流,在再外面路加一个运放,就可以把电流转换为电
压。
给你一段自己改写的STC12C5201AD转换的一部分子程序,其他程序可以参考51单片机C语言教程,上面介绍的很详细。
希望对你有帮助。
程序:
uint get_AD_result()
{
uchar AD_FLAG=0;
P1ASF=0x80;
ADC_CONTR=0xE7;
delay(1);
ADC_CONTR|=0x08;
AD_FLAG=0;
while(AD_FLAG==0)
{
AD_FLAG=(ADC_CONTR&0x10);
}
ADC_CONTR&=0xF7;
return(ADC_RES);
}
原理很明确,过程很复杂;只要坚持住,一定会成功!
第3个回答 2010-08-25
有现成的AD/DA接口呀
第4个回答 2010-08-25
用ADC8032+51单片机+外围电路就可以实现了,可以来找找我帮忙!