![](https://csdnimg.cn/release/download_crawler_static/85957810/bg3.jpg)
P2.5
P2.7
D7
D6
D5
D4
D3
D2
D1
D0
CS
 ̄
 ̄ ̄
XFER
WR
1
WR
2
ILE
R
FB
Iout1
Iout2
Vcc
GND
V
REF
DAC0832
8031
10K
5.1K
10K
10K
330
17
18
5k
_
+
+
_
GND
Vcc
Vcc
WR
EA
 ̄
 ̄
 ̄
 ̄
11
12
19
9
8
+220V
S1
S2
S3
S4
L1
L2
L3
L4
S5
L5
1K
R
P3.0
P3.1
P3.2
P3.3
P3.4
P1.0
P1.2
P1.1
P1.3
P1.4
Vcc
P0口
74L373
G
ALE
CS
GND
W2
Vref
XWR
1K
图 2 多功能信号发生器硬件接线电路图
硬件电路描述:
(1)P3 口的 P3.0—P3.4 分别与 S1—S5 五个开关相互连接;
(2)P1 口的 P1.0—P1.4 分别与 L1—L5 五个发光二极管相互连接;
(3)P0 口和地址锁存器 74LS373 相连,实现双向数据交换,并与 DAC0832 的
D0—D7 口相连,将数字信号送 DAC0832 进行数模转换;
(4)DAC0832 片选信号 CS 插孔与 8031 的 P2.5 口相连;
(5)DAC0832 的两路 WR 信号线与 8031 的 WR 相连接;
(6)DAC0832 的±12V 插孔分别与外置电源的±12V 连接;
(7)W2 区的 Vref 接 W2 区的 Vref,并调节使 Vref 为+5V。
4.软件设计
软件设计上,根据功能分了几个模块编程。模块主要有:主程序模块、锯齿
波模块、三角波模块、正弦波模块、方波模块、调频调幅模块及通过开关实现波
形切换模块。其各模块设计过程如下:
1)锯齿波的实现过程
锯齿波的实现是设置一个初值,然后进行加法操作,所加步数的大小根据要
求的频率来进行。当加到某个数之后,再重新设置初值,重复执行前面的操作,
如此循环下去。
程序流程图如图 3 所示。
2)三角波的实现过程
三角波的实现是设置一个初值,然后进行加数,当加到某个数之后,再进行
减数,减到初值之后,再重复前面的操作,这个操作和锯齿波的实现是相似的。