常用信号发生器的设计论文_第1页
常用信号发生器的设计论文_第2页
常用信号发生器的设计论文_第3页
常用信号发生器的设计论文_第4页
常用信号发生器的设计论文_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

0摘 要本设计充分利用单片机灵活的控制、丰富的外设处理能力,采用 DDS 技术根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。该设计的硬件系统由单片机作为核心控制单元,通过可编程键盘显示接口芯片连接键盘控制电路和 LED 数码管显示电路,与 单片机相连的还有 D/A 转换电路、复位电路、电源电路、 时钟电路等。任意波形发生器通过单片机向 0832 发送数字编码,产生不同的输出,先利用采样定理对各波形进行抽样,然后把各采样值进行编码,得到的数字量存入各个波形表,然后将波形数据存 储于存储器中,而后用可程控的时钟信号为存储器提供扫描地址,与每个地址相 对应的数据则代表波形在等间隔取样点上的幅度值。数据被送至 DAC,从而产生一个正比于其数字 编码的电压值,每个 电压值保持一个时钟周期,直至新的数据送至 DAC,经数模转换后得到所需要的模拟电压波形。执 行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。关键词: 任意波形发生器;AT89S51;D/A 转换器;频率1THE DESIGN OF ARBITRARY WAVEFORM GENERATORSAbstractThis article introduced one kind uses the MCS-51 monolithic constitution the generator, its line is simple, the structure is compact, the price is inexpensive. The profile production is carries out some profile through AT89S51 to have the procedure, has the data to the D/A switch input end according to certain rule, thus obtains the corresponding voltage waveform in the D/A switching circuit out-port. Meets 5 in at89S51 P2 mouth to press turns, chooses each kind of profile, the peak-to-peak value voltage and the frequency through the software programming, through the software programming, has the P0 mouth base pin to meet 8279 chips in addition, each kind of profile corresponds a button.The monolithic integrated circuit electric circuit function forms the scanning code, the key value recognition, key processing, the parameter establishment; Produces fixed time interrupts; Forms the profile the digital coding, and outputs the D/A connection electric circuit and the demonstration actuation electric circuit. The profile generator system software design and has each kind of profile subroutine by the master routine, the time delay procedure, the data sheet procedure and so on。 Key words:Arbitrary Waveform Generators; AT89S51; D/A Switching Circuit; Frequency2目 录1.引言 .11.1 课题的来源与技术背景 .11.2 研究信号发生器的目的及意义 .11.3 主要研究内容 .22. 信号发生器的理论分析与设计方案 .22.1 常用波形介绍 .32.1.1 正弦函数 .32.1.2 方波波形函数 .32.2 设计方案 .42.2.1 直接模拟法 .42.2.2 直接数字法 .42.3 信号发生器的基本结构框图 .53. 硬件系统设计 .63.1 单片机的选取 .63.2 复位电路 .63.3 时钟电路 .73.4 可编程键盘/显示器接口芯片 .73.5 键盘控制电路 .83.6 数码显示电路 .93.7 数模转换电路 .103.8 电源电路 .114. 系统软件设计 .114.1 系统程序总体框图 .114.2 波形产生程序各部分流程图 .134.2.1 正弦波形查表形成流程图 .144.2.2 三角波、锯齿波的形成 .154.2.3 方波的形成和实现 .154.2.4 程序实现的功能 .165. 总结 .17谢辞 .17参考文献 .1831.引言1.1 课题的来源与技术背景不论是在生产还是在科研与教学上,信号发生器都是电子工程师仿真实验的最佳工具。随着我国经济 和科技的发展, 对相应的 测试仪器和测试手段也提出了更高的要求,信号发生器己成 为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。 传统的 信号发生器采用专用芯片,成本高,控制方式不灵活。本设计充分利用单片机灵活的控制、丰富的外设处理能力,采用DDS技术,实现频率、幅 值可调的函数波形的 输出,同 时可以根据需要方便地实现各种比较复杂的调频、 调相和调幅功能,具有良好的实用性。根据其频率发生方法又可分为谐振法和合成法两种。一般的传统发生器都是采用的谐振法,即用具有 频率选择性的回路来产生正弦振荡,来获得所需频率,也可以根据频率合成技术来获得所需频率。利用频率合成技术制成的合成波形发生器,通常被称为频率合成器或频率综合器。 频率综合器是指利用 频率合成技术合成的频率源,它常常是没有调制的,也没有足够宽的和足够准确的输出电平调节,其工作范围往往也不宽,最小频率间隔也比较大,一般做专用 设备使用,或做某一个系统中的一个组成部分。1.2 研究信号发生器的目的及意义波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形) ,然后用其它 仪表测量感兴趣的参数。可 见信号源在各种 实验应用和试验测试处理中,它的应用非常广泛。它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以 满足测量或各种实际需要。目前我国己经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。函数波形发生器 发展很快近几年来,国 际 上波形发生器技术发展主要体现在以下几个方面: (1)过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形 发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同 时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了波形发生器向任意波形发生器的发展,各种计算机语言的飞速发4展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic, Visual C等等) 编写任意波形发生器的 软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。(2)与VXI资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用 VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开 发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、 军事及国防等大型领域。在民用方面,VXI 模 块远远不如台式仪器更为方便。(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪 器的形态,和几年前的己有很大的不同。 这些新一代台式仪器具有多种特性,可以 执行多种功能。而且外形尺寸与价格,都比 过去的类似产品减少了一半。1.3 主要研究内容(1)理论基础分析。了解波形发生器的相关理论,包括几种常用波形,如正弦波、方波等,然后介绍了波形发生器的主要方案及原理。(2)硬件系统设计。主要包括以下几个模块:串口电路;键盘、LED 显示电路;单片机系统;DAC芯片和放大电路设计。 (3)软件系统设计。主要有:系统总体流程设计;串口程序设计;单片机程序设计;键盘响应程序设计;LED显示程序设计;DAC 控制程序设计。(4)系统仿真调试。通过计算机进行模拟仿真调试。2. 信号发生器的理论分析与设计方案在测试与测量技术过程中,常用到已知波形的数字化生成,它在许多与测量有关的领域有着不可替代的作用。例如,数字化仿真,常被用于算法研究、模型研究、系统辨识或以蒙特卡 罗法搜索模型与算法。任意波形发生器出现以后,给人们提供的不仅是一个通用的基础技术平台,而是在人们面前打开了通往无限宽广空间的一扇门,使得人们对于信号波形的掌握与应用再也不必局限于简单的正弦波、方波等几种有限的波形了,它可以按照人们提供的测量序列产生出几乎任意形状的连续波形信号。2.1 常用波形介绍函数波形的一般表达式可以表示为 ,下面来介绍几种常),.,(21tcym用的函数波形 3:52.1.1 正弦函数正弦信号与余弦信号,两者只是在相位上相差 2,可以统称为正弦信号。其一般形式为f (t)=Asin(t+ ) (1)式中,A 为振幅, 是角频率, 为初相位。上述三量是正弦信号的三要素。它的波形见图 1。正弦信号是周期信号,其周期T 与频率f 及角频率 之间的关系为:(2)21f图 1 正弦波形在实际应用中经常遇到单边指数衰减的正弦信号,其波形如图 2 所示,表达式为:(3))0(sin)(tAetft图 2 指数衰减的正弦信号波形2.1.2 方波波形函数方波函数是一种常用的波形函数,其表达式为:(4))2(0)(Tttf方波的波形如图 2-3 所示:6图 3 方波波形2.2 设计方案目前信号发生的主要实现方法由直接模拟法、直接数字法两种。2.2.1 直接模拟法图 4 直接模拟法框图这是传统函数发生器的简化基本结构,一般都是由自由振荡器产生原始波形,然后经过转换电路将原始波形转换成其他波形,在上图中三角波是由振荡器产生的,方波是三角波通过 比较器转变而成的,正弦波是三角波通过一个波形整形电路(正弦波整形器)演变而来的,所需要波形经过放大和衰减输出,显然这种方式产生的波形种类有限,每增加一种波形,都要增加相应的转换电路,整个 电路变得很复杂,最重要的是要 产生用户所需要的任意波形复杂的波形几乎不可能 5。2.2.2 直接数字法直接数字法是采用直接数字合成(Direct Digital Synthesis)的方法实现信号产生。该 技术具有频率转换 速度快、 频率分辨率高、易于控制的突出特点。直接数字合成技术近年来发展得很快,而要产生任意波形就必须采用直接数字很成技术。随着 DDS技术的发展,出现了各种各样的直接数字合成的结构,但基本上可以发成两种:(1)基于地址计数器的数字频率合成法;7(2)基于相位累加器的数字频率合成法。由于直接数字法在设计上的的优点,本课题设计采用的是基于地址计数器的直接数字合成法。2.3 信号发生器的基本结构框图图 5 电路结构框图信号发生器采用的是直接数字合成的方法,上图是信号产生电路的结构框图,该系 统由单片机作为核心控制单元,通 过可编程 键盘显示接口芯片连接键盘控制电路和 LED 数码管显 示电路,外围电路有 DAC 转换电路、复位电路、电源电路、时钟电路等。单片机向 0832 发送数字编码,产生不同的输出。先利用采样定理对各波形进行抽样,然后把各采样值进 行编码,得到的数字量存入各个波形表, 执行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。假如 N 个点构成波形的一个周期,则 0832 输出 N 个样值点后, 样值点形成运动轨迹,即一个周期。重复输出 N 个点,成为第二个周期。利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率, 这样就控制了 输出的波形及其幅值和频率。将波形数据存储于存储器中,而后用可程控的时钟信号为存储器提供扫描地址,与每个地址相对应的数据则代表波形在等间隔取样点上的幅度值。数据被送至DAC ,从而产生一个正比于其数字编码的电压值,每个电压值保持一个时钟AT89S51单片机复位电路时钟电路电源电路模块键盘控制电路(五个按钮)八位数码管 LED显示模块D/A 转换器(数模转换器和运算放大器)可编程键盘显示器芯片调频调幅控制8周期,直至新的数据送至DAC, 经数模转换后得到所需要的模拟电压波形。3. 硬件系统设计硬件系统主要分为以下几个模块:单片机功能模块、显示接口电路,波形变换DAC 转换模块、时钟电 路、复位 电路和电源电路等。波形的产生是通过AT89S51 执行某一波形 发生程序,向D/A转换器的 输入端按一定的规律发生数据,从而在D/A转换电路的 输出端得到相应的电压 波形。在AT89S51 的P2 口接 5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有P0 口管脚接 8279芯片,以驱动数码管显示电压 幅值和频率,每种波形对应一个按钮。波形的 产生是通过单片机系统执行波形发生程序,在其数据线上送出一系列按一定规律变化的数据信息,通过D/A转换 器和运算放大器转化 为电压信号。3.1 单片机的选取根据系统对控制芯片的要求,单片机功能模块选取 AT89S51 芯片,AT89S51是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存 储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及80C51 引脚结 构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制 应用系统提供高性价比的解决方案。该单片机的功能是形成扫描码,键值识别、 键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到 D/A 接口电路和显示驱动电路。 AT89S51 具有如下特点:40 个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存 储器(RAM), 32 个外部双向输入/ 输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT )电路,片内 时钟振荡器。AT89S51 的 P2 口作为功能按钮和TEC6122 的接口,P1 口做 为 D/A 转换芯片 0832 的接口。 此 外 ,AT89S51 设 计 和 配 置 了 振 荡 频 率 可 为 0Hz 并 可 通 过 软 件 设 置 省 电模 式 。空 闲 模 式 下 ,CPU 暂 停 工 作 ,而 RAM 定 时 计 数 器 ,串 行 口 ,外 中 断 系统 可 继 续 工 作 ,掉 电 模 式 冻 结 振 荡 器 而 保 存 RAM 的 数 据 ,停 止 芯 片 其 它 功能 直 至 外 中 断 激 活 或 硬 件 复 位 。3.2 复位电路复位电路如图 6 所示,控制引脚 RST,引脚 9,复位输入信号,振荡器工作时,该引脚上 2 个机器周期的高电平可以实现复位操作。本文采用上 电 复 位 ,上 电9复 位 要 求 接 通 电 源 后 ,自 动 实 现 复 位 操 作 。图 中 电 容 C13 和 电 阻 R10 对+5V 的 电 源 来 说 构 成 微 分 电 路 ,使 在 刚 启 动 电 源 时 向 RST 引 脚 输 入 高 电平 信 号 ,完 成 系 统 的 复 位 操 作 。R710KS5 C11uRST图 6 复位电路3.3 时钟电路时钟引脚 XTAL1 和 XTAL2:XTAL1,引脚 18,内部振荡器外接晶振的一个输入端, XTAL2,引脚 19,内部振 荡器外接晶振的另一个输入端。 AT89S51 内部有一个高增益的反相放大器,通过 XTAL1 和 XTAL2 引脚外接石晶振子、微调电容构成振荡器,该振荡器 发出的脉冲直接送入内部时钟电路。C230pC330pXTAL6MX1X2 RSTX2X1EA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P101 P112P123 P134P145 P156P167 P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28PSEN 29ALE/P30TXD 11RXD 10IC1AT89S51P3.P3.0P3.1P00P01P02P3.P3.P3.P3.VCC图 7 时钟电路本设计中 Y1 为石英振子,当 选用石英振子时, 电容通常选择 30PF,振荡频率范围为 112MHz,该设计选用 12MHz。3.4 可编程键盘/显示器接口芯片108279 是 Intel 公司生产的通用可 编程键盘/显示器接口芯片。8279 可实现对键盘/ 显示器的自动扫描,并 识别键盘上闭合键的键 号。这样不仅可节省 CPU 对键盘/ 显示器的操作时间,而且显示稳定,程序简单,不会出现误动作。8279 可按其功能分为:键盘功能块;显示功能块;控制功能块; 与 CPU 接口功能块控制功能块包括控制和定时寄存器,定时和控制,扫描计数器三部分,它主要用来控制键盘和显示功能块工作.图 8 8279 芯片的键盘显示电路8279 能自动完成键盘输入和显示控制两种功能。键盘控制部分提供一种扫描工作方式,可与 64 个按 键的矩阵键盘连接,能 对键盘进行自动扫描、自 动消抖、自动识别 出按下的键并给 出编码,能同 时按下双键 或键实行保护,其接收键盘上的输入信息存入内部 FIFO 缓冲器,并可在有键输入时向 CPU 请求中断。8279 提供了按扫描方式工作的显示接口,其内部有一个 168 的显示缓冲器,能对 8位或 16 位 LED 自动进行 扫描,将显示缓冲器的内容在 LED 上显示出来。8279通过 74LS 138 译码器扩展 44 键盘、6 位显示器。由 3-8 译码器对 SL0SL2 译出键扫描线,由另一 3-8 译码器译出显示器的位扫描线,并采用了编码扫描方式。为了防止出现重键现象,扫描输出线高位 SL3 不参加 键扫描译码。 CPU 对 8279的监视采用了查询方式,故 8279 的中断请求信号 IRQ 悬空未用,整个电路结构见图。3.5 键盘控制电路矩阵式键盘也称为行列式键盘。行线通过上拉电阻接到 VCC 电源上,列线上逐列给低电平,如果有键 按下,相 应的行线就能够 接收到低电平,据此就可以11判断出相应的键值。单片机中所需按键较少,多采用独立式键盘。此种键盘结构简单,每只按键接单片机的一条 I/O 线,通过查询即可示别出每只按键的状态来。但由于本系统按键较多,在这里采用矩阵式排列键盘,如图所示。图 9 键盘控制电路矩阵式键盘可以合理应用硬件资源,把 16 只按键排列成 4*4 矩阵形式,用一个 8 位 I/O 口控制,把键盘上的行和列分别接在 IOA0IOA3 和 IOA4IOA7 先置 IOA0IOA3 为带数据缓 存器的高电平输出,置 IOA4IOA7 为带下拉电阻的输管脚,此时若有键按下,取 IOA4IOA7 的数据将得到一个值,把此值保存下来,再置 IOA4IOA7 为带数据反相器的高 电平输出,置 IOA0IOA3 为带下拉电阻的输入管脚,此时若键仍没弹起,取 IOA0IOA3 的数据将得到另一个值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值。 3.6 数码显示电路电路中 74LS164 的 A、B联在一起,接收由 单片机串口送来的信号,它的 Q7输出端又与下一个 164 的 A、B 端联在一起,以此 类 推, 实际组成了 N 8 位的移位寄存器,与数码管联接,可同时显示多位数字。在设计中为了节省芯片资源,采用了汇编语言实现了日期和时间分屏,仅采用六个 74164驱动六位的数码管,显示由于数码管实际上是由多个正常工作电压为 3V 的发光二极管组成的,系统没有必要单独为数码管提供电源,而是直接从主电源上引出一路为数码管供电,在实际应用中,可以在数码 管电源与系统主电源之间加上三个二极管来降压,刚好使其端电压为 3V 左右,符合数码管长时间工作的要求。数码管显示电路的具体联接方式图 10 所示。12图 10 4 位数码显示电路3.7 数模转换电路与单片机相连的是 D/A 转换电路将波形样值的编码转换 成模拟值,完成双极性的波形输出。D/A 转换电 路是由一片 DAC0832 数模转换器和一块运算放大器 uA741 组成。DAC0832 是一个具有两个输入数据寄存器的 8 位 DAC。目前生产的 DAC 芯片分为两类,一 类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。DAC0832 是具有 20 条引线的双列直插式 CMOS 器件,它内部具有两级数据寄存器,完成 8 位电流 D/A 转换,故不需要外加电路。0832 是电流输出型,示波器上显示波形,通常需要电压信号, 电流信号到电压信号的转换可以由运算放大器实现,可以 实现双极性输出。图 11 D/A 转换器的连接电路D/A 转换器采用 DAC0832 芯片,它由 8 位输入寄存器、8 位 DAC 寄存器和8 位 D/A 转换电路组成。输 入寄存器和 DAC 寄存器作 为双缓冲,因为在 CPU 数据线直接接到 DAC0832 的输入端时,数据在输入端保持的时间仅仅是在 CPU执行输出指令的瞬间内,输 入寄存器可用于保存此瞬间出现的数据。有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片 DAC0832,每片 DAC0832 的转换时间相同,就可采用 DAC 寄存器对 CPU 分时输入到13输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。转换的 8位数字量由芯片的 8 位数据输入线 D0D7 输入,经 DAC0832 转换后,通过 2个电流输出端 IOUT1 和 IOUT2 输出, IOUT1 是逻辑电平为1的各位输出电流之和,IOUT2 是逻辑电平为0的各位输出电流之和。另外,ILE、 、 、和 是控制转换的控制信号。8 位 D/A 转换器有 8 个输入端(其中每个输入端是 8 位二进制数的一位),有一个模拟输出端。 输入可有 28-256 个不同的二进制组态,输出为 256 个电压之一,即输出电压不是整个电压范围内任意值,而只能是 256 个可能值。 3.8 电源电路电源电路如图 13 所示,采用 220V 供电, 220 交流电经过变压器 T1 降压、二极管 D1D4 整流、电容 C5 滤波后产生 12V 直流 电,可以作为控制继电器的驱动电压。 12V 电压经过稳压 器 7805 稳压后产生 5V 电压,作为控制电路的主电源。电容 C2 作为 高频旁路电容,将各种高 频干扰信号旁路接地。在 设计的过程中,滤波电容 C1 要尽量选择的大,因 为在单片机向 EEPROM 中写数据的过程中,持续时间很长,典型时间为 8ms,这里选用的是 2200uF。所以只有选用较大容量的电容,才能在系统突然断电 的情况下保证单片机有足够的时间将 RAM 中的数据写入 EEPROM 中。C4103 C5103C63300D1D2D3D4+5v12IN-AC4.5VVin1GND2Vout 3IC2 7805LEDLEDR51KC71000u图 12 电源电路图4. 系统软件设计4.1 系统程序总体框图软件设计程序由主程序和子程序组成,两者都存放在 AT89S51 单片机中。 主程序的功能是:开机以后负责查键,即做键盘扫描及显示工作,然后根据用户所按的键转到相应的子程序进行处理,主程序框图如图 1 所示。 子程序的功能有:幅值输入处理、频率输 入处理、正弦波 输出、锯齿 波输出、方波输出、显示等。波形的产生是通过 AT89S51 执行某一波形发生程序,向 D/A 转换器的输入14端按一定的规律发生数据,从而在 D/A 转换电路的输出端得到相应的电压波形。在 AT89S51 的 P2 口接 5 个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有 3 个 P2 口管脚接 TEC6122 芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频率由单片机内部产生故使整个系统的频率降低。其波形发生器技术指标与操作设计如下:图 13 整体流程图(1)波形:方波、正弦波、锯齿波; (2)幅值电压:1V、2V、 3V、4V、5V; (3)频率:10HZ、 20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4)上电后,系统初始化,数码显示 6 个 ,等待 输入设置命令。 (5)按钮分别控制“ 幅值” 、“频率” 、“方波”、 “正弦波” 、“锯齿波”。 (6)“幅值“键初始值是 1V,随后再次按下依次增 长 1V,到达 5V 后在按就回到 1V。 (7)“频率“键初始值是 10HZ,随后在按下依次为20HZ、50HZ、100HZ、200HZ、500HZ、1000HZ 循环 。15图 14 按键控制流程图 根据上面的要求,程序分为主程序和子程序两部分.其中主程序的主要功能为,开机后利用查表法,通过程序结合键盘控制,进行键盘扫描和显示工作,根据按下的按钮转入相应的子程序中去,子程序分为六部分程序,分别为: 幅值输入处理程序、频率输入处理程序、正弦波 输出程序、 锯齿波输出程序、方波输出程序、显示程序。按照程序的要求,五个按 钮分别控制波形的幅值,波形的频率,另外三个按钮分别控制相对应的方波,正弦波,锯齿波。4.2 波形产生程序各部分流程图使用 AT89S51 单片机使外围电路变得异常简单,整个波形 发生器的主体任务落到了程序编写上。整个系 统的软件设计方案如图,采用外部中断二来中断所显示波形,以便进入下一波形的编辑和输出,在波形输出的同时利用外部中断一来实现同步的频率调节。扫描的过程中,先置 IOA0IOA3 为带数据缓存器的高电平输出,IOA4IOA7为带下拉电阻的输入管脚,此时若有键按下,取 IOA4IOA7 的数据将得到一个值,把此值保存下来,再置 IOA4IOA7 为带数据反相器的高电平输出,置 IOA0IOA3为带下拉电阻的输入管脚,此时若键仍没弹起,取 IOA0IOA3 的数据将得到另一16个值,把这两个值组合就可得知是哪个键按下了,再通过查表得到键值,跳转至相应程序段,执行输出相应波形或者编辑波形,从而达到控制波形的目的。整体按键过程如图 14 所示。 4.2.1 正弦波形查表形成流程图设计之初,我一直都在尝试使用函数来计算输出波形,使用这种方法,在示波器上得到了很好的波形,但是在 CPU 时钟频率没调至最高的情况下,所得到的频率只是多少毫赫兹到几十赫兹之间,基本上没有实用价值。要达到更高的频率,就得另辟蹊径了。分析一下为什么频率上不去,主要原因在于,使用单片机进行正弦函数的运算时占去了不少时间,如果去掉这一计算过程波形的频率应该大有提高,另外就是CPU 时钟频率没有调至最高 ,以及 DAC 转换过程需要时间。为了达到更高的频率,首先就要免去单片机的计算负担,我使用的解决方法是人为计算出要输出的点,然后建一个表通过查表来进行输出,这样主要工作任务就落到了建表的过程中。这样做的好处在于,查表所耗费的时钟周期相同,这样输出的点与点之间的距离就相等了,输出的波形行将更趋于完美,当然更让我们感到的高兴的是它输出波形的频率将近达到了 100K 赫兹,能够满足我们设计的扩展要求了。为了实现频率的调整,我在一个正弦波周期里建了两百个点,如果我们隔一个取点的话,且在 CPU 时钟频率不改变的情形下,正弦波频率将相对于前面的频率提高将近一倍。这样我们就得到了解决频率调整的方法,首先进行 CPU 时钟频率选择,再调整一个正弦函数一个周期输出的点数,幅度的调节是通过初始幅度设置再通过外部放大电路来调节,设计程序流程图如图 15 所示。17图 15 正弦波形查表形成流程图在另外,由于函数产生波形及其方便 ,单片机又提供了大量函数库,在设计过程中我在低频部分依然采用函数 设计,因为这更有利于数字幅度和 频率的调节。4.2.2 三角波、锯齿波的形成 三角波、锯齿波形成的原理同正弦波形成的原理大致相同,在这里将不做作详细介绍,其流程图如图 16 所示。4.2.3 方波的形成和实现方波是我们最常用的一种波形,并且常常作为一种标准信号应用在各个领域,凌阳 SPCE061A 提供了一种很好的方波 发生机制, 就是 APWM 调制,通过写入P_TimerA_Ctrl($700BH)单 元的第 69 位,可选择设置 APWM 输出波形的脉宽占空比; 同理,写入 P_TimerB_Ctrl($700DH)单元的第 69 位,便可选择设置 BPWM输出波形的脉宽占空比。我 们可以将 IOB8 设置成同相输出端口,通过设置P_TimerA_Ctrl(写)($700BH)的第 05 位来选择 TimerA 的时钟源(时钟源 A、B)。设置该单元的第 69 位(如 图所示),TimerA 将输出不同频率的脉宽调制信号,即对脉宽占空比输出 APWM 进行控制。这里为了得到最标准的波形采用这种方式来实现标准方波。在某些应用领域由于各种干扰和响应的存在,实际电路往往存在各种信号缺陷和瞬变信号,为了满足各种需要我们还设计了有频率突变的方波,如图 11 所示。具体设计方案是采用不停的输出和停止输出某一幅度的值,在一个序列周期我们总共提供八位可变数值,因为在数据传输过程中一般是八位为一帧进行传输。通 过键盘的编辑可以达到我们的需求。 按键控制的第 6 到第 12 个按键,都是用来改变和编辑波形参数的,这就为整个系统能输出各种波形提供了可能性,以及增加了它的实用性。另外还用外部中断一来进行同步调试,我们可在中断里写入各种参数,就可达到我们所要求的波形及其实现参数变化的目的。18图 16 三角波查表形成流程 图 4.2.4 程序实现的功能(1)能产生正弦波、方波、三角波、锯齿波几种周期性波形,并且

温馨提示

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

评论

0/150

提交评论