|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 WPma0 于 2020-1-21 15:38 编辑 & [3 i# M$ z5 n
0 \: y, \5 j: s4 T* ]/ r" M# F
摘要:该波形发生器能产生正弦波、方波、三角波和锯齿波,波形为双极性,频率和幅值可由键盘设定,频率在
- X h6 S* I, }8 r2 x$ L0~8kHz范围内可任意设定,并可按步进120us调整,辐值在一5~+5V范围内可任意设定,并可按步进0.+ j4 {) R& X& P' c# @
04V调整。该波形发生器基于AT89S51单片机,由D/A波形发生模块、数码管显示模块、键盘输人模块.波9 r; V3 y' q+ M/ C
形数据存储模块组成。波形的类型、频率和幅值能够在七段LED数码管上实时显示。它还具有掉电保护功
0 }+ N: z/ h. f9 F2 i3 q3 i: r能,可存储掉电前的波形和设置。
% Z+ d& b! `, w \: R, B' z0 T! f% Q/ X/ e: K/ N- I" p
关键词:波形发生器;单片机;D/A转换;正弦波;双极性.; ]. D9 W! I6 S& ~
, @9 p0 W$ q7 V该设计通过软件和硬件结合,充分利用了软件的优点,
' v. W* X0 R; ~0 h1 x: J) x2 t发挥其优势,尽可能地减少了硬件开销。方便快捷地生成
" Q$ u. a# F( v4 p. A特定的频率,幅度的波形数据;在单片机控制下,利用电路.
& B. o$ R" U* B" q( w/ l% T5 ~产生地址.读出数据,送人D/A转换电路,得到所需的波形* A# u' z+ n1 u! M0 ]
信号。在输出的同时将波形数据存储在数据存储器中,这.* A" H) @# ?' M. D2 U6 q8 B9 H
样可以保证掉电以后波形数据不丢失。
2 X% s7 e ]. z9 R) I: c1整体设计9 e+ C5 q! C3 f4 u7 |2 z. y
由四大模块组成D/A波形发生模块、数码管显示模
& V) K5 F2 E/ x% J* U. y8 ?块,键盘输人模块、波形数据存储模块。系统原理框图如.
2 d1 x( U! r2 |8 u3 z, ^ I7 n图1所示:
) t, R3 k" D7 R8 W* Z+ ?波形的产生通过单片机内的程序实现,采用两片D/A .
) T3 l s6 c. [转换器来控制输出,第一片用于输出波形,第二片用于控制
- c9 h* q2 _' g$ d' | B第一片的参考电压,将第二片的输出作为第一片的参考电1 ^( O+ C6 f' @7 y! D& c
压,以便由程序来控制输出波形的幅值变化,从而实现波形.2 d2 N1 S; s8 L6 o% H6 P
幅值改变。频率的产生由硬件实现,频率的变化由程序来7 h; T& m; I& d; [* T
控制,通过改变定时器的初值来改变输出波形相邻两点的! @0 k+ R7 u5 b) G
时间间隔,从而实现波形频率的改变。波形的合成也通过
: f4 \& C/ z0 Q0 d+ f程序实现,具有很高的精度和线性组合的灵活性。该设计1 r# ?0 t2 N' i; d& l; a
电路简单,绝大部分功能由程序实现,减少了硬件开销.! p# J( B: P4 d9 C6 t$ r- A
2电路原理
* D* P# z7 \! @) A- D2.1波形的产 生及频率变化实现
2 w2 {0 I' ]" `4 o9 c在生产实践中使用的信号大多数是周期性变化的,我$ H9 o, p7 E* R* {2 a9 [ [
们把各种各样的波形在一个周期中的变化情况离散化,再
- n8 R& Z9 ]2 N' G# g) W; ]+ Q' c根据二进制的规律进行编码,得到每一种波形所对应的波
2 X: l" J. }. Z% ^( G- c代码。把这些波代码存储到存储器中,利用电路选择其中* ?- _5 t" }+ |! V- |" V
的一组代码输出,经过数/模转换器和放大器,获得连续变9 Q0 R- x# ]" I' R
化的波形以。对于正弦等信号不便通过直接计算得到其波" `' h* B5 j2 d' Q3 P- M$ n
形数据,而其波形用较小数据量即可准确描述,可对其--周5 a/ o- ~0 [" M, x, [
期信号抽取一定的数据,作为基本波形数据固化在单片机. X9 L. h* g k4 t) o: P2 H
的程序存储器中国。以产生正弦波为例,采用定点法,即先
8 j r6 F# a" g做一个正弦函数表存于单片机的程序存儲器内,通过定时( G) n5 H" ` [) w8 u) B' m
器产生定时,每当定时时间到时,输出该波形在该点的正弦
0 a" f" E& v4 p8 F函数表值,周期性重复上述过程就可得到该被形输出。当
4 m* C6 P! k# \' R" K6 A改变定时器的初值时,波形相邻两点时间间隔就改变,从而- k* T, P: G! y5 o' {& {
波形的频率相应改变。
+ a2 f9 A v# L, |9 g3 |2.2波形幅值变化 的实现
9 e, _7 [5 v( @波形产生是通过单片机执行某一个波形发生程序,向
9 D9 b" e$ V; [5 F- cD/A转换器的输人端按一定的规律发送数据,从而在D/A0 f: k1 W% {4 m, h
转换电路的输出端得到相应的电压波形。D/A转换器输.
3 `" n0 h/ r1 Z9 @( Z+ C* K n人数字量与输出电压的关系如表1所示。: A, S& l" G8 `1 o# F" M0 H
0 H/ F8 E% @- V' e; I
附件下载:# z. J6 N( |5 s4 Y0 _( B( U
8 h, F9 ]5 Y: N' T7 r9 ~) r [4 ^
( C% { h# A! x" Q
' V7 j& f6 @& j& g) T! ` |
|