1、课 程 设 计课 程 单片机课程设计 题 目 波形发生器设计 院 系 电气信息工程学院测控系 专业班级 学生姓名 学生学号 指导教师 波形发生器设计12011 年 4 月 6 日波形发生器设计1任务书课程 单片机课程设计 题目 波形发生器设计 专业 测控技术与仪器 姓名 学号 一、任务设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和锯齿波信号可以在以上基础上任意发挥。二、设计要求1 设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波等。2 通过对 AT89S51 单片机的编程,了解不同波形的产生原理和设计方案,画出硬件电路图,编程完成软件部分,最后调试观察产生不同类
2、型的波形信号。3 写出详细的设计报告。4 附有电路原理图及程序流程图,以及程序清单。三、参考资料1 杜华.任意波形发生器及应用J.国外电子测量技术,2005.1:3840.2 程全.基于 AT89C52 实现的多种波形发生器的设计J.2005.22(5):5758.3 胡鸿豪,李世红 .基于单片机和 DDS 的信号发生器设J.设计参考,2006 (12)4 徐建军.MCS-51 系列单片机应用及接口技术M .人民邮电出版社, 2003.5 高峰.单片机应用系统设计及实用设计J.北京:机械工业出版社,2004 年:96-100完成期限 2011.3.28 至 2011.4.8 指导教师 专业负责
3、人 2011 年 3 月 28 日波形发生器设计2目录第 1 章 绪论 31.1 波形发生器的概述 .31.2 本设计任务 .3第 2 章 总体方案论证与设计 42.1 总体方案选择与论证 .42.2 系统设计基本原理图与分析 .5第 3 章 系统硬件电路的设计 63.1 单片机最小系统的设计 63.2 资源分配 .63.3 各模块电路的设计 .73.4 按键和波形指示灯电路 .83.5 电流电压转换电路 .9第 4 章 系统的软件设计 104.1 主程序模块 104.2 锯齿波程序模块 114.3 三角波程序模块 11第 5 章 系统调试与测试结果分析 135.1 软件仿真 135.2 仿真
4、结论分析 145.3 硬件测试结果分析 14结 论 15参考文献 16附录 1 程序 .17附录 2 整体电路原理图 .24附录 3 仿真效果图 .25波形发生器设计3第 1 章 绪论波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。作为一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。函数信号发生器是一种能够产生多种波形,如三角波、锯齿波、矩形波(含方波) 、正弦波的电路。通过对函数波形发生器的原理以及构成分析,可设计一
5、个能变换出三角波、正弦波、方波的函数波形发生器。1.1 波形发生器的概述波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。随着集成电路的迅速发展,用集成电路可很方便地构成各种信号波形发生器。用集成电路实现的信号波形发生
6、器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。1.2 本设计任务本设计通过分析比较后采用传统的方法来实现多功能波形发生器。借助高性能单片机运算速度高,系统集成度强的优势,设计的这种信号发生器,比以前的数字式信号发生器具有硬件简单,理解及实现起来较容易,该方案的设计思路较为清晰,且容易对频率和幅值进行控制等优点。波形发生器设计4第 2 章 总体方案论证与设计依据应用场合需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据不同的设计要求选取不同的设计方案。通常,波形发生器需要实现的波形有正弦波、方波、三角波和锯齿波。有些场合可能还需要任意波形的产生。
7、各种波形共有的指标有:波形的频率、幅度要求,频率稳定度,准确度等。2.1 总体方案选择与论证对于不同波形,具体的指标要求也会有所差异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分为几大类:纯硬件设计法、纯软件设计法和软硬件结合设计法。2.1.1 方案一:波形发生器设计的纯硬件法早期,波形发生器的设计主要是采用运算放大器加分立元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理也相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在各种波形后加上一级放大电路,可以使输出波形的幅度达到要求
8、,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。通过调整外部元件的参数实现频率,幅值,占空比的调整,但是由于元件太过分散,即使使用单片压控函数发生器,参数与外部条件有关。因而产生的波形稳定性差,精度低,抗干扰能力差,价格高,且灵活性差。2.1.2 方案二:软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单片集成函数发生器为核心。辅以键盘控制、液晶显示等电路,设计出智能型函数波形发
9、生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,采用单片机波形发生器设计5(AT89S51)和数模转换芯片(DAC0832)实现波形的产生,波形的产生由程序控制,向 D/A 的输入端按一定的规律发送数据,经过 D/A 和 MC1458 产生100Hz 频率波形,通过查询键盘或中断控制不同波形的产生。此方案通过编程简化了外部电路,原理简单,容易实现。方案选择:经比较,方案二明显更适合实现课程设计题目的要求。通过编程实现不同波型的产生,并且可以通过按键实现波形的切换。该方案线路简单,结构紧凑,系统稳定,易控制,容易调试等优点,综上分析,选择方案二实
10、现课题要求。2.2 系统设计基本原理图与分析2.2.1 系统原理框图如图 2-1图 2-1 波形发生器系统框图2.2.2 原理框图分析:该波形发生器主要由单片机(AT89S51) ,数模转换电路( DAC0832),电流/电压转换电路(MC1458 ) ,按键和波形指示灯电路,ISP 接口等组成。其工作原理为当按下四个按键当中的任何一个按键,就会产生相对应的波形,并且四个 LED 灯作为不同波形的指示。键盘 AT89S51波形指示电源A/D 转换基准电压电流/电压转换输出波形发生器设计6第 3 章 系统硬件电路的设计3.1 单片机最小系统的设计AT89S51 是片内有 ROM/EPROM 的单
11、片机,因此,这种芯片构成的最小系统简单可靠。用 AT89S51 单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图 3-1 AT89S51 单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:有可供用户使用的大量 I/O 口线;内部存储器容量有限;应用系统开发具有特殊性。图 3-1 AT89S51 单片机最小系统3.2 资源分配软硬件设计是设计中为了满足功能和指标要求,现分配资源如下:波形发生器设计7晶振采用 12MHz,内存分配:P0 口与 DAC0832 的 DI0-DI7 数据输入;P1口的 P1.0P1.3 分别与四个按键相连,
12、分别控制相应波形的输出,每输出一个波形,点亮对应的 LED 灯端相连;P2 口与 DAC0832 的输入寄存器选择信号CS,输入寄存器写选通信号 WR1 及 DAC 寄存器写选通 WR2 和数据传送信号XFER使 CPU 开始工作的方法就是给 CPU 一个复位信号,复位信号结束后,CPU从程序存储器“0000H”开始执行程序。AT89S51 高电平复位,采取手动复位。设置一个复位按钮,当操作者按下按钮时产生一个复位信号。3.3 各模块电路的设计3.3.1 D/A 转换电路DAC0832 是双列直插式 8 位 D/A 转换器。能完成数字量输入到模拟量( 电流)输出的转换。其主要参数如下:分辨率为
13、 8 位,转换时间为 1s ,满量程误差为1LSB ,参考电压为 (+10-10)V ,供电电源为(+5 +15)V,逻辑电平输入与 TTL 兼容。图 3-2 DAC0832 引脚图3.3.2 DAC0832 工作原理DAC0832 主要由 8 位输入寄存器、8 位 DAC 寄存器、8 位 D/A 转换器以及输入控制电路四部分组成。8 位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8 位 DAC 寄存器用于存放待转换的数字量,由加以控制;8 位 D/A 转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制 2 个寄存器的选通或锁存状态。DA
14、C0832 与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反。波形发生器设计8图 3-3 D/A 转换器双极性输出电路图 3-3 中,运算放大器 U3B 的作用是把运算放大器 U3A 的单向输出电压转换成双向输出电压。DAC0832 主要是用于波形的数据的传送,是本题目电路中的主要芯片。3.4 按键和波形指示灯电路原理图如下图 3-4 采用中断的方式对波形的切换对于查询方式对波形的切换,当按键按下时,输出相应波形,并点亮相应的 LED 灯,对于中断方式,利用两个外部中断实现对波形的切换。中断与查询相结合的方式可以进行扩展,查询方式不是实时的,而中断时实时的
15、。波形发生器设计93.5 电流电压转换电路原理图如下:图 3-5 I/V 转换电路实现 I/V 转换最简单的方法就是直接在 1out1 和 Iout2 之间跨界一电阻,这样就很容易的实现了 I/V 转换,但是这种方法忽略了一个阻抗问题。对于DAC0832 来说,R 的取值应尽可能大,能够保证获得更多的电压,对于与输出电压相连的后续电路来说,R 的取值应尽可能的小,以降低输出阻抗,这两方面是矛盾的,所以这种方式欠合理。而合理的方式是应用运算放大器实现 I/V转换,也解决了阻抗的问题。波形发生器设计10第 4 章 系统的软件设计根据功能,系统软件设计分成几个模块编程:主程序模块,锯齿波程序模块,三
16、角波程序模块,正弦波程序模块,方波程序模块,延时程序模块。4.1 主程序模块主程序流程图图 4-1 主程序流程图主程序中主要实现利用按键来控制不同波形的输出,当按键 KEY1(P1.0)按下时波形发生器就输出锯齿波,对应的 LED(P1.4)点亮;当按键KEY2( P1.1)按下时,波形发生器就输出三角波,对应的 LED(P1.5)点亮;当按键 KEY3(P1.2)按下时,波形发生器就输出正弦波,对应的 LED(P1.6)点亮;当按键 KEY4(P1.3)按下时,波形发生器就输出方波,对应的LED(P1.7)点亮。通过按键可以以任意循环方式输出不同波形。开始KEY1 按下了? 输出锯齿波KEY
17、3 按下了?KEY2 按下了?KEY4 按下了?NNNNNYYYY输出三角波输出正弦波输出方波波形发生器设计114.2 锯齿波程序模块程序流程图图 4-2 锯齿波程序流程图锯齿波产生首先将 DAC0832 口地址至为 2FFFH,然后将 00H 送入寄存器 A中,DAC0832 输出 A 中的内容,当 A 中的内容等于 FFH 返回开始,当 A 中的内容不为 FFH 时,A 中的内容累加,从而输出波形。4.3 三角波程序模块程序流程图图 4-3 三角波程序流程图波形发生器设计12三角波产生首先将 DAC0832 口地址至为 2FFFH,通过 A 中数值的加一递升,当 A 中的内容为 0 时,与
18、 0FFH 相比,相等时 A 中的内容减一递减,从而循环产生三角波。4.4 正弦波程序模块和方波程序模块程序流程图图 4-4 正弦波程序流程图 图 4-5 方波程序流程图正弦波波形通过查表指令得出。方波产生首先将 DAC0832 口地址至为 2FFFH,当 A 中的内容为 0 时,输出对应模拟量,然后延时,当 A 中的内容为 0FFH 时,同样输出对应模拟量,再延时相同时间,从而得到方波。波形发生器设计13第 5 章 系统调试与测试结果分析5.1 软件仿真图 5-1 锯齿波仿真图图 5-2 三角波仿真图图 5-3 正弦波仿真图图 5-4 方波仿真图波形发生器设计145.2 仿真结论分析从软件仿
19、真的结果上看,波形存在一定的的失真,这主要跟程序的设计有关,没有做到那么精确,再者,我认为仿真软件本身也会给测试结果一定的误差。5.3 硬件测试结果分析硬件测试结果显示,示波器显示的波形比仿真软件模拟甚至还标准,而且对按键的响应比仿真响应快。这在一定程度上,告诉我们,仿真软件只是一个我们研究的工具,我们不能完全依赖于于仿真软件。波形发生器设计15结 论本次的设计中利用 AT89S51 和 DAC0832 以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。在这次的软件设计中,程序设计采用的是汇编语言。汇编语言具有速度快,可
20、以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。通过这次课程设计使我对课程所学理论知识的深化和提高。并且本次课程设计,使我了解和掌握单片机应用系统的软硬件设计过程、方法及实现,培养了我分析问题和解决问题的能力,为以后设计和实现更难的应用系统打下良好基础。在本次设计的过程中,我发现很多的问题,虽然以前还做过其他的课程设计但这次设计真的让我长进了很多。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但
21、怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,花费时间最多的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。同时在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分
22、理想,各种参数都需要自己去调整。在实践中应用的深刻理解,通过把波形在计算机上实现,知道和理解该理论在计算机中怎样执行的,对该理论在实践中的应用更深刻的理解,这次课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我学得了许多知识,使我获益匪浅。波形发生器设计16参考文献1 朱定华,马爱梅,林卫. 微机应用系统设计M . 武汉:华中科技大学出版社.1999:130-133.2 顾德英,张健,马淑华. 计算机控制技术M. 北京:北京邮电大学出版社.2006:64-70.3 夏扬. 计算机控制技术M. 北京:机械工业出版社.2004:11-924 刘国钧,陈绍业,王凤翥.图书馆目录M.
23、北京:高等教育出版社.1957.15-18.5 刘润华,刘立山 .模拟电子技术J.山东:石油大学出版社.2003.6 潘永雄,沙河,刘向阳.电子线路 CAD 实用教程M.西安:西安电子科技大学出版社.2001.13-118. 7 朱定华,戴汝平等 .单片微机原理与应用M.北京交通大学出版社.清华大学出版社.8 彭介华.电子技术课程设计指导J.北京:高等教育出版社.1997.9张毅刚,彭喜源,谭晓昀,曲春波.MCS-51 单片机应用设计M.哈尔滨:哈尔滨工业大学出版社.1997.53-61.10(美)Richard Blum 著 ,马朝晖等译.汇编语言程序设计M 北京市:机械工业出版社.11杜华
24、.任意波形发生器及应用J.国外电子测量技术.2005.1:38-40.12 程全.基于 AT89C52 实现的多种波形发生器的设计J.2005.22(5):57-58.13 胡鸿豪, 李世红.基于单片机和 DDS 的信号发生器设J.设计参考.2006(12)14 徐建军. MCS-51 系列单片机应用及接口技术M.人民邮电出版社.2003.15 高峰.单片机应用系统设计及实用设计J.北京:机械工业出版社.2004 年:96-100.16江思敏,陈明 . Protel 电路设计教程M . 北京:清华大学出版社.波形发生器设计17附录 1 程序源程序;*;课程设计题目:波形发生器设计;实 现 功
25、能:能产生正弦波,三角波,锯齿波,方波; 可通过按键能对各波形的切换,频率为: 100HZ; 按键查询方式;*;*;对按键进行设定;*KEY1 EQU P1.0KEY2 EQU P1.1KEY3 EQU P1.2KEY4 EQU P1.3ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP,#60H ;设置堆栈区;*;按下 KEY1 生成锯齿波程序;*B1:MOV A,#00HLP1:CLR P1.4SETB P1.5SETB P1.6SETB P1.7MOV DPTR,#2FFFH;对MOVX DPTR,ALCALL DELYB1CJNE A,#0FFH,ADD1JN
26、B KEY2,B2JNB KEY3,B3JB KEY4,D0LJMP B4D0: SJMP B1ADD1: INC A ;SJMP LP1;*;按下 KEY2 生成三角波程序;*波形发生器设计18B2: MOV A,#00HUP1:CLR P1.5SETB P1.4SETB P1.6SETB P1.7MOV DPTR,#2FFFHMOVX DPTR,ALCALL DELYB2INC AJNZ UP1DOWN1:DEC AMOVX DPTR, ALCALL DELYB2JNZ DOWN1JNB KEY1,B1JNB KEY3,B3JB KEY4,C0LJMP B4C0: SJMP UP1;*;K
27、EY3 按下生成正弦波;*B3: MOV R1,#00HLOOP1:CLR P1.6SETB P1.5SETB P1.4SETB P1.7MOV A,R1MOV DPTR,#SETTABMOVC A,A+DPTRMOV DPTR,#2FFFHMOVX DPTR,ALCALL DELYB3INC R1JNB KEY1,B1JNB KEY2,B2JB KEY4,E0LJMP B4E0:AJMP LOOP1SETTAB: ;正弦表格DB 80H,83H,86H,89H,8DH,90H,93H,96H波形发生器设计19DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB
28、0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDHDB
29、0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAHDB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAHDB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7HDB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1HDB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99HDB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80HDB 80
30、H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69HDB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51HDB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AHDB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27HDB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16HDB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AHDB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02HDB 02H, 01H, 00H,
31、00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02HDB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09HDB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15HDB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25HDB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38HDB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EHDB 51H, 55H, 57H, 5AH, 5DH, 60H
32、, 63H, 66HDB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HRET;*;按下 KEY4 生成方波;*B4: MOV A,#00HLP2:CLR P1.7SETB P1.4SETB P1.5SETB P1.6MOV DPTR,#2FFFHMOVX DPTR,ALCALL DELYB4MOV A,#0FFH波形发生器设计20MOVX DPTR,ALCALL DELYB4JB KEY1,J0LJMP B1J0: JB KEY2,J1LJMP B2J1: JB KEY3,J2LJMP B3J2: LJMP B4;*;下面为延时程序的编写;*;延时 26usDE
33、LYB1:MOV R3,#01HDL0:MOV R2,#0AHDJNZ R2,$DJNZ R3,DL0RET;延时 10usDELYB2:MOV R5,#01HDL1:MOV R4,#02HDJNZ R4,$DJNZ R5,DL0RET;延时 17usDELYB3:MOV R5,#07HDJNZ R5,$RET;延时 5msDELYB4:MOV R6,#13HDL3:MOV R5,#82HDJNZ R5,$DJNZ R6,DL0RETEND波形发生器设计21;*;采用中断方式实现波形的切换;*ORG 0000HAJMP MAINORG 0003H; 外部中断 0 入口地址AJMP JUCHIB
34、O; 方波,对应 P3.2 口ORG 0013H; 外部中断 1 入口地址AJMP SANJIAO; 三角波对应 P3.3 口ORG 0030HMAIN: SETB EX0; 开外部中断 0SETB EX1; 开外部中断 1MOV IP,#04H;外部中断 1 优先,P3.3CLR IT0; 外部中断 0 触发方式(电平触发)CLR IT1; 外部中断 1 触发方式(电平触发)SETB EA; 开总中断LCALL ZHENGXUANSJMP MAINSANJIAO:MOV DPTR,#2FFFH ; 设置 D/A 口地址MOV A,#00H; LOOP1:MOVX DPTR,A ; 输出对应于
35、 A 内容的模拟量, 2 个机器周期LCALL DELAY3; 2 个机器周期,应该延时 11usINC A; 1 个机器周期JNZ LOOP1; 2 个机器周期LOOP2:DEC A ;1 个机器周期MOVX DPTR,A;2 个机器周期LCALL DELAY3;2 个机器周期,延时 11usJNZ LOOP2;2 个机器周期SJMP LOOP1RETIJUCHIBO:LOOP3:MOV DPTR,#2FFFH;设置 D/A 口地址MOV A,#00HLOOP4:MOVX DPTR,ALCALL DELAY1;26usCJNEA,#0FFH,ADD1SJMPLOOP3ADD1: INCA波形
36、发生器设计22SJMP LOOP4RETIZHENGXUAN: MOV R3,#00H ;取表格初值LOOP5: MOV A,R3;1 个周期MOV DPTR,#SETTAB;2 个周期MOVC A,A+DPTR;查表指令,2 个周期MOVX DPTR,A; 输出对应于 A 内容的模拟量, 2 个周期LCALL DELAY1;2 个周期,延时 26usINC R3;1 个周期SJMP LOOP5;2 个周期;相邻两点之间指令占据时间为 13us,这个时间应该要计算进去SETTAB: ;正弦表格DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A
37、2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FF
38、H,0FFH, 0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAHDB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAHDB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7HDB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1HDB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99HDB 96H, 93H, 90H, 8DH
39、, 89H, 86H, 83H, 80HDB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69HDB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51HDB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AHDB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27HDB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16HDB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AHDB 09H, 08H, 07H, 06H, 05H, 04H, 0
40、3H, 02HDB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00HDB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02HDB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09HDB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15HDB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H波形发生器设计23DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38HDB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH,
41、4EHDB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66HDB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HRET;延时 26usDELAY1: MOV R6,#01HDL0:MOV R5,#0AHDJNZ R5,$DJNZ R6,DL0RET;延时 11usDELAY3: SETB RS0SETB RS1 MOV R7,#01HDL3:MOV R6,#01HDL2:MOV R5,#01HDJNZ R5,$DJNZ R6,DL2DJNZ R7,DL3RETEND波形发生器设计24附录 2 整体电路原理图波形发生器设计25附录 3 仿真效果图波形发生器设计1