proteus仿真的波形发生器_第1页
proteus仿真的波形发生器_第2页
proteus仿真的波形发生器_第3页
proteus仿真的波形发生器_第4页
proteus仿真的波形发生器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上专心-专注-专业目录精选优质文档-倾情为你奉上专心-专注-专业摘 要本文实现了多功能波形发生器的设计。系统采用 AT89C51 单片机控制,DAC0832 完成模数转换,键盘控制波形的频率、幅度。发生器产生三角波、方波、正弦波等波形,波形的频率可通过键盘控制,波形清晰、频率调整十分方便、稳定性好,产生合成波形只需修改源程序,不需改装电路。单片机的输出数字信号通过 DAC0832 转换成模拟信号,接入示波器就可以清晰的显示出系统产生的波形。该系统由仿真软件产生波形,具有线路简单、结构紧凑、价格低廉、性能优越等特点。关键词关键词 :波形发生器,AT89S52 单片机,D/

2、 A 转精选优质文档-倾情为你奉上专心-专注-专业1 波形发生器简介1.1 波形发生器的概述信号源有很多种,包括正弦波信号源、函数发生器、脉冲发生器、扫描发生器、任意波形发生器、合成信号源等。一般来讲任意波形发生器是一种特殊的信号源,综合具有其它信号源生成能力,因而适合各种仿真实验的需要。在基础实验中设计一种电路,需要验证其性能、可靠性与稳定性,就需要给它施加理想的波形以辨别真伪。如可使用信号源的 DC 补偿功能对固态电路控制 DC 偏压电平,可对一个怀疑有故障的数字电路,利用信号源的方波输出作为数字电路的时钟,同时使用方波加 DC 补偿产生有效的逻辑电平模式输出,观察该电路的运行状况,而证实

3、故障缺陷的地方,总之,利用任意波形发生器这方面的基础功能能仿真基础实验室所必须的信号1。在实际的电子环境所设计的电路在运行中,由于各种干扰和响应的存在,实际电路往往存在各种信号缺陷和瞬变信号,例如过脉冲、尖峰、阻尼瞬变等(见图 1.1,图 1.2),这些情况的发生,如在设计之初没有考虑进去,有的将会产生灾难性的后果。例如图 1.1中 a 处过剑峰脉冲,如果给一个抗过冲能力差的电路,将可能会导致整个设备“烧坏” 。图 1.1 尖峰干扰脉冲 图 1.2 阻尼瞬变由于任意波形发生器特殊的功能,为了增强任意波形生成能力,它往往依赖计算机通讯输出波形数据。在计算机传输中,通过波形编辑软件生成波形,有利于

4、扩充仪器的能力,更进一步仿真模拟实验。同时由于编辑一个任意波形有时需要花费很长的时间和精力,并且每次编辑的波形可能有所差异,一般会精选优质文档-倾情为你奉上专心-专注-专业在任意波形发生器内配置一定数量的非易失性存储器。可以把所需要的波形从计算机接口下载到任意波形发生器的存储器中。综上所述,不论是在生产还是在科研与教学上,任意波形发生器是电子工程师信号仿真实验的最佳工具。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,而任意波形发生器己成为测试仪器中至关主要的一类,因此开发任意波形发生器具有重大意义。1.2 研制波形发生器的目的及意义任意波形发生器是信号源的一种,它是具

5、有信号源所具有的特点,更因它高的性能优势而倍受人们青睐。信号源主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。目前我国己经开始研制任意波形发生器,并取得了可喜的成果。但总的来说,我国任意波形发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些 PC 仪器插口,独立的仪器和 VX 工系统的模块很少,并且我国目前在任意波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫

6、。 见于这种情况下,本文实现了多功能波形发生器的设计。系统采用AT89C51 单片机,DAC0832 完成模数转换,键盘控制波形的频率、幅度。系统产生三角波、方波、正弦波等波形,波形的频率可通过键盘控制,波形清晰、频率调整十分方便、稳定性好,产生较复杂的波形只需修改源程序,不需改装电路。将单片机的输出数字信号通过 DAC0832 转换成模拟信号,接入示波器就可以清晰的显示出系统产生的波形。本系统具有线路简单、结构紧凑、价格低廉、性能优越等特点。精选优质文档-倾情为你奉上专心-专注-专业2 Proteus 的简介2.1 Proteus 界面进入 Proteus ISIS 双击桌面上的 ISIS

7、6 Professional 图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”。Proteus ISIS 的工作界面是一种标准的 Windows 界面,如图 2.1 所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图 2.1 Proteus 工作界面精选优质文档-倾情为你奉上专心-专注-专业2.2 基本操作图形编辑的基本操作包括:1 对象放置2.选中对象3.删除对象4.拖动对象5.拖动对象标签6.调整对象大

8、小7.调整对象的朝向8.拷贝所有选中的对象9.移动所有选中的对象10.删除所有选中的对象2.3 原理图的绘制原理图绘制可按照如下步骤进行1.画导线2 .画总线3.画总线分支线4. 放置总线将各总线分支连接起来5. 跳线6. 放置线路节点精选优质文档-倾情为你奉上专心-专注-专业3 单片机 AT89C51 概述开发环境连接了AT89C51。本文讨论了这种测试环境的设计和原理,它的和各种硬件、软件环境部件的交互性,以及如何使用AT89C51。AT89C51单片机的功能参数8031 CPU 与 MCS-51 兼容 4K 字节可编程 FLASH 存储器 全静态工作:0Hz-24KHz 三级程序存储器保

9、密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器/计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 单片机引脚图说明如图3.1。图3.1 AT89C51引脚图精选优质文档-倾情为你奉上专心-专注-专业Vcc:电源电压;GND:地;P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻;P1

10、口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash 编程和程序校验期间,P1 接受低8 位地址;P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会

11、输出一个电流(IIL)。在访问外部程序存储器或16 位四肢的外部数据存储器(例如执行MOVX DPTR指令)时,P2 口送出高8 位地址数据;P3 口:P3 是一个带有内部上拉电阻的8 位双向I/O 口,P3 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL);RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位;ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉

12、冲用于锁存地址的低8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用精选优质文档-倾情为你奉上专心-专注-专业于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG);PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51 由外部存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现;EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0

13、000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA 端状态。如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12v 的编程允许电源Vpp,当然这必须是该器件使用12v 编程电压VppXTAL1:振荡器反相放大器及内部时钟发生器的输入端;XTAL2:振荡器反相放大器的输出端。89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见

14、图5。外接石英晶体或陶瓷谐振器及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对电容C1、C2 虽没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使用30Pf10 Pf,而如使用陶瓷谐振器建议选择40Pf10Pf。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端XTAL2 则悬空。精选优质文档-倾情为你奉上专心-专注-专业4 总体设计波形的产生是通过 AT89C51 执行某一波形发生程序,向 D/A 转换器的输入端按一定的规律发生数据,从而在 D/A

15、 转换电路的输出端得到相应的电压波形。在 AT89C51 的 P1 口接 3 个按扭,通过软件编程来选择各种波形和频率。此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频率由单片机内部产生故使整个系统的频率降低。4.1 单片机电路AT89C51 外接 12M 晶振作为时钟频率。并采用电源复位设计。复位电路采用上电复位,它的工作原理是,通电时,电容两端相当于短路,于是 RST 引脚上为高电平,然后电源通过对电容充电。RST 端电压慢慢下降,降到一定程序,即为低电平,单片机开始工作。 AT89C51 的 P0 口做为 D/A 转换芯片 0832 的接口。用定时/计数器作为中断源。不同

16、的频率值对应不同的定时初值,允许定时器溢出中断。定时器中断的特殊功能寄存器设置如下: 定时控制寄存器 TCON20H; 工作方式选择寄存器 TMOD=01H; 中断允许控制寄存器 IE=82H。 精选优质文档-倾情为你奉上专心-专注-专业AT89C51 单片机原理接口如图 3.2。图 3.2 单片机电路图4.2 D/A 电路及接口 功能:将波形样值的编码转换成模拟值,完成双极性的波形输出。DAC0832是一个具有两个输入数据寄存器的 8 位 DAC。目前生产的 DAC 芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内部没有数据寄存器,输出信号随

17、数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。DAC0832 是具有 20 条引线的双列直插式 CMOS 器件,它内部具有两级数据寄存器,完成 8 位电流 D/A 转换,故不需要外加电路。 单片机向 0832 发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。假如 N 个精选优质文档-倾情为你奉上专心-专注-专业点构成波形的一个周期,则 0832 输出 N 个样值点后,样值点形成运动轨迹,即一个周期。重复输出 N

18、个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。这样就控制了输出的波形及其幅值和频率。D/A 转换电路原理如图 3.3。图 3.3 D/A 电路图4.3 系统软件设计软件系统由按键、单片机、D/A 转换、放大电路等模块组成。波形的产生是通过 AT89C51 执行某一波形发生程序,向 D/A 转换器的输入端按一定的规律发生数据,从而在 D/A 转换电路的输出端得到相应的电压波形,再通过放大器放大即可得到相应的波形。精选优质文档-倾情为你奉上专心-专注-专业程序流程框图如图 3.4 和图 3.5。开始设置键盘中断级别定时器初始化中断初始化循环等待中断结束开始

19、判断波形定时器赋初值输出波形结束图 3.4 主程序流程图 图 3.5 定时器中断服务程序系统主程序#include/unsigned char TIME0_H=0 xec,TIME0_L=0 x78; /定时器 0 的初值设置;全局变量#include#includevoid main() TMOD=0X01; TH0=0 xff;精选优质文档-倾情为你奉上专心-专注-专业 TL0=0 xd9; IT0=1; /设置中断触发方式,下降沿 EA=1; EX0=1; ET0=1; IP=0X01; /键盘中断级别高 TR0=1; while(1) / square(); ; #ifndef _08

20、32_h_#define _0832_h_unsigned char i,sqar_num=128; /最大值 100,默认值 50unsigned char cho=0; /0:正弦波。1:方波。2:三角波unsigned char num=0;unsigned char TIME0_H=0 xff,TIME0_L=0 xd9; /定时器 0 的初值设置;全局变量.对应正弦波(50HZ)sbit chg= P10; /三角波 100Hz.sbit freq_u=P11;sbit freq_d=P12;sbit cs =P37;bit flag=0;unsigned int FREQ=50;/

21、初始化频率,50HZ/调节部分频率void freq_ud(void)精选优质文档-倾情为你奉上专心-专注-专业 unsigned int temp; if(freq_d=0) FREQ=FREQ-5; if(FREQ=0) FREQ=100; else if(freq_u=0) FREQ=FREQ+5; if(FREQ=100)FREQ=5; if(cho=1) temp=0 xffff-3906/FREQ; /方波默认为 100hz,切换后频率也为 50HZ 65336-106/(256*FREQ) TIME0_H=temp/256; TIME0_L=temp%256; else if(c

22、ho=0|cho=2) /正弦波 三角波默认周期 50hz 65536-106/(512*FREQ) temp=0 xffff-1953/FREQ; TIME0_H=temp/256; TIME0_L=temp%256; /波形发生函数void sint(void) if(!flag)精选优质文档-倾情为你奉上专心-专注-专业 cs=0;P2=sin_numnum+;cs=1;if(num=0)num=255;flag=1; else if(flag) cs=0;P2=sin_numnum-;cs=1; if(num=255)num=0;flag=0; void square(void) if

23、(i+sqar_num) cs=0;P2=0XFF;cs=1;elsecs=0;P2=0X00;cs=1;void stw(void) if(flag) cs=0;P2=num+;cs=1;if(num=0)num=255;flag=1; else if(flag) cs=0;P2=num-;cs=1; if(num=255)num=1;flag=0; /按键中断处理程序。精选优质文档-倾情为你奉上专心-专注-专业void it0() interrupt 0 if(chg=0) if(+cho=3) cho=0;num=0; /num=0;所有数据从新开始,保证波形的完整性 else if(f

24、req_u=0|freq_d=0) freq_ud(); else ;/定时器中断处理程序。void intt0() interrupt 1 switch(cho) case 0:TH0=TIME0_H;TL0=TIME0_L;sint();break; /正弦波case 1:TH0=TIME0_H;TL0=TIME0_L;square() ;break;/方波 case 2:TH0=TIME0_H;TL0=TIME0_L;stw();break; /三角波default: ; #endif/正弦表;每半个周期 256 个取值,最大限度保证波形不失真。/各个值通过 MATLAB 算出,并四设五

25、如取整。具体程序如下#ifndef _sinx_h_#define _sinx_h_unsigned char code sin_num= 0, 0, 0, 0, 0, 0, 0, 1,1,1,1,1,2,2,2,2,3,3,4,4,4,5,5,6,6,7,7,8,8,9,9,10, 10, 11,22, 23, 24, 25, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37,38, 39, 40, 41, 42, 44, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56,精选优质文档-倾情为你奉上专心-专注-专业57,

26、 59, 60, 61, 63, 64, 66, 67, 68, 70, 71, 73, 74, 75, 77, 78,80, 81, 83, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99, 101,102,104, 106,107,109,110, 112, 113,115,116, 118,120,121,123,124,126,128,129,131,132,134,135, 137, 139,140,142,143,145,146,148, 149,151,153,154,156,157,159,160,162,163,165, 166,168,

27、169,171,172,174,175,177,178,180,181,182,184,185,187,188,189,191,192,194,195,196,198,199,200,201,203,204,205,206,208,209,210,211,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,230,231,232,233,234,235,236,237,237,238,239,240,240,241,242,243,243,244,245,245,246,247,248,248,249,249,

28、250,250,251,251,251,252,252,253,253,253,253,254,254,254,254,254,255,255,255,255,255,255,255 ;#endif精选优质文档-倾情为你奉上专心-专注-专业5 系统模拟调试选中单片机 AT89C51,左键点击 AT89C51,在出现的对话框里点击 Program File 按钮,找到刚才编译得到的 HEX 文件,然后点击“OK”按钮就可以模拟了。点击模拟调试按钮的运行按钮 ,进人调试状态。点击按键“切换波形” ,在示波器上可以显示正弦波、方波和三角波;点击按键“频率升高”会看到波形的频率变大;点击按键“频率降低

29、”波形的频率也相应减小。在观察波形过程之中可能会发现波形失真,这时可以调节示波器的幅度、频率、通道等功能,使波形清晰效果最好。5.1 仿真结果 正弦波精选优质文档-倾情为你奉上专心-专注-专业图 5.1 正弦波方波图 5.2 方波三角波精选优质文档-倾情为你奉上专心-专注-专业图 5.3 三角波周期变换后的波形图 5.4 周期变换后的正弦波精选优质文档-倾情为你奉上专心-专注-专业图 5.5 周期变换后的方波图 5.6 周期变换后的方波精选优质文档-倾情为你奉上专心-专注-专业5.2 结果分析经过长时间的研究,终于完成了预定的设计任务。完成了仿真的测试,输出波形稳定。可输出步进为 10Hz,频率范围 1KHz10MHz 的正弦波、三角波、方波。本设计成果及收获如下:具有产生正弦波、方波、三角波三种周期性波形的功能。输出波形的频率范围为 100HZ1KHZ,频率可调,频率步进间隔为100HZ。完成了波形发生

温馨提示

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

最新文档

评论

0/150

提交评论