51单片机函数发生器

  啊,课程设计,选了个“简单”的题目——函数发生器,后来发现太多坑了。且慢慢道。

  这个题目在某度上有很多完成的项目且有经过Protues仿真。我图方便,就简单抄了里面DAC输出电路的原理图。反正有人验证过,应该可以用。打脸。

   由于学校条件设备原因,板子只能打单层的。将就着看吧。画的也一般。

51单片机函数发生器_第1张图片51单片机函数发生器_第2张图片

51单片机函数发生器_第3张图片51单片机函数发生器_第4张图片

51单片机函数发生器_第5张图片

  PCB是初版,实际电路我做了一些改动。额,刚开始调试很大原因是因为直插件的接口接触不良导致输出的波形不行(贴片大法好,可惜自己没存货),输出的电压也只有7-800mV。WTF,这么低吓得我重新去看了datasheet。

  本系统采用到的主要元器件为:STC89C52RC,LM358,DAC0832,EC11,LCD1602;

先上一波datasheet;

51单片机函数发生器_第6张图片

LM358,用到里面的一个运放。后来发现单电源(+5V)驱动,加上DAC0832的反馈Rbf后,经运放出来的实际电压只有1点多伏。下面是DS给出的计算公式,电流型的。

51单片机函数发生器_第7张图片

实际上,使用时应该接双电源,即正负电(+-5V).运放接+-5V电压,其输出端输出最高不超过3.7 3.8V。我接的是单电源的5V,输出1V多,勉强了。

后面查找资料:

51单片机函数发生器_第8张图片

运放不是轨至轨输出的,不能达到或者接近+-VCC。传统的模拟集成器件,如运放、A/D、D/A等,其模拟引脚的电压范围一般都达不到电源,以运放为例,电源为+/-15V的运放,为确保性能(首先是不损坏,其次是不反相,最后是足够的共模抑制比),输入范围一般不要超过+/-10V,常温下也不要超过+/-12V;输出范围,负载RL>10kohm时一般只有+/-11V,小负载电阻(600ohm)时只能保证+/-10V。这对器件的应用带来很多不便。  rail-to-rail的器件,一般都是低压器件(+/-5V 或 single +5V),输入输出电压都能达到电源(输入甚至可以超过)。其原理上的秘诀便在于电流模+NPN/PNP互补输入结构。

后面是正确的姿势:

51单片机函数发生器_第9张图片

双极性输出:

如果实际应用系统中要求输出模拟电压为双极性,则需要用转换电路实现。

如图双极性电压输出电路

其中 R2=R3=2R1

VOUT= 2×VREF×D/256 -VREF= (2D/256-1)VREF

比如:  

D = 0, VOUT= -VREF;

D = 128, VOUT= 0;

D = 255, VOUT= (2×255/256-1)×VREF= (254/255)VREF

即:输入数字为0~255时,输出电压在- VREF ~+ VREF之间变化。

51单片机函数发生器_第10张图片

单极性输出:

由运算放大器进行电流→电压转换,使用内部反馈电阻。输出电压值VOUT和输入数字量D的关系:

VOUT = - VREF ×D/256

D = 0~255, VOUT = 0 ~ - VREF ×255/256

比如: 

VREF = -5V, VOUT =0~5×(255/256)V

VREF = +5V, VOUT = 0 ~ -5×(255/256)V;

总结:在使用DAC0832时,如果想获得足够大的电压输出,使用双极性会是更好的选择,并且在运放和DAC电流输出引脚之间和反馈引脚最好不要接电阻,过大负载对电流型输出的影响大。

你可能感兴趣的:(51单片机函数发生器)