基于单片机和DAC0832的函数信号发生器的设计_第1页
基于单片机和DAC0832的函数信号发生器的设计_第2页
基于单片机和DAC0832的函数信号发生器的设计_第3页
基于单片机和DAC0832的函数信号发生器的设计_第4页
基于单片机和DAC0832的函数信号发生器的设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本 科 毕 业 设 计论文题目: 基于单片机和dac0832的函数信号发生器的设计 学生姓名: ×× 专业年级: 电子信息科学与技术07级2班 指导教师: ××× 职称 讲师 2010年6月05日基于单片机和dac0832的函数信号发生器的设计 学 生:· ×× 专 业:电子信息科学与技术 指导教师:××摘 要: 信号发生器在生产实践和科技领域中有着广泛的应用。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生

2、物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和dac0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。系统通过单片机产生数字信号通过dac

3、0832转换为模拟信号,再通过放大器lm324就可以得到双极性的各种波形,通过几个按键切换想要的波形。关键词: 单片机,数模转换芯片dac0832,运算放大器lm324,1前言1.1 题目的来源与开发意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。单片机正朝着面向多层次用户的多品种多规格方向发展。基于单片机和dac0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过

4、程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。应用单片机控制的信号发生器的设计,整个系统控制简单,能够全方位的掌握在校期间所学的大部分知识,对单片机的学习是必不可少的,数模转换也是一个非常重要的知识,在对于数字电子和模拟电子的掌握上有非常大的应用,运算放大器的使用更加增强了对模拟模拟电路得理解,整个系统体积小,成本低廉,功能齐全,通过不同的按键,系统输出相应的波形,从而对所学的知识做了全面的深入的学习和掌握。1.2系统功能概述本系统中所应用的控制芯片为stc89c51,这个单片机用于产生最初的信号源,通过单片机循环产生数据,再将数据传给数模转换

5、芯片。单片机通过内部程序控制给出数据的频率,从而控制整个系统的信号输出频率。单片机送给数模转换芯片dac0832的数据通过内部器件转换成模拟信号输出,这是输出的是数字信号,需要通过运算放大器转化为模拟信号,如果要得到双极性的信号,那么就要通过两级运放转化。系统中有五个按键与单片机的p1口相连,每个按键对应不同的波形,分别为方波、锯齿波、三角波、梯形波和正弦波,当p1.0按键按下时,p1.0引脚为低电平,系统的输出波形为方波,同样的道理,以后的每个按键分别按下时则系统的输出为相应的波形,当没有按键按下时,没有任何波形的输出,从而整个系统的输入设备为与p1口相连的五个按键,输出为与按键相应的波形。

6、在不同的实验要求中,有不同的波形需求,本系统的设计基本能够满足实验室的各种实验,节约了成本,减小了体积,降低了功耗。2 方案的提出及论证方案一:用分立元件组成的函数信号发生器通常是单函数信号发生器,且频率不高,工作不是很稳定,而且不易调试,虽然结构很简单,制作容易,但是输出的信号频率线性度差、频率稳定度低、频率稳定度低、频率分辨率低、频率变换时间比较长,相位的噪声大以及人机界面不友好等缺点。方案二:可以由晶体管、运放ic等通用器件制作,更过的则是应用专门的函数信号发生器ic,如8038等,它们功能较少而且精度不高,频率上限不高,调节方式也不够灵活,频率和占空比也不能独立调节,二者相互影响。方案

7、三:利用专用直接数字合成dds芯片的函数信号发生器,能产生任意波形并能达到很高的频率,但是成本较高,从成本上考虑,不适合选择这么昂贵的芯片。方案四:利用常用的单片机stc89c51和常用的数模转换芯片dac0832结合,在利用运放lm324转化为模拟电压,通过按键输入给单片机控制不同波形的输出,其体积小,成本低,功率小,又达到学习的目的,因为我选择此方案。图2.1方案四原理框图3 系统硬件设计3.1 系统硬件总体设计概述本系统主要是应用在实验室的信号的地要求,对于不同的实验需要有不同的波形需求,在实验条件要求不高的情况下,比如一定的脉宽调制,需要一定频率的方波进行调节,这时需要一个简单的方波,

8、而本系统正好能够提供这样一种波形,还有其他一些条件下都可以通过本系统的控制来调节。本系统提供了五种不同的波形输出,通过五个按键控制相应的方波,锯齿波,梯形波,三角波和正弦波。每次只能有一个键按下,没有按键按下时没有波形产生,按键输入信号给单片机,单片机对按键的情况进行处理,例如第一个按键按下时,系统需要产生一个方波,那么单片机循环输出0和1,那么通过dac0832就通过运放循环输出高低电平,这样系统就能够输出方波,同样的道理,锯齿波、三角波、正弦波的产生也可以采用相似的道理。本设计的硬件系统分为三个模块:单片机系统模块,da转换模块,放大器模块。3.2 系统各个模块的设计3.2.1 单片机系统

9、模块本系统采用的单片机芯片是stc89c51,此芯片是一种带4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。stc89c51是一种带4k字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,stc89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案主要特性:与mc

10、s-51 兼容 4k字节可编程闪烁存储器 ,寿命:1000写/擦循环,数据保留时间:10年全静态工作:0hz-24hz三级程序存储器锁定128*8位内部ram32可编程i/o线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚说明:vcc:供电电压。gnd:接地。p0口:p0口为一个8位漏极开路双向i/o口,每脚可吸收8ttl门电流。p1口的管脚第一次写1时,被定义为高阻输入。p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash编程时,p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。

11、p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它

12、利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。 p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89c51的一些特殊功能口,如下表所示:管脚 备选功能p3.0 rxd (串行输入口)p3.1 txd (串行输出口)p3.2 /int0 (外部中断0)p3.3 /int1(外部中断1)p3.4 t0 (记时器

13、0外部输入)p3.5 t1 (记时器1外部输入)p3.6 /wr (外部数据存储器写选通)p3.7 /rd (外部数据存储器读选通)p3口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平 时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在s

14、fr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)

15、。    xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。    xtal2:来自反向振荡器的输出。定时器0和1的操作定时和计数功能由特殊功能寄存器tmod的控制位c/t进行选择。这两个定时/计数器有4种操作模式,通过tmod的m1和m0选择。两个定时/计数器的模式0、1和2都相同,模式3不同。如下所述:模式0将定时器设置成模式0时类似8048定时器,即8位计数器带32分频的预分频器。此模式下,定时器寄存器配置为13位寄存器。当计数从全为“1”翻转为全为“0”时,定时器中断标志位tfn置位。当trn=1同

16、时gate=0或intn=1时定时器计数。置位gate时允许由外部输入intn控制定时器,这样可实现脉宽测量。trn为tcon寄存器内的控制位。该13位寄存器包含thn全部8个位及tln的低5位。tln的高3位不定,可将其忽略。置位运行标志(trn)不能清零此寄存器。模式0的操作对于定时器0及定时器1都是相同的。两个不同的gate位(tmod.7和tmod.3)分别分配给定时器0及定时器1。模式1模式1除了使用了thn及tln全部16位外,其它与模式0相同。模式2此模式下定时器寄存器作为可自动重装的8位计数器(tln)。tln的溢出不仅置位tfn,而且将thn内容重新装入tln,thn内容由软

17、件预置。重装时thn内容不变。模式2的操作对于定时器0及定时器1是相同的。模式3在模式3中,定时器1停止计数,效果与将tr1设置为0相同。此模式下定时器0的tl0及th0作为两个独立的8位计数器。tl0占用定时器0的控制位:c/t,gate,tr0,int0及tf0。th0限定为定时器功能(计数器周期),占用定时器1的tr1及tf1。此时th0控制“定时器1”中断。模式3可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,80c51看似有3个定时器/计数器,当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。

18、串行口851单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(sbuf),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99h。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的rs-232接口 串行数据通信两种形式 异步通信     在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下

19、:一个起始位,仅接着是若干个数据位。    同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。     同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。串行数据通信的传输速率    

20、串行数据传输速率有两个概念,即每秒转送的位数bps(bit per second)和每秒符号数波特率(band rate),在具有调制解调器的通信中,波特率与调制速率有关。9串行口和控制寄存器单片机串行口寄存器结构如图3.5所示。sbuf为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99h)。10mcs-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。移位时钟ti发送中断txd串行输出接受sbuf输入移位寄存器rxd串行输入ri接受中断发送sbuf系统总线图3

21、.1 串行口寄存器结构图fig 3.1 the string goes to deposit machine knot composition串行口控制寄存器:scon控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98h,其结构格式如表3.1所示.表3.1 scon寄存器结构table 3.1 the scon deposits machine structure    scon寄存器结构scond7d6d5d4d3d2d1d0sm0sm1sm2rentb8rb8tiri位地址9fh9eh8dh9ch9bh9ah99h98h

22、sm0、sm1:串行口工作方式控制位。  sm0,sm1    工作方式            00      方式0            01      方式1 &#

23、160;          10      方式2            11      方式3 sm2:多机通信控制位。     多机通信是工作于方式2和方式3,sm2位主要用于方式2和方式3。接收状态,当串行口工作于

24、方式2或3,以及sm2=1时,只有当接收到第9位数据(rb8)为1时,才把接收到的前8位数据送入sbuf,且置位ri发出中断申请,否则会将接受到的数据放弃。11当sm2=0时,就不管第位数据是0还是1,都难得数据送入sbuf,并发出中断申请。     工作于方式0时,sm2必须为0。 ren:允许接收位。     ren用于控制数据接收的允许和禁止,ren=1时,允许接收,ren=0时,禁止接收。  tb8:发送接收数据位8。     在方式2和方式3中,tb8是要

25、发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,tb8=0为数据,tb8=1时为地址。ti:发送中断标志位。可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,ti=1表示帧发送结束,ti可由软件清“0”。  ri:接收中断标志位。     可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,ri=1表示帧接收完成。电源管理寄存器pcon     pcon主要是为chmos型单片机的电源

26、控制而设置的专用寄存器,单元地址是87h,其结构格式如表3.2所示。表3.2pcon电源管理寄存器结构table 3.2 the pcon power supply management deposits machine structure    pcon电源管理寄存器结构pcond7d6d5d4d3d2d1d0位符号smod-gf1gf0pdidl在chmos型单片机中,除smod位外,其他位均为虚设的,smod是串行口波特率倍增位,当smod=1时,串行口波特率加倍。系统复位默认为smod=0。3.2.2 晶振时钟模块单片机的工作过程是:取一条指令、

27、译码、进行微操作,再取一条指令、译码、进行微操作,这样自动的、一步一步的由微操作依序完成相应的指令规定的功能。各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序。89c51单片机的时钟信号通常由两种方式产生。一是内部时钟方式,二是外部时钟方式。内部时钟方式如图3.2(a)所示。只要在单片机的xtal1和xtal2引脚外接晶振即可。图中,电容c1和c2的作用是稳定频率和快速起振,电容值在5-30pf,典型值为30pf。晶振cys的震荡频率要小于12mhz,典型值6mhz、12mhz或11.0592mhz。外部时钟方式是把外部已有的时钟信号引入到单片机内,如图3.2(b)所示。此方式

28、用于多片89c51单片机同时工作,并要求各单片机同步运行的场合。图3.2 89c51单片机时钟方式fig 3.2 clock mode of microcomputer 89c51实际应用中通常采用外接晶振的内部时钟方式,晶振的频率高一些时可以提高指令的执行速度,但相应的功耗和噪声也会增加,在满足系统功能的前提下,应选择低一些的晶振频率。当系统要与pc机通信时,应选择11.0592mhz的晶振,这样便于将波特率设定为标称值。3.2.3 复位电路模块复位是使单片机或系统中的其他部件处于某种确定的厨师状态。单片机的工作就是从复位开始的。当80c51的rst引脚加高电平复位信号(保持2个以上机器周期

29、)时,单片机内部就执行复位操作。复位信号变低时,单片机开始执行程序。实际操作中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,如图3.3所示图3.3 单片机复位电路fig 3.3 reset circuit of microcomputer 89c51上电复位要求接通电源后,单片机自动实现复位操作。常用的上电复位电路如图3.3(a)所示,上电瞬间rst引脚获得高电平,随着电容c1的充电,rst引脚的高电平将逐渐下降。rst引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路得典型的电阻和电容参数为:晶振:12mhz时,c1为10uf,r1

30、为8.2k;晶振为6mhz时,c1为22uf,r1为1k。按键与上电均有效的复位电路如图3.3(b)所示,上电复位原理与图3.3(a)相同,另外在单片机运行期间,还可以利用按键完成复位操作。晶振为6mhz时,r2为200。实际应用中如果单片机断电后,有可能在较短的时间内再次加电,可以在r1上并接一个放电二极管,这样可以有效的提高此种情况下复位的可能性。3.2.4 数模转换模块数模转换器的工作原理数模转换器是将数字量信号转换成与此数值成正比的模拟量。需要转换的数字量由一个二进制数字表示,每位二进制数字都有一定的权,在转换中,应将二进制数的每一位按照权的大小转换成相应的模拟量输出分量,然后将各个输

31、出分量叠加,总和就是与数字量成正比的模拟量数值。上述d/a的转换,常用如图3.4所示的倒t形解码网络加以实现。图3.4 倒t形电阻网络d/a转换器电路设计如图3.4所示,包括由r-2r组成的电阻网络、模拟电子开关和集成运算放大器。对于电阻网络,无论从哪个r-2r节点看,等效电阻都是r,因此,从参考电压端输入的电流为:ir=vref/r根据分流公式,各支路电流为:i7=i/21i6 =i/22i5 =i/23i4 =i/24i3 =i/25i2 =i/26i1 =i/27i0 =i/28于是,经过运算放大器输出的模拟电压vo为:vo = - rfii= -rfb vref/r×28(d

32、7×27 +d6×26 +d5×25+d4×24+d3×23+d2×22+d1×21+d0×20)其中vref进行d/a转换的系统提供的参考电压,rfb为集成运算放大器的反馈电阻,d7 d0取值为0或1,0表示切换开关与地相连,1表示与参考电压相连。通过上述电路,即完成了二进制数字信号到模拟电压信号的转换。数模转换器的主要技术指标d/a转换器的指标有很多,使用者最关心的几个指标如下。(1) 分辨率分辨率指输入给d/a转换器的单位数字量引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为d/a转换器的二进制

33、位数)。显然,二进制位数越多,分辨率越高,即d/a转换器对输入量变化的敏感程度越高。例如,8位的d/a转换器,若满量程输出为10v,根据分辨率定义,则分辨率为10v/2n,分辨率为10v/256=39.1mv,即输入的二进制最低位的变化可引起输出的模拟电压变化39.1mv,该值占满量程的0.391%,常用1lsb表示。同理:10位d/a转换1lsb=9.77mv=0.1%满量程 12位d/a转换1lsb=2.44mv=0.024%满量程 16位d/a转换1lsb=0.076mv=0.00076%满量程使用时,应根据对d/a转换器分辨率的需要来选定d/a转换器的位数。(2) 转换精度转换精度以最

34、大的静态转换误差的形式给出。这个转换误差包含非线性误差、比例系数误差以及飘逸误差等综合误差。应该注意,精度和分辨率是两个概念。精度是指转换后所得的实际值对于理想值的接近成都,而分辨率是指能够对转换结果发生影响的最小输入量,分辨率很高的d/a转换器并不一定具有很高的精度。(3) 相对精度相对精度是指在满刻度已经校准的前提下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。通常用偏差几个lsb来表示和该偏差相对满刻度的百分比表示。(4) 建立时间 建立时间是描述d/a转换器转换快慢的一个参数,用于表明转换时间或转换速度。其值为从输入数字量到输出达到种植误差±(1/2)lsb

35、(最低有效位)时所需的时间。电流输出的转换时间较短,而电压的转换器,由于要加上完成i-v转换的运算放大器的延迟时间,因此转换时间要长一些。快速d/a转换器的转换时间可控制在1us以下。(5) 线性度 通常用非线性误差的大小表示d/a转换器的线性度,输入输出特性的偏差与满刻度输出之比的百分数表示非线性误差。一定温度下的最大非线性误差一般为0.01%0.03%.dac0832芯片主要特性与结构dac0832系列为美国国家半导体公司生产的具有2个数据寄存器的8位分辨率的d/a转换芯片。此芯片与微处理器完全兼容,可以完全相互代换,并且价格低廉,接口简单,转换控制容易,在单片机应用系统中得到了广泛的应用

36、。1 dac0832的主要特性l 分辨率为8为;l 转换时间为1us;l 可单缓冲、双缓冲或者直接数字转换;l 只需在满量程下调整其线性度;l 逻辑电平输入与ttl兼容;l 单一电源供电(+5v+15v);l 低功耗(0.2mw);l 基准电压的范围为±10v。2dac0832的内部结构dac0832的内部结构框图如图3.5所示。它由8为输入锁存器、8为dac寄存器、8为d/a转换器电路及转换控制电路构成,通过两个输入寄存器构成两级数据输入锁存。图3.5 dac0832内部逻辑框图使用时,数据输入可以采用两级锁存(双锁存)、单级锁存(一级锁存,一级直通方式)或直接输入(两级直通)形式

37、。上图中,2个与门电路组成据存期输出控制逻辑电路,该逻辑电路得功能是进行数据锁存控制,当ile1(ile2)=1是,寄存器的输出跟输入数据变化。2 dac0832的引脚各引脚功能如下:di0di7:8位数据输入线。:片选信号输入,低电平有效。ile:数据锁存允许控制信号,高电平有效。输入锁存器的锁存信号le1由ile、的逻辑组合产生。当ile=1,=0,wr1输入负脉冲时, 图3.6 dac0832外部引脚图上产生正脉冲。当=1时,输入锁存器的状态随数据输入线的状态变化,的负跳变将数据输入线上的信息锁入输入寄存器。1:输入寄存器写选通输入信号,低电平有效。上述两个信号控制输入寄存器是数据直通方

38、式还是数据锁存方式,当ile=1和1=1时,为输入寄存器锁存方式。2:dac寄存器写选通输入信号(输入),低电平有效。 :数据传送控制信号(输入),低电平有效。上述两个信号控制dac寄存器是数据直通方式,当2=0和=0时,为dac寄存器直通方式;当2=1或=1时,为dac寄存器锁存方式。iout1、iout2:电流输出,iout1+iout2=常数。rfb:反馈电阻输入端。内部接反馈电阻,外部通过该引脚接运放输出端。为了取得电压输出,需要在电压输出端接运算放大器,rfb即为预算放大器的反馈电阻端。vref:基准电压,其值为-10v+10v。agnd:模拟信号地。dgnd:数字信号地,为工作电源

39、地和数字逻辑地,可在基准电源处进行单点共地。vcc:电源输入端,其值为+5v+15v。 dac0832芯片与单片机的接口dac0832根据控制信号的接法可分为三种工作方式:直通方式、单缓冲方式、双缓冲方式。1 单缓冲方式此时输入锁存器和dac寄存器相应的控制信号引脚分别在一起,是数据直接写入dac寄存器,立即进行d/a转换,(这种情况下,输入锁存器不起锁存作用)。此方式适用于只有一路模拟量输出,或有几路模拟量输出但是并不要求同步的系统。图3.7为单极性单路模拟量输出的dac0832与89c51的接口电路。vref接-5v时,iout1输出电流经运算放大器输出0+5v单极性电压。由于cs和xfe

40、r都与单片机的p2.0相连。因此,输入锁存器和dac寄存器的地址都为feffh。cup对dac0832执行一次写操作,则将一个数据直接写入dac寄存器,dac0832的输出模拟量随之变化。由于dac0832具有数字量的输入锁存功能,所以数字量可以直接从从单片机的p0口送入到dac0832。执行下面几条指令就能完成一次d/a转换:movdptr,#0feffh;指向dac0832口地址(p2.0为0)mova,#datamovxdptr,a;启动d/a转换单极性输出v0的正负由vref的极性确定。当vref的极性为正时,vo为负;当vref的极性为负时,vo为正。在本系统中需要输出双极性模拟电压

41、,因此要在系统后面再加一级运放,由二级运放得到双极性电压。图3.7 dac0832单缓冲模式接口电路2.双缓冲方式对于多路d/a转换输出,如果要求同步进行,可以采用双缓冲同步方式。dac0832工作于双缓冲工作方式时,数字量的输入锁存和d/a转换时分两步完成的。首先cpu的数据总线分时的向各路d/a转换器输入要转换的数字量,并将其锁存在各自的输入锁存器中,然后cpu对所有的dac发出控制信号,使各个dac输入锁存器中国的数据打入dac寄存器,实现同步转换输出,如图3.8所示。图3.7 dac0832双缓冲模式接口电路由于两个锁存器分别占用两个地址,因此在程序中需要使用两条传送指令才能完成一个数

42、字量的模拟转换。89c51的p2.5和p2.6分别选择两路dac的输入锁存器,p2.7连接到两路dac的端的控制同步转换。完成两路d/a同步转换的程序段如下:movdptr,#0dfffh;指向dac0832(1)输入锁存器mova,#data1movdptr,a;data1送dac0832(1)输入锁存器movdptr,#0bfffh;指向dac0832(2)输入锁存器mova,#data2movxdptr,a;data2送dac0832(2)输入锁存器movdptr,#7fffh;同时启动dac0832(1)和dac0832(2)movxdptr,a;完成d/a转换输出在需要多路d/a转换

43、输出的场合,除了采用上述方法外,还可以采用多通道dac芯片。这种dac芯片在同一个芯片的封装里有两个以上相同的dac,它们可以各自独立工作,例如ad7528是双通道8位dac芯片,可以同时输出两路模拟量;ad7526是四通道8位dac芯片,可以同时输出四路模拟量。3.直通工作方式当dac0832芯片的片选信号、写信号1、2及传送控制信号的引脚全部接地,允许输入锁存信号ile引脚+5v时,dac0832芯片就处于直通工作方式,数字量一旦输入,就直接进入dac寄存器,进行d/a转换。3.2.5 运放模块系统中使用的运放为lm324。lm324系列运算放大器是价格便宜的带差动输入功能的四运算放大器。

44、其引脚图如图3.8。 lm324的特点:1.短跑保护输出2.真差动输入级3.可单电源工作:3v-32v4.低偏置电流:最大100na(lm324a)5.每封装含四个运算放大器。6.具有内部补偿的功能。7.共模范围扩展到负电源8.行业标准的引脚排列9.输入端具有静电保护功能 图3.7 lm324管脚图系统中的电路图如图3.8所示,vout为系统的输出双极性波形。图3.8 lm324运放波形输出图4 软件设计流程4.1 系统总体控制功能图函数发生器的设计k1键三角波k2键梯形波k3键方波k4键正弦波k0键锯齿波图3.8 系统总体控制功能图4.2 各波形的产生4.2.4 锯齿波的实现过程设置初值am

45、ov dptr,#0feffhmovx dptr,a使a一直加一到0ffh判断a是否已经满了?否重新设置初值a是开 始锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。在本程序中初值为00h.最大值为offh。流程图如上图所示。锯齿波的程序清单如下:movdptr,#0feffh;把地址给dptrjcb:mov r6,#00h ;设置初值da0:mova,r6movxdptr,a;初值给地址incr6;初值加1循环jbp1.3,start;按键断开跳出ajmpda0;循环4.2.5

46、 方波的实现过程此波形的实现只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了。在程序中初值分别为00h和0ffh,流程图如下图所示:开 始给a设置初值mov dptr,#0feffh movx dptr,a设置输出的时间再设置一个初值放入a中movx dptr,a输出一段时间方波的程序清单如下:movdptr,#0feffh;把地址给dptrfb: mov a,#0;通过高低电平地的变化来输出方波movx dptr,a ;向选通

47、地址送低电平地acall delaymov a,#0ffhmovx dptr,a ;向选通地址送高电平acall delayjbp1.0,startajmp fbdelay: mov 30h,#0f0h ;延时,通过改变它的大小可以改变占空比d1: djnz r0,d1ret4.2.6 三角波的实现过程三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作。此程序输入的vref的电压是5v,因此该波形输出的最大频率是初值为00h和最终值为0ffh,且步数为1,这样输出的波形是最大的。程序流程图如下图所示:给a设置初值mov dptr,#0fe

48、ffhmovx dptr,aa加一判断a是否已满?否是a减一判断是否等于初值?是开 始否三角波的程序清单:movdptr,#0feffh;把地址给dptrsjb:movr6,#00h;给r6初值da1:mova,r6movxdptr,a;初值给地址incr6;初值加一cjner6,#0ffh,da1;初值到最大da2:decr6;初值减一mova,r6movxdptr,acjner6,#00h,da2jbp1.1,start;按键断开退出ajmpsjb4.2.7 梯形波的实现过程梯形波输出跟锯齿波和三角波相似,只不过当加到顶峰后的一段时间内不改变a的值,过了一段时间后再将减少a的值,然后减到初

49、始的值后也要持续一段时间,然后再进行加数,如此循环下去:开 始给a设置初值mov dptr,#0feffh是持续一段时间djnzr1,next判断是否等于初值?否是 持续一段时间movx dptr,aadd a,步数10判断a是否已满?否梯形波的程序清单如下: movdptr,#0feffh;把地址给dptrtxb: mova,#0 mov r1,#0ahlp: movx dptr,a ;选通地址 acall delay1 ;延时 djnzr1,next sjmptxbnext: add a,#10 ;每次以10h的梯度增加 jbp1.2,startsjmplpdelay1: mov 31h,

50、#0ffh ;延时子程序d2: djnz 31h,d2 ret4.2.8 正弦波的实现过程正弦波电压输出为双极性电压。将一个周期内电压变化的赋值(-5v+5v)按8位d/a分辨率分为256个数字列表,然后依次将这些数字量送入0832进行d/a转换输出。只要循环不停地送数,在双极性电压端就能获得连续的正弦波。开 始mov a,#00hmov r1,amov dptr,#tabmovc a,a+dptrmov dptr,#0feffhmovx dptr,amov a,r1 inc a 正弦波的程序清单如下:movdptr,#0feffh;把地址给dptrzxb: mov r1,#00h ;取表格初

51、值loop1:mov a,r1;在表格里取数送到指定地址/mov dptr,#tabmovc a,a+dptrmov dptr,#0feffhmovx dptr,ainc r1 ;表格加一jbp1.4,startajmp loop1 ;循环tab:db 080h,083h,086h,089h,08dh,090h,093h,096h;正弦表格db 099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aehdb 0b1h,0b4h,0b7h,0bah,0bch,0bfh,0c2h,0c5hdb 0c7h,0cah,0cch,0cfh,0d1h,0d4h,0d6h,0d8hdb

52、0dah,0ddh,0dfh,0e1h,0e3h,0e5h,0e7h,0e9hdb 0eah,0ech,0eeh,0efh,0f1h,0f2h,0f4h,0f5hdb 0f6h,0f7h,0f8h,0f9h,0fah,0fbh,0fch,0fdhdb 0fdh,0feh,0ffh,0ffh,0ffh,0ffh,0ffh,0ffhdb 0ffh,0ffh,0ffh,0ffh,0ffh,0ffh,0feh,0fdhdb 0fdh,0fch,0fbh,0fah,0f9h,0f8h,0f7h,0f6hdb 0f5h,0f4h,0f2h,0f1h,0efh,0eeh,0ech,0eahdb 0e9h,0

53、e7h,0e5h,0e3h,0e1h,0deh,0ddh,0dahdb 0d8h,0d6h,0d4h,0d1h,0cfh,0cch,0cah,0c7hdb 0c5h,0c2h,0bfh,0bch,0bah,0b7h,0b4h,0b1hdb 0aeh,0abh,0a8h,0a5h,0a2h,9fh, 9ch, 99hdb 96h, 93h, 90h, 8dh, 89h, 86h, 83h, 80hdb 80h, 7ch, 79h, 78h, 72h, 6fh, 6ch, 69hdb 66h, 63h, 60h, 5dh, 5ah, 57h, 55h, 51hdb 4eh, 4ch, 48h, 4

54、5h, 43h, 40h, 3dh, 3ahdb 38h, 35h, 33h, 30h, 2eh, 2bh, 29h, 27hdb 25h, 22h, 20h, 1eh, 1ch, 1ah, 18h, 16hdb 15h, 13h, 11h, 10h, 0eh, 0dh, 0bh, 0ahdb 09h, 08h, 07h, 06h, 05h, 04h, 03h, 02hdb 02h, 01h, 00h, 00h, 00h, 00h, 00h, 00hdb 00h, 00h, 00h, 00h, 00h, 00h, 01h, 02hdb 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09hdb 0ah, 0bh, 0dh, 0eh, 10h, 11h, 13h, 15hdb 16h, 18h, 1ah, 1ch, 1eh, 20h, 22h, 25hdb 27h, 29h, 2bh, 2eh, 30h, 33h, 35h, 38hdb 3ah, 3dh, 40h, 43h, 45h, 48h, 4ch, 4ehdb 5

温馨提示

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

评论

0/150

提交评论