项目9信号发生器的设计ppt课件

上传人:沈*** 文档编号:177392230 上传时间:2022-12-25 格式:PPT 页数:77 大小:2.62MB
收藏 版权申诉 举报 下载
项目9信号发生器的设计ppt课件_第1页
第1页 / 共77页
项目9信号发生器的设计ppt课件_第2页
第2页 / 共77页
项目9信号发生器的设计ppt课件_第3页
第3页 / 共77页
资源描述:

《项目9信号发生器的设计ppt课件》由会员分享,可在线阅读,更多相关《项目9信号发生器的设计ppt课件(77页珍藏版)》请在装配图网上搜索。

1、电子工业出版社单片机控制技术单片机控制技术 项目式教程项目式教程 (C C语言版)语言版)1电子工业出版社项目项目9 9 信号发生信号发生 器的设计器的设计2l 能了解能了解D/AD/A转换器的相关技术指标;转换器的相关技术指标;l 能理解能理解DAC0832DAC0832的工作原理与应用方法;的工作原理与应用方法;l 能掌握能掌握DAC0832DAC0832与与5151单片机的接口方法;单片机的接口方法;l 能掌握信号发生器的硬件电路的分析与设计方法;能掌握信号发生器的硬件电路的分析与设计方法;l 能熟练编写信号发生器产生各种波形信号的单片机控制能熟练编写信号发生器产生各种波形信号的单片机控

2、制程序。程序。学习目标学习目标 3l 叙述叙述D/AD/A转换器的技术指标要求;转换器的技术指标要求;l 叙述叙述DAC0832DAC0832的工作原理;的工作原理;l 设计单片机控制的信号发生器的工作电路;设计单片机控制的信号发生器的工作电路;l 编写信号发生器产生各种波形信号的单片机控制程序。编写信号发生器产生各种波形信号的单片机控制程序。工作任务工作任务 4任务任务9.1 灯光亮度调节器的设计灯光亮度调节器的设计任务任务9.2 信号发生器的设计信号发生器的设计项目拓展项目拓展 串行串行D/A转换芯片转换芯片PCF8591在实验板在实验板 上的应用上的应用项目小结项目小结思考与训练思考与训

3、练项目项目9 9 信号发生器的设计信号发生器的设计5任务任务9.1 灯光亮度调节器的设计灯光亮度调节器的设计l D/A转换的功能就是将数字量转换成模拟量。转换的功能就是将数字量转换成模拟量。l 基本的基本的D/A转换器由电压基准或电流基准、精密电阻网络、转换器由电压基准或电流基准、精密电阻网络、电子开关及全电流求和电路构成。电子开关及全电流求和电路构成。9.1.1 9.1.1 D/AD/A转换器的基本原理转换器的基本原理1D/A 转换器的分类转换器的分类按工作方式分:按工作方式分:并行并行D/A转换器(权电阻转换器(权电阻D/A转换器、转换器、R-2R T型型D/A转换器)转换器)串行串行D/

4、A转换器转换器 间接间接D/A转换器转换器6按按D/AD/A转换的分辨率分:转换的分辨率分:低分辨率低分辨率D/AD/A转换器转换器 中分辨率中分辨率D/AD/A转换器转换器 高分辨率高分辨率D/AD/A转换器转换器按模拟量输出方式分:按模拟量输出方式分:电流输出电流输出D/AD/A转换器转换器 电压输出电压输出D/AD/A转换器转换器按按模拟电子开关电路的不同模拟电子开关电路的不同分:分:CMOSCMOS开关型开关型D/AD/A转换器(速度要求不高转换器(速度要求不高)双极型开关双极型开关D/AD/A转换器转换器 电流开关型(速度要求较高)电流开关型(速度要求较高)ECL ECL电流开关型(

5、转换速度更高)电流开关型(转换速度更高)72D/A 转换器的组成转换器的组成 D/A转换器由数码寄存器、模拟电子开关电路、解码网转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压等几部分组成。络、求和电路及基准电压等几部分组成。以以R-2R T型型D/A转换器为例,其由基准电压转换器为例,其由基准电压Vref、T型型(R-2R)电阻网络、位切换开关和运算放大器组成。)电阻网络、位切换开关和运算放大器组成。83D/A 转换器的工作原理转换器的工作原理 数字量是用代码按数位组合起来表示的,对于有权码,数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的位权。为了将数字

6、量转换成模拟量,每位代码都有一定的位权。为了将数字量转换成模拟量,必须将每必须将每1 1位的代码按其位权的大小转换成相应的模拟量,位的代码按其位权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,实现数字拟量,实现数字模拟转换。模拟转换。9R-2R TR-2R T型型D/AD/A转换器工作原理:转换器工作原理:图9.1 R-2R T型D/A转换器原理电路10 图示的电路是一个图示的电路是一个3位二进制数的位二进制数的D/A转换电路,每位二转换电路,每位二进制数控制一个开关进制数控制一个开关S。当第。当第i位的数码

7、为位的数码为“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)/R11将上式推广到将上式推广到n n位二进制数的转换,可得一般表达式位二进制数的转换,可得一般表达式 II-U-Urefref(a a0 0/2/2n n+a+a1 1/2/2n-1n-1

8、+a+an-1n-1/2/21 1+an/2+an/20 0)/R/R则输出电压为则输出电压为 UoUo(I I)R Rf f-U-Urefref(a a0 0/2/2n n+a+a1 1/2/2n-1n-1+a+an-1n-1/2/21 1+a+an n/2/20 0)R Rf f/R/R 输出电压会因器件误差、集成运放的非理想特性而产生输出电压会因器件误差、集成运放的非理想特性而产生一定的转换误差。一定的转换误差。12一般一般D/A转换器:转换器:OUT BUr其中:其中:Ur为常量,由参考为常量,由参考Uref决定。决定。B为输入数字量,为二进制数。为输入数字量,为二进制数。B可为可为8

9、位、位、12位、位、16 位等,由位等,由DAC芯片型号决定。芯片型号决定。当当B为为n位时位时:Bbn-1bn-2b1b0bn-12n-1+bn-22n-2+b121+b020 式中,式中,bn-1为最高位;为最高位;b0为最低位。为最低位。131分辨率分辨率 分辨率是分辨率是D/A转换器对输入量变化敏感程度的描述,与转换器对输入量变化敏感程度的描述,与输入数字量的位数有关。如果数字量的位数为输入数字量的位数有关。如果数字量的位数为n,则,则D/A转转换器的分辨率为换器的分辨率为1/2n。即数。即数/模转换器能对满刻度的模转换器能对满刻度的1/2n输入输入量作出反应。量作出反应。9.1.2

10、9.1.2 D/AD/A转换器的技术性能指标转换器的技术性能指标分辨率输出模拟量的满量程值分辨率输出模拟量的满量程值2n如:如:8位数的分辨率为位数的分辨率为1/256,10位数分辨率为位数分辨率为1/1024通常用通常用D/A转换器输入数字量的位数来表示分辨率。转换器输入数字量的位数来表示分辨率。D/A转换器转换器常可分为常可分为8位、位、10位、位、12位三种。位三种。142精度精度 如果不考虑如果不考虑D/AD/A的转换误差,的转换误差,D/AD/A转换的精度为其分辨转换的精度为其分辨率的大小。因此,要获得一定精度的率的大小。因此,要获得一定精度的D/AD/A转换结果,首要条转换结果,首

11、要条件是选择有足够分辨率的件是选择有足够分辨率的D/AD/A转换器。转换器。转换速度是转换速度是DAC每秒可以转换的次数,其倒数为转换每秒可以转换的次数,其倒数为转换时间。时间。转换时间转换时间是指从输入数字量到转换为模拟量输出所是指从输入数字量到转换为模拟量输出所需的时间。当需的时间。当D/A转换器的输出形式为电流时,转换时间较转换器的输出形式为电流时,转换时间较短;当短;当D/A转换器的输出形式为电压时,转换时间要加上运转换器的输出形式为电压时,转换时间要加上运算放大器的延迟时间算放大器的延迟时间而长一点,一般在几十微秒内。而长一点,一般在几十微秒内。3转换速度转换速度 154建立时间建立

12、时间 建立时间是指从输入数字量变化到输出达到终值误差建立时间是指从输入数字量变化到输出达到终值误差(1/2)LSB(1/2)LSB(最低有效位最低有效位)时所需的时间,即输入的数字量变化时所需的时间,即输入的数字量变化后,输出模拟量稳定到相应的数字范围内所需的时间。后,输出模拟量稳定到相应的数字范围内所需的时间。通常以建立时间来表示转换速度。通常以建立时间来表示转换速度。输入编码形式是指输入编码形式是指D/A转换电路输入的数字量的形式。转换电路输入的数字量的形式。如二进制码、如二进制码、BCD码等。码等。5输入编码形式输入编码形式 166线性度线性度 线性度是指线性度是指D/AD/A转换器的实

13、际转移特性与理想直线之间的转换器的实际转移特性与理想直线之间的最大误差,或最大偏移。通常给出在一定温度下的最大非线最大误差,或最大偏移。通常给出在一定温度下的最大非线性度,一般为性度,一般为0.01%0.01%0.030.03。大部分大部分D/A转换芯片是电压型输出,一般为转换芯片是电压型输出,一般为510V;也;也有高压输出型的,为有高压输出型的,为2430V。有一些是电流型的输出,低。有一些是电流型的输出,低者为者为20mA左右,高者可达左右,高者可达3A。7输出电平输出电平 8尖峰尖峰 尖峰是输入的数字量发生变化时产生的瞬时误差。通常尖峰是输入的数字量发生变化时产生的瞬时误差。通常尖峰的

14、转换时间很短,但幅度很大。在许多场合是不允许尖峰的转换时间很短,但幅度很大。在许多场合是不允许有尖峰存在的,应采取措施予以消除。有尖峰存在的,应采取措施予以消除。17 正确了解正确了解D/A转换器件的技术性能参数,对于合理选用转换器件的技术性能参数,对于合理选用转换芯片、正确设计接口电路十分重要。转换芯片、正确设计接口电路十分重要。D/AD/A转换器的性能指标很多,但在选用合适的芯片型号转换器的性能指标很多,但在选用合适的芯片型号时主要考虑的是它的时主要考虑的是它的分辨率、精度和转换速度分辨率、精度和转换速度。18 目前单片机系统常用的D/A转换器的转换精度有8位、10位、12位等,与单片机的

15、接口方式有并行接口、串行接口。9.1.3 9.1.3 DAC0832DAC0832芯片及其与单片机接口电路芯片及其与单片机接口电路 1 1DAC0832DAC0832芯片介绍芯片介绍(1 1)DAC0832DAC0832的性能的性能 8位D/A转换器,单电源供电,在+5+15 V范围均可正常工作。基准电压的范围为10V;电流建立时间为1s;CMOS工艺,低功耗(仅为20 mW)。19DAC0832主要特性:输出电流线性度可在满量程下调节;转换时间(电流建立时间)为;数据输入可采用双缓冲、单缓冲或直通方式;增益温度补偿为0.02%FS/;每次输入数字为8位二进制数;低功耗,20mW;逻辑电平输入

16、与TTL兼容;基准电压的范围为10V;单电源供电,可在515V 内正常工作。20(2)DAC0832的内部结构的内部结构21 该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。使用时数据输入可以采用两级锁存(双锁存)形式,或单级锁存(一级锁存,一级直通)形式,或直接输入(两级直通)形式。此外,由3个与门电路可组成寄存器输出控制逻辑电路,该逻辑电路的功能是进行数据锁存控制。当=0时,输入数据被锁存;当=1时,锁存器的输出跟随输入的数据。D/A转换电路是一个R-2R T型电阻网络,可实现8位数据的转换。ILEILE22(3 3)DAC0832DAC0832的引脚的引脚 DAC0832为20引

17、脚、双列直插式封装。Vcc:电源线。DAC0832的电源可以在515V内变化。典型使用时用+15V电源。AGND和和DGND:AGND为模拟量地线,DGND为数字量地线。使用时,这两个接地端应始终连在一起。CS:片选输入信号,低电平有效。只有当CS=0时,这片DAC0832才被选中。DI0DI7:8位数字量输入端。应用时,如果数据不足8位,则不用的位一般接地。23ILE:输入锁存允许信号,高电平有效。只有当ILE=1时,输入数字量才可能进入8位输入寄存器。WR1:写信号1,低电平有效,控制输入寄存器的写入。ILE和WR1信号控制输入寄存器是数据直通方式还是数据锁存方式:当ILE=1且WR1=0

18、时,为输入寄存器直通方式;当ILE=1且WR1=1时,为输入寄存器锁存方式。WR2:写信号2,低电平有效,控制DAC寄存器的写入。XFER:数据传送控制输入信号,低电平有效,控制数据从输入寄存器到DAC寄存器的传送。WR2和XFER信号控制DAC寄存器是数据直通方式还是数据锁存方式:当WR2=0且XFER=0时,为DAC寄存器直通方式;当WR2=1或XFER=1时,为DAC寄存器锁存方式。24VrefVref:参考电压线。Vref接外部的标准电源,与芯片内的电阻网络相连接,该电压可正可负,范围为1010V。Iout1Iout1和和Iout2Iout2:电流输出端。Iout1为DAC电流输出1,

19、当DAC寄存器中的数据为0 xFF时,输出电流最大,当DAC寄存器中的数据为0 x00时,输出电流为。Iout2为DAC电流输出2。DAC转换器的特性之一是Iout1Iout2=常数。在实际使用时,总是将电流转为电压来使用,即将Iout1和Iout2加到一个运算放大器的输入端。25RfbRfb:运算放大器的反馈电阻端,电阻(15k)已固化在芯片中。因为DAC0832是电流输出型D/A转换器,为得到电压的转换输出,使用时需在两个电流输出端接运算放大器,Rfb即为运算放大器的反馈电阻。图9.5 运算放大器的接法26(4 4)DAC0832DAC0832的工作原理的工作原理 将数字量的每一位按权值分

20、别转换成模拟量,再通过运算放大器求和相加,D/A转换器内部有一个解码网络,以实现按权值分别进行D/A转换。(5 5)DAC0832DAC0832的输出的输出 DAC0832是电流输出型D/A转换器。图9.6 DAC0832单极性电压输出电路单极性输出运放:单极性输出运放:VoutVoutIout1Iout1RfbRfb B BVref/256Vref/25627双极性输出运放:双极性输出运放:Vout Vout (Vout1/R(Vout1/R Vref/2R)Vref/2R)2R2R 2Vout12Vout1VrefVref 2B2BVref/256Vref/256VrefVref B BV

21、ref/128Vref/128VrefVref VrefVref(B(B128)/128128)/128图9.7 DAC0832双极性电压输出电路当当Vref为正,数字为正,数字量在量在0 x010 x7F之之间变化时,间变化时,Vout为为负值;当数字量在负值;当数字量在0 x800 xFF之间之间变化时,变化时,Vout为正为正值。值。28(1)直通方式下的接口电路直通方式下的接口电路 直通方式是数据直接输入直通方式是数据直接输入(两级直通两级直通)的形式。的形式。两个两个8 8位数据寄存器都处于数据接收状态,位数据寄存器都处于数据接收状态,LE1=1LE1=1,LE2=1LE2=1,IL

22、E=1ILE=1,而,而WR1WR1、WR2WR2、CSCS和和XFERXFER均为均为0 0。输入数据直。输入数据直接送到内部接送到内部D/AD/A转换器去转换。转换器去转换。2 2DAC0832DAC0832与与5151单片机的接口电路单片机的接口电路 DAC0832DAC0832的工作方式:直通方式、单缓冲方式和双缓冲方式的工作方式:直通方式、单缓冲方式和双缓冲方式 29图9.8 直通方式下89C51与DAC0832的连接图30(2)单缓冲方式下的接口电路单缓冲方式下的接口电路 单缓冲方式是单级锁存单缓冲方式是单级锁存(一级锁存,一级直通一级锁存,一级直通)形式,形式,就是使就是使DAC

23、0832DAC0832的两个的两个8 8位数据寄存器中有一个处于直通方位数据寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者两个式,而另一个处于受控的锁存方式,或者两个8 8位数据寄存位数据寄存器处于同时受控的方式,即同时送数,同时锁存。器处于同时受控的方式,即同时送数,同时锁存。在单缓冲工作方式下,可以将在单缓冲工作方式下,可以将8 8位位DACDAC寄存器置于直通寄存器置于直通方式。为此,应将方式。为此,应将WR2WR2和和XFERXFER接地,而输入寄存器的工作状接地,而输入寄存器的工作状态受单片机的控制。态受单片机的控制。31 WR=0 WR=0,P2.7=0P2.7=0,

24、DAC0832 DAC0832的地址为的地址为 0 x7FFF 0 x7FFF,将数字量将数字量0 x080 x08转换为模拟量的程序:转换为模拟量的程序:#define DAC0832 XBYTE0 x7FFF#define DAC0832 XBYTE0 x7FFFDAC0832=0 x08DAC0832=0 x08;或或 output(0 x7FFFoutput(0 x7FFF,0 x08)0 x08);32 两个输入寄存器同时受控的连接方法,WR1和WR2一起接89C51的WR,CS和XFER共同接89C51的P2.7,因此两个寄存器的地址相同。33(3 3)双缓冲方式下的接口电路)双缓

25、冲方式下的接口电路 双缓冲方式的数据输入可以采用两级锁存(双锁存)的形式,就是把DAC0832的两个锁存器都接成受控锁存方式。DAC0832的WR1、WR2、CS和XFER都受单片机送来的信号的控制。当 WR=0,P2.7=0,P2.6=1,8位输入寄存器处于送数状态,8位DAC寄存器处于锁存状态,不能进行D/A转换。34双缓冲方式下双缓冲方式下89C51与两片与两片DAC0832的连接图的连接图35 如DAC0832DAC0832的的8 8位输入寄存器地址为位输入寄存器地址为0 x7FFF0 x7FFF,WR=0,P2.7=1,P2.6=0,8位DAC寄存器处于送数据状态,开始进行D/A转换

26、。DAC0832DAC0832的的8 8位位DACDAC寄存器的地址为寄存器的地址为0 xBFFF0 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);36 1 1任务要求任务要求9.1.4 9.1.4 灯光亮度调节器的设计灯光亮度调节器的设计 用AT89C51单片机和DAC0832控制一个发光

27、二极管,使发光二极管的亮度逐渐变暗,再逐渐变亮,不断循环。2 2任务分析任务分析 改变发光二极管的亮度,就要改变通过发光二极管的电流。方法很多,利用AT89C51控制DAC0832数模转换芯片,DAC0832的输出转换成电压去驱动发光二极管。当DAC0832的输入数字量变化时,输出电压改变,通过发光二极管的电流变化,发光二极管的亮度就改变。37 3 3任务设计任务设计 (1)器件选择器件名称数量(只)AT89C5116MHz 晶体122pF瓷片电容210uF电解电容110k电阻1470电阻1uA4711DAC08321发光二极管LED138(2)硬件原理图设计 DAC0832单缓冲方式,P2和

28、P0决定地址,片选信号CS低电平有效,P2.7为0,DAC0832的地址为0 x7FFF。81234567123487658123456712348765XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P

29、3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122pFC222pFC310uFR110kVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC08323267415U3UA741WRWRXFR2470+12VXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/A

30、D039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122pFC222pFC310uFX16

31、MHzR110kVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC08323267415U3UA741WRWRXFXF-5V+12V-12VD1LED-GREEN39(3 3)软件程序设计)软件程序设计:#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延时子程序void DelayM

32、S(uint x)uchar t;while(x-)for(t=0;t0;i-)AC0832=i;DelayMS(1);for(i=0;i256;i+)AC0832=i;DelayMS(1);40(4)软硬件联合调试 在Protus环境下,将编译好的软件下载到AT89C51中运行,可以看到LED灯如任务要求的一样先由亮逐渐变暗,再由暗逐渐变亮。41 1 1任务要求任务要求任务任务9.2 信号发生器的设计信号发生器的设计 用单片机AT89C51和D/A转换芯片DAC0832组成的信号发生器生成要求周期和幅度(0V+5V)的锯齿波、三角波、方波或正弦波。2 2任务分析任务分析 锯齿波:向DAC08

33、32反复送入0 x000 xFF数据,就会生成 幅度为0V+5V的锯齿波三角波:向DAC0832反复送入0 x000 xFF和0 xFF 0 x00数 据,就会生成幅度为0V+5V的三角波方波:向DAC0832送入一定时长的0 x00和一定时长的0 xFF,就会生成幅度为0V+5V的方波42 波形的周期与单片机的机器周期和程序中的延时长短相关。正弦波:等时间间隔分割正弦信号,计算出分割时刻的信 号幅值,将幅值对应的数字量存储到ROM中,然后 用查表的方法取出这些取样值,送到DAC0832转换 后输出,那么输出信号就是正弦波形。如:波形频率为50Hz的正弦波信号,正弦波信号以5作为1个阶梯,则分

34、成 360572份,时间间隔为 20720.278ms。当参考电压为5V时,72个采样值、输 出电压值、正弦值、角度如表9.2所示。43XsinX输出电压输入数字量0909018018027027036000.00002.500V0 x7F0 xFF0 x7F0 x0050.08722.718V0 x8A0 xFE0 x750 x01100.17362.934V0 x950 xFD0 x6A0 x02150.25883.147V0 xA00 xFA0 x5F0 x04200.34203.355V0 xAB0 xF70 x540 x07250.42263.557V0 xB50 xF30 x4A0

35、 x0C300.50003.750V0 xBF0 xED0 x400 x11350.57363.934V0 xC80 xE70 x360 x17400.64284.107V0 xD10 xE10 x2D0 x1E450.70714.268V0 xD90 xD90 x250 x25500.76604.415V0 xE10 xD10 x1E0 x2D550.81924.548V0 xE70 xC80 x170 x36600.86604.665V0 xED0 xBF0 x110 x40650.90934.773V0 xF30 xB50 x0C0 x4A700.93974.849 V0XF70 xAB

36、0 x070 x54750.96594.915V0 xFA0 xA00 x040 x5F800.98484.962V0 xFD0 x950 x020 x6A850.99624.991V0 xFE0 x8A0 x010 x75901.00005.000V0 xFF0 x7F0 x000 x7F表表9.2 正弦波数据表正弦波数据表44 3 3任务设计任务设计 (1)器件选择器件名称数量(只)AT89C5116MHz 晶体122pF瓷片电容210uF电解电容110k电阻110k可变电阻11k电阻1uA4711DAC08321数字电压表1示波器14581234567123487658123456712

37、348765XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/

38、A1326P2.6/A1427U1AT89C51C122pFC222pFC310uFR110kVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC08323267415U3UA741WRWRXFXF-5VR21K+12V-12VABCD10k+88.8AC VoltsXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD43

39、5P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122pFC222pFC310uFX16MR110kVREF8GND3VCC20CS1WR12DI34DI25DI16DI07

40、RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U2DAC08323267415U3UA741WRWRXFXF-5VR21K+12V-12VABCD10k+88.8AC Volts(2)硬件原理图设计 DAC0832工作于单缓冲方式,地址为0 x7FFF。Vref接5V电压,输出的单极性电压在05V之间变化。46(3)软件程序设计:产生锯齿波的源程序如下:#include#include#define uint unsigned int#define uchar unsigned char#define D

41、AC0832 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);47产生三角波的源程序如下:#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF/延时子程序void DelayMS(uint x)uchar t;whil

42、e(x-)for(t=0;t120;t+);/主程序生成三角波void main()uchar i;while(1)for(i=0;i0;i-)DAC0832=i;DelayMS(1);48产生正弦波的源程序如下:#include#include#define uint unsigned int#define uchar unsigned char#define DAC0832 XBYTE0 x7FFF49/初始化正弦波波形数据数组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

43、 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,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

44、 x17,0 x1E,0 x25,0 x2D,0 x36,0 x40,0 x4A,0 x54,0 x5F,0 x6A,0 x75;50/延时子程序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);51(4)软硬件联合调试 将上面相应波形的程序编译为*.hex文件后,在Proteus绘制的原理图中,将*.hex文件加载到单片机AT89C51中运行,在虚拟示波器上可以看到对应的波形图。在Pr

45、oteus仿真运行过程中可能会提示CPU过载,这时虚拟示波器可能会无法实时显示波形,可将虚拟示波器通道A中指向1的黄色旋钮从1开始先正向旋转一圈,再反向旋转一圈,这样会使虚拟示波器尽快刷新显示波形。521 1PCF8591PCF8591简介简介项目拓展项目拓展 串行串行D/AD/A转换芯片转换芯片PCF8591PCF8591在实验板上的应用在实验板上的应用 PCF8591是一个单片集成的具有I2C总线接口的8位A/D及D/A转换器,有4路A/D输入,1路D/A输出。PCF8591的输入输出地址、控制和数据信号都是通过I2C总线以串行的方式进行传输。53PCF8591的主要特性:的主要特性:单独

46、供电单独供电 PCF8591的操作电压范围的操作电压范围+2.5V+6V 低待机电流低待机电流 通过通过I C总线串行输入总线串行输入/输出输出 PCF8591通过通过3个硬件地址引脚寻址个硬件地址引脚寻址 PCF8591的采样率由的采样率由I C总线速率决定总线速率决定 4个模拟输入可编程为单端型或差分输入个模拟输入可编程为单端型或差分输入 自动增量频道选择自动增量频道选择 PCF8591的模拟电压范围从的模拟电压范围从VSS到到VDD PCF8591内置跟踪保持电路内置跟踪保持电路 8-bit逐次逼近逐次逼近A/D转换器转换器 通过通过1路模拟输出实现路模拟输出实现DAC增益增益 54 2

47、 2PCF8591PCF8591内部结构框图内部结构框图553 3PCF8591PCF8591引脚功能引脚功能引脚序号引脚名称引脚功能1AIN0模拟量输入端口2AIN13AIN24AIN35A0模拟通道选择地址6A17A28VSS负电源电压9SDAIC总线数据信号10SCLIC总线时钟信号11OSC外部时钟输入端,内部时钟输出端12EXT内部、外部时钟选择线,使用内部时钟时 EXT 接地13AGND模拟信号地14Vref基准电源电压15AOUTD/A 转换模拟量输出端16VDD正电源电压564 4PCF8591PCF8591工作原理工作原理 PCF8591采用典型的I2C总线接口器件寻址方法,

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

49、D/A输出允许位 0为禁止 1为允许A/D输入方式选择位00:4路单端输入 01:3路差分输10:单端与差分 11:2路差分输入 未用(写0)自动增益选择位 0为禁用 1为启用AD通道选择位 00:选择通道0 01:选择通道1 10:选择通道2 11:选择通道358 D/A转换的数据输入和A/D转换的数据输出都是通过I2C总线串行输入和输出的。因此PCF8951中I2C总线的通信格式包括写数据格式和读数据格式。PCF8591的I2C总线写数据格式:第一字节第二字节第三字节写入器件地址(90H)写入控制字节要写入的数据向PCF8591写入格式(高位在前)PCF8591的I2C总线读数据格式:第一

50、字节第二字节第三字节第四字节写入器件地址(90H写)写入控制字节写入器件地址(91H读)读出一字节数据从PCF8591读数据格式(高位在前)595 5I I2 2C C总线总线 (1)I2C总线数据位的传输 I2C总线上每传输一个数据位必须产生一个时钟脉冲,I2C总线上数据传输的有效性要求SDA线上的数据必须在时钟线SCL的高电平期间保存稳定,数据线的改变只能在时钟线为低电平期间。I2C总线由2根线:串行数据线(SDA)和串行时钟线(SCL)。总线上的每一个器件都有一个唯一的地址。60(2)I2C总线数据的传输数据传输中的应答:数据传输中的应答:相应的应答位由接收方(从机)产生,在应答的时钟脉

51、冲期间,发送方(主机)应释放SDA线(使其为高电平)。在应答过程中,接收方(从机)必须将数据线SDA拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。数据传输的字节格式:数据传输的字节格式:发送到SDA线上的每一个字节必须为8位,每次发送的字节数量不受限制,从机在接收完一个字节后向主机发送一个应答位,主机在收到从机应答后才会发送第二字节数据,发送数据时先发数据的最高位。61(3)I2C总线的传输协议主机写数据到从机的通信格式:1234567NN-1主机产生起始位发从机地址90H等待从机应答发送数据等待从机应答发送数据等待从机应答。停止位62主机从从机中读数据的通信格式:1234567NN-

52、1主机产生起始位发从机地址91H等待从机应答接收从机发出的数据向从机应答接收从机发出的数据向从机应答。主机产生停止位636.6.实验板上锯齿波信号的输出实验板上锯齿波信号的输出(1)STC89C52控制PCF8591生成锯齿波信号的电路设计将U15的J23的19和20脚用杜邦线与J8的SDA和SCL脚连接。64(2)生成锯齿波的软件设计 主程序main.c:/PCF8591 的DA转换程序#include#include i2c.h#define AddWr 0 x90 /写数据地址#define AddRd 0 x91 /读数据地址/锯齿波数据表,表格数值越多,波形越平滑unsigned c

53、har 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;65/写入DA转换数值,dat表示需要输入转换的DA数值,从0-255bit WriteDAC(unsigned char dat,unsigned char num)unsigned char i;Start_I2c();/启动总线 SendByte(AddWr);/发送器件地址 if(ack=0)return(0);SendByte(0

54、x40);/发送器件子地址 if(ack=0)return(0);for(i=0;inum;i+)SendByte(dat);/发送数据 if(ack=0)return(0);Stop_I2c();66/主程序main()unsigned char i;while(1)for(i=0;i26;i+)WriteDAC(tab1i,1);67I2C头文件i2c.h:#ifndef _I2C_H_#define _I2C_H_#include /头文件的包含#include#define _Nop()_nop_()/定义空指令/启动总线void Start_I2c();/结束总线void Stop_

55、I2c();/字节数据传送函数 void SendByte(unsigned char c);#endif68I2C程序i2c.c:/函数是采用软件延时的方法产生SCL脉冲,晶振频率是12MHz,即机器周期为1us#include i2c.h#define _Nop()_nop_()/定义空指令bit ack;/应答标志位sbit SDA=P21;sbit SCL=P20;、/启动总线void Start_I2c()SDA=1;/发送起始条件的数据信号 _Nop();SCL=1;_Nop();/起始条件建立时间大于4.7us,延时 _Nop();_Nop();_Nop();_Nop();69

56、SDA=0;/发送起始信号 _Nop();/起始条件锁定时间大于4 _Nop();_Nop();_Nop();_Nop();SCL=0;/钳住I2C总线,准备发送或接收数据 _Nop();_Nop();/结束总线void Stop_I2c()SDA=0;/发送结束条件的数据信号 _Nop();/发送结束条件的时钟信号 SCL=1;/结束条件建立时间大于4 _Nop();_Nop();_Nop();_Nop();_Nop();SDA=1;/发送I2C总线结束信号 _Nop();_Nop();_Nop();_Nop();70/字节数据传送函数 void SendByte(unsigned char

57、 c)unsigned char BitCnt;for(BitCnt=0;BitCnt8;BitCnt+)/要传送的数据长度为8位 if(cBitCnt)&0 x80)SDA=1;/判断发送位 else SDA=0;_Nop();SCL=1;/置时钟线为高,通知被控器开始接收数据位 _Nop();/保证时钟高电平周期大于4 _Nop();_Nop();_Nop();_Nop();SCL=0;71 _Nop();_Nop();SDA=1;/8位发送完后释放数据线,准备接收应答位 _Nop();_Nop();SCL=1;_Nop();_Nop();_Nop();if(SDA=1)ack=0;els

58、e ack=1;/判断是否接收到应答信号 SCL=0;_Nop();_Nop();72 将上面的几个程序放入Kiel C51的一个工程文件中进行编译,生成*.hex文件后,通过USB口下载到实验板中。程序运行之后,用示波器测量J33的上面一个OUT脚,调节示波器,可以清晰地看到锯齿波波形。注意:在使用注意:在使用PCF8591PCF8591进行进行D/AD/A转换时,硬件电路连接非转换时,硬件电路连接非常简单,软件相对比较复杂,单片机通过常简单,软件相对比较复杂,单片机通过I I2 2C C总线发送数总线发送数字信号,所以一定要严格按照字信号,所以一定要严格按照I I2 2C C总线的通信格式

59、要求发总线的通信格式要求发送数据。送数据。73项目小结项目小结 l 本项目介绍了单片机常用的外接8位并行D/A转换芯片DAC0832的原理和应用。通过两个任务学习了采用单片机和DAC0832实现各种信号发生器的设计方法。l DAC0832完成数字信号到模拟信号的转换后是以电流形式输出,必须外接运算放大器把电流转换成电压信号。DAC0832 与单片机根据接口方式不同有三种工作方式:直通方式、单缓冲方式和双缓冲方式。实际应用中根据实际情况选择合适的工作方式。l 在介绍并行D/A转换芯片的应用之后,以PCF8591为例介绍了串行D/A转换芯片的特点、工作原理以及在实验板上的应用方法。74思考与训练思

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

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!