单片机函数波形发生器课程设计_第1页
单片机函数波形发生器课程设计_第2页
单片机函数波形发生器课程设计_第3页
单片机函数波形发生器课程设计_第4页
单片机函数波形发生器课程设计_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

1、东北石油大学课程设计课程单片机课程设计题目函数波形发牛器设计院 系电气信息工程学院测控系专业班级测控技术与仪器 11 1学生姓名 任建伟学生学号 110601240123指导教师路敬祎张岩2014年7月8日东北石油大学课程设计任务书课程单片机课程设计题目函数波形发生器设计专业 测控技术与仪器姓名任建伟学号110601240123一、任务设计一款基于AT89C51单片机的函数波形发生器。二、设计要求要求:利用D/A芯片产生峰峰值为5V的锯齿波、三角波、梯形波、正弦 波和方波。控制功能:使用5个拨动开关进行功能切换。当 K0接高电平时输出锯齿波;当K1接高电平输出梯形波;当K2接高电平输出三角波;

2、K3接高电平输出正弦 波;K4接高电平输出方波。使用的主要元器件:8031、6MHz的晶振、74LS373、74LS138、2764、DAC0832、LM324、拨动开关 K0、K1、K2、K3、K4 等。输出波形的验证方法:使用示波器测量输出波形。三、参考资料1 陈志旺,李亮。51单片机快速上手。机械工业出版社。2 薛定宇。控制系统计算及辅助设计一一 MATLAB语言与应用(第2版)。清华 大学出版社。3 邹虹。单片机波形发生器的设计。重庆邮电学院学报。4 毅刚,彭喜元。单片机原理与应用设计。电子工业出版社 杨素行模拟电子技术基础简明教程(第三版)M.北京:高等教育出版社,2006.Alti

3、um DeSigner 原理图与PCB设计M.北京:电子工业出版社 2009.完成期限2014630 至 2014.7.9指导教师路敬祎 张岩专业负责人曹广华2014 年 6 月 30 日目录第一章绪论 11.1课题背景 11.2本系统研究的国内外现状 31.3本文主要研究内容和工作 3第二章方案论证 42.1 方案一纯硬件设计法 42.2方案二纯软件设计法 52.3方案三软硬件结合法5第三章系统硬件设计 73.1内部结构概述 73.2 P0P3 口结构及功能 83.3时钟电路和复位电路 93.4系统硬件总体设计123.5 DAC0832的引脚及功能 123.6 74LS373的引脚及功能 1

4、33.7系统硬件原理 14第四章系统的软件设计 164.1主程序流程图 164.2波形的产生 17第五章系统调试与仿真结果 195.1 系统调试 195.2 仿真结果 19结论 21参考文献 22附录一程序 23附录二 仿真效果图 31Word资料第一章绪论1.1课题背景波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。函数波形发生器具有连续的相位变换、 和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、 波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统, 因此被广泛用于自动控制系统、震动激励、通讯和

5、仪器仪表领域。在70年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准 波形,产生其它波形时需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技术,而且模拟器件构成的电路存在着尺寸大、价格贵、 功耗大等缺点,并且要产生较为复杂的信号波形,则电路结构非常复杂。同时, 主要表现为两个突出问题,一是通过电位器的调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调节。在70年代后,微处理器的出现,可以利用处理器、A/D和D/A ,硬件和软件使波形发生器的功能扩大,产生更加复杂

6、的波形。这时期的波形发生器多以软 件为主,实质是采用微处理器对 DAC的程序控制,就可以得到各种简单波形。90年代末,出现几种真正高性能、高价格的函数发生器、但是 HP公司推 出了型号为HP770S的信号模拟装置系统,它由 HP8770A任意波形数字化和 HP1776A波形发生软件组成。HP8770A实际上也只能产生8中波形,而且价格 昂贵。不久以后,Analogic公司推出了型号为Data-2020的多波形合成器,LeCrOy公司生产的型号为9100的任意波形发生器等。到了二一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过GHZ的DDS芯片,同时也推动了函数波形发生器的发展,200

7、3年,Agile nt的产品33220A能够产生17种波形,最高频率可达到20M,2005年的产品N6030A能够产生高达500MHZ的频率,采样的频率可达 1.25GHZ。由上面的 产品可以看出,函数波形发生器发展很快近几年来,国际上波形发生器技术发展 主要体现在以下几个方面:(1) 过去由于频率很低应用的范围比较狭小,输出波形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得 更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波 形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形 可以由几个比较简单的公式复合成

8、 v=f (t)形式的波形方程的数学表达式产生。从 而促进了函数波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如ViSUaI BaSiC ,Visual C等等)编写任意波形发生器的软面板这样允许从计算 机显示屏上输入任意波形,来实现波形的输入。(2) 与VXl资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机 的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要 求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了 明显的优越性,但由于开发VXI模块的周期长

9、,而且需要专门的VXI机箱的配套 使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方 面,VXl模块远远不如台式仪器更为方便。(3) 随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。 不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪 器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类似产 品减少了 一半。1.2本系统研究的国内外现状早在1978年,由美国 WaVetek公司和日本东亚电波工业公司公布了最高 取样频率为5MHz,可以形成256点(存储长度)波形数据,垂直分辨率为8bit, 主要用于振动、医疗、材料等领

10、域的第一代高性能信号源,经过将近30年的发展,伴随着电子元器件、电路、及生产设备的高速化、高集成化,波形发生器的 性能有了飞速的提高,变得操作越来越简单而输出波形的能力越来越强。波形操 作方法的好坏,是由波形发生器控制软件质量保证的, 编辑功能增加得越多,波 形形成的操作性越好。1.3本文主要研究内容和工作近年来,波形发生器在各种领域中得到越来越广泛的应用。本系统主要通过研究51单片机的功能,外加D/A转换器等其它器件,进行硬件设计和软件编程, 完成锯齿波、梯形波、三角波、方波和正弦波共五种波形的形成。波形频率的变 化由程序来控制,即通过改变定时器的初值来改变输出波形相邻两点的时间间 隔,从而

11、实现波形频率的改变。第二章方案论证2.1方案一纯硬件设计法波形发生器设计的纯硬件法早期,波形发生器的设计主要是采用运算放大器 加分立元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作 原理嗍也相对简单:首先是产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为三角波)实现方波和三角波。在各种波形后加上 一级放大电路,可以使输出波形的幅度达到要求,通过开关电路实现不同输出波 形的切换,改变电路的具体参数可以实现频率、 幅度和占空比的改变。通过对电 路结构的优化及所用元器件的严格选取可以提高电路的频率稳定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较

12、多,电路形式一般有LC、RC和石英晶体振荡器三类。LC振荡器适宜于产生几HZ至几百MHZ的高频信号; 石英晶体振荡器能产生几百kHz至几十MHZ的高频信号且稳定度高;对于频率 低于几MHZ ,特别是在几百HZ时,常采用RC振荡电路。RC振荡电路又分为文 氏桥振荡电路、双T网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路 最为常用。目前,实现波形发生器最简单的方法是采用单片集成的函数信号发生 器。它是将产生各种波形的功能电路集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突出优势是电路简单,实现方便,精 度高,性能优越;缺点是功能较全的集成芯片价格较贵。实际中应用

13、较多的单片 函数信号发生器有 MAX038(最高频率可达 40MHZ)和ICL8038(最高频率为30OkHZ)。2.2方案二纯软件设计法波形发生器的设计还可以采用纯软件的方法来实现。虚拟仪器鞠使传统仪器 发生了革命性的变化,是21世纪测试仪器领域技术发展的重要方向。它以计算 机为基础,软件为核心,没有传统仪器那样具体的物理结构 在计算机上实现仪 器的虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具 LabVIEW 来实现任意波形发生器的功能:在 LabVIEW 软件的前面板通过拖放 控件,设计仪器的功能面板(如波形显示窗口,波形选择按键,波形存储回放等 工作界面),在软件的后

14、面板直接拖放相应的波形函数并进行参数设置或直接调 用编程函数来设计任意波形以实现波形产生功能;完成的软件打包后,可脱离编程环境独立运行。实现任意波形发生器的功能。采用纯软件的虚拟仪器设计思路 可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功能的改变或升级。 从长远角度来看,纯软件法成本较低。软件法的缺点是波形的响应速度和精度逊 色于硬件法。2.3方案三 软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和 单片集成函数发生器为核心。辅以键盘控制、液晶显示等电路,设计出智能型函 数波形发生器,

15、采用软硬件结合的方法可以实现功能较全、性能更优的波形发生 器,同时还可以扩展波形发生器的功能,比如通过软件编程控制实现波形的存储、 运算、打印等功能,采用 USB接口设计。使波形发生器具有远程通信功能等。 目前,实验、科研和工业生产中使用的信号源大多采用此方法来实现。纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能 性,其中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用 外。基本不被采用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现 的波形精度及响应速度不如硬件法高。纯软件法主要适用于对波形精度、响应速 度要求不是很高的场合。相比之下,软硬件结合的方法

16、可以设计出性能最优、 功 能扩展灵活、控制智能化的新一代的波形发生器,可以满足教学、科研、工业生 产等各方面对波形发生器性能有较高要求的应用场合。综合以上几种设计方案, 本设计采用方案三的方法一软硬件设计法。 其方案能够产生很好的波形,也易实 现。第三章系统硬件设计3.1内部结构概述典型的MCS-51单片机芯片集成了以下几个基本组成部分:1)一个8位的CPU ;2)128B或256B单元内数据存储器(RAM);3)4KB或8KB片内程序存储器(ROM或EPRoM);4)4个8位并行I/O 接口 P0P3 ;5)两个定时/计数器;6)5个中断源的中端管理控制系统;7)一个全双工串行I/O 口 U

17、ART (通用异步接收、发送器);8)一个片内振荡器和时钟产生电路。-UIIaRSTHU.UXAUJPO. 1/ADIPO.2AC2PC,3r,APGPC.AO4PO.AD5 PC.At PO.7/AD722_PiDzFSENALE EAP2.OB0P2.1S P2.2A10 Ft2.JA11 P2.4A12 吃.5A13 P2.0/A1 斗 P2 715Pw PIlP13P13Pl ,4PjI 5PlBP17P.(FRADP3.1D F3.2W F33NT-1P3.WJ pg.5>-P3.6/WRF'3 £F; D33373&355433321S2.252S2

18、7281'IT1213141516ITj5AT88C51图3-1单片机引脚图3.2 P0P3 口结构及功能3.2.1 PQ 口结构及功能PQ 口由一个输出锁存器、一个转换开关 MUX、两个三态输入缓冲器、输出 驱动电路和一个与门及一个反相器组成。PQ 口具有两种功能:第一, PQ 口可以用作通用I/O接口;第二,PQ 口 可以用作地址/数据总线。3.2.2 P1 口结构及功能P1 口是由一个输出锁存器、两个三态输入缓冲器和输出驱动电路组成,驱动电路内部设有上拉电阻。3.2.3 P2 口结构及功能P2 口由一个输出锁存器、一个转换开关 MUX、两个三态输入缓冲器、输出 驱动电路和一个反相

19、器组成。P2 口共有两个功能:第一个功能与上述两组引脚的第一功能相同,即可用 作通用I/O 口;它的第二功能与Po 口引脚的第二功能相配合,作为地址总线用 于输出片外存储器的高8位。324 P3 口结构及功能P3 口由一个输出锁存器、三个三态输入缓冲器、输出驱动电路和一个与非 门组成。P3 口有两个功能:第一个功能与其余三个端口的第一功能相同;第二功能 做控制用,每个引脚的功能不同:P3.0 RXD :串行口接收数据输入端P3.1 TXD:串行口发送数据输出端P3.2INTO:外部中断申请输入端 0P3.3 INTI:外部中断申请输入端1P3.4 T0:外部计数脉冲输入端0P3.5 T1:外部

20、计数脉冲输入端1P3.6 WR:写外设控制信号输出端P3.7 RD:读外设控制信号输出端3.3时钟电路和复位电路单片机的时钟信号用来提供单片机内各种微操作的时间基准;复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态开始运行331时钟电路单片机的时钟信号通常有两种产生方式。 一种是内部时钟方式;另一种是外部时钟方式。HCS-SIMCS-51C a内8W方式Cb)外部时铢武图3-2时钟方式图内部时钟方式只要在单片机的XTAL1和XTAL2引脚外接晶振就构成了自激振荡器,并在单片机内部产生时钟脉冲信号。 外部时钟方式是把外部已有的时钟 信号引入到单片机内,常用于多片单片机同时工作,已使各

21、单片机同步。单片机的时序单位:晶振周期为时钟脉冲频率的倒数,为最小的时序单位, 也称T状态;时钟周期包含两个晶振周期,也称 S状态;完成一个基本操作所需 要的时间称为机器周期,由6个时钟周期组成,即12个晶振周期;指令的执行 时间称为指令周期,通常含有14个机器周期。3.3.2单片机的复位状态当MCS-51系列单片机的复位引脚 RST全称RESET出现2个机器周期以上 的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循 环复位状态。根据应用的要求,复位操作通常有两种基本形式: 上电复位和手动 复位。上电复位要求接通电源后,自动实现复位操作。手动复位是当单片机已在 运行当中

22、时,按下复位键 K后松开,也能使RST为一段时间的高电平,从而实 现上电或开关复位的操作。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC = OoooH ,这表明程序从OoooH地址单元开始执行。单片机冷启动后,片内 RAM 为随机值,运行中的复位操作不改变片内 RAM区中的内容,21个特殊功能寄 存器复位后的状态为确定值。3.4系统硬件总体设计波形的产生是通过51单片机执行某一波形发生器程序,向D/A转换器的输 入端按一定的规律发生数据,从而在 D/A转换电路的输出端得到相应的电压波 形。图3-3总体设计图3.5 DAC0832的引脚及功能DAC0832是双列直插式8位D

23、/A转换器,完成数字量输入到模拟量输出的转换3457810CsVCC2DWWRlILE(BYlyBY2)WGNDWR 217DI3XFER-TTDI2DI415DIIDI514DloDI613VREFDI712RFBIOJT211GMDIOJTlDACoe32图3-4DAC0832 引脚图DAC0832结构:DOD7 : 8位的数据输入端,D7为最高位,TTL电平,有效时间应大于90ns (否则锁存器的数据会出错);ILE:数据锁存允许控制信号输入线,高电平有效;CS:片选信号输入线(选通数据锁存器),低电平有效;WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ms)有效。由ILE、C

24、S、WR1的逻辑组合产生,当LE1为高电平时,数据锁存器状态随输入数 据线变换,LE1的负跳变时将输入数据锁存;XFER数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ms) 有效。WR2: DAC寄存器选通输入线,负脉冲(脉宽应大于 500ms )有效。由 WR1、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随 寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入 DAC寄存器并 开始D/A转换。IOUT1 :模拟电流输出端1 ,当DAC寄存器中数据全为1时,输出电流最 大,当DAC寄存器中数据全为0时,输出电流为0。IOUT2:模拟电流输出端2,

25、IOUT2与IOUT1的和为一个常数。Rfb :反馈信号输入线,改变 Rfb端外接电阻值可调整转换满量程精度。VCC :电源输入端,范围为 (+5+ 15)V。VREF:基准电压输入线,范围为 (-10+10)V ; AGND :模拟信号地。DGND :数字信号地。3.6 74LS373的引脚及功能74LS373是常用的地址锁存器芯片,它实质是一个带三态缓冲输出的 8D触 发器。D0D7 :数据输入端;Q0Q7 :数据输出端;OE:三态允许控制端,低电平有效;当 OE为低电平时,Q0Q7为正常 逻辑状态,可用来驱动负载或总线;当 OE为高电平时,Q0Q7呈高阻态, 既不驱动总线,也不为总线的负

26、载,但锁存器内部的逻辑操作不受影响。LE:锁存允许端。当锁存允许端 LE为高电平时,Q随数据D而变;当LE 为低电平时,Q被锁存在已建立的数据电平。Hl17TBD1mCGD4csceD7OELEmG 1c2Q3dG5ubG7工-Jy图3-5 74LS373引脚图3.7系统硬件原理51单片机的最小系统最小系统由振荡电路、电源电路、复位电路、EA及应用程序组成。它有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓 冲器型,即输入数据经过两级缓冲器后,送入D/A转换电路。第二种是单级缓冲型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D

27、/A转换电路进行转换。3.7.1系统原理图C'*m; r.w *0*fl?P331KFUltfiW4P0JW fjrJK F.TfX74LEP".的 R3-IlaZfA1E3 Mj F2.E F2aU Fa7C-A1. F.7tM MJ,1 MSj1.FaJrWr P3zj F3W i.F-i÷Jq3-310" MqF17A.TDC0I. WJ . a .-.Ir- , 1TP. L * * * 卷* L -P T SHlro bB-T-T 一J-g.D 1 3 3 + 5 S ?Q M QQBOO图3-6系统原理图第四章系统的软件设计系统软件由主程序和产

28、生波形的子程序组成, 软件设计主要是产生各种波形 的子程序的编程。通过编程可得到各种波形。频率的改变可采用插入延时子程序 的方法来实现。4.1主程序流程图开始初始化读取波形选择开关波形判别调波形发生子程序结束图4-1主程序流程图4.2波形的产生4.2.1设计思路利用中断,当5个开关中有任意一个闭合时,跳转至中断程序,在中断程序 中判断是哪一个按键闭合,跳转至相应的程序,执行输出波形的操作,每输出一 个点之后,判断按键是否断开,如果依旧闭合,贝U继续输出,如果已经断开,贝U 结束中断程序。图4-2主程序流程图4.2.2锯齿波的产生锯齿波的实现过程是首先定义一个初值然后进行加法操作, 加的步数的多

29、少 则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执 行刚刚的操作,如此循环下去。4.2.3梯形波的产生梯形波的实现是设置一个初值,然后进行加一,当加到某个数时延时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。424三角波的产生三角波的实现是设置一个初值,当加到某个值的时候,执行减一操作,减到 初值时,再加一。425方波的产生方波的实现只需开始的时候设置一个初值然后直接输出这个值就行了, 输出 一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时 的时间一定要等于前面那段时间。426正弦波的产生正弦波的实现需要查表,每查一次表,输出一个

30、数值,之后查下一个数值继 续输出,当一个波形的256个数值全部输出之后,从头开始继续输出。第五章系统调试与仿真结果5.1系统调试根据系统设计方案,本系统的调试共分为三大部分:仿真电路调试,程序调 试和程序和仿真电路联调。由于在系统设计中采用模块设计法,所以方便对各电 路模块功能进行逐级测试。5.1.1仿真电路调试对各个模块的功能进行调试,主要调试各模块能否实现指定的功能。 调试结 果表明,各模块能够实现其预期功能。5.1.2程序调试软件调试采用keil C软件,将编好的程序进行调试,主要是检查语法错误。 在此过程中,发现了好多错误。要耐心调试。5.1.3联调将调试好的仿真电路和程序进行联调,主

31、要调试系统的实现功能。只要程 序调试完成,线路连好,本步没有困难。5.2 仿真结果在PrOteUS软件中运行仿真。按下Ko键时,示波器输出锯齿波;按下 K1键时输出梯形波;按下K2键时输出三角波;按下K3键时输出方波;按下K4键 时输出正弦波。具体波形见附录二。结论本次的设计中利用AT89C51和DAC0832以及放大器完成电路的设计,用 开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形, 最终可以通过示波器观察。在这次的软件设计中,程序设计采用的是汇编语言。 汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件 的功能。但是汇编语言也存在编写的代码非常

32、难懂,不好维护,很容易产生bug, 难于调试的缺点。因此,在大型程序的设计中,多采用C语言进行程序编译。C语言简洁高效,是最贴近硬件的高级编程语言,经过多年的发展,现在已 成熟为专业水平的高级语言。而且,现在单片机产品推出时纷纷配套了C语言编译器,应用广泛。不过就本次课程设计来说,汇编语言还是适用的。由于此次 是第一次进行课设,有些软件以及芯片以前从未接触过,因此还不是很得心应手, 所以在设计中遇到了很多问题及难点。比如: PrOteuS软件以及wave6000的 使用;D/A转换器和锁存器的结构、功能等等,这些都需要自己去查找资料了 解这些。通过此次的课程设计,我进一步了解了波形发生器的原理

33、, 在实际动手 操作过程中,使我接触了许多我以前没接触过的元件,提高了自己的动手能力。 而且在编程时重新温习了刚学不久的 51单片机以及MATLAB语言,不仅让我学 习了一些新的知识,而且对以前所学内容进行了巩固,让我懂得理论知识的重要 性,没有理论的指导一切实际行动都是盲目的, 且实际操作是所学的理论知识得 到验证,更能加深对理论知识的理解,让我受益匪浅。参考文献1 陈志旺,李亮。51单片机快速上手。机械工业出版社。2 薛定宇。控制系统计算及辅助设计一一 MATLAB语言与应用(第2版)。清华 大学出版社。3 邹虹。单片机波形发生器的设计。重庆邮电学院学报。4 毅刚,彭喜元。单片机原理与应用

34、设计。电子工业出版社。杨素行模拟电子技术基础简明教程(第三版)M.北京:高等教育出版社, 2006.Altium DeSigner 原理图与PCB设计M.北京:电子工业出版社 2009.7 谭浩强.C程序设计(第2版)M.北京:清华大学出版社1999.8 陈明义.电子技术教程设计实用教程(第 3版)M.长沙:中南大学,2009.9 马晓.函数信号发生器的设计D.河南2012.10 李华.MCS-51系列单片机实用接口技术M.11 何立民.单片机应用技术选编M.12 阎石.模拟电子技术基础M.附录程序ORG OoooHLJMP MAlNORG OOO3H外部中断OLJMP INTOOORG OO

35、4OHMAIN :MOV SP,6OH;更改堆栈指针,避免堆栈与工作寄存器区发生冲突SETB ITO;外部中断请求O为下降沿触发方式SETB EA;中断允许总开关打开SETB EXO;允许外部中断O中断INTOO:CLR EA ;关中断PUSH PSW;现场保护PUSH ACCSETB EA;开中断JNB P1.O,IRO;如果KO键闭合,则跳转至IRO输出锯齿波JNB P1.1,IR1;如果K1键闭合,则跳转至IR1输出梯形波JNB P1.2,IR2;如果K2键闭合,则跳转至IR2输出三角波JNB P1.3,IR3;如果K3键闭合,则跳转至IR3输出方波JNB P1.4,IR4;如果K4键闭

36、合,则跳转至IR4输出正弦波设置端口地址写入如果k0键已经断开,则返回A加一循环返回设置端口地址INTIRCLR EA;关中断POP Acc;现场恢复POP PSWSETB EA ; 开中断RETI锯齿波发生子程序如下:IR0:MoV RO,#OFEHMoV A,#00HLOOP :MOVX R0,A ;JB P1.0,INTIR;INC A ;SJMP LOOP;LJMP INTIR;梯形波发生子程序如下:IR1:MOV R0,#0FEH;MOV A,#00HUP:MOVX R0,A;写入JB P1.1,INTIR;如果k1键已经断开,则返回INC A;A加一JNZ UP ;循环DEC A;

37、如果已经溢出,则减一,减一之后 A的值为255LCALL DELAY;延时JB P1.1,INTIR;如果k1键已经断开,则返回DoWN :DEC A;MOVX R0,A;写入JB P1.1,INTIR;如果k1键已经断开,则返回JNZ DOWN ;循环SJMP UP;如果减到0,则跳转至UP,继续执行加一操作LJMP INTIR;返回DELAY:MOV R7,#100;延时子程序DELAYI:MOV R6,#10NOPDELAY2:DJNZ R6,DELAY2DJNZ R7,DELAY1RET三角波发生子程序如下:IR2: MOV R0,#0FEH;设置端口地址MoV A,#OoHUP2:M

38、OVX R0,A;写入JB P1.2,INTIR;如果k2键已经断开,则返回INC A;A加一JNZ UP2;循环DOWN2 :DEC A;A减一MOVX R0,A;写入JB P1.2,INTIR;如果k2键已经断开,则返回JNZ DOWN2;循环SJMP UP2;如果减到0 ,则跳转至UP2,继续加一操作LJMP INTIR;返回方波发生子程序如下:IR3:MOV R0,#0FEH;设置端口地址POSI:MOV A,#00H;给A赋值0x00MOVX R0,A;写入LCALL DELAY ;延时JB P1.3,INTIR;如果k3键已经断开,则返回NEGA :MOV A,#OFFH ;给A赋

39、值0xFFMOVX R0,A;写入LCALL DELAY;延时JB P1.3,INTIR;如果k3键已经断开,则返回SJMP POSI;跳转至POSI,继续下一个波形的输出LJMP INTIR;返回正弦波发生子程序如下:IR4:MOV R0,#0FEH;设置端口地址MoV R1,#OoHXX:MOV A,R1LCALL HANSHU;调用查表函数MOVX R0,A;写入JB P1.4,INTIR;如果k4键已经断开,则返回INC R1SJMP XX;继续查表LJMP INTIR ;返回HANSHU:MoV DPTR,#TAB1MoVC A,A+DPTRRETTAB1: db080h,083h,

40、086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aehdb0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8hdb0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h, 0f4hdb0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffhdb0ffh,0f

温馨提示

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

评论

0/150

提交评论