已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
韶 关 学 院毕 业 设 计题 目:基于单片机的函数发生器设计学生姓名:何广赢学 号:09101071011院 (系):物理与机电工程学院 电子系专 业:电子信息科学与技术班 级:2009级1班指导老师姓名及职称:陆英 副教授起止时间: 2012 年 9 月 2013 年 5 月摘要基于单片机的函数发生器设计摘 要:信号发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。目前使用的信号发生器大部分是函数信号发生器,且特殊函数发生器的价格昂贵。所以本设计使用的是AT89C51单片机构成的发生器,可产生三角波、方波、正弦波等多种特殊波形和任意波形,波形的频率可用程序控制改变。在单片机上加外围器件距阵式键盘,通过键盘控制波形频率的增减以及波形的选择,并用了LCD显示频率大小。在单片机的输出端口接DAC0832进行D/A转换,再通过运放进行波形调整,最后输出波形接在示波器上显示。本设计具有线路简单、结构紧凑、价格低廉、性能优越等优点。 论述了采用DAC0832芯片设计数字函数信号发生器的原理以及整机的结构设计。该函数信号发生器可输出三角波,方波和正弦波。 关键词: 信号发生器; 单片机; DAC0832; 波形调整; LCD。Function generator design based on single chip microcomputerAbstract: Signal-generator is a kind of signal source in common use, broadly applied at the electronics electric circuit, auto control system and teaching experiment etc. Currently used mostly function signal generator signal generator, waveform generator and a special price of expensive . So the dissertation is usage of the AT89s51 single-chip microcomputer constitute of wave-form generator, which can generate triangle wave, square wave, sine wave etc variety wave-form, the period of wave can be controlled by procedure, at outer circle spare part of the machine, plus independence type keyboard , which can control wave increase or decrease of form-frequency and the choice of wave-form, at the same time LED display frequency size. The output of the machine connect DAC0832 to carry on a DA conversion,again pass operation amplifier to put an end exportation wave-form. This design has advantage of simple circuit, tightly packed structure, cheap price, superior function etc. We discussed the principle and the whole frame of the digital function signal generator. Thegenerator can output three kinds of waves : sine wave , square wave , triangle wave. Keywords: signal generator; MCU; DAC0832; wave-form adjustment; LCD.目录目 录绪论11函数发生器的概述和分类11.1函数发生器概述11.2函数发生器的分类22 方案比较与论证22.1设计任务与要求22.2 方案比较与论证33 系统硬件设计63.1 系统主要功能63.2 系统硬件构成及功能63.2.1 AT89C52单片机及其说明73.2.2 资源分配113.2.3 D/A转换模块部件113.2.4 外部控制模块部件133.2.5 放大部分133.3 系统的软件设计143.3.1 信号频率数据采集143.3.2 正弦波产生程序143.3.3 三角波产生程序153.3.4 方波产生程序163.3.5 锯齿波产生程序163.3.6信号放大模块设计173. 3. 7数模转换模块设计174 仿真图及结果分析184.1函数发生器的调试与测试184.2仿真结果图195 总结与展望21致 谢22参考文献23附录24附录A 程序清单24附录B 电路原理图32附录C 电路实物图330 正文 基于单片机的函数发生器设计 专业班级:2009电子1班 姓 名:何广赢 指导教师:陆 英 副教授 绪论函数发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的函数发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。函数发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路经之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。1函数发生器的概述和分类1.1函数发生器概述在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的函数信号发生器。随着集成电路的迅速发展,用集成电路可很方便地构成各种函数信号发生器。用集成电路实现的函数信号发生器与其它信号函数发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。函数发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。1.2函数发生器的分类函数信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频函数发生器、甚高频函数发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列函数发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。2 方案比较与论证2.1设计任务与要求设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。课程设计的目的:1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实际课题设计的能力。2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成系统、编程、调试的动脑动手能力。3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件设计的方法内容及步骤。4、掌握DAC0832,LM324,74LS22的接口电路,及使用方法。 5、熟悉掌握函数信号发生器的工作原理。课程设计要求:1、熟悉组成系统中的实验模块原理,画出实验原理图。2、 写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、元件清单、程序清单、参考资料。3、输出几种波形,实现对频率和占空比的调节,以1HZ作为步进进行调节。依据应用场合需要实现的波形种类,函数发生器的具体指标要求会有所不同。依据不同的设计要求选取不同的设计方案。通常,函数发生器需要实现的波形有正弦波、方波、三角波和锯齿波。有些场合可能还需要任意波形的产生。各种波形共有的指标有:波形的频率、幅度要求,频率稳定度,准确度等。对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。函数发生器的设计方案多种多样,大致可以分为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。2.2 方案比较与论证方案一:函数发生器设计的纯硬件法早期,函数发生器的设计主要是采用运算放大器加分立元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理嗍也相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在各种波形后加上一级放大电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几Hz至几百MHz的高频信号;石英晶体振荡器能产生几百kHz至几十MHz的高频信号且稳定度高;对于频率低于几MHz,特别是在几百Hz时,常采用RC振荡电路。RC振荡电路又分为文氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路最为常用。目前,实现函数发生器最简单的方法是采用单片集成的函数信号发生器。它是将产生各种波形的功能电路集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵。实际中应用较多的单片函数信号发生器有MAX038(最高频率可达40MHz)和ICL8038(最高频率为300kHz)。方案二:函数发生器设计的纯软件法 函数发生器的设计还可以采用纯软件的方法来实现。虚拟仪器鞠使传统仪器发生了革命性的变化,是21世纪测试仪器领域技术发展的重要方向。它以计算机为基础,软件为核心,没有传统仪器那样具体的物理结构在计算机上实现仪器的虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具LabVIEW来实现任意函数发生器的功能:在LabVIEW软件的前面板通过拖放控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行。实现任意函数发生器的功能。采用纯软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。从长远角度来看,纯软件法成本较低。软件法的缺点是波形的响应速度和精度逊色于硬件法。方案三:软硬件结合法软硬件结合的函数发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心(如图2.2)。辅以键盘控制、液晶显示等电路,设计出智能型函数函数发生器,采用软硬件结合的方法可以实现功能较全、性能更优的函数发生器,同时还可以扩展函数发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用USB接口设计。使函数发生器具有远程通信功能等。目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。AT89C51单片机DAC0832复位键键盘液晶显示图 2-1 软硬件结合的函数发生器 纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其中由运算放大器加分立元件组成的函数发生器,除在学生实验训练中使用外。基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下,软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的新一代的函数发生器,可以满足教学、科研、工业生产等各方面对函数发生器性能有较高要求的应用场合。 综合以上几种设计方案,本设计采用方案三的方法软硬件设计法。其方案能够产生很好的波形,也易实现。3 系统硬件设计3.1 系统主要功能该函数信号发生器可以输出四种波形,有正弦波,锯齿波,三角波,方波。在此基础上进一步实现对波形频率和占空比的调节,并用液晶屏分两行显示波形名称和波形频率。3.2 系统硬件构成及功能函数信号发生器的设计总体框图如图所示,主要有单片机AT89C52,电源,键盘模块,LCD1602显示模块构成。按案件模块:由5个复位开关与74LS21组成的系统通过对单片机传输中断信号来实现波形切换及频率和占空比的调节。显示模块:用LCD1602,分行显示波形类型和波形频率的显示。电源模块:电源模块有220V市变电压经变压,整流,稳压得到+ -5V, + -12V的电压,维持系统正常工作。系统的总体框图如图1所示:键盘显示控制器显示模块键盘模块波形输出模块电 源源主控器AT89C52图3-1系统总体框图 3.2.1 AT89C52单片机及其说明典型的MCS-51单片机芯片集成了以下几个基本组成部分。1 一个8位的CPU2 128B或256B单元内数据存储器(RAM)3 4KB或8KB片内程序存储器(ROM或EPROM)4 4个8位并行I/O接口P0P3。5 两个定时/计数器。6 5个中断源的中断管理控制系统。7 一个全双工串行I/O口UART(通用异步接收、发送器) 8 一个片内振荡器和时钟产生电路。图3-2 单片机引脚 CPU结构:CPU 是单片机的核心部件。它由运算器和控制器等部件组成。1.运算器 运算器以完成二进制的算术/逻辑运算部件ALU为核心。它可以对半字节(4)、单字节等数据进行操作。例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。2.程序计数器PCPC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。3.指令寄存器 指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。存储器和特殊功能寄存器存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。其中5个是双字节寄存器,它们共占用了26个字节。各特殊功能寄存器的符号和地址见附表2。其中带号的可位寻址。特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。用于CPU PSW便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。 3.P0-P3口结构 P0口功能:P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写 P1口 功能:P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。 P2口的功能:2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。 P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。 P3.0RXD串行数据接收口 P3.1TXD串行数据发送口 P3.2INT0外中断0输入 P3.3INT1外中断1输入 P3.4T0计数器0计数输入 P3.5T1计数器1计数输入 P3.6WR外部RAM写选通信号 P3.7RD外部RAM读选通信号 时钟电路和复位电路 单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行。 时钟电路:单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。图3-3 时钟部分电路图在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自积振荡,并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ、或24MHZ。5. 单片机的时序单位振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。状态周期:振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此一个状态周期包含2个振荡周期。机器周期:1个机器周期由6个状态周期12个振荡周期组成,是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所需的时间。一个指令周期由1-4个机器周期组成,依据指令不同而不同.单片机的复位状态当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。图3- 4 复位电路单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部RAM内部的数据则不变。3.2.2 资源分配晶振采用12MHZ。P1口的P1.0-P1.4分别与四个按键连接,分别控制波形切换、频率加、频率减,占空比加,占空比减。P2口与DAC0832的D0-D7数据输入端相连。P3口用来控制DAC0832的输入寄存器选择信号CS。3.2.3 D/A转换模块部件DAC0832芯片原理管脚功能介绍(如图6所示)图3-5 DAC0832管脚图DI7DI0:8位的数据输入端,DI7为最高位。ILE:数据锁存允许控制信号输入线,高电平有效。CS:选片信号输入线(选通数据锁存器),低电平有效。WR1:数据锁存器写选选通输入线,负脉冲有效,由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变化,LE1的负跳变时将输入数据锁存。XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。WR2:DAC寄存器选通输入线,负脉冲有效,由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。IOUT1:模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。IOUT2:模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。RFB:反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。Vcc:芯片供电电压,范围为(+5+15)V。AGND:模拟量地,即模拟电路接地端。DGND:数字量地。3.2.4 外部控制模块部件 图3-6 74LS22管脚图74LS22为四输入双与门A1,B1,C1,D1为第一个与门的输入,Y1为第一个与门的输出。A2,B2,C2,D2为第一个与门的输入,Y2为第一个与门的输出。在此系统中用来给单片机提供中断信号。3.2.5 放大部分LM324引脚图(管脚图) 图3-7 LM324引脚图简介: LM324系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。3.3 系统的软件设计3.3.1 信号频率数据采集本程序通过外部中断,接收减频或加频按键,单片机内部对接受的值经过运算得出波形的输出延时,从而产生频率的改变。电路较为简单,成本较低。3.3.2 正弦波产生程序输入正弦波的采样点,计算出256个(一个周期内)正弦波信号值。然后通过输出的两点间的延时来实现调频。依次循环输出,可得出正弦波。采点值放在table2中,程序如下:void sin()/正弦波unsigned int i;for(i=0;i256;i+)DAC0832=table2i;delay(pinlv/256);3.3.3 三角波产生程序设个自变量i让它不断地自加1,直到加到255时,t=i,对t进行不断地自减1直到减到t=0,然后再不断地重复上述过程产生三角波。程序如下:void tran()/三角波unsigned char i;for(i=0;i0;i-)DAC0832=i;delay(pinlv/64);3.3.4 方波产生程序设个自变量i=0使之延时一段时间,再另i=255时在延时与i=0相同的时间,然后再重复上述过程。程序如下:void fang()/方波DAC0832=0;delay(pinlv/2);DAC0832=0xff;delay(pinlv/2);3.3.5 锯齿波产生程序锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同的周期锯齿波。锯齿波发生原理与方波类似,只是高低两个时延的常数不同,所以用延时法,来产生锯齿波,设个自变量i让它不断地自加1,直到叫到255,DAC0832可以又自动归0,然后再不断地重复上述过程。程序如下:void jvchi()/锯齿波unsigned char i;for(i=0;i255;i+)DAC0832=i;delay(pinlv/256);3.3.6信号放大模块设计从单片机中输出的数字信号经过DAC0832转换后,由于信号的幅值比较小,所以需要放大。采用常规的放大方式,采用两片运放,实现两级放大,设计的电路如图6: 图3 3-8放大电路接口3. 3. 7数模转换模块设计本设计模数转换采用常见的芯片:DAC0832,本设计采用直通方式进行模数转换。为了简洁起见,在仿真图中采用网络节点的方式进行连线,从单片机P0口输出的数据直接连接到模数芯片DAC0832的数据口。如图: 图3-9 DA转换接口电路 4 仿真图及结果分析 4.1函数发生器的调试与测试 本系统是在protues下仿真,使用Keil C编程。从而实现其设计及仿真。在测试本系统是采用的是将设置的数值与示波器所测值进行对比,进而可以知道本系统的性能。频率测试数据: 设定频率(HZ)示波器测试频率(HZ) 相对误差%3.93.961.57.87.931.2815.6316.133.194.2仿真结果图正弦波仿真图 图4-1正弦波图三角波仿真图 图4-2三角波图锯齿波仿真图 图4-3锯齿波图方波仿真图 图4-4方波图32总结5 总结与展望本次的设计中利用AT89C52和DAC0832以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。在这次的软件设计中,程序设计采用的是C语言。虽然汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。但是汇编语言也存在编写的代码非常难懂,不好维护,很容易产生 bug,难于调试的缺点。因此,在大型程序的设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已成熟为专业水平的高级语言。而且,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。由于真正意义上的程序设计还不多,因此还不是很得心应手,所以在设计中遇到一些问题和一些难点。比如:在程序设计中如何实现程序结构的最优化,以达到较高的质量。这是以后设计中要注意的问题。 通过这次课程设计,我进一步了解了函数发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的元件,而且重新温习了刚学不久的汇编语言,使我学得了许多知识,使我获益匪浅。这次课程设计,使我的动手能力得到了很大的提高,更使我们懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是我们得到的理论知识得到验证,更能增加对理论知识的理解。致谢致 谢从写开题报告到现在的论文定稿,经过了几个月的不懈努力,今天终于可以完成毕业设计论文最后的部分,开始写谢辞了。这表示可以进入毕业答辩了,更表示我离开这个学校的时刻快要到了。回忆起求学期间的点点滴滴,不禁感叹,真是时光飞逝啊!大学生活就在这一转眼间过去了!四年的努力与付出,随着论文的完成,终于让我的大学生活划下了一个完整的句点。 毕业设计的顺利完成,乃至学业的顺利完成,在这个漫长而又短暂的过程中,有多少可敬的师长、同学和朋友给了我莫大的支持与帮助。在这里请接受我诚挚的谢意!感谢我的指导教师陆英老师,本论文从选题到完成,每一步都倾注了陆老师大量的心血。是他给了我大力的支持与帮助、耐心的辅导与解惑。陆老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,使我感受到她朴实无华、平易近人的人格魅力。她是我日后学习、工作与生活中的最好的榜样!感谢我的同学与朋友们,是你们陪我渡过了大学四年的美好时光,给我留下了许多难忘的回忆。感谢我同寝室的朋友们,感谢你们四年来的陪伴以及在生活中给予的关心和帮助。让我学会了与人相处的艺术。感谢我的学校,感谢为我们提供了如此好的学习与生活环境.感谢在大学期间所有传授我知识的老师们,感谢你们不但教会了我许多的专业知识,更培养了我良好的自主学习能力。这也是论文得以顺利完成的基础。感谢我的家人,感谢你们这么多年来默默的支持与关爱。培养了我乐观向上,积极进取的精神。感谢人生中所有喜欢和不喜欢我的人,感谢人生中所有给予和没有给予过我帮助的人,感谢生活对我的磨练,造就了我坚强勇敢的性格。更加给了我继续前行的动力。祝所有我感谢的人们,一生幸福平安.参考文献参考文献1 程全.基于AT89C52实现的多种函数发生器的设计J.周口师范学院学报,2005.22(5):5758.2 周明德.微型计算机系统原理及应用M.北京:清华大学出版社,2002.341364.3 刘乐善.微型计算机接口技术及应用M.北京:北京航空航天大学出版社,2001.258264.4 童诗白.模拟电路技术基础M.北京:高等教育出版社,2000.171202.5 杜华.任意函数发生器及应用J.国外电子测量技术,2005.1:3840.6 张友德.单片微型机原理、应用与实践M.上海:复旦大学出版社,2004.4044. 7 程朗.基于8051单片机的双通道函数发生器的设计与实现J.计算机工程与应用,2004.8:100103.8 张永瑞.电子测量技术基础M.西安:西安电子科技大学出版社,2006.61101.9 李叶紫. MCS-51单片机应用教程M.北京:清华大学出版社,2004.232238.附录 附录附录A 程序清单#include#define uchar unsigned char#define uint unsigned int/#define Fosc 24000000/12000000 /12分频后的频率#define DAdata P1/DA数据端口sbit DA_S1= P20; / 控制DAC0832的8位输入寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存sbit DA_S2= P21; / 控制DAC0832的8位DAC寄存器,仅当都为0时,可以输出数据(处于直通状态),否则,输出将被锁存sbit KEY1 = P24;sbit KEY2 = P25;sbit KEY3 = P26;sbit KEY4 = P27;sbit MN_DAT = P34; /模拟外部中断数据端口sbit KEY_INT0 = P32;uchar wavecount; /抽点计数uchar THtemp,TLtemp;/传递频率的中间变量/uint T_temp;uchar judge=1; /在方波输出函数中用于简单判别作用uchar waveform; /当其为0、1、2时,分别代表三种波uchar code freq_unit4=10,50,200,10; /三种波的频率单位 sawtoothuchar idata wavefreq4=1,1,1,1; /给每种波定义一个数组单元,用于存放单位频率的个数uchar code lcd_hang1=Sine Wave Triangle Wave Square Wave sawtooth Wave Select Wave: press No.1 key! ;uchar idata lcd_hang216=f= Hz ;/*uchar code wave_freq_adjust= /频率调整中间值 0xff,0xb8,0x76,0x56,0x43,0x37,0x2e,0x26,0x20,0x1c, /正弦波频率调整中间值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e,/三角波频率调整中间值0xff,0x8e,0x5a,0x41,0x32,0x28,0x20,0x1b,0x17,0x0e; uint code wave_freq_adjust= /频率调整中间值 380,184,118,86,67,55,46,28,38,32,295,142, 90,65,50,40,32,27,23,14,295,142, 90,65,50,40,32,27,23,14; */*uchar code waveTH= 0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;uchar code waveTL= 0xf2,0x78,0xfb,0x3c,0x63,0x7d,0x8f,0x9d,0xa8,0xb1,0x17,0x0b,0xb2,0x05,0x37,0x58,0x70,0x82,0x90,0x9b, 0x4d,0xa7,0xc4,0xd3,0xdc,0xe2,0xe6,0xea,0xec,0xee;*/*这两组数组很重要,需要根据波形来调试,选择合适的值,使输出波形达到频率要求*/uchar code waveTH= 0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xec,0xf6,0xf9,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe;uchar code waveTL= 0x06,0x8a,0x10,0x4e,0x78,0x93,0xa8,0xb3,0xbe,0xc6, /正弦波频率调整中间值0xac,0xde,0x48,0x7a,0x99,0xaf,0xbb,0xc8,0xd0,0xde,/三角波频率调整中间值0x88,0x50,0x90,0x32,0x34,0xbe,0x4a,0xa3,0xe5,0x2c; /*/uchar code triangle_tab= /每隔数字8,采取一次0x00,0x08,0x10,0x18,0x20,0x28,0x30,0x38,0x40,0x48,0x50,0x58,0x60,0x68,0x70,0x78,0x80,0x88,0x90,0x98,0xa0,0xa8,0xb0,0xb8,0xc0,0xc8,0xd0,0xd8,0xe0,0xe8,0xf0,0xf8,0xff,0xf8,0xf0,0xe8,0xe0,0xd8,0xd0,0xc8,0xc0,0xb8,0xb0,0xa8,0xa0,0x98,0x90,0x88,0x80,0x78,0x70,0x68,0x60,0x58,0x50,0x48,0x40,0x38,0x30,0x28,0x20,0x18,0x10,0x08,0x00;uchar code sine_tab256=/输出电压从0到最大值(正弦波1/4部分)0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,/输出电压从最大值到0(正弦波1/4部分)0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,/输出电压从0到最小值(正弦波1/4部分)0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 扎兰屯职业学院《学前教育学》2025-2026学年期末试卷
- 中国医科大学《国际企业管理》2025-2026学年期末试卷
- 长春中医药大学《中医儿科》2025-2026学年期末试卷
- 中国矿业大学《新闻编辑》2025-2026学年期末试卷
- 忻州职业技术学院《中药学》2025-2026学年期末试卷
- 扬州大学广陵学院《材料与科学基础》2025-2026学年期末试卷
- 长春工业大学人文信息学院《宪法学》2025-2026学年期末试卷
- 长治学院《行政法学》2025-2026学年期末试卷
- 2026年五年级数学思维训练
- 慢病健康视频
- 四川省宜宾市2025年中考化学模拟试卷(附答案)
- 患者出入院管理
- 工业机器人集成应用(ABB) 高级 课件全套 项目1-5 工业机器人系统集成设计 -工业机器人生产线系统集成
- 生成式人工智能时代文化传播特征、困境与路径选择
- 《自动化生产线安装与调试》课程标准
- DLT 593-2016 高压开关设备和控制设备
- 恒生估值业务手册
- 水电站改造简易施工合同
- Unit 2 Last weekend(教学设计)-2023-2024学年人教PEP版英语六年级下册
- JG-T 324-2011 建筑幕墙用陶板
- 概率与数列递推30题(马尔科夫链)
评论
0/150
提交评论