第八章 波形发生器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章波形发生器
课程目标:了解D/A转换器的工作原理,掌握DAC0832转换器与89C2051单片机的接口电路,学会根据控制要求,选择D/A转换器,学会利用单片机、D/A转换器设计波形发生器。
课程重点与难点:D/A转换器与89C2051单片机的接口电路,波形发生器软件的设计。
教学学时:4学时。
8.1 波形发生器任务分析
1.波形发生器实物图
2.波形发生器硬件电路原理图
3.波形发生器的控制状态
状态1:控制系统通电或复位后,波形发生器不输出波形。LED显示输出频率为0赫兹。
状态2:利用2个开关选择输出波形的种类,波形发生器输出一定频率的波形。
4.波形发生器控制系统所涉及的知识点
(1)D/A转换器的概念、技术参数及选择。
(2)DAC0832转换器的功能、引脚及与单片机的接口电路。
(3)波形发生器的控制软件的设计。
8.2 D/A转换器及其接口电路
8.2.1 D/A转换器的选择要点
1.D/A转换器的主要特性
(1)输入数据位数
(2)接口电平
(3)输出电压范围DAC的输出有电流输出和电压输出之分,对于电流输出的DAC,则需外加电流–电压转换器电路(运算放大器),这时电压的输出范围不仅与DAC的VREF有关,也与电流–电压转换器有关。输出电压范围为0~5V、0~10V、±5V、±10V等。
(4)输出电压极性输出电压极性有单极性和双极性之分,如0~5V、0~10V为单极性输出,而±5V、±10V为双极性输出。
2.D/A转换器的主要性能指标
(1)分辨率它表征D/A转换器对微小输入量变化的敏感程度,通常用数字量的数位表示,如8位、
12位、16位等。分辨率为8位的D/A 转换器,表示它可以对满量程的1/28=1/256的增量作出反应。
(2)相对精度 在满刻度已校准的前提下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。通常用偏差几个LSB 来表示和该偏差相对满刻度的百分比表示。
(3)转换时间 数字变化量是满刻度时,达到终值+LSB/2时所需的时间,通常为几十纳秒至几微秒。
(4)线性误差 通常给出在一定温度下的最大非线性度,一般为0.01%~0.03%。
8.2.2 DAC 转换器及其接口
1.DAC0832 DAC0832是8位分辨率的D/A 芯片。
(1)DAC0832内部结构如图8.1所示。它主要由8位输入锁存器、8位DAC 寄存器、采用R -2R 电阻网络的8位D/A 转换器、相应的选通控制逻辑中部分组成。DAC0832的分辨率为8位,电流输出,采用20脚双立直插式封装。
(2)引脚名称与功能如下:
DI 7~DI 0:8位数字量输入线。
CS :片选信号,低电平有效。与ILE 配合,可对写信号1WR 是否有效起控制作用。 1WR :写信号1,低电平有效。当CS 、1WR 、ILE 都有效时,可将8位数字输入数据写入8位输入锁存器中。
ILE :允许输入锁存信号,高电平有效。输入锁存器的锁存信号1LE 由ILE 、CS 、1WR 的逻辑组合产生。当ILE 为高电平,CS 为低电平、1WR 输入负脉冲时,由1LE 上产生正脉冲。当1LE 为高电平时,输入锁存器的状态随数据输入线的状态变化,1LE 在负跳变将数据输入线上的信息锁存输入锁存器。 2WR :写信号2,低电平有效。当2WR 有效时,在XFER 传送控制信号作用下,可将锁存在输入锁存器的8公数据送到DAC 寄存器。
图8.1 DAC0832的内部结构
XFER :数据传送信号,低电平有效。当2WR 、XFER 均有效时,则在2LE 产生正脉冲;2LE 为高电平时,DAC 寄存器的输出和输入的状态一致,2LE 的负跳变使输入锁存器的内容锁存在DAC 寄存器。 V REF :基准电源输入端。它与DAC 内的权电阻解码网络相接,V REF 可在±10V 范围内调节;
R fb :反馈电阻输入端。反馈电阻在DAC0832芯片内部,可用作外部运放的分路反馈电阻。
I OUT1和I OUT2:模拟电流输出端,I OUT1+I OUT2=常数。
Vcc :电源输入端。
AGND :模拟信号地。DGND :数字信号地。
(3)DAC0832与单片机连接情况下有二种工作方式:单缓冲方式和双缓冲方式。
在单缓冲工作方式下,DAC0832的两个8位寄存器中仅有一个处于数据接收状态,另一个则受CPU 送来的控制信号控制,数据送来即可完成一次D/A 转换。其连接方式如图8.2所示。
图8.2 DAC0832与89C2051单缓冲方式连接图【例8-1】利用图8.2电路产生方波波形,试编写程序。
程序框图如图8.3所示
图8.3 例8.1例8.2程序款图流程图程序如下:
#include
#include
sbit p3_5=P3^5;
sbit p3_7=P3^7;
unsigned int i;
main( )
{
p3_5=0;
P1=0x00;
while(1)
{
p3_7=0; //启动转换。
_nop_;
_nop_;
p3_7=1;
for(i=0;i<100;i++); //调用延时子程序,调节方波周期
P1=!P1;
}
}
【例8-2】利用图8.2电路产生三角波形,试编写程序。
程序如下:
#include
#include
sbit p3_5=P3^5;
sbit p3_7=P3^7;
unsigned int i;
main( )
{
p3_5=0;
P1=0x00;
while(1)
{
while(P1!=0xff)
{
p3_7=0;
_nop_;
_nop_;
p3_7=1;
for(i=0;i<200;i++); //调用延时子程序,调节三角波斜率 P1= P1+1;
}
while(P1!=0x00)
{
p3_7=0;
_nop_;
_nop_;
p3_7=1;
for(i=0;i<200;i++); //调用延时子程序,调节三角波斜率
P1= P1-1;
}
}
}
DAC0832 也可以在双缓冲方式下工作。对于多路D/A转换接口,要求同步进行D/A转换输出时,必须采用多缓冲同步方式接法。具体如图8.4所示。
DAC0832在这种接法时,数字量的输入锁存和D/A转换输出是分两步完成的,即CPU首先通过数据总线分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中,然后CPU同时向所有的D/A 转换器发出控制信号,将锁存在输入锁存器上的数据输入到DAC寄存器上,实现同步转换输出。
【例8-3】利用图8.3电路,将两个数字量DATA1和DATA2同时转换成模拟量,试编制程序。
题意分析:在本例中,DAC0832(1)和DAC0832(2)的输入锁存器分别用P3..4和P3.5控制,而它们的DAC寄存器共同占用P3.7控制,具体程序如下:
#include
#include
sbit p3_4=P3^4;
sbit p3_5=P3^5;
sbit p3_7=P3^7;
unsigned int i;
main( )
{
P1=0x01; //送DATA1到DAC0832(1)中.
p3_4=0;
_nop_;
_nop_;
p3_4=1;