基于DAC0832的函数发生器

基于DAC0832的函数发生器
基于DAC0832的函数发生器

摘要

本系统设计以STC89C52RC单片机和DAC0832数模转换芯片为核心的函数发生器。这个设计的组成模块分别为1X4键盘、STC89C52RC单片机、DAC0832数模转换芯片、信号放大模块和显示模块。1X4键盘是用来更换波形和频率的变化所需要的。单片机控制的D/A转换芯片与显示模块是本函数发生器的执行单位,实现了数字信号转换为模拟信号。LCD1602与STC12C5A60S2数字示波器为显示模块的组成部分,LCD1602作为函数发生器信号选择显示,STC12C5A60S2数字示波器作为检测输出信号。

论文主要介绍了上述各模块的工作原理及其实现方法。重点介绍了如何运用STC89S52控制DAC0832芯片输出正弦波、三角波、方波、梯形波和锯齿波,同时也详细介绍STC12C5A60S2数字示波器的实现。最后,论文还对用本方案做出来的函数发生器产品进行了数据测试与分析,结果均符合设计要求。

关键词函数发生器;数模转换;数字示波器

第1章绪论

1.1 研究内容及意义

基于单片机的函数发生器的实现是通过编程的方法产生不同的波形,三角波、梯形波、方波、正弦波都是在matalbe软件下生产的坐标,再通过数模转换而产生的。按照要求,编写好要生成的波形的频率和幅度的程序,用keil编程软件生成hex文件,然后下载到单片机的存储器中。单片机上电复位,接着单片机就会执行下载的程序,程序运行过程中,当有按键按下的时候,就会跳到相应的中断服务子程序和波形发生程序,生成的模拟信号经过数模转换模块变成模拟信号,再通过运算放大器处理后,就生成了我们所需要的波形信号了。

研究函数发生器是由有一点的意义的,它可以用作信号的载波,用来调制信号,SPWM 技术就是要用到三角波作为载波的了。函数发生器还有很多的作用。例如用作电路的检测,仪器的检测等等。就目前最常用的呼吸灯,通过出函数发生器生成的脉冲信号给LED小灯达到有暗渐渐变亮的效果呢。用函数发生器生成的信号用作载波还可以用在通信、广播、电视系统中,幅度、频率的变化把射频(低频)波信息嵌入到高频波,这样可以产生高频的振荡器。国际规定了低频波的范围是30-150HZ,中频波的范围是150-500HZ,高频波的范围是5K-16KHZ。这么高的频率一般的仪器是生成不了的,所以需要函数发生器来帮忙了。

好一点的函数发生器价格是很昂贵的,而我们一般的实验需要的信号频率都是低频或中高频的信号,所以用单片机做的函数发生器的意义重大。它的造价很低,而且体积又小,比起有FPGA用的函数发生器还要便宜,所以做个单片机的函数发生器是很有用的。

1.2设计内容与要求

设计内容

设计的的元器件分别为:STC89C52RC单片机、DAC0832数模转换芯片、LM358运算放大器、1X4键盘和LCD1602显示屏。通过编程让单片机产生波形的数字信号,通过

P0口输出到DAC0832数模转换模块,在经过运算放大器的反相、滤波、放大,是电流转换为电压信号,且反相比例增大输出电压。波形的产生原理如下所示:

(一)方波信号:通过设计定时时间,调到中断子程序,执行P0口按位取反,就能产生方波信号了,且通过设计定时时间来改变频率;

(二)三角波信号:与方波产生的方法大致相同,通过定时器,调用中断子程序,查三角波ROM表,通过多次的调用中断子程序而产生数字信号,再转换为模拟信号,经放大输出;

(三)锯齿波信号:锯齿波的产生方法跟三角波产生的方法差不多,不过它的ROM表计

(四)梯形波:梯形波也是一样,它的ROM表示充0加到0xff,接着延迟一段时间,在充0xff减下去,这就是也个周期;

(五)正弦波:这个波形分为4个ROM表,1/4个周期来做的,这样做的效果等到一条比较均匀的波形。

设计要求

基于数模转换芯片DAC0832实现的函数发生器,利用到单片机控制产生的数字信号,通过数模转换得到模拟信号。通过程序实现频率的变,利用到单片机内置的定时器0,幅值变化。多种的波形的显示,并且可以在示波器上观察。STC12A5C60S2数字示波器,可以采样到0~10KHZ频率的信号,12864显示出信号波形的信息。

第2章硬件电路的原理与设计

2.1 概述

(1)多种波形的输出,具体的波形输出:

1)三角波:三角波,波形的ROM表是从0x00加1到0x01,依次增加的,它的一个

周期是从0x00到0xff再到0x00周期不断的循环就能产生了三角波。频率的的

范围是22-227HZ。:

2)锯齿波:它的实现很简单,只需要一开始定义一个初值,然后不断的加1,当

溢出后又重初值开始加起,就这样循环下去;

3)方波:它的实现方法是用定时器中断产生的,每次中断时,将输出的信号;

4)梯形波:是将输出的二进制数字信号依次加1,达到0xff时保持一段时间,然

后依次减1直至0x00,并实时将数字信号经D/A转换得到的;

5)正弦波:通过matlab产生的正弦波,经过均匀取样,等到的数据,数据算是的

公式为x=0.2*pi/64:2*pi,y=round(sin(x)*127)+128,然后写在正弦波的ROM表。

中断程序通过不断的查阅ROM值表,然后输出数字信号转换为模拟信号,再

经放大电路将信号放大。

(2)单片机的P0口是连接DAC0832的数据端口的,1X4按键是连接在单片机的P3口,通过按键就可以控制波形的输出了。k0(SELECT_ WA VE)是用来切换波形的状态的,k1(ADD_FREQUENCY)是控制频率增加,k2(DELETE_FREQUENCY)是控制频率的减少,k3按钮是选择低电平输出。

(3)单片机的P1口是连接LCD1602的D0~D7的,让LCD1602显示波形的状态以及信息。

2.2 电路设计选择

电路选型

方案一:采用DDS,即直接数字频率合成,它通过启动DDS,把内存缓存区的数据读出送到DDS后输出相应的频率,并把数据转换为BCD码,通过液晶显示器进行显示。但是这个技术相对难,且价格也不便宜,所以不选取。

方案二:采用锁相式频率合成方案,锁相式频率合成是将一个高稳定度和高精度的标准频率经过加减乘除的运算产生同样稳定度和精确度的大量离散频率的技术,它在一定程度上解决了既要频率稳定精确,又要频率在较大范围内可变的矛盾,但频率受VCO可变频率范围响,高低频率比不可能作得很高。

方案三:利用单片机和数模转换模块生成波形,再加上一个低通滤波器,生成的波形比较纯净。通过单片机编程可以生成任意的波形,而且电路简单,适合你自己设计。以上

的三个方案,都是可以采取,不过按照实际的设计来说,选取第三个方案是最合适的,难度低,容易控制,用软件的方法就可以生成多种波形,所以采用该方案三。.

放大电路

方案一:用增益可变运放AD603,其传输带宽高达90MHZ,完全可以满足输出信号频率的要求,由于输出的频率不需要这么大频率宽度,所以没有选取这款。

方案二:用TL082双运放放大器实现电路的放大。TL082运算放大器具这样的特点:在较低的输入电压时,偏置电压不会受到影响。因为在调幅电路时,输入的电压是12V,输出的幅值调度范围是4.5V-12V。还有TL082内置频率补偿电路,所以它能使输出的信号更加的精确。TL082是一款老式的运算法大器,放大电路有很多查考资料,所以放大电路选型时,选用的运算放大器应选取TL082。但是在实际的电路调试在选取TL082放大器,在双电源的环境下工作,没有达到实际的效果,甚至使输出信号不稳定,考虑到市面上可以找的TL082运算放大器的替换的型号有LM358、LM393、NE555等,经过不同选取不同的运算放大器,调试不同的运算放大器,最后确定了LM358这款。LM358可以在单电源的环境下工作,且可以在5V供电的情况下使用,所以我把它的8引脚直接与5V相接,4引脚接GND。但是LM358在单电源条件工作下的放大电路与我之前使用的TL082放大电路有所不同,所以还是使用了双电源来驱动它。这样使用了这款运算放大器能达到预期的效果。放大电路使用的是,一级用电压比较,经过DAC0832输出的模拟信号与它自己的反馈信号进行比较,等出的值才进行放大增益。放大电路选取的是反相放大器放大电路,

放大值为

Vi

Ri

R

V

f

0-

=

选取方案二即可实现调频。这样显然简单而容易控制,且精度较高。因此我选择方案二。

显示模块

方案一LED显示模块,它虽然编程是简单,但是显示的内容较少,而且电量的消耗又大,不应选取。

方案二LCD1602显示模块,单片开发板自带的LCD1602显示模块可以满足我这个设计的要求,2X16个点阵,足够让我编写的字符串显示,而且编程的方法有很多相关的资料,关键是耗电低,所以用LCD1602来做显示屏是最佳的。

D/A转换模块

方案一用8位D/A转换器DAC0832实现数字量到模拟量的转换过程。

调幅电路

方案一通过软件实现。控制DA输出的的电流幅度的方法是在编程的时候将波形的ROM表的幅度降下来,不过这个方法不可取,假如我设置10个幅度等级,那么我就要设

因为单机的RAM只有256B,再者,程序会变的更加的繁琐,臃肿,所以不采取。

方案二通过硬件来实现。在设计电路的时候,由于DAC0832与LM358的8脚和4脚,一开始我接的是5V电压,电路是可以驱动的但是幅度不能调,所以我在原来的PCB的基础上增加了一个调幅电路。+12V的电源接入,连接在1K的电阻上,然后接个10K的可调电阻,最后在接个1K的电阻,才接地。在这个简单的电路中,12V接1K的电阻是上拉电阻,这样的话才接入到电路中作为基准电压给DAC0832和LM358,从而实现幅度可调。

所以我选择了方案二。

2.3 键盘模块

有一个1X4的键盘模块就可以了。在编程是应注意的是,选取的是机械键盘,就会出现所谓的抖动现象。抖动现象的出现会使单片机有误操作出现,所以在编程是要消去抖动,常用的方法是加入延迟程序,不过这个方案在实际开发中会影响到程序的跑偏(开发程序一般都是几千行的,只要在用一个移位指令就可以解决了),定时不准确,不过我在编写这个设计的程序时,行数不是很多,所以延迟的方案还是能使用的。

2.4 单片机控制模块

2.4.1STC89C52RC简介

单片机选型问题。在众多的单片机型号,我选取了STC系列的89C52RC单片,这款单机比较简单,功能满足设计要求,价格便宜,编程容易,而没有选取比较高端的单片机的一个重要的原因是不熟悉它的操作,引脚定义等。

STC89C52RC单片机与51单片机一样,只是扩展了一个功能,所以我在51单片机的基础上学习用52单片机能够很快的掌握其功能。该款单片有32个I/O口,3个16位的定时器/计数器(计数器这个功能一般是不用到,实际只用到定时器),4个外部中断接口,512B的RAM,所以在编写程序的时候一定要注意不要超过512B的RAM不然单片机就不能正常工作了。STC系列的单片,有些是不用复位电路以及晶振电路的,但是这款老式的单片机一定要有外部时钟才能工作,也就是振荡电路。它的18、19脚分别是XTAL1和XTAL2这两个引脚就是时钟的输入端。40引脚是接VCC,20引脚是接GND,这款单片机的工作电压范围是3.3V~5.5V才能正常工作。所以单机机I/O输出的电压范围是0~5v,在给一些仪器供电是,会在I/O口加上上拉电阻,这是为了增大驱动能力。上拉电阻的选取也有要求,在选取的电阻过大的,I/O在改变输出值时过渡过程会比较长的,一般上拉

电阻的选取是根据实践经验来的。其实单片机的I/O输出时只能是0或1,也就是0V或5V,这就是TTL电平,如果让单片机直接输出0~5变化的值,就要接一个数模转换器才可以实现的。它的工作频率范围是在0~40MHZ。

STC89C52RC单片机时40个引脚的,PDIP封装(直插式)所以在用Altium designer 画元器件封装的时候一定要注意。单机机I/O口是标准的双向I/O,所谓的双向I/O是指,单片机内部输出1,才可以检测到外部发生的信号。

STC12A5C60S2单片机的介绍

STC系列的单片机,大多数都有AD,PWM功能,这有老款的单片机没有这两个功能。

STC12A5C60S2单片机的封装方式是PDIP,40个引脚,内置一个10位ADC,可有有效的进行数模转换,其转换速率为250K/S,所以它可以满足我设计的要求。还有就是它的速度非常快,在同样的晶振电路下,它的速度是普通51单片机的8~12倍。它的其他引脚和普通51单片机类似,都是40脚接VCC,20脚接GND。还有它自带了2路的PWM,所以这款增强型的单片机非常适合我的设计要求。

2.4.2 单片机电路

函数发生器的设计电路是根据单片机最小系统,外接外围电路组成的。单片机最小系统由STC89C52R单片机、12M晶振、22pf的电容,由于STC89C52R单片自己内部不带复位电路,所以要在外围额外增加复位电路,确保单片机上电。

1.单片机最小系统

单片机最小系统在学习的单片机时是非常有用,就算开发的电路十分复杂,外围电路很多,使用的逻辑器件很多,但是还是离不开单片机最小系统。在STC系列中已经有的单片机内置了最小系统了,只需要给单片机供电,单片机就可以正常的工作了。在这了我选取的是STC89C52RC,该电路没内置的晶振、复位电路等最小系统需要的电路,不过该电路的优势在于,价格便宜,符合我的开发需要。

单片机的18、19引脚是时钟信号的输入端口,把12M的晶振直接接在这两个端口上,为了是时钟能震荡起来需要在晶振的两个引脚接入22pf的电容,这样才可以是电路震荡起来,就能给单片机一个时钟命令。在电路中的晶振是石英振荡器。晶振具有非常好的频率稳定性和抗外界干扰的能力,所以晶振是用来产生时钟信号的,通过时钟信号来控制电路工作。数字电路的工作是根据电路设计,在某个时刻专门完成特定的任务,如果没有一个时序控制的标准时刻,整个数字电路就不知道什么时刻做什么事情了。所以一定要假如晶振时钟电路。

复位电路。单片机的RES引脚需要上电复位,就是给它一个高电平信号,不过不能直接接5V电压,这样单片机就一直处于复位状态,那单片机就不用工作了。这里应该是电源信号接一个0.47uf的电容,这样一上电,单片机就能复位了,也要可以接一个机械按键,通过按键是电容内的电压经过按键电路流入地,高电平就可以个RES引脚了,单片机就可

单片机的40脚和20脚。40脚是接电源,20脚是接地。单片机这能在3.3V-5.5下工作,超过或低于这样的环境单片机时不会工作的。还要注意的是单片机的EA脚。所有的引脚空置的时候都是高电平,EA脚需要的是高电平的环境,可以空置,但是空置的话,有时会受到外界环境的干扰,所以还是需要把该引脚接上高电平。

2.外围电路

单片机有32个I/O口,在编程的时候我使用了20个I/O口,P0的8个端口接的是DAC0832的D0~D7的数据端口,P1的8个端口我接的是LCD1602的D0~D7数据端口,P2^4、P2^3、P2^2接的是LCD1602的控制端口,1X4键盘通过一个4选1的逻辑器件接在P3^2上,由于要用一个4选1的器件,在PCB的布局上会增加难度,所以我选优个1N4007的这一款二极管,利用二极管的单向导通性,实现了4选1,完美的替代了4选1的逻辑器件,降低了成本,且美观。

外围电路只需要用到了LCD1602、DAC0832、LM358等器件。

2.5 数模转换模块

DAC0832芯片介绍:

DAC0832输出方式有两种分别为:单极性输出和双极性输出,这次我采取的是双极性输出方式。DAC0832是一款能与单片完美结合的数模转换芯片,因为它的数据端口接的是单片机的I/O,I/O输出的是TTL电平,而DAC0832的D0~D7就是根据TTL电平变化的。它的ILE、CS、WR1 、WR2和XFER的接法是有技巧的,不能随便输送高电平或低电平,只有当CS为低电平时、WR1为低电平、ILE和XFER为高电平,这款芯片才可以正常的工作。这个接法是根据DAC0832芯片内部结构定义的。

DAC0832的内部结构框图如下图所示。

DAC0832的外部引脚及功能介绍图如下:

实际电路接法是D0~D7接单片机的P0口,由于I/O口驱动能力不足,会使产生的信号失真,所以加了一个上拉电阻,这个上拉电阻是一个9针的10K的排阻。然后把CS与WR1接在一起,再接到单片的P2^0,通过单片机控制,是否让数模转换模块工作,9(RFB)脚输出的是一个反馈值,从DAC0832的机构图可以看出来的,通过与11(OUT1)脚输出的值比较就可以输出波形的信号了。8(VREF)脚电压基准引脚用作为参考电压,其电压范围是正负10V,所以当我设计调幅电路是接入的是12V,但是输出的电压只有10V,就是因为参考的设置的范围。3脚是模拟电路接地,直接跟10脚相接,再接地就行了。

2.7 显示模块

LCD1602显示

LCD1602是一款简单的LCD显示器,它分为2行,每行有16个5X8的点阵,所以在

第二行为0X40,它的入口地址为0X80。对它进行操作时,一定要先读它的状态,是否在忙,如果不忙,才可以在数据写进去。所以在编写LCD1602显示的程序分为以下步骤:先初始化,然后读取它的状态,判断状态是否为忙,再进行写数据,只让才可以让他工作,在写数据之前一定要先定义好坐标。RS、RW、E不同状态是有不同的作用。

LCD1602的引脚定义简单,把2脚和15脚接上5V的电压,在把1脚与16脚接上地,3脚是偏置信号,所谓的偏置信号就是控制LCD1602的清晰度,让该显示的小灯达到一定的发光程度,让不该光的小灯不会发亮,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,这样就能便于观察LCD1602屏幕的信息。4、5、6脚分别是RS(寄存器)、RW(读写信号)、E(使能脚),这三个脚与单片机的P2.4、P2.3、P2.2端口相接,什么时候让它置高低电平是根据LCD1602的数据手册来定义的,单片机通过控制这三个脚就可以对LCD1602进行读写操作了,7-14脚是双向数据端口用来初始化LCD1602的。

LCD1602的通讯方式为UART,即异步通信,所谓的异步通信是单片机的时钟与它的时钟是不同步的,如果不同步怎么通讯?其实异步通信的工作原理是将传输数据的每个字符一位接一位地传输,它自己有个奇偶校验位,用来判断传输字节时是否有错误。

STC12A5C60S2数字示波器

STC12A5C60S2数字示波器的简单介绍。

这个通过数据采集并且可以显示波形的简单示波器是由一个12864(驱动芯片ST7565)和一块STC12C5A60S2组成的。由于没用使用外部的AD芯片,采用了一块自带AD的单片机,测量范围是10K,虽然不是很精确,但是可以用来测量自己做的函数发生器产生的波形,这样就可以省去用示波器观察的步骤的,直观的在12864上可以看到波形。

数字示波器的工作原理很简单,而且在电路布局的时候我应经尽量采用小的仪器件,因为这个不是我主要的设计要求,所以尽可能简单就做多简单。数据采集是这样的,信号通过一个0.47uf的电容,对杂波的过滤,然后接着连接到P1^2的管脚上,这是就是单片机工作的时候了。采集的信号是模拟信号,要转换为数字信号,单片机才能认识,用单片机自带的AD进行转换就行了。10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)。转化成数字信号后就是让12864显示出波形了。选取的12864用的驱动芯片ST7565,这种液晶屏的好处是只需要用到8个管脚就可以对它进行读写操作了,这比一般的12864要好,普通的要用的16个管脚,占用了太多的管脚,在布线的时候不方便的,不过用普通的编程的时候有一点好处,就是它跟LCD1602驱动一样,会简单一点,但是在开发设计的时候有一个大原则,就是能用软件实现的尽量用软件实现,而不用硬件来替代。

编程设计的时候这种单片机有点难度,因为之前都是用STC89C52的,用来它编程的话是挺容易的,但是这个涉及算法,要用到一个电压衰减的算法,由于在这方面涉及的不多,所以我上网查询了好多资料,讲解这些方面的很少,通过不停的更换关键搜索,终于

给我找到了这方面的内容了。这样很成功的做出了个简易示波器。

2.8本章小结

函数发生器的选型方案真的很多,到底哪一个方案符合需要,要按照设计要求才可以。其实一个函数发生器,做出来只需要一个内置PWM和AD的单片机,再外围接个放大电路就能实现了不同波形的输出,而这次的设计我使用的是DAC0832这款芯片,所以这种方案是不能选取的,所以方案的选取会影响到后期的程序设计以及硬件电路。

硬件电路的设计设计的知识点真的很多,由于PCB电路板是自己做的所以在画PCB 的时候尽可能的画单面板,双面板在优化设计上以及做PCB板技术提高的情况下再选取,所以优先选取单面的PCB板。Altium designer这个软件画原理图的时候尽量小用网络表示符号,一但用了再画PCB的时候,会出现网络符号丢失,这样线就连不过去了,对后期的做板有很大的影响,因为做好了板了,元器件都焊接好了,程序又可以,这样检测是问题就很难找到了,所以还是建议把原理图画好在导入到PCB中。布线的时候要自己布线,自动布线的功能非常不好用,它会把线布的很多,而且有时候还会出现断线,却线的情况,所以还是自己对元器件布局,自己布线,才能更好的熟悉自己的做的东西。

器件的选型至关重要,优先考虑的选型方案是简洁,稳定,便宜。做PCB也是先做到能做单层,尽量做单层,能自己布线的,就自己布线。硬件的设计是很有讲究的,一定不能马马虎虎,不然做出来的东西就会很麻烦,特别是在调试的过程中,问题会很多。

第3章软件设计

3.1 系统主程序设计

(一)总体方框图

通过matlab采样得到的值在y轴上表示,通过单片机自身的定时器0,跳入到中断子程序查波形ROM表输出数字信号。通过定时器产生的数字信号比较稳定,不过也可以用延迟产生的波形,一个while语句里面嵌套一个延迟程序,但是这样做产生的波形会失真,所以没有用这个方法。产生的数字信号传送给数模转换芯片,在由放大电路放大,这样就可以有波形输出了。在没有放大电路的作用下,DAC0832产生的信号过于低,不能由示波器观察。

STC12A5C60S2数字示波器的机构框图:

AD模数转换跟DA数模转换的道理是一样的,这是DA的逆过程。AD的参考电压是5V,那么最小的电压是5/256V(8位的AD转换器是256),假设输入电压为x,那么转换给单片机的数字信号为,x/(5/256),再把这个值转换为二进制,这样单片机就能识别,这就是AD采集的过程,单片机把该值存放在寄存器,在输送给12864,让12864显示一个动态过程,其实是很多张图片的叠加,只是设置好它刷新频率,就可有动画显示了。(二)程序设计

程序是单片机的核心部分,会了程序等于会了单片机。编写一个函数发生器的程序有很多种方法,哪一种是真正的适合自己的设计呢?所以要不断的尝试才能找到适合自己

的。

这次的程序设计我用的方法是利用定时器0,定时时间就是波形的频率。在主函数里设计好定时器0的工作方式后,单开中断入口地址,接着就是一个while(1)的死循环了。单片机中中断程序有执行等级的,单片机默认的优先等级为:外部中断0>定时器0>外部中1>定时器1,中断入口地址分别为0、1、2、3,所以这里我用到的是定时器0,中断入口地址为1。键盘输入时用到的是外部中断0,中断入口地址是0。所以在设计程序的时候我帮TH0、TL0放在外部中断0,当有按键动作是,程序就调到外部中断0的子程序,开始设计定时时间,当定时时间到了,就会调到中断1的子程序,执行一个波形的子程序,该子程序就是让P0口输出波形的数字信号,通过定时器不断循环,从而产生一个完整周期的波形。在中断0的子程序还执行的内容是让LCD1602显示字符串,就可以做到按一下按键同时可以做到波形的切换和LCD1602的波形类型的显示。这个程序就是函数发生器的核心内容。

而STC12A5C60S2数字示波器的程序设置稍微有点麻烦,当采集的信号小于100us时,直接采样,软件延迟的方法,而没有有定时器,这样虽然不能精确的定时,但是可以加快扫描时间,这样12864的刷新频率会加快的。当采样时间大于等于100us时,采用的是定时器采样得方式,这种方案可以做到波形更加的精准,但是采样时间很有点慢。采集完信号够就是对电压衰减处理过程了。用个状态机,所谓的状态机就是swich语句,每个电压值有个衰减过程,假如是1V电压输入,先进入一个for循环进行检测,再通过2个if语句进行判断,接着就是将该点在上12864上显示。12864(st7565),做个表格ROM,if语句判断过后就是读取ROM表上值,这个值在送个12864,这样就能显示图片了。

(三)波形产生过程

1)三角波的产生

三角波,波形的ROM表是从0x00加1到0x01,依次增加的,它的一个周期是从0x00到0xff再到0x00周期不断的循环就能产生了三角波。频率的的范围是22-227HZ。

流程图如下图所示:

三角波产生流程图

程序:

void triangle_out() //三角波输出

{

DAdata=triangle_tab[wavecount++];

if(wavecount>64) wavecount=0;

DA_S1=0; //打开8位输入寄存器

DA_S1=1; //关闭8位输入寄存器

2)方波的产生过程

此波形的实现更加简单,只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时

间一定要等于前面那段时间。这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了,也是运用到定时作用。

流程图如下图所示:

方波产生流程图

程序:

void square_out() //方波输出

{

judge=~judge;

if(judge==1) DAdata=0xff;

else DAdata=0x00;

DA_S1=0; //打开8位输入寄存器

DA_S1=1; //关闭8位输入寄存器

3)锯齿波的产生过程

锯齿波的产生方法跟三角波产生的方法差不多,不过它的ROM表计算是先从0以此加到0xff,再回归到0,这一个周期一个周期的显示,流程图如下图所示:

锯齿波产生流程图

程序:

void triangle_out() /锯齿波输出

{

DAdata=triangle_tab[wavecount++];

if(wavecount>64) wavecount=0;

DA_S1=0; //打开8位输入寄存器

DA_S1=1; //关闭8位输入寄存器

4)正弦波的产生过程

这个波形分为4个ROM表,1/4个周期来做的,这样做的效果等到一条比较均匀的波形。

流程图如下图所示:

正弦波产生流程图

程序:

void sine_out() //正弦波输出 {

DAdata=sine_tab[wavecount++]; DA_S1=0; //打开8位输入寄存器

DA_S1=1; //关闭8位输入寄存器

5)梯形波的产生过程

梯形波也是一样,它的ROM 表示充0加到0xff ,接着延迟一段时间,在充0xff 减下去,这就是也个周期;

流程图如下图所示

梯形波产生流程图

程序:

void triangle_out() /梯形波输出

{

DAdata=triangle_tab[wavecount++];

if(wavecount>64) wavecount=0;

DA_S1=0; //打开8位输入寄存器

DA_S1=1; //关闭8位输入寄存器

3.2 键盘按键

通过按钮实现波形的切换比较简单只需通过输出波形后不断返回到检测按钮的子程序中,判断是否有别的按钮的拨动,与中断into输入相关,其中由于选用4选1的与非门的布线较为麻烦,所以本设计没有采用与非门,,而是选用了4个1N4007二极管与into

函数发生器的设计

函数发生器的设计

目录 一、设计任务与要求 二、方案与论证 1.正弦波产生电路: 1. 1RC桥式正弦波振荡电路: 2.正弦波变换为方波的电路: 2.1 电压比较器电路: 3.方波变换为三角波的电路: 3.1 积分运算电路: 三、仿真 四、元器件清单 五、调式与性能分析:

一、 设计任务与要求: 掌握方波——三角波——正弦波函数发生器的设计方法与测试技术。了解集成运算放大器与晶体管差分放大器组成的函数发生器的工作原理与设计方法。学会安装与调试由分离器件与集成电路组成的多级电子电路小系统。 设计并制作一个简易函数发生器,要求如下: 1. 输出波形:正弦波、方波、三角波等 2. 频率范围:1Hz~10Hz, 10Hz~100Hz 3. 输出电压:方波Vp-p<=24V , 三角波Vp-p<=8V , 正弦波Vp-p>1V . 二、方案与论证 方案总体分为三部分,先设计一个正弦波发生电路,再将正弦波信号经迟滞比较器转化为方波,再将方波经积分运算转变为三角波。 正弦波 方波 三角波 1. 正弦波产生电路: RC 桥式振荡电路原理图如下: RC 桥式振荡电路 迟滞比较器 积分电路

3 2 6 7 415 U1 UA741 C C R R RF R1 0R1 由选频网络和放大电路两部分组成。选频网络兼作放大电路的正反馈,反馈系数Fv = Vf / V o ,当f =1 / (2πRC) 时,幅频响应的幅值为最大Fmax = 1/3 ,相频响应的相位角为零。也就是说,只有当f =1 / (2πRC) 时,输出电压的幅值最大,为输入电压的1/3,且输出电压与输入电压同相。 噪声中有f =1 / (2πRC) 这个频率,直流电源提供能源,选频网络的正反馈使输出频率越来越大,最后受电路中非线性元件的限制,振荡幅度自动稳定下来。适当调整负反馈的强弱,使Av

DAC0832的波形发生器(汇编)

ORG 0000H KB:MOV P1,#0FFH;置P0口为输入方式MOV A,P1;读键值 CPL A ANL A,#1FH;屏蔽高三位 JZ KB;无键闭合继续检测 ACALL DL Y_10MS;延时10ms,去抖动MOV A,P1;再次检测有无键闭合 CPL A ANL A,#1FH JZ KB CJNE A,#01H,KB01 LCALL FANGBO;调用方波子程序SJMP KB KB01:CJNE A,#02H,KB02 LCALL JVCHI;调用锯齿波子程序SJMP KB KB02:CJNE A,#04H,KB03 LCALL TIXING;调用梯形波子程序SJMP KB KB03:CJNE A,#08H,KB04 LCALL SANJIAO;调用三角波子程序SJMP KB KB04:CJNE A,#10H,KB LCALL ZHENGXIAN;调用正弦波子程序SJMP KB ;方波子程序////////////// FANGBO: MOV DPTR,#0FFFEH LP1: MOV A,0 MOVX @DPTR,A LCALL DELAY1 MOV A,#0FFH MOVX @DPTR,A LCALL DELAY1 AJMP LP1 ;锯齿波子程序///////////// JVCHI: MOV DPTR,#0FFFEH MOV A,#0FFH WW:MOVX @DPTR,A DEC A NOP

NOP NOP AJMP WW ;梯形波子程序 TIXING: MOV DPTR,#0FFFEH MOV R2,#07DH MOV R4,#0AFH MOV A,#00H D1:MOVX @DPTR,A LCALL DELAY2 ADD A,R2 DJNZ R4,D1 AJMP D1 ;三角波子程序/////////////// SANJIAO: MOV DPTR,#0FFFEH MOV R6,#10H MOV A,#00H LOOP1: MOVX @DPTR,A ADD A,R6 CJNE A,#0FFH,LOOP1 LOOP2: MOVX @DPTR,A SUBB A,R6 CJNE A,#07H,LOOP2 AJMP LOOP1 ;正弦波子程序///////////////// ZHENGXIAN: MOV R1,#00H QZ:MOV A,R1 MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV DPTR,#0FFFEH MOVX @DPTR,A INC R1 AJMP QZ ;延时程序2 DELAY2:MOV 31H,#02H PW:DJNZ 31H,PW RET ;延时子程序1 DELAY1: MOV 30H,#0FFH

什么是函数信号发生器,函数信号发生器的作用,函数信号发生器的工作原理

什么是函数信号发生器,函数信号发生器的作用,函数信号发生器的工作原 理 什么是函数信号发生器?函数信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。 函数信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。 函数信号发生器的工作原理:函数信号发生器是一种能提供各种频率、波形和输出电平电信号的设备。在测量各种电信系统或电信设备的振幅特性、频率特性、传输特性及其它电参数时,以及测量元器件的特性与参数时,用作测试的信号源或激励源。它能够产生多种波形,如三角波、锯齿波、矩形波、正弦波,所以在生产实践和科技领域中有着广泛的应用。 函数信号发生器系统主要由主振级、主振输出调节电位器、电压放大器、输出衰减器、功率放大器、阻抗变换器和指示电压表构成。当输入端输入小信号正弦波时,该信号分两路传输,一路完成整流倍压功能,提供工作电源;另一路进入一个反相器的输入端,完成信号放大功能。该放大信号经后级的门电路处理,变换成方波后经输出,输出端为可调电阻。 函数信号发生器产生的各种波形曲线均可以用三角函数方程式来表示,函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频发射,这里的射频波就是载波,把音频、视频信号或脉冲信号运载出去,就需要能够产生高频的振荡器。在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振成像等,都需要功率或大或小、频率或高或低的振荡器。

基于51单片机的函数信号发生器的设计

龙源期刊网 https://www.360docs.net/doc/999137899.html, 基于51单片机的函数信号发生器的设计 作者:朱兆旭 来源:《数字技术与应用》2017年第02期 摘要:本文所设计的系统是采用AT89C51单片机和D/A转换器件DAC0832产生所需不 同信号的低频信号源,AT89C51 单片机作为主体,采用D/A转换电路、运放电路、按键和LCD液晶显示电路等,按下按键控制生成方波、三角波、正弦波,同时用LCD显示相应的波形,输出波形的周期可以用程序改变,具有线路简单、结构紧凑、性能优越等特点。 关键词:51单片机;模数转换器;信号发生器 中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2017)02-0011-01 1 前言 波形发生器,是一种作为测试用的信号源,是当下很多电子设计要用到的仪器。现如今是科学技术和设备高速智能化发展的科技信息社会,集成电路发展迅猛,集成电路能简单地生成各式各样的波形发生器,将其他信号波形发生器于用集成电路实现的信号波形发生器进行对比,波形质量、幅度和频率稳定性等性能指标,集成电路实现的信号波形发生器都胜过一筹,随着单片机应用技术的不断成长和完善,导致传统控制与检测技术更加快捷方便。 2 系统设计思路 文章基于单片机信号发生器设计,产生正弦波、方波、三角波,连接示波器,将生成的波形显示在示波器上。按照对作品的设计研究,编写程序,来实现各种波形的频率和幅值数值与要求相匹配,然后把该程序导入到程序存储器里面。 当程序运行时,一旦收到外界发出的指令,要求设备输出相应的波形时,设备会调用对应波形发生程序以及中断服务子程序,D/A转换器和运放器随之处理信号,然后设备的端口输出该信号。其中,KEY0为复位键,KEY1的作用是选择频率的步进值,KEY2的作用是增加频 率或增加频率的步进值,KEY3的作用是减小频率或减小频率的步进值,KEY4的作用是选择三种波形。103为可调电阻,用于幅值的调节。自锁开关起到电源开关的作用。启动电源,程序运行的时候,选择正弦波,红色LED灯亮起;选择方波,黄色LED灯亮起;选择三角波,绿色LED灯亮起。函数信号发生器频率最高可达到100Hz,最低可达到10Hz,步进值0.1- 10Hz,幅值最高可到3.5V。系统框图如图1所示。 3 软件设计

基于DAC0832芯片的简单信号发生器设计

东北石油大学课程设计 2012年3月 9 日

东北石油大学课程设计任务书 课程单片机原理及应用课程设计 题目基于DAC0832芯片的简单信号发生器设计 专业班级姓名学号 一、设计目的:训练学生综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。 二、设计要求: 1. 应用MCS-51单片机设计基于DAC0832芯片的简单信号发生器; 2. 频率范围:0-1KHZ,输出电压:方波Up-p>3V,正弦波Up-p> 1V,波形特性:方波tr<100us,正弦波非线性失真系数r<5%; 3. 硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程; 4. 软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单; 5. 原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。 三、参考资料: [1] 单片微型计算机与接口技术,李群芳、黄建编著,电子工业出版社; [2] 单片机原理及应用,张毅刚编著,高等教育出版社; [3] 51系列单片机及C51程序设计,王建校,杨建国等编著,科学出版社; [4] 单片机原理及接口技术,李朝青编著,北京航空航天大学出版社; 完成期限2012.3.5—2012.3.9 指导教师 专业负责人 2012年 3 月2 日

目录 目录.......................................................................................................................... I 第1章概述.. (1) 第2章信号发生器的原理 (2) 2.1 AT89C51芯片的简单介绍 (2) 2.2 数模转换器DAC0832的简单介绍 (4) 2.3共阳数码管和运算放大器LM358 (6) 第3章硬件电路设计 (7) 3.1 单片机最小系统 (7) 3.2 电源电路的设计 (8) 3.3 D/A转换接口电路的设计 (8) 第4章程序设计 (9) 4.1 主程序设计 (9) 4.2 信号发生器源程序 (10) 第5章总结 (14) 参考文献 (15)

函数信号发生器使用说明(超级详细)

函数信号发生器使用说明 1-1 SG1651A函数信号发生器使用说明 一、概述 本仪器是一台具有高度稳定性、多功能等特点的函数信号发生器。能直接产生正弦波、三角波、方波、斜波、脉冲波,波形对称可调并具有反向输出,直流电平可连续调节。TTL可与主信号做同步输出。还具有VCF输入控制功能。频率计可做内部频率显示,也可外测1Hz~的信号频率,电压用LED显示。 二、使用说明 面板标志说明及功能见表1和图1 图1 表1 序 面板标志名称作用号 1电源电源开关按下开关,电源接通,电源指示灯亮 2 1、输出波形选择 波形波形选择 2、与1 3、19配合使用可得到正负相锯齿波和脉

DC1641数字函数信号发生器使用说明 一、概述 DC1641使用LCD显示、微处理器(CPU)控制的函数信号发生器,是一种小型的、由集成电路、单片机与半导体管构成的便携式通用函数信号发生器,其函数信号有正弦波、三角波、方波、锯齿波、脉冲五种不同的波形。信号频率可调范围从~2MHz,分七个档级,频率段、频率值、波形选择均由LCD显示。信号的最大幅度可达20Vp-p。脉冲的占空比系数由10%~90%连续可调,五种信号均可加±10V的直流偏置电压。并具有TTL电平的同步信号输出,脉冲信号反向及输出幅度衰减等多种功能。除此以外,能外接计数输入,作频率计数器使用,其频率范围从10Hz~10MHz(50、100MHz[根据用户需要])。计数频率等功能信息均由LCD显示,发光二极管指示计数闸门、占空比、直流偏置、电源。读数直观、方便、准确。 二、技术要求 函数发生器 产生正弦波、三角波、方波、锯齿波和脉冲波。 2.1.1函数信号频率范围和精度 a、频率范围 由~2MHz分七个频率档级LCD显示,各档级之间有很宽的覆盖度, 如下所示: 频率档级频率范围(Hz) 1 ~2 10 1~20 100 10~200

函数信号发生器

函数信号发生器 函数信号发生器 作者:华伟锋卞蕊樊旭超 2013-8-8

函数信号发生器 摘要 直接数字频率合成(DDS)是一种重要的频率合成技术,具有分辨率高、频率变换快等优点,在雷达及通信等领域有着广泛的应用前景。本文介绍了DDS(直接数字频率合成)的基本原理和工作特点,提出以DDS芯片AD9850芯片为核心利用MSP430F5438单片机控制,辅以必要的外围电路,构成一个输出波形稳定、精度较高的信号发生器。该信号发生器主要能产生标准的正弦波、方波与三角波(锯齿波),波形可手动切换,频率步进可调,软件系统采用菜单形式进行操作,LCD液晶显示可实时显示输出信号的类型、幅度、频率和频率步进值,操作方便明了,还增加了很多功能。 关键词:AD9850;信号发生器;MSP430F149单片机;DDS;LCD液晶; Abstact:Direct Digital Synthesis (DDS) is an important frequency synthesizer technology, with high resolution, fast frequency conversion, etc., in radar and communications and other fields have a wide range of applications. This article describes the DDS (direct digital frequency synthesis) of the basic principles and work, we proposed to DDS chip AD9850 chip as the core using MSP430F5438 MCU control, supplemented by the necessary peripheral circuits to form a stable output waveform, high precision signal generator . The signal generator can generate standard primary sine wave, square wave and triangular wave (sawtooth), the waveform can be manually switched, frequency step adjustable software system used to operate the menu form, LCD liquid crystal display can be real-time display of the output signal type , amplitude, frequency and frequency step value, easy to understand, but also adds a lot of functionality. Key words:AD9850; signal generator; MSP430F5438MCU; DDS; LCD liquid crystal;

函数发生器设计和仿真实现

课程设计 课程名称模拟电子技术基础课程设计题目函数发生器 学院 专业 班级 姓名 指导教师 2015 年01 月20 日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 函数发生器的设计和仿真实现 初始条件: 具备模拟电子电路的理论知识; 具备模拟电路基本电路的设计能力; 具备模拟电路的基本调试手段; 自选相关电子器件。 要求完成的主要任务: (1)设计任务 根据要求,完成对方波-三角波-正弦波发生器的仿真设计、仿真、装配与调试,并自制直流稳压电源 (2)设计要求 ①正弦波Upp≈3V,幅度连续可调;三角波Upp≈5V,幅度连续可调;方波Upp≈14V,幅度连续可调。 频率范围:三段:10~100Hz,100 Hz~1KHz,1 KHz~10 KHz; 频率控制方式:改变RC时间常数; 正弦波输出电量:电流; ②选择电路方案,完成对确定方案电路的设计。 ③利用Proteus或Multisim仿真设计电路原理图,确定电路元件参数、掌握电路工作原理并仿真实现系统功能。 ④安装调试并按规范要求格式完成课程设计报告书。 ⑤选做:利用仿真软件的PCB设计功能进行PCB设计。 时间安排: 1、 2015 年 1月13日集中,作课设具体实施计划与课程设计报告格式的要求说明,查阅相关资料,学习电路的工作原理。。 2、 2015 年 1月14日至2015年1月16日,方案选择和电路设计。 3、 2015 年 1月 17日至2015年1月18日,电路调试和设计说明书撰写。 4、 2015 年 1月 20日上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

课程设计-基于DAC0832的波形发生器设计讲解

波形发生器设计 目录 摘要 (1) 第一章绪论 (2) 第二章DAC0832及其特性 (3) 2.1 D/A转换器与单片机接口探究 (3) 2.1.1 数据线连接 (3) 2.1.2 地址线连接 (3) 2.1.3 控制线连接 (3) 2.2 DAC0832的认识 (4) 2.2.1 DAC0832的结构 (4) 2.2.2 DAC0832的引脚 (4) 2.2.3 DAC0832的启动控制方式 (5) 第三章硬件设计 (7) 3.1 启动方式选择 (7) 3.2 框图设计 (7) 3.3 电路图设计 (7) 第四章程序设计 (9) 4.1 程序流程图 (9) 4.1.1 程序设计思路 (9) 4.1.2流程图 (9) 4.2 用C语言实现 (11) 4.3 用汇编语言实现 (14) 第五章Proteus仿真及结果 (17) 5.1方波: (17) 5.2正弦波: (17) 5.3三角波: (18) 5.4梯形波: (18) 5.5锯齿波: (19) 设计心得: (20) 参考文献: (21)

摘要 本设计使用AT89C51单片机做控制,选择8位D/A转换器DAC0832作D/A 转换。 硬件方面,首先51熟悉单片机的结构和工作原理,连接单片机的最小系统。之后熟悉D/A转换器工作方式,经过分析后选择DAC0832的单缓冲启动控制方式,完成电路框图。进一步根据设计要求完成通过独立按键控制D/A输出,作出电路框图和电路原理图。 软件方面:设计思路主要体现在两点上。一是控制,通过程序控制DAC转换与输出,按键消抖,选择相应的即将输出的波形。二是产生波形,根据波形的特点编写程序以产生相应波形的数字信号。 分别通过C语言和汇编语言实现简易的波形发生器,输出方波、正弦波、三角波、梯形波和锯齿波,通过独立按键控制分别输出不同的波形。以KILL 与Proteus为设计平台,仿真测试设计结果的正确性。 关键字: 51单片机,DAC0832,单缓冲启动控制方式,波形发生器,C语言设计,汇编语言设计

EDA实验 函数信号发生器

EDA设计实验 题目:函数信号发生器 作者: 所在学院:信息科学与工程学院 专业年级: 指导教师: 职称: 2011 年 12 月 11 日

函数信号发生器 摘要:函数信号发生器在生产实践和科技领域有着广泛的应用。本设计是采用了EDA技术设计的函数信号发生器。此函数信号发生器的实现是基于VHDL语言描述各个波形产生模块,然后在QuartusⅡ软件上实现波形的编译,仿真和下载到Cyclone芯片上。整个系统由波形产生模块和波形选择模块两个部分组成。最后经过QuartusⅡ软件仿真,证明此次设计可以输出正弦波、方波、三角波,锯齿波,阶梯波等规定波形,并能根据波形选择模块的设定来选择波形输出。 关键字:函数信号发生器;Cyclone;VHDL;QuartusⅡ 引言: 函数信号发生器即通常所说的信号发生器是一种常用的信号源,广泛应用于通信,雷达,测控,电子对抗以及现代化仪器仪表等领域,是一种为电子测量工作提供符合严格要求的电信号设备是最普通、最基本也是应用最广泛的电子仪器之一,几乎所有电参量的测量都要用到波形发生器。随着现代电子技术的飞速发展,现代电子测量工作对函数信号信号发生器的性能提出了更高的要求,不仅要求能产生正弦波、方波等标准波形,还能根据需要产生任意波性,且操作方便,输出波形质量好,输出频率范围宽,输出频率稳定度、准确度、及分辨率高等。本文基于

EDA设计函数信号发生器,并产生稳定的正弦波、方波、锯齿波、三角波、阶梯波。 正文: 1、Quartus II软件简介 1)Quartus II软件介绍 Quartus II 是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言及有多种高级编程语言接口等特点。 Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第

如何使用函数信号发生器

如何使用函数信号发生器 认识函数信号发生器 信号发生器一般区分为函数信号发生器及任意波形发生器,而函数波形发生器在设计上又区分出模拟及数字合成式。众所周知,数字合成式函数信号源无论就频率、幅度乃至信号的信噪比(S/N)均优于模拟,其锁相环( PLL)的设计让输出信号不仅是频率精准,而且相位抖动(phase Jitter)及频率漂移均能达到相当稳定的状态,但毕竟是数字式信号源,数字电路与模拟电路之间的干扰,始终难以有效克服,也造成在小信号的输出上不如模拟式的函数信号发. 这是通用模拟式函数信号发生器的结构,是以三角波产生电路为基础经二极管所构成的正弦波整型电路产生正弦波,同时经由比较器的比较产生方波,换句话说,如果以恒流源对电容充电,即可产生正斜率的斜波。同理,右以恒流源将储存在电容上的电荷放电即产生负斜率的斜波,电路结构如下: 当I1 =I2时,即可产生对称的三角波,如果I1 > >I2,此时即产生负斜率的锯齿波,同理I1 < < I2即产生正斜率锯齿波。 再如图二所示,开关SW1的选择即可让充电速度呈倍数改变,也就是改变信号的频率,这也就是信号源面板上频率档的选择开关。同样的同步地改变I1及I2,也可以改变频率,这也就是信号源上调整频率的电位器,只不过需要简单地将原本是电压信号转成电流而已。 而在占空比调整上的设计有下列两种思路: 改变电平的幅度,亦即改变方波产生电路比较器的参考幅度,即可达到改变脉宽而频率不变的特性,但其最主要的缺点是占空比一般无法调到20%以下,导致在采样电路实验时,对瞬时信号所采集出来的信号有所变动,如果要将此信号用来作模数(A/D)转换,那么得到的数字信号就发生变动而无所适从。但不容否认的在使用上比较好调。 2、占空比变,频率跟着改变,其方法如下: 将方波产生电路比较器的参考幅度予以固定(正、负可利用电路予以切换),改变充放电斜率,即可达成。 这种方式的设计一般使用者的反应是“难调”,这是大缺点,但它可以产生10%以下的占空比却是在采样时的必备条件。 以上的两种占空比调整电路设计思路,各有优缺点,当然连带的也影响到是否能产生“像样的”锯齿波。 接下来PA(功率放大器)的设计。首先是利用运算放大器(OP) ,再利用推拉式(push-pull)放大器(注意交越失真Cross-distortion的预防)将信号送到衰减网路,这部分牵涉到信号源输出信号的指标,包含信噪比、方波上升时间及信号源的频率响应,好的信号源当然是正弦波信噪比高、方波上升时间快、三角波线性度要好、同时伏频特性也要好,(也即频率上升,信号不能衰减或不能减太大),这部分电路较为复杂,尤其在高频时除利用电容作频率补偿外,也牵涉到PC板的布线方式,一不小心,极易引起振荡,想设计这部分电路,除原有的模拟理论基础外尚需具备实际的经验,“Try Error”的耐心是不可缺少的。 PA信号出来后,经过π型的电阻式衰减网路,分别衰减10倍(20dB)或100倍(40dB),此时一部基本的函数波形发生器即已完成。(注意:选用π型衰减网络而不是分压电路是要让输出阻抗保持一定)。 一台功能较强的函数波形发生器,还有扫频、VCG、TTL、 TRIG、 GATE及频率计等功能,其设

51单片机与0832波形发生器锯齿波、三角波、正弦波

// 锯齿波 #include #include // 绝对地址访问头文件 #define DAC0832 XBYTE[0x7fff] //DAC0832的地址为0x7fff void delay() // 定时器定时1ms { TH1=0xfc; TL1=0x18; //定时器初值设定 TR1=1; //启动定时器 while(!TF1); //查询是否溢出 TF1=0; //将溢出标志位清零 } void main() {unsigned char i; TMOD=0x10; // 设置定时器工作方式 while(1) {for(i=0;i<=255;i++) //形成锯齿波,最大值为255 { DAC0832=i; // D/A转换输出 delay(); // 延时 } } } //三角波 #include #include // 绝对地址访问头文件 #define DAC0832 XBYTE[0x7fff] //DAC0832的地址为0x7fff void delay() // 定时器定时1ms { TH1=0xfc; TL1=0x18; //定时器初值设定 TR1=1; //启动定时器 while(!TF1); //查询是否溢出 TF1=0; //将溢出标志位清零 } void main() {unsigned char i; TMOD=0x10; // 设置定时器工作方式 while(1) {for(i=0;i<255;i++) //形成三角波,i增加到最大值为255 {

函数信号发生器使用说明

EE1641C~EE1643C型 函数信号发生器/计数器 使用说明书 共 11 张 2004年 10 月

1 概述 1.1 定义及用途 本仪器是一种精密的测试仪器,因其具有连续信号、扫频信号、函数信号、脉冲信号等多种输出信号,并具有多种调制方式以及外部测频功能,故定名为EE1641C型函数信号发生器/计数器、EE1642C(EE1642C1)型函数信号发生器/计数器、EE1643C型函数信号发生器/计数器。本仪器是电子工程师、电子实验室、生产线及教学、科研需配备的理想设备。 1.2 主要特征 1.2.1 采用大规模单片集成精密函数发生器电路,使得该机具有很高的可靠性及优良性能/价格比。 1.2.2 采用单片微机电路进行整周期频率测量和智能化管理,对于输出信号的频率幅度用户可以直观、准确的了解到(特别是低频时亦是如此)。因此极大的方便了用户。 1.2.3 该机采用了精密电流源电路,使输出信号在整个频带内均具有相当高的精度,同时多种电流源的变换使用,使仪器不仅具有正弦波、三角波、方波等基本波形,更具有锯齿波、脉冲波等多种非对称波形的输出,同时对各种波形均可以实现扫描、FSK调制和调频功能,正弦波可以实现调幅功能。此外,本机还具有单次脉冲输出。 1.2.4 整机采用中大规模集成电路设计,优选设计电路,元件降额使用, 以保证仪器高可靠性,平均无故障工作时间高达数千小时以上。 1.2.5 机箱造型美观大方,电子控制按纽操作起来更舒适,更方便。 2 技术参数 2.1 函数信号发生器技术参数 2.1.1 输出频率 a) EE1641C:0.2Hz~3MHz 按十进制分类共分七档 b) EE1642C:0.2Hz~10MHz 按十进制分类共分八档 c) EE1642C1:0.2Hz~15MHz 按十进制分类共分八档 d) EE1643C:0.2Hz~20MHz 按十进制分类共分八档 每档均以频率微调电位器实行频率调节。 2.1.2 输出信号阻抗 a) 函数输出:50Ω b) TTL同步输出:600Ω 2.1.3 输出信号波形 a) 函数输出(对称或非对称输出):正弦波、三角波、方波 b) 同步输出:脉冲波 2.1.4 输出信号幅度 a) 函数输出:≥20Vp–p±10%(空载);(测试条件:fo≤15MHz,0dB衰减) ≥14Vp–p±10%(空载);(测试条件:15MHz≤fo≤20MHz,0dB衰减) b) 同步输出:TTL电平:“0”电平:≤0.8V,“1”电平:≥1.8V(负载电阻≥600Ω) CMOS电平:“0”电平:≤4.5V,“1”电平:5V~13.5V可调(fo≤2MHz) c) 单次脉冲:“0”电平:≤0.5V,“1”电平:≥3.5V 2.1.5 函数输出信号直流电平(offset)调节范围:关或(–10V~+10V)±10%(空载) [“关”位置时输出信号所携带的直流电平为:<0V±0.1V,负载电阻为:50Ω时,调节范围为 (–5V~+5V)±10%]

函数信号发生器设计报告

函数信号发生器设计报告 目录 一、设计要求 .......................................................................................... - 2 - 二、设计的作用、目的 .......................................................................... - 2 - 三、性能指标 .......................................................................................... - 2 - 四、设计方案的选择及论证 .................................................................. - 3 - 五、函数发生器的具体方案 .................................................................. - 4 - 1. 总的原理框图及总方案 ................................................................. - 4 - 2.各组成部分的工作原理 ................................................................... - 5 - 2.1 方波发生电路 .......................................................................... - 5 - 2.2三角波发生电路 .................................................................... - 6 - 2.3正弦波发生电路 .................................................................. - 7 - 2.4方波---三角波转换电路的工作原理 ................................ - 10 - 2.5三角波—正弦波转换电路工作原理 .................................. - 13 - 3. 总电路图 ....................................................................................... - 15 - 六、实验结果分析 ................................................................................ - 16 - 七、实验总结 ........................................................................................ - 17 - 八、参考资料 ........................................................................................ - 18 - 九、附录:元器件列表 ........................................................................ - 19 -

函数信号发生器设计方案

函数信号发生器的设 计与制作 目录 一.设计任务概述 二.方案论证与比较 三.系统工作原理与分析 四.函数信号发生器各组成部分的工作原理 五.元器件清单 六.总结 七.参考文献

函数信号发生器的设计与制 一.设计任务概述 (1)该发生器能自动产生正弦波、三角波、方波。 (2)函数发生器以集成运放和晶体管为核心进行设计 (3)指标: 输出波形:正弦波、三角波、方波 频率范围:1Hz~10Hz,10Hz~100Hz 输出电压:方波VP-P≤24V,三角波VP-P=8V,正弦波VP-P>1V; 二、方案论证与比较 2.1·系统功能分析 本设计的核心问题是信号的控制问题,其中包括信号频率、信号种类以及信号强度的控制。在设计的过程中,我们综合考虑了以下三种实现方案: 2.2·方案论证 方案一∶采用传统的直接频率合成器。这种方法能实现快速频率变换,具有低相位噪声以及所有方法中最高的工作频率。但由于采用大量的倍频、分频、混频和滤波环节,导致直接频率合成器的结构复杂、体积庞大、成本高,而且容易产生过多的杂散分量,难以达到较高的频谱纯度。 方案二∶采用锁相环式频率合成器。利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需要频率上。这种频率合成器具有很好的窄带跟踪特性,可以很好地选择所需要频率信号,抑制杂散分量,并且避免了量的滤波器,有利于集成化和小型化。但由于锁相环本身是一个惰性环节,锁定时间较长,故频率转换时间较长。而且,由模拟方法合成的正弦波的参数,如幅度、频率相信都很难控制。 方案三:采用8038单片压控函数发生器,8038可同时产生正弦波、方波和三角波。改变8038的调制电压,可以实现数控调节,其振荡范围为0.001Hz~300K 方案四:采用分立元件设计出能够产生3种常用实验波形的信号发生器,并确定了各元件的参数,通过调整和模拟输出,该电路可产生频率低于1-10Hz的3种信号输出,具有原理简单、结构清晰、费用低廉的优点。该电路已经用于实际电路的实验操作。 三、系统工作原理与分析 采用由集成运算放大器与场效应管共同组成的方波—三角波—正弦波函数发生器的设计方法,先通过比较器产生方波,再通过积分器产生三角波,最后通过场效应管正弦波转换电路形成正弦波,波形转换原理图如下:

dac0832函数信号发生器.

智能仪器课程设计 设计题目:函数信号发生器设计 学生姓名:赵鑫、罗承波、江再农 学院名称:机械工程学院 班级:测控技术与仪器062班 学号:200646000227、20064600222、20064600215 指导教师:袁锋伟、王玉林、蒋彦 2009年6月

设计任务: 设计一个函数信号发生器,具体指标如下: 1采用AT89S51及DAC0832设计函数信号发生器; 2输出函数信号为正弦波或三角波或阶梯波; 3输出信号频率为100Hz,幅度0-10V可调; 4必须具有信号输出及外接电源、公共地线接口

低频函数信号发生器的设计 摘要:信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是利用分立元件组成的体积大,可靠性差,准确度低。课程设计需要各个波形的基本输出,这些波形的实现的具体步骤:正弦波的实现是非常麻烦的。它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。而三角波,则每次累加1,当达到初值时,每次累减1,算出延时时间,也就达到要求了,阶梯波和三角波类似!该设计使用的是AT89S51单片机构成的发生器,可产生三角波、方波、正弦波等多种波形,波形的频率可用程序控制改变。在单片机上加外围器件独立式开关,通过开关控制波形的选择。在单片机的输出端口接DAC0832进行DA转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。 关键词:信号发生器;单片机;波形调整

The design of low-frequency function signal-generator Abstract:Signal generator is a common signal source, widely used in electronic circuits, automatic control systems and experiments in areas such as teaching. Currently used by most of the signal generator is composed of discrete components use bulky, poor reliability, low accuracy. Curriculum design of the basic needs of all the output waveform, the waveform of the specific steps to achieve: the realization of sine wave is very troublesome. It is through the implementation of the definition of some data, and then direct the output when the definition of the implementation of the data on it. The triangle wave, then add 1 each time, when the initial value to reach every tired by 1, calculate the delay time, they meet the requirement, the ladder-wave and triangular wave similar! The design is composed of single-chip AT89S51 generator can produce the triangular wave, square wave, sine wave, etc.,

函数信号发生器

基于labview的函数信号发生器的设计 [摘要] 介绍一种基于labvIEW环境下自行开发的虚拟函数信号发生器,它不仅能够产 生实验室常用的正弦波、三角波、方波、锯齿波信号,而且还可以通过输入公式,产生测试和研究领域所需要的特殊信号。对任意波形的发生可实现公式输入;对信号频率、幅度、相位、偏移量可调可控;方波占空比可以调控;噪声任意可加、创建友好界面、信号波形显示;输出频谱特性;所有调制都可微调与粗调。该仪器系统操作简便,设计灵活,功能强大,可以完成不同环境下的测量要求。因此具有很强的实用性。 关键词:虚拟仪器,labvIEW,虚拟函数信号发生器,正弦波,三角波,方波,锯齿波, 特殊信号。 引言: 在有关电磁信号的测量和研究中,我们需要用到一种或多种信号源,而函数信号发生器则为我们提供了在研究中所需要的信号源。它可以产生不同频率的正弦波,方波,三角波,锯齿波,正负脉冲信号,调频信号,调幅信号和随机信号等。其输出信号的幅值也可以按需要进行调节。传统信号发生器种类繁多,价格昂贵,而且功能固定单一,不具备用户对仪器进行定义及编程的功能,一个传统实验室很难拥有多类信号发生器。然而,基于虚拟仪器技术的实验室均能满足这一要求。 1、虚拟仪器简介: 自从1986年美国NI(National Instrument)公司提出虚拟仪器的概念以来,随着计 算机技术和测量技术的发展,虚拟仪器技术也得到很快的发展。虚拟仪器是指:利用现有的PC机,加上特殊设计的仪器硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的新型仪器。与传统的仪器相比其特点主要有:具有更好的测量精度和可重复性;测量速度快;系统组建时间短;由用户定义仪器功能;可扩展性强;技术更新快等。虚拟仪器以软件为核心,其软件又以美国NI公司的Labview虚拟仪器软件开发平台最为常用。Labview是一种图形化的编程语言,主要用来开发数据采集,仪器控制及数据处理分析等软件,功能强大。目前,该开发软件在国际测试、测控行业比较流行,在国内的测控领域也得到广泛应用。函数信号发生器是在科学研究和工程设计中广泛应用的一种通用仪器。下面结合一个虚拟函数信号发生器设计开发具体介绍基于图形化编程语言Labview的虚拟仪器编程方法与实现技术。 2、虚拟函数信号发生器的结构与组成 2.1 虚拟函数信号发生器的前面板

相关文档
最新文档