多种波形发生器设计论文.doc

上传人:豆**** 文档编号:17534575 上传时间:2022-05-24 格式:DOC 页数:21 大小:196KB
返回 下载 相关 举报
多种波形发生器设计论文.doc_第1页
第1页 / 共21页
多种波形发生器设计论文.doc_第2页
第2页 / 共21页
点击查看更多>>
资源描述

《多种波形发生器设计论文.doc》由会员分享,可在线阅读,更多相关《多种波形发生器设计论文.doc(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流多种波形发生器设计论文.精品文档.摘要 随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。单片机构成的仪器具有高可靠性,高性价比。单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。只要对电路稍加修改,调整程序,就能实现功能的升级。本系统利用单片机AT89C52采用程序设计方法产生锯

2、齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制四种波形的类型选择。本次设计主要由信号发生模块、数模转换模块和仿真模块。关键词 AT89C52单片机,DAC0832,独立式键盘,Proteus,Keil目录1绪论41.1波形发生器的概述41.2各种设计方案的比较51.2.1纯硬件设计法51.2.2纯软件设计法61.2.3软硬件结合设计法62硬件电路设计72.1主要芯片介绍72.1.1单片机AT89C5272.1.2 DAC0832数模转换器92.1.3其他器件112.2硬件连接图112.2.1主控电

3、路112.2.2 独立式键盘122.2.3数模转换电路132.2.4驱动电路142.3总电路图143 程序设计153.1主流程图的设计153.2 子程序的设计163.2.1锯齿波的产生163.2.2三角波的产生173.2.3梯形波的产生173.2.4正弦波的产生183.2.5主程序204应用软件204.1 Proteus204.2 KeilC51225调试与仿真结果236总结26参考文献27附录281绪论1.1波形发生器的概述 在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。随着集成电路的迅速发展,用集成电路可很方便地构成各种信

4、号波形发生器。用集成电路实现的信号波形发生器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。 波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可 重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。1.2各种设计方案的比较依据应用场合需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据不同的设计要求选取不同的设计方案。通

5、常,波形发生器需要实现的波形有正弦波、方波、三角波和锯齿波。有些场合可能还需要任意波形的产生。各种波形共有的指标有:波形的频率、幅度要求,频率稳定度,准确度等。对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。1.2.1纯硬件设计法波形发生器设计的纯硬件法早期,波形发生器的设计主要是采用运算放大器加分立元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理嗍也相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现

6、方波和三角波。在各种波形后加上一级放大电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几Hz至几百MHz的高频信号;石英晶体振荡器能产生几百kHz至几十MHz的高频信号且稳定度高;对于频率低于几MHz,特别是在几百Hz时,常采用RC振荡电路。RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路

7、最为常用。目前,实现波形发生器最简单的方法是采用单片集成的函数信号发生器。它是将产生各种波形的功能电路集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵。实际中应用较多的单片函数信号发生器有MAX038(最高频率可达40MHz)和ICL8038(最高频率为300kHz)。1.2.2纯软件设计法波形发生器设计的纯软件法 波形发生器的设计还可以采用纯软件的方法来实现。虚拟仪器鞠使传统仪器发生了革命性的变化,是21世纪测试仪器领域技术发展的重要方向。它以计算机为基础,软件为核心,没有传统仪器那样

8、具体的物理结构在计算机上实现仪器的虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具LabVIEW来实现任意波形发生器的功能:在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行。实现任意波形发生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。从长远角度来看,纯软件法成本较低。软件法的缺点是波形的响应速度和精度逊色

9、于硬件法。1.2.3软硬件结合设计法 (1)软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心,辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计。使波形发生器具有远程通信功能等。目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。 (2)纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,

10、不具备智能性,其中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用外。基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的新一代的波形发生器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案,本设计采用软硬件结合的方案的方法进行设计。其方案能够产生很好的波形,也易实现。2硬件电路设计 本方案是基于AT89C52与DAC0832的单缓冲方式接口电路来设计。单缓冲

11、式接口电路具有过程简单,容易实现。由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。本方案所产生的信号频率稳定性高,精确度高。而且在硬件方面它所选的元器件比较常见。其主要流程图和模块如图1所示。 运放按钮AT89C52DAC0832波形输出 图1软硬件结合设计框图2.1主要芯片介绍2.1.1单片机AT89C52 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理

12、器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。 AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。图2为AD89C52单片机的管脚图。图2 AT89C52管脚图其各管脚功能为: P0口:P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”

13、时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1还可分别作为定时/计数器2 的外部计数输入(

14、P1.0/T2)和输入。 P2口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX RI 指令)时,P2口输出P2锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。 P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3

15、口输出缓冲级可驱动(吸收或输出电流个TTL逻辑)4门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的

16、。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOV指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP:外部访问允

17、许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。2.1.2 DAC0832数模转换器 DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,

18、在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。图3为其芯片管脚图。图3 DAC0832管脚图各个管脚功能如下: D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错) ILE:数据锁存允许控制信号输入线,高电平有效; CS:片选信号输入线(选通数据锁存器),低电平有效; WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存; XFER:数据传输控制信

19、号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER 的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。 IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化; IOUT2:电流输出端2,其值与IOUT1值之和为一常数; Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; Vcc:电源输入端,Vcc的范围为+5V+15V; VREF:基准电压输入线,VREF的范围为-10V+10

20、V; AGND:模拟信号地 DGND:数字信号地2.1.3其他器件 本次设计中,不仅仅用到了AT89C52单片机和DAC0832数模转换芯片,还用到了74HC138译码器和74HC573锁存器。 74HC138 作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。 74HC573数据锁存器。主要用于数码管、按键等等的控制。 图4 74HC138 图5 74HC5732.2硬件连接图2.2.1主控电路中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当

21、前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C52输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C52等待,直到定时器计时结束,产生中断请求,AT89C52响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。如图所示2.1,AT89C52所在电路中的工作情况。 本此课设中,AT89C52单片机的P1口接独立式按键电路,P2口部分接译码器,P0口接锁存器。主控电路图如图6所示图6 主控电路2.2.2 独立式键盘 独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态

22、不会影响其它输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。独立式键盘电路配置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。如图7所示。按键与AT89C52的P1口连接。 KEY1是监测是否输出锯齿波按键;KEY2是监测是否输出三角波按键;KEY3监测是否输出梯形波按键;KEY4监测是否输出正弦波按键;KEY5是调频按键。图7 独立式键盘电路图2.2.3数模转换电路DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接

23、口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。 由于AT89C51所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入一个运放器。如图8。图 8 数模转换电路图2.2.4驱动电路 74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在 高性能存贮器系统中,用这种译码器可以提高译码系统的效率。 74HC573数据锁存器。主要用于数码管、按键等等的控制。如图9所示,74HC138加74HC57

24、3的工作电路。图9 74HC138和74HC573的工作电路。2.3总电路图 多种波形发生器的总电路图如图10所示图11 总电路图3 程序设计3.1主流程图的设计 主程序的流程图如图12所示,开始时判断是否调频,然后判断是否调用锯齿波程序,然后判断是否调用三角波程序,然后判断是否调用梯形波程序,然后判断是否调用正弦波程序,最后在循环回到判断是否调频。图12 软件主程序流程图3.2 子程序的设计3.2.1锯齿波的产生 锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。子程序如下:ST

25、 : MOV A,#00H ;设置初值 LOOP:MOVX DPTR,A; 把数据送到端口转换 ADD A,R6;通过步长改变数据,上升波形 CJNE A,#00H,LOOP; A值是否到最高点 DJNZ R5,LOOP SJMP LOP 3.2.2三角波的产生 三角波的实现是设置一个初值,当加到某个值的时候,执行减一操作,减到初值时,再加一。子程序如下:TRIANGLE:MOV A,#00H;设置初值 LOOP3:MOVX DPTR,A;把数据送到端口转换 ADD A,R6 ;通过步长改变数据上升波形 CJNE A,#00H,LOOP3 ; A值是否到最高点 DEC A ;减少步长改变数据下

26、降波形 LOOP2:MOVX DPTR,A ;把数据送到端口转换 DEC A ;减少步长改变数据下降波形 CJNE A,#00H,LOOP2 ;A值是否到最低点 DJNZ R5,LOOP3 ;波形周期 SJMP LOP ;返回检测开关3.2.3梯形波的产生梯形波的实现是设置一个初值,然后进行加一,当加到某个数时延时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。梯形波产生的子程序如下:TXING:MOV A,#00H ;设置初值 LOOP4:MOVX DPTR,A ;把数据送到端口转换 ADD A,R6 ;增加步长改变数据上升波形 CJNE A,#00H,LOOP4 ;A值是否

27、到最高点 ;SUBB A,R6;下降波形做准备 DEC A MOV R7,0EEH ;循环次数 LOP2:MOVX DPTR,A ;进行延时 DJNZ R7,LOP2 LOOP1:MOVX DPTR,A ;把数据送到端口转换 SUBB A,R6 DEC A CJNE A,#00H,LOOP1 ;是否到最低点 MOV R7,0EEH ;循环次数 LOP1:MOVX DPTR,A ;把数据送到端口转换 DJNZ R7,LOP1 ;进行延时 SJMP LOP ;返回检测开关3.2.4正弦波的产生 正弦波的实现比较麻烦,需要查表,每查一次表,输出一个数值,之后查下一个数值继续输出,当一个波形的256个

28、数值全部输出之后,从头开始继续输出。正弦波产生的子程序如下:SINE: MOV A,#00H ;设置初值LOOP7: MOV R7,A ;保存当前的数据 MOV DPTR,#SIN;读取表的地址 MOVC A,A+DPTR;读取表中的数据 MOV DPTR,#7FFH ;D/A0832的端口地址 MOVX DPTR,A;进行数据转换 MOV A,R7 ;恢复当前数据 INC A ;为读取表的下一个值做准备 CJNE A,#00H,LOOP7 ;是否读完表的数据 SJMP START ;返回检测开关FM: MOV R6,#04H ;改变调频/调幅 MOV R5,#02H SJMP START ;

29、返回检测开关;-以下是通过正弦的值所建立的一个表SIN: DB 80H,83H,86H,89H,8DH,90H,93H,96H DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9

30、H,0FAH, 0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,

31、0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H

32、, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 18H, 1AH, 1CH,

33、 1EH, 20H, 22H, 25H DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H3.2.5主程序 主程序的代码如下:ORG 0000H;程序开始 MOV SP,#60H;设置堆栈MOV DPTR,#7FFH ;0832的地址LOP: MOV P1,#0FFH MOV A,P1 JNB P1.5,FM ;是

34、否需要调频 MOV R6,#01H ;设置步长 MOV R5,#01H START:JNB P1.0,ST ;输出锯齿波程序 JNB P1.1,TRIANGLE ;输出三角波程序 JNB P1.2,TXING ;输出梯形波程序 JNB P1.3,SINE ;输出正弦波程序 SJMP LOP ;循环检测4应用软件 本次课程设计中,我们用到了Protues7.8对其电路图进行绘制和仿真,还用到了Keil C51对程序进行译码和编译。下面对这两个软件进行简单的介绍。4.1 Proteus Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA

35、工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。 Protues软件具有其它EDA工具软件的功能。它能够完成原理布图、PCB自动或人工布线和SPICE电路仿真的功能。同时Protues具有革命性的特点:(1) 互动的电路仿真。用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2) 仿真处理器及其外围电路。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,P

36、rotues建立了完备的电子设计开发环境。Protues提供了4大功能模块:(1)智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 (2)完善的电路仿真功能(Prospice)ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真;超

37、过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显

38、示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析。 (3)独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键

39、盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信; 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真。编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。 (4)实用的PCB设计平台原理图到PCB的快速通道:原理图设计完成后,一

40、键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计;先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理; 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D可视化预览;多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和PCB板的设计和加工。4.2 KeilC51 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统

41、,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 C51工

42、具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 Keil具有具有很多

43、优点:(1)Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 (2)与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。5调试与仿真结果 本次的设计主要应用了protues和keilC51软件进行系统设计和仿真,经过仿真后,结果较好,示波器可以正确的输出锯齿波、三角波、梯形波、正弦波。 没有按键按下时,波形图如图13所示图13 没有按键按下时波形图当按下K1

44、按键时,产生锯齿波,如图14所示图14 按下K1键产生锯齿波当按下K2按键时,产生三角波,15如图所示图15 按下K2键时产生三角波当按下按键K3时,产生梯形波,如图16所示图16 按下K3产生梯形波当按下K4按键时,产生正弦波,如图17所示图17 按下K4产生正弦波按下K5按键的时候采样频率会发生变化。6总结 经过本次课程设计我学到了很多,基本完成了任务要求,完成了多种波形发生器的设计。能过产生锯齿波、三角波、梯形波和正弦波四种波形,并能够搭建电路。并且能够应用Protues和Keil软件对其进行调试和仿真,最总能够显示出输出波形。 本次课程设计,我学到了很多,能够理解波形发生的函数以及硬件

45、电路的搭建,更深一步的了解了51系列单片机以及DAC0832数模转换芯片。还学会了应用Protues软件进行电路原理图的绘制以及应用Keil软件对程序进行调试和仿真。 本次课设还有改进的地方,可以应用数码管显示出选择的波形的代号以及此时的频率。我会在接下来的时间里努力的完善自己的设计,争取做到更好参考文献1李建忠.单片机原理及应用M.西安:西安电子科技大学出版社,20082李群芳.单片机原理、接口及应用M.北京:清华大学出版社,2005,3:27-31, 178-1863许兴存.曾琪琳,微型计算机接口技术M.北京:电子工业出版社,2005,7:308-3294丁元杰.单片微机原理及应用M.北京:机械工业出版社,2006,3:1-10,166-180附录源代码及注析:ORG 0000H;程序开始 MOV SP,#60H;设置堆栈MOV DPTR,#7FFH ;0832的地址LOP: MOV P1,#0FFH MOV A,P1 JNB P1.5,FM ;是否需要调频 MOV

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁