信号发生器的设计.ppt

上传人:牧羊曲112 文档编号:4939497 上传时间:2023-05-24 格式:PPT 页数:77 大小:1.65MB
返回 下载 相关 举报
信号发生器的设计.ppt_第1页
第1页 / 共77页
信号发生器的设计.ppt_第2页
第2页 / 共77页
信号发生器的设计.ppt_第3页
第3页 / 共77页
信号发生器的设计.ppt_第4页
第4页 / 共77页
信号发生器的设计.ppt_第5页
第5页 / 共77页
点击查看更多>>
资源描述

《信号发生器的设计.ppt》由会员分享,可在线阅读,更多相关《信号发生器的设计.ppt(77页珍藏版)》请在三一办公上搜索。

1、电子工业出版社,单片机控制技术 项目式教程(C语言版),电子工业出版社,项目9 信号发生 器的设计,能了解D/A转换器的相关技术指标;能理解DAC0832的工作原理与应用方法;能掌握DAC0832与51单片机的接口方法;能掌握信号发生器的硬件电路的分析与设计方法;能熟练编写信号发生器产生各种波形信号的单片机控制程序。,学习目标,叙述D/A转换器的技术指标要求;叙述DAC0832的工作原理;设计单片机控制的信号发生器的工作电路;编写信号发生器产生各种波形信号的单片机控制程序。,工作任务,任务9.1 灯光亮度调节器的设计任务9.2 信号发生器的设计项目拓展 串行D/A转换芯片PCF8591在实验板

2、 上的应用项目小结思考与训练,项目9 信号发生器的设计,任务9.1 灯光亮度调节器的设计,D/A转换的功能就是将数字量转换成模拟量。基本的D/A转换器由电压基准或电流基准、精密电阻网络、电子开关及全电流求和电路构成。,9.1.1 D/A转换器的基本原理,1D/A 转换器的分类按工作方式分:并行D/A转换器(权电阻D/A转换器、R-2R T型D/A转换器)串行D/A转换器 间接D/A转换器,按D/A转换的分辨率分:低分辨率D/A转换器 中分辨率D/A转换器 高分辨率D/A转换器,按模拟量输出方式分:电流输出D/A转换器 电压输出D/A转换器,按模拟电子开关电路的不同分:CMOS开关型D/A转换器

3、(速度要求不高)双极型开关D/A转换器 电流开关型(速度要求较高)ECL电流开关型(转换速度更高),2D/A 转换器的组成,D/A转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压等几部分组成。以R-2R T型D/A转换器为例,其由基准电压Vref、T型(R-2R)电阻网络、位切换开关和运算放大器组成。,3D/A 转换器的工作原理,数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的位权。为了将数字量转换成模拟量,必须将每1位的代码按其位权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,实现数字模拟转换。,R-2R T型D/A转换

4、器工作原理:,图9.1 R-2R T型D/A转换器原理电路,图示的电路是一个3位二进制数的D/A转换电路,每位二进制数控制一个开关S。当第i位的数码为“0”时,开关Si打在左边;当第i位的数码为“1”时,开关Si打在右边。当S0接通时,I0 I0 I0,I1 I0+I0 2I0同理 I1 I1 I1,I2 2I1 I2 I2 I2,I 2I2推出 I0 I/8,I1 I/4,I2 I/2 I I0+I1+I2(1/8+1/4+1/2)I-Uref(1/8+1/4+1/2)/R,将上式推广到n位二进制数的转换,可得一般表达式 I-Uref(a0/2n+a1/2n-1+an-1/21+an/20)

5、/R则输出电压为 Uo(I)Rf-Uref(a0/2n+a1/2n-1+an-1/21+an/20)Rf/R,输出电压会因器件误差、集成运放的非理想特性而产生一定的转换误差。,一般D/A转换器:,OUT BUr其中:Ur为常量,由参考Uref决定。B为输入数字量,为二进制数。B可为8位、12位、16 位等,由DAC芯片型号决定。当B为n位时:Bbn-1bn-2b1b0bn-12n-1+bn-22n-2+b121+b020 式中,bn-1为最高位;b0为最低位。,1分辨率 分辨率是D/A转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为n,则D/A转换器的分辨率为1/2

6、n。即数/模转换器能对满刻度的1/2n输入量作出反应。,9.1.2 D/A转换器的技术性能指标,分辨率输出模拟量的满量程值2n,如:8位数的分辨率为1/256,10位数分辨率为1/1024,通常用D/A转换器输入数字量的位数来表示分辨率。,D/A转换器常可分为8位、10位、12位三种。,2精度,如果不考虑D/A的转换误差,D/A转换的精度为其分辨率的大小。因此,要获得一定精度的D/A转换结果,首要条件是选择有足够分辨率的D/A转换器。,转换速度是DAC每秒可以转换的次数,其倒数为转换时间。转换时间是指从输入数字量到转换为模拟量输出所需的时间。当D/A转换器的输出形式为电流时,转换时间较短;当D

7、/A转换器的输出形式为电压时,转换时间要加上运算放大器的延迟时间而长一点,一般在几十微秒内。,3转换速度,4建立时间,建立时间是指从输入数字量变化到输出达到终值误差(1/2)LSB(最低有效位)时所需的时间,即输入的数字量变化后,输出模拟量稳定到相应的数字范围内所需的时间。通常以建立时间来表示转换速度。,输入编码形式是指D/A转换电路输入的数字量的形式。如二进制码、BCD码等。,5输入编码形式,6线性度,线性度是指D/A转换器的实际转移特性与理想直线之间的最大误差,或最大偏移。通常给出在一定温度下的最大非线性度,一般为0.01%0.03。,大部分D/A转换芯片是电压型输出,一般为510V;也有

8、高压输出型的,为2430V。有一些是电流型的输出,低者为20mA左右,高者可达3A。,7输出电平,8尖峰,尖峰是输入的数字量发生变化时产生的瞬时误差。通常尖峰的转换时间很短,但幅度很大。在许多场合是不允许有尖峰存在的,应采取措施予以消除。,正确了解D/A转换器件的技术性能参数,对于合理选用转换芯片、正确设计接口电路十分重要。,D/A转换器的性能指标很多,但在选用合适的芯片型号时主要考虑的是它的分辨率、精度和转换速度。,目前单片机系统常用的D/A转换器的转换精度有8位、10位、12位等,与单片机的接口方式有并行接口、串行接口。,9.1.3 DAC0832芯片及其与单片机接口电路,1DAC0832

9、芯片介绍,(1)DAC0832的性能 8位D/A转换器,单电源供电,在+5+15 V范围均可正常工作。基准电压的范围为10V;电流建立时间为1s;CMOS工艺,低功耗(仅为20 mW)。,DAC0832主要特性:输出电流线性度可在满量程下调节;转换时间(电流建立时间)为;数据输入可采用双缓冲、单缓冲或直通方式;增益温度补偿为0.02%FS/;每次输入数字为8位二进制数;低功耗,20mW;逻辑电平输入与TTL兼容;基准电压的范围为10V;单电源供电,可在515V 内正常工作。,(2)DAC0832的内部结构,该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。使用时数据输入可以采用两级锁存(

10、双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。此外,由3个与门电路可组成寄存器输出控制逻辑电路,该逻辑电路的功能是进行数据锁存控制。当=0时,输入数据被锁存;当=1时,锁存器的输出跟随输入的数据。D/A转换电路是一个R-2R T型电阻网络,可实现8位数据的转换。,(3)DAC0832的引脚 DAC0832为20引脚、双列直插式封装。,Vcc:电源线。DAC0832的电源可以在515V内变化。典型使用时用+15V电源。AGND和DGND:AGND为模拟量地线,DGND为数字量地线。使用时,这两个接地端应始终连在一起。,CS:片选输入信号,低电平有效。只有当CS=

11、0时,这片DAC0832才被选中。DI0DI7:8位数字量输入端。应用时,如果数据不足8位,则不用的位一般接地。,ILE:输入锁存允许信号,高电平有效。只有当ILE=1时,输入数字量才可能进入8位输入寄存器。WR1:写信号1,低电平有效,控制输入寄存器的写入。ILE和WR1信号控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1且WR1=0时,为输入寄存器直通方式;当ILE=1且WR1=1时,为输入寄存器锁存方式。WR2:写信号2,低电平有效,控制DAC寄存器的写入。XFER:数据传送控制输入信号,低电平有效,控制数据从输入寄存器到DAC寄存器的传送。WR2和XFER信号控制DAC寄存器

12、是数据直通方式还是数据锁存方式:当WR2=0且XFER=0时,为DAC寄存器直通方式;当WR2=1或XFER=1时,为DAC寄存器锁存方式。,Vref:参考电压线。Vref接外部的标准电源,与芯片内的电阻网络相连接,该电压可正可负,范围为1010V。Iout1和Iout2:电流输出端。Iout1为DAC电流输出1,当DAC寄存器中的数据为0 xFF时,输出电流最大,当DAC寄存器中的数据为0 x00时,输出电流为。Iout2为DAC电流输出2。DAC转换器的特性之一是Iout1Iout2=常数。在实际使用时,总是将电流转为电压来使用,即将Iout1和Iout2加到一个运算放大器的输入端。,Rf

13、b:运算放大器的反馈电阻端,电阻(15k)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb即为运算放大器的反馈电阻。,图9.5 运算放大器的接法,(4)DAC0832的工作原理,将数字量的每一位按权值分别转换成模拟量,再通过运算放大器求和相加,D/A转换器内部有一个解码网络,以实现按权值分别进行D/A转换。,(5)DAC0832的输出,DAC0832是电流输出型D/A转换器。,图9.6 DAC0832单极性电压输出电路,单极性输出运放:VoutIout1Rfb BVref/256,双极性输出运放:Vout(Vout1

14、/R Vref/2R)2R 2Vout1Vref 2BVref/256Vref BVref/128Vref Vref(B128)/128,图9.7 DAC0832双极性电压输出电路,当Vref为正,数字量在0 x010 x7F之间变化时,Vout为负值;当数字量在0 x800 xFF之间变化时,Vout为正值。,(1)直通方式下的接口电路 直通方式是数据直接输入(两级直通)的形式。两个8位数据寄存器都处于数据接收状态,LE1=1,LE2=1,ILE=1,而WR1、WR2、CS和XFER均为0。输入数据直接送到内部D/A转换器去转换。,2DAC0832与51单片机的接口电路,DAC0832的工作

15、方式:直通方式、单缓冲方式和双缓冲方式,图9.8 直通方式下89C51与DAC0832的连接图,(2)单缓冲方式下的接口电路 单缓冲方式是单级锁存(一级锁存,一级直通)形式,就是使DAC0832的两个8位数据寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者两个8位数据寄存器处于同时受控的方式,即同时送数,同时锁存。,在单缓冲工作方式下,可以将8位DAC寄存器置于直通方式。为此,应将WR2和XFER接地,而输入寄存器的工作状态受单片机的控制。,WR=0,P2.7=0,DAC0832的地址为 0 x7FFF,将数字量0 x08转换为模拟量的程序:#define DAC0832 XBYT

16、E0 x7FFFDAC0832=0 x08;或 output(0 x7FFF,0 x08);,两个输入寄存器同时受控的连接方法,WR1和WR2一起接89C51的WR,CS和XFER共同接89C51的P2.7,因此两个寄存器的地址相同。,(3)双缓冲方式下的接口电路 双缓冲方式的数据输入可以采用两级锁存(双锁存)的形式,就是把DAC0832的两个锁存器都接成受控锁存方式。DAC0832的WR1、WR2、CS和XFER都受单片机送来的信号的控制。,当 WR=0,P2.7=0,P2.6=1,8位输入寄存器处于送数状态,8位DAC寄存器处于锁存状态,不能进行D/A转换。,双缓冲方式下89C51与两片D

17、AC0832的连接图,如DAC0832的8位输入寄存器地址为0 x7FFF,WR=0,P2.7=1,P2.6=0,8位DAC寄存器处于送数据状态,开始进行D/A转换。DAC0832的8位DAC寄存器的地址为0 xBFFF,将一个数字量转换为模拟量的程序:,#define DAC0832_1 XBYTE0 xBFFF#define DAC0832_2 XBYTE0 x7FFFDAC0832_1=0 x08;DAC0832_2=0 x08;或 output(0 xBFFF,0 x08);output(0 x7FFF,0 x08);,1任务要求,9.1.4 灯光亮度调节器的设计,用AT89C51单片

18、机和DAC0832控制一个发光二极管,使发光二极管的亮度逐渐变暗,再逐渐变亮,不断循环。,2任务分析,改变发光二极管的亮度,就要改变通过发光二极管的电流。方法很多,利用AT89C51控制DAC0832数模转换芯片,DAC0832的输出转换成电压去驱动发光二极管。当DAC0832的输入数字量变化时,输出电压改变,通过发光二极管的电流变化,发光二极管的亮度就改变。,3任务设计,(1)器件选择,(2)硬件原理图设计 DAC0832单缓冲方式,P2和P0决定地址,片选信号CS低电平有效,P2.7为0,DAC0832的地址为0 x7FFF。,(3)软件程序设计:#include#include#defi

19、ne uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延时子程序void DelayMS(uint x)uchar t;while(x-)for(t=0;t120;t+);,/主程序控制灯光亮度变化void main()uchar i;while(1)for(i=256;i0;i-)AC0832=i;DelayMS(1);for(i=0;i256;i+)AC0832=i;DelayMS(1);,(4)软硬件联合调试 在Protus环境下,将编译好的软件下载到AT89C51中运行,可以看到LED灯如

20、任务要求的一样先由亮逐渐变暗,再由暗逐渐变亮。,1任务要求,任务9.2 信号发生器的设计,用单片机AT89C51和D/A转换芯片DAC0832组成的信号发生器生成要求周期和幅度(0V+5V)的锯齿波、三角波、方波或正弦波。,2任务分析,锯齿波:向DAC0832反复送入0 x000 xFF数据,就会生成 幅度为0V+5V的锯齿波三角波:向DAC0832反复送入0 x000 xFF和0 xFF 0 x00数 据,就会生成幅度为0V+5V的三角波,方波:向DAC0832送入一定时长的0 x00和一定时长的0 xFF,就会生成幅度为0V+5V的方波,波形的周期与单片机的机器周期和程序中的延时长短相关。

21、,正弦波:等时间间隔分割正弦信号,计算出分割时刻的信 号幅值,将幅值对应的数字量存储到ROM中,然后 用查表的方法取出这些取样值,送到DAC0832转换 后输出,那么输出信号就是正弦波形。,如:波形频率为50Hz的正弦波信号,正弦波信号以5作为1个阶梯,则分成 360572份,时间间隔为 20720.278ms。当参考电压为5V时,72个采样值、输 出电压值、正弦值、角度如表9.2所示。,表9.2 正弦波数据表,3任务设计,(1)器件选择,(2)硬件原理图设计 DAC0832工作于单缓冲方式,地址为0 x7FFF。Vref接5V电压,输出的单极性电压在05V之间变化。,(3)软件程序设计:产生

22、锯齿波的源程序如下:#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延时子程序void DelayMS(uint x)uchar t;while(x-)for(t=0;t120;t+);,/主程序生成锯齿波void main()uchar i;while(1)for(i=0;i256;i+)DAC0832=i;DelayMS(1);,产生三角波的源程序如下:#include#include#define uint unsigned int#defin

23、e uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延时子程序void DelayMS(uint x)uchar t;while(x-)for(t=0;t120;t+);,/主程序生成三角波void main()uchar i;while(1)for(i=0;i0;i-)DAC0832=i;DelayMS(1);,产生正弦波的源程序如下:#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF,/初始化正弦波波形

24、数据数组uchar code data=0 x7F,0 x8A,0 x95,0 xA0,0 xAB,0XB5,0 xBF,0 xC8,0 xD1,0 xD9,0 xE1,0 xE7,0 xED,0 xF3,0 xF7,0 xFA,0 xFD,0 xFE,0 xFF,0 xFE,0 xFD,0 xFA,0 xBF,0 xF3,0 xED,0 xE7,0 xE1,0 xD9,0 xD1,0 xC8,0 xBF,0 xB5,0 xAB,0 xA0,0 x95,0 x8A,0 x7F,0 x75,0 x6A,0 x5F,0 x54,0 x4A,0 x40,0 x36,0 x2D,0 x25,0 x1E

25、,0 x17,0 x11,0 x0C,0 x07,0 x04,0 x02,0 x01,0 x00,0 x01,0 x02,0 x04,0 x07,0 x0C,0 x11,0 x17,0 x1E,0 x25,0 x2D,0 x36,0 x40,0 x4A,0 x54,0 x5F,0 x6A,0 x75;,/延时子程序void DelayMS(uint x)uchar t;while(x-)for(t=0;t120;t+);/主程序生成正弦波void main()uchar i;while(1)for(i=0;i72;i+)DAC0832=datai;DelayMS(1);,(4)软硬件联合调试

26、将上面相应波形的程序编译为*.hex文件后,在Proteus绘制的原理图中,将*.hex文件加载到单片机AT89C51中运行,在虚拟示波器上可以看到对应的波形图。在Proteus仿真运行过程中可能会提示CPU过载,这时虚拟示波器可能会无法实时显示波形,可将虚拟示波器通道A中指向1的黄色旋钮从1开始先正向旋转一圈,再反向旋转一圈,这样会使虚拟示波器尽快刷新显示波形。,1PCF8591简介,项目拓展 串行D/A转换芯片PCF8591在实验板上的应用,PCF8591是一个单片集成的具有I2C总线接口的8位A/D及D/A转换器,有4路A/D输入,1路D/A输出。PCF8591的输入输出地址、控制和数据

27、信号都是通过I2C总线以串行的方式进行传输。,PCF8591的主要特性:单独供电 PCF8591的操作电压范围+2.5V+6V 低待机电流 通过IC总线串行输入/输出 PCF8591通过3个硬件地址引脚寻址 PCF8591的采样率由IC总线速率决定 4个模拟输入可编程为单端型或差分输入 自动增量频道选择 PCF8591的模拟电压范围从VSS到VDD PCF8591内置跟踪保持电路 8-bit逐次逼近A/D转换器 通过1路模拟输出实现DAC增益,2PCF8591内部结构框图,3PCF8591引脚功能,4PCF8591工作原理,PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地

28、址(1001)、引脚地址(由A0A2接地或+5V来确定,接地代表0,接+5V代表1)、方向位(即R/W)组成。在I2C总线系统中最多可接8个这样的器件。,表9.5 PCF8591总线地址,R/W=1表示读操作,R/W=0表示写操作。如果将A0A2接地,则读地址为91H;写地址为90H。地址字节:由器件地址、引脚地址、方向位组成,它是通信时主机发送的第一字节数据。控制字节:用于控制PCF8951的输入方式、输入通道、D/A转换等,是通信时主机发送的第二字节数据,其格式如下表。,D/A转换的数据输入和A/D转换的数据输出都是通过I2C总线串行输入和输出的。因此PCF8951中I2C总线的通信格式包

29、括写数据格式和读数据格式。,PCF8591的I2C总线写数据格式:,PCF8591的I2C总线读数据格式:,5I2C总线,(1)I2C总线数据位的传输,I2C总线上每传输一个数据位必须产生一个时钟脉冲,I2C总线上数据传输的有效性要求SDA线上的数据必须在时钟线SCL的高电平期间保存稳定,数据线的改变只能在时钟线为低电平期间。,I2C总线由2根线:串行数据线(SDA)和串行时钟线(SCL)。,总线上的每一个器件都有一个唯一的地址。,(2)I2C总线数据的传输,数据传输中的应答:相应的应答位由接收方(从机)产生,在应答的时钟脉冲期间,发送方(主机)应释放SDA线(使其为高电平)。在应答过程中,接

30、收方(从机)必须将数据线SDA拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。,数据传输的字节格式:发送到SDA线上的每一个字节必须为8位,每次发送的字节数量不受限制,从机在接收完一个字节后向主机发送一个应答位,主机在收到从机应答后才会发送第二字节数据,发送数据时先发数据的最高位。,(3)I2C总线的传输协议,主机写数据到从机的通信格式:,主机从从机中读数据的通信格式:,6.实验板上锯齿波信号的输出,(1)STC89C52控制PCF8591生成锯齿波信号的电路设计,将U15的J23的19和20脚用杜邦线与J8的SDA和SCL脚连接。,(2)生成锯齿波的软件设计,主程序main.c:/PC

31、F8591 的DA转换程序#include#include i2c.h#define AddWr 0 x90/写数据地址#define AddRd 0 x91/读数据地址/锯齿波数据表,表格数值越多,波形越平滑unsigned char code tab=0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250;/定义全局变量extern bit ack;,/写入DA转换数值,dat表示需要输入转换的DA数值,从0-255bit WriteDAC(unsigned c

32、har dat,unsigned char num)unsigned char i;Start_I2c();/启动总线 SendByte(AddWr);/发送器件地址 if(ack=0)return(0);SendByte(0 x40);/发送器件子地址 if(ack=0)return(0);for(i=0;inum;i+)SendByte(dat);/发送数据 if(ack=0)return(0);Stop_I2c();,/主程序main()unsigned char i;while(1)for(i=0;i26;i+)WriteDAC(tab1i,1);,I2C头文件i2c.h:#ifnde

33、f _I2C_H_#define _I2C_H_#include/头文件的包含#include#define _Nop()_nop_()/定义空指令/启动总线void Start_I2c();/结束总线void Stop_I2c();/字节数据传送函数 void SendByte(unsigned char c);#endif,I2C程序i2c.c:/函数是采用软件延时的方法产生SCL脉冲,晶振频率是12MHz,即机器周期为1us#include i2c.h#define _Nop()_nop_()/定义空指令bit ack;/应答标志位sbit SDA=P21;sbit SCL=P20;、/

34、启动总线void Start_I2c()SDA=1;/发送起始条件的数据信号 _Nop();SCL=1;_Nop();/起始条件建立时间大于4.7us,延时 _Nop();_Nop();_Nop();_Nop();,SDA=0;/发送起始信号 _Nop();/起始条件锁定时间大于4 _Nop();_Nop();_Nop();_Nop();SCL=0;/钳住I2C总线,准备发送或接收数据 _Nop();_Nop();/结束总线void Stop_I2c()SDA=0;/发送结束条件的数据信号 _Nop();/发送结束条件的时钟信号 SCL=1;/结束条件建立时间大于4 _Nop();_Nop()

35、;_Nop();_Nop();_Nop();SDA=1;/发送I2C总线结束信号 _Nop();_Nop();_Nop();_Nop();,/字节数据传送函数 void SendByte(unsigned char c)unsigned char BitCnt;for(BitCnt=0;BitCnt8;BitCnt+)/要传送的数据长度为8位 if(cBitCnt),_Nop();_Nop();SDA=1;/8位发送完后释放数据线,准备接收应答位 _Nop();_Nop();SCL=1;_Nop();_Nop();_Nop();if(SDA=1)ack=0;else ack=1;/判断是否接收

36、到应答信号 SCL=0;_Nop();_Nop();,将上面的几个程序放入Kiel C51的一个工程文件中进行编译,生成*.hex文件后,通过USB口下载到实验板中。程序运行之后,用示波器测量J33的上面一个OUT脚,调节示波器,可以清晰地看到锯齿波波形。,注意:在使用PCF8591进行D/A转换时,硬件电路连接非常简单,软件相对比较复杂,单片机通过I2C总线发送数字信号,所以一定要严格按照I2C总线的通信格式要求发送数据。,项目小结,本项目介绍了单片机常用的外接8位并行D/A转换芯片DAC0832的原理和应用。通过两个任务学习了采用单片机和DAC0832实现各种信号发生器的设计方法。DAC0

37、832完成数字信号到模拟信号的转换后是以电流形式输出,必须外接运算放大器把电流转换成电压信号。DAC0832 与单片机根据接口方式不同有三种工作方式:直通方式、单缓冲方式和双缓冲方式。实际应用中根据实际情况选择合适的工作方式。在介绍并行D/A转换芯片的应用之后,以PCF8591为例介绍了串行D/A转换芯片的特点、工作原理以及在实验板上的应用方法。,思考与训练,(一)知识思考:在单片机应用系统中为什么要进行A/D和D/A转换,它们的作用是什么?DAC0832与8051单片机接口时有哪些控制信号?作用分别是什么?使用DAC0832时,单缓冲方式如何工作?双缓冲方式如何工作?它们各占用8051外部R

38、AM的哪几个单元?软件编程有什么区别?怎样用DAC0832得到电压输出信号?有哪几种方法?多片D/A转换器为什么必须采用双缓冲接口方式?PCF8591的主要特点是什么?简述其工作原理。PCF8591输入和输出数字信号的格式各是怎样的?I2C总线的特点和通信格式是怎样的?,(二)项目训练:1 试用DAC0832芯片设计单缓冲方式的D/A转换器接口电路,并编写2个程序,分别使DAC0832输出负向锯齿波和15个正向阶梯波。2 根据图9.17的电路接法,判断DAC0832是工作在直通方式、单缓冲方式还是双缓冲方式?欲用DAC0832产生如图9.18所示波形,则如何编程?(设满量程电压5V,周期为2s)。3 参照任务2,将图9.18的硬件电路作修改,设计成一个完整的信号发生器,通过按键控制输出锯齿波、三角波、方波或正弦波,并写出完整的程序。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号