|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 WPma0 于 2020-1-21 15:38 编辑
4 _( r2 G: | `& S* Y; b3 T2 k2 Z9 [4 u) }3 M/ f( V7 ?, d
摘要:该波形发生器能产生正弦波、方波、三角波和锯齿波,波形为双极性,频率和幅值可由键盘设定,频率在
: j" S. J: q: t6 W6 K P" a& H) g; ^0~8kHz范围内可任意设定,并可按步进120us调整,辐值在一5~+5V范围内可任意设定,并可按步进0.4 V- ?, P8 ]3 Z* r; F4 E9 {: a) f4 E
04V调整。该波形发生器基于AT89S51单片机,由D/A波形发生模块、数码管显示模块、键盘输人模块.波
+ ~. n1 R. T0 j* J8 X! ?形数据存储模块组成。波形的类型、频率和幅值能够在七段LED数码管上实时显示。它还具有掉电保护功
% N. z' l6 x% _: x5 g能,可存储掉电前的波形和设置。
8 ^% }2 g3 u: B7 j* C) G. a) Q! p, z2 o
关键词:波形发生器;单片机;D/A转换;正弦波;双极性.: X+ E8 Y0 G; q5 u" r
& N" C5 f; }& r( Z/ v9 }
该设计通过软件和硬件结合,充分利用了软件的优点," W5 e* K+ O# t* m: i
发挥其优势,尽可能地减少了硬件开销。方便快捷地生成
: d( j0 _0 l1 ^7 X6 }, A7 U, u特定的频率,幅度的波形数据;在单片机控制下,利用电路.5 I3 Z7 x& a% g) Q/ w# R
产生地址.读出数据,送人D/A转换电路,得到所需的波形& }/ p' \, X1 j$ q0 _ N: G2 X
信号。在输出的同时将波形数据存储在数据存储器中,这.& N0 A# J; R# t, H& p
样可以保证掉电以后波形数据不丢失。. f b1 J. s# V
1整体设计0 j( D$ `8 M+ Q2 H4 _6 t/ q
由四大模块组成D/A波形发生模块、数码管显示模% F7 v5 B' a$ Z7 w: W" ~6 Q
块,键盘输人模块、波形数据存储模块。系统原理框图如.
, D0 X* J3 q# g3 C+ o图1所示:
" ?, B- r* v9 |波形的产生通过单片机内的程序实现,采用两片D/A .
' S5 ~$ I6 M4 w b) a8 u1 v0 ^" Y转换器来控制输出,第一片用于输出波形,第二片用于控制( M5 m- I4 ^7 d( f& E3 s
第一片的参考电压,将第二片的输出作为第一片的参考电; x6 r. a2 E( a! ~* P
压,以便由程序来控制输出波形的幅值变化,从而实现波形.& j. }0 _4 S. U5 d5 P" S
幅值改变。频率的产生由硬件实现,频率的变化由程序来5 B' h7 J1 Z" R' r; ]3 l; S
控制,通过改变定时器的初值来改变输出波形相邻两点的
- k7 H2 k- y8 x8 a3 u# f时间间隔,从而实现波形频率的改变。波形的合成也通过2 v; u; N. j6 F' c
程序实现,具有很高的精度和线性组合的灵活性。该设计
; N5 w* K& q" i& S' m- D5 ?& |电路简单,绝大部分功能由程序实现,减少了硬件开销.7 @9 ^+ e" X# Z k7 [1 j3 u1 `
2电路原理
% B& X7 ?4 h- W! e) X2.1波形的产 生及频率变化实现
, @3 X6 I7 X" W9 d在生产实践中使用的信号大多数是周期性变化的,我0 o6 u) K" E0 N% @2 G" E
们把各种各样的波形在一个周期中的变化情况离散化,再
* L* i$ @: m' @+ M8 r. t {4 z根据二进制的规律进行编码,得到每一种波形所对应的波( o, y. M1 G7 H I
代码。把这些波代码存储到存储器中,利用电路选择其中8 Z2 Q8 c/ ~/ w$ T2 c% \9 N7 e
的一组代码输出,经过数/模转换器和放大器,获得连续变
" ]' @7 `; i* c" g- l$ u& z% i. u化的波形以。对于正弦等信号不便通过直接计算得到其波$ V9 J4 e+ s" T: ^; ~! q1 c/ {
形数据,而其波形用较小数据量即可准确描述,可对其--周 w- P! x: \: Y
期信号抽取一定的数据,作为基本波形数据固化在单片机# _. h" h p8 j' o
的程序存储器中国。以产生正弦波为例,采用定点法,即先0 O4 H: l! A& p: n+ I- a
做一个正弦函数表存于单片机的程序存儲器内,通过定时
; ]3 p6 p V7 C/ v4 n器产生定时,每当定时时间到时,输出该波形在该点的正弦
7 \5 t) W: m9 R% G. P函数表值,周期性重复上述过程就可得到该被形输出。当
5 N! R* T9 K4 _5 }改变定时器的初值时,波形相邻两点时间间隔就改变,从而* x/ Y }) v' |6 U
波形的频率相应改变。
8 Q% n! H* q. q( U; g. [/ a2.2波形幅值变化 的实现
# [4 e2 X8 n) m' i- H波形产生是通过单片机执行某一个波形发生程序,向9 R$ W; R7 I/ n; j& A
D/A转换器的输人端按一定的规律发送数据,从而在D/A
3 Z/ P4 ?+ Z& ?转换电路的输出端得到相应的电压波形。D/A转换器输.0 r/ ? O- n$ Q( x: O7 a! ~
人数字量与输出电压的关系如表1所示。
3 K S5 }1 _$ {7 i2 h2 `3 Q7 c' A- u) q
附件下载:9 I7 Q1 [0 Y0 p. M# a$ r0 q6 M2 q9 C
: R; R( E! r I- t; ~8 M- ~- c
$ C* j( W% K) J) K1 n4 D1 E
5 @9 N" v. G/ D/ r |
|