数字信号发生器毕业设计.doc_第1页
数字信号发生器毕业设计.doc_第2页
数字信号发生器毕业设计.doc_第3页
数字信号发生器毕业设计.doc_第4页
数字信号发生器毕业设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文)设计(论文)题目: 基于单片机的数字信号发生器设计 电气工程 学院基于AT89S51单片机的数字信号发生器【摘 要】 智能仪器的出现,极大地扩充了传统仪器的应用范围。智能仪器凭借其体积小、功能强、功耗低等优势,迅速地在家用电器、科研单位和工业企业中得到了广泛的应用。 本系统是基于AT89S51单片机设计的数字式波形发生器。采用AT89S51作为系统的控制核心,外围电路采用数字/模拟转换电路(DAC0832),运放电路(MC1458),按键,ISP接口等。通过按键控制切换产生正弦波,锯齿波,三角波,方波,各类型信号的频率统一为100HZ,而幅值在-5V+5V范围内可调。本设计电路原理简单,性能较好,具有一定的实用性和参考价值。【关键词】单片机 ,波形发生器 ,D/A电路 DIGITAL SIGNAL GENERATOR DESIGN BASED ON AT89S51【ABSTRACT】The emergence of intelligent machines, which greatly expanded the scope of application of traditional instruments. Intelligent instrument, with its small size, powerful, low-power advantages of home appliances quickly, research institutes and industrial enterprises has been widely used.The system is a digital waveform generator based on single chip computer. AT89S51 is used as a control core. The system is composed by digital/analog conversion (DAC0832),imply circuit (MC1458),button ISP inferface and LED lights. It can generate square triangle and sine wave,with LED display . The frequency of various types of signal unity of 100HZ, but the amplitude in the-5V +5 V range adjustable. The circuit design is simple, better performance, has some practical and reference value.【KEY WORDS】the single chip computer , the signal generator , D/A conversion目录绪论91. 波形发生器现状92. 单片机在波形发生器中的运用9第一章 系统设计101. 系统要求112. 系统方案选择与论证11 3. 系统设计原理与思路11 第二章 硬件电路的设计12 1. AT89S51的介绍12 2. 资源分配15 3. 最小单片机系统的设计15 4. 各模块电路的设计17 5. ISP接口23第三章 软件设计241. 主程序的设计252. 锯齿波程序的设计253. 三角波程序的设计264. 正弦波程序的设计275. 方波程序的设计28第四章 测试仿真29 1. 软件仿真29 2. 仿真结论分析303. 硬件测试结论分析31第五章 其它311. 致谢及心得312. 参考文献32附录32附录一:Protel原理图32附录二:PCB图33附录三:Proteus仿真图34附录四:系统源程序35附录五:元件清单43绪论1. 波形发生器现状波形发生器作为一种常用的应用电子仪器设备,传统的波形发生器可以完全用硬件电路搭建,如应用555振荡电路可以产生正弦波,三角波,方波等波形,传统的波形发生器多采用这种方式设计,这种方式不应用单片机,但是这种方式存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点,在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟震动等领域往往需要低频信号源,而由硬件搭建的波形发生器效果往往达不到好的效果,而且低频信号源所需要的RC很大,大电阻,大电容在制作上有困难,参数的精度也难以保证,而且体积大,漏电,体积大是该类波形发生器的显著缺点。2. 单片机在波形发生器中的应用随着电子技术的飞快发展,单片机的应用不断的深入,基于单片机的智能仪器的设计技术不断成熟。单片机构成的仪器具有高可靠性,高性价比,单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并应用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。一块单片机芯片就是一台计算机,单片机的这种特殊的结构形式,使得其在某些应用领域,它承担了大中型计算机和通用微机无法完成的一些工作。单片机有很多优点和特点,归纳有以下几个方面:(1) 具有优异的性价比单片机尽可能的把应用所需要的存储器,各种功能的I/O接口集成在一块芯片内,因而其性能优越,而价格性对低廉(2) 集成度搞,体积小,可靠性高单片机把各种功能部件集成在一块芯片上,因而集成度高,为大规模集成电路或超大规模集成电路,又内部采用总线结构,因而大大减少了芯片内部之间的连线,这大大提高了单片机的可靠性和抗干扰能力,同时,体积小,对于强磁场环境易于采用屏蔽措施,适合于在恶劣环境下工作。 (3) 低电压和低功耗单片机大量用于携带式产品和家用消费类产品,低电压和低功耗尤为重要。目前,许多单片机已可在2.2V电压下运行,有的已能在1.2V或0.9V下工作,功耗降至A级,一粒钮扣电池就可长期使用。利用单片机采用程序设计方法来产生低频信号,其下限频率很低。具有线路相对简单,结 构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。这里介绍一种采用AT89S51单片机和一片DAC0832数模转换器做成的数字式低频信号发生器,它的特点是价格低、性能高,在低频范围稳定性好、操作方便、体积小、耗电少等。信号发生器与其它相比还具有如下优点:较分立元件信号发生器而言,具有频率高,工作稳定,容易调试等特性;较专用DDS芯片的信号发生器而言,具有结构简单,成本低等特性。(4) 控制功能强 单片机体积虽小,但“五脏俱全”,它非常适用于专门的控制用途。为了满足工业控制要求,一般单片机的指令系统中有极丰富的转移指令,I/O口的逻辑操作指令以及位操作指令。其逻辑控制功能及运行速度均高于同一档次的微机。结论:利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于通过程序控制,只要对电路稍加修改,调整程序,就能实现功能的升级。一系统设计1.系统设计要求 (1) 采用AT89S51及DAC0832设计信号发生器(2) 输出信号为正弦波或三角波或阶梯波(3) 输出信号频率为100Hz,幅度-5V+5V可调(4)必须具有信号输出及外接电源、公共地线接口,程序在线下载接口2.总体方案选择与论证方案一:采用模拟分立元件或单片压控函数发生器(8038)可产生三角波,正弦波等。通过调整外部元件的参数实现频率,幅值,占空比的调整,但是由于元件太过分散,即使使用单片压控函数发生器,参数与外部条件有关。因而产生的波形稳定性差,精度低,抗干扰能力差,价格高,且灵活性差方案二:采用单片机(AT89S51)和数模转换芯片(DAC0832)实现波形的产生,波形的产生由程序控制,向D/A的输入端按一定的规律发送数据,经过D/A和MC1458产生100HZ频率波形,通过查询键盘或中断控制不同波形的产生。此方案通过编程简化了外部电路,原理简单,容易实现。方案选择:经比较,方案二明显更容易实现课程设计题目的要求。通过编程实现不同波型的产生,并且可以通过按键实现波形的切换。该方案线路简单,结构紧凑,系统稳定,易控制,容易调试等优点,综上分析,选择方案二实现课题要求3.系统设计基本原理和思路(1)系统原理框图如图1 波形指示 AT89S51输出电流/电压转换A/D转换 键盘基准电压 电源 图1波形发生器系统框图(2)原理框图分析:该波形发生器主要由单片机(AT89S51),数模转换电路(DAC0832),电流/电压转换电路(MC1458),按键和波形指示灯电路,ISP接口等组成。其工作原理为当按下四个按键当中的任何一个按键,就会产生相对应的波形,并且四个LED灯作为不同波形的指示。二硬件电路的设计 1AT89S51的介绍(1) AT89S51的介绍AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4K的可编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片机芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。主要性能参数如下:l 与MCS-51产品指令系统完全兼容l 4K字节在系统编程(ISP)Flash 闪速存储器l 1000次擦写周期l 4.0-5.5V的工作电压范围l 全静态工作模式:0HZ-33MHZl 三级程序加密锁l 128*8字节内部RAMl 32个可编程I/O口线l 2个16位定时/计数器l 6个中断源l 全双工串行UART通道l 低功耗空闲和掉电模式l 中断可从空闲模式唤醒系统l 看门狗(WDT)及双数据指针l 掉电标示和快速编程特性l 灵活的在系统编程(ISP-字节或页写模式)(2)AT89S51的引脚图图2 AT89S51引 脚 图 实 物 图(3)主要管脚说明P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P1口中P1.5,P1.6,P1.7引脚的第二功能P2口:P2口是一个带有内部上拉电阻的8位双向I/O口。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVE DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会所存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。(4)存储器结构MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64K外部程序和数据的寻址空间。(4.1)程序存储器(ROM):如果EA引脚接地(GND),全部程序均执行外部存储器。在AT89S51,假如EA接至VCC(电源+),程序首先执行地址从0000H-FFFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。(4.2)数据存储器:AT89S51具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。2.资源分配软硬件设计是设计中比不可少的,为了满足功能和指标要求,现分配资源如下:1. 晶振采用12MHZ。2. 内存分配:P0口与DAC0832的DI0-DI7数据输入;P1口的P1.0P1.3分别与四个按键相连,分别控制相应波形的输出,每输出一个波形,点亮对应的LED灯端相连;P2口与DAC0832的输入寄存器选择信号CS,输入寄存器写选通信号WR1及DAC寄存器写选通WR2和数据传送信号XFER。3.最小单片机系统(1)AT89S51的晶振及其连接方法CPU工作时必须要有个时钟脉冲,有两种方法可以向AT89S51提供时钟脉冲:第一:外部时钟方式。使用外部电路始终给AT89S51提供时钟脉冲如右图图3晶振电路第二:内部时钟方式。使用晶振利用AT89S51内部电路产生时钟脉冲如左图。我们一般使用这种方式。AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性。如果使用石英晶体,我们推荐使用30pF+/-10pF,而如使用陶瓷谐振器建议选择40pF+/-10PF。(2)复位电路使CPU开始工作的方法就是给CPU一个复位信号,复位信号结束后,CPU从程序存储器“0000H”开始执行程序。AT89S51高电平复位,复位的方式一般有三种:第一:上电复位。接通电源时,单片机复位。第二:手动复位。设置一个复位按钮,当操作者按下按钮时产生一个复位信号。第三:自动复位。设计一个复位电路,当系统满足某一条件时自动产生一个复位信号。图4为最简单的上电复位和手动复位方法。89S51 图4 AT89S51的晶振复位电路4.各模块电路的设计(1) D/A转换电路(1.1)DAC0832基本介绍DAC0832是双列直插式8位D/A转换器。能完成数字量输入到模拟量(电流)输出的转换。其主要参数如下:分辨率为8位转换时间为1s满量程误差为1LSB参考电压为(+10-10)V供电电源为(+5+15)V逻辑电平输入与TTL兼容(1.2)DAC0832引脚图 图5 DAC0832引脚图(1)DI7DI0 :8位的数据输入端,DI7为最高位。(2)IOUT1 :模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当 DAC寄存器中数据全为0时,输出电流为0。(3)IOUT2 :模拟电流输出端2, IOUT2与IOUT1的和为一个常数,即IOUT1IOUT2常数。(4)RFB :反馈电阻引出端,DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。(5)VREF :参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10-10)V。VREF端与D/A内部T形电阻网络相连。(6)Vcc :芯片供电电压,范围为(+5 15)V。(7)AGND :模拟量地,即模拟电路接地端。(8)DGND :数字量地。(1.3)内部结构框图图6 DAC0832内部结构图内部结构框图分析:在DAC0832中有两级锁存器,第一级锁存器称为输入寄存器,它的允许锁存信号为ILE,第二级锁存器称为DAC寄存器,它的锁存信号也称为通道控制信号 XFER。当ILE为高电平,片选信号 /CS 和写信号 /WR1为低电平时,输入寄存器控制信号为1,这种情况下,输入寄存器的输出随输入而变化。此后,当 /WR1由低电平变高时,控制信号成为低电平,此时,数据被锁存到输入寄存器中,这样输入寄存器的输出端不再随外部数据DB的变化而变化。对第二级锁存来说,传送控制信号 /XFER 和写信号 /WR2同时为低电平时,二级锁存控制信号为高电平,8位的DAC寄存器的输出随输入而变化,此后,当 /WR2由低电平变高时,控制信号变为低电平,于是将输入寄存器的信息锁存到DAC寄存器中。(1.4)DAC0832的工作方式(1.4.1)单缓冲工作方式 此方式是使两个寄存器中任一个处于直通状态,另一个工作于受控锁存器状态或两个寄存器同步受控。一般的做法是将WR1和XFER接数字地,使DAC 寄存器处于直通状态。另外把ILE接高电平,CS接端口地址译码信号,WR1接CPU系统总线的IOW信号,这样便可通过执行一条输出指令,选中该端口,使 CS和 WR1有效,从而启动DA转换。图7单缓冲工作单极性方式电路连接双极性模拟输出电压 :图8单缓冲工作双极性方式电路连接(1.4.2)双缓冲工作方式 双缓冲方式的一大用途是数据接收和启动转换可以异步进行,即在对某数据转换的同时,能进行下一数据的接收,以提高转换速率。这时,可将ILE接高电平,WR1和WR2接CPU的IOW,CS和XFER分别接两个不同的IO地址译码信号。图9双缓冲工作方式电路连接(1.4.3)直通工作方式当DAC0832芯片的片选信号、写信号、及传送控制信号的引脚全部接地,允许输入锁存信号ILE引脚接5V时,DAC0832芯片就处于直通工作方式,数字量一旦输入,就直接进入DAC寄存器,进行D/A转换。(1.5) 工作原理DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。8 位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8位DAC寄存器用于存放待转换的数字量,由加以控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。DAC0832与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为Vout1=-Vref(数字码/256)若D/A转换器输出为双极性,如下图所示。图10 D/A转换器双极性输出电路图10中,运算放大器U3B的作用是把运算放大器U3A的单向输出电压转换成双向输出电压。D/A转换器的总输出电压为:VOUT2= -(R3/R2) VOUT1+(R3/R1) Vref设R1=R3=2R R2=R,则 VOUT2= -(2VOUT1+VREF)DAC0832主要是用于波形的数据的传送,是本题目电路中的主要芯片。(2)按键和波形指示灯电路(2.1)原理图如下图11 采用查询方式对各类波的切换图12 采用中断的方式对波形的切换(2.2)说明: 对于查询方式对波形的切换,当按键按下时,输出相应波形,并点亮相应的LED灯,对于中断方式,利用两个外部中断实现对波形的切换。中断与查询相结合的方式可以进行扩展,查询方式不是实时的,而是中断时实的。 (3)电流电压转换电路(MC1458)(3.1)原理图如下:图13 I/V转换电路(3.2) 说明: 实现I/V转换最简单的方法就是直接在1out1和Iout2之间跨界一电阻,这样就很容易的实现了I/V转换,但是这种方法忽略了一个阻抗问题。对于DAC0832来说,R的取值应尽可能大,能够保证获得更多的电压,对于与输出电压相连的后续电路来说,R的取值应尽可能的小,以降低输出阻抗,这两方面是矛盾的,所以这种方式欠合理。而合理的方式是应用运算放大器实现I/V转换,也解决了阻抗的问题。5.ISP接口(1)ISP接口定义及其连线图(图13 图14)图14 程序下载接口定义图15 ISP接口与AT89S51连线(1.2)说明: AT89S51相对于AT89C51增加的特色功能之一就是前者具有ISP下载功能,P1.5 P1.6, P1.7具有第二引脚功能,专门用于ISP功能。三软件设计根据功能,系统软件设计分成几个模块编程:主程序模块,锯齿波程序模块,三角波程序模块,正弦波程序模块,方波程序模块,延时程序模块。1.主程序模块(1)主程序流程图 开始KEY1按下了? 输出锯齿波KEY3按下了?KEY2按下了?KEY4按下了? N N N N NYYYY 输出三角波 输出正弦波 输出方波 图16 主程序流程图2.锯齿波程序模块(1)程序流程图图17锯齿波程序流程图(2)说明: 锯齿波产生首先将DAC0832口地址至为2FFFH,然后将00H送入寄存器A中,DAC0832输出A中的内容,当A中的内容等于FFH返回开始,当A中的内容不为FFH时,A中的内容累加,从而输出波形。3.三角波程序模块(1)程序流程图图18 三角波程序流程图(2)说明: 三角波产生首先将DAC0832口地址至为2FFFH,通过A中数值的加一递升,当A中的内容为0时,与0FFH相比,相等时A中的内容减一递减,从而循环产生三角波。4.正弦波程序模块 (1)程序流程图图19正弦波程序流程图(2)说明: 正弦波波形通过查表指令得出。5.方波程序模块(1)程序流程图图20 方波程序流程图(2)说明:方波产生首先将DAC0832口地址至为2FFFH,当A中的内容为0时,输出对应模拟量,然后延时,当A中的内容为0FFH时,同样输出对应模拟量,再延时相同时间,从而得到方波。四测试仿真1.软件仿真(1)锯齿波仿真图(2)三角波仿真图(3)正弦波仿真图(4)方波仿真图2.仿真结论分析: 从软件仿真的结果上看,波形存在一定的的失真,这主要跟程序的设计有关,没有做到那么精确,再者,我认为仿真软件本身也会给测试结果一定的误差。3.硬件测试结果分析:硬件测试结果显示,示波器显示的波形比仿真软件模拟甚至还标准,而且对按键的响应比仿真响应快。这在一定程度上,告诉我们,仿真软件只是一个我们研究的工具,我们不能完全依赖于于仿真软件。五其它1.心得体会及致谢本次毕业设计主要是基于对单片机的掌握和应用,这是我们第二次动手实践制作出PCB板,从课题的选择、系统原理方案的设计,电路原理的理解,到电路上元器件的焊接、程序的编写,电路的调试,调试下载,一步步,我觉得每个环节我都收获很大。在设计中,我力求硬件电路简单,充分发挥软件灵活方面的特点,在满足系统设计要求的同时在一定程度上作出扩展。在此次毕业设计中,我主要有以下几个方面的心得体会:第一:在对单片机的具体实践掌握方面。大二时我们开设了单片机原理与接口技术这门专业课,尽管在这门课程的学习上,自己态度非常认真而且也下了很大的功夫。但是在纯粹的理论上,总感觉不是那么的踏实和具体,这次设计就为我具体实践提供了一次很好的机会,我觉得这对我们实践能力的锻炼时很有帮助的,通过这次设计,我对单片机的掌握有了更加切实的感受和接触,以及简单的应用,收获很大。第二:在汇编程序的编写方面。在大二时我学习了汇编语言的编写方法,我觉得汇编语言是更接近于硬件的,侧重于你对硬件的掌握,所以,通过这次毕业设计我现在更加认为学习好汇编语言的重要性。第三:软件的使用方面。本次毕业设计主要用到Protel和Proteus两个软件,这次毕业设计使我更加深入和熟练的掌握了这两个软件的使用。但是,在软件仿真方面,我觉得我们在系统设计中不能太依赖于仿真软件。第四:电路板的制作方面。这是我们第二次实践做PCB板,虽然没有很多经验,但是在制作期间有一个很深的体会:我们在电路板时,很有必要检查好自己做得PCB图,原理图,保证原理的正确性以及封装的正确性。毕业设计就要结束了,在此我特别感谢老师在此次毕业设计以及其他学习生活中对我的帮助,每当遇到我不解的问题向他请教的时候,尽管他非常的忙,但他都是很热心,很耐心的为我提供意见和指导,我深深的感受到他对学生的负责和细心,谢谢您!同时也感谢其他老师对我的指导和同学们对我的帮助。2.参考文献:1 康华光.电子技术基础(第4版)M.北京:高等教育出版社.1998. 2 张友德等.单片微型机原理、应用与实验M.上海:复旦大学出版社,1993. 3 陈泽宗等.单片精密函数发生器应用J.电子技术报,1997,20(7):34. 4 常新等.高频信号发生器原理,维修与鉴定M.北京:电子工业出版社,1996. 5 谢嘉奎,宣月清.电子线路非线性部分M.北京:高等教育出版社,1988. 附录 附录一:PROTEL原理图附录二:PCB图PCB1PCB2附录三:Proteus仿真图附录四:源程序;*;课程设计题目:基于AT89S51的波形发生器设计;实 现 功 能:能产生正弦波,三角波,锯齿波,方波; 可通过按键能对各波形的切换,频率为:100HZ; 按键查询方式; ;*;*;对按键进行设定;*KEY1EQUP1.0KEY2EQUP1.1KEY3EQUP1.2KEY4EQUP1.3ORG0000HLJMPMAINORG0030HMAIN:MOVSP,#60H;设置堆栈区;*;按下KEY1生成锯齿波程序;*B1:MOVA,#00HLP1:CLRP1.4SETBP1.5SETBP1.6SETBP1.7MOVDPTR,#2FFFH;对MOVXDPTR,ALCALLDELYB1CJNEA,#0FFH,ADD1JNBKEY2,B2JNBKEY3,B3JBKEY4,D0LJMPB4D0:SJMPB1ADD1:INCA;SJMPLP1;*;按下KEY2生成三角波程序;*B2:MOVA,#00HUP1:CLRP1.5SETBP1.4SETBP1.6SETBP1.7MOVDPTR,#2FFFHMOVXDPTR,ALCALLDELYB2INCAJNZUP1DOWN1:DECAMOVXDPTR, ALCALLDELYB2JNZDOWN1JNBKEY1,B1JNBKEY3,B3JBKEY4,C0LJMPB4C0:SJMPUP1;*;KEY3按下生成正弦波;*B3:MOVR1,#00HLOOP1:CLRP1.6SETBP1.5SETBP1.4SETBP1.7MOVA,R1MOVDPTR,#SETTABMOVCA,A+DPTRMOVDPTR,#2FFFHMOVXDPTR,ALCALLDELYB3INCR1JNBKEY1,B1JNBKEY2,B2JBKEY4,E0LJMPB4E0:AJMPLOOP1SETTAB: ;正弦表格DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A2H,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,0FFH,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, 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, 03H, 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, 25HDB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38HDB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EHDB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66HDB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HRET;*;按下KEY4生成方波;*B4:MOVA,#00HLP2:CLRP1.7SETBP1.4SETBP1.5SETBP1.6MOVDPTR,#2FFFHMOVXDPTR,ALCALLDELYB4MOVA,#0FFHMOVXDPTR,ALCALLDELYB4JBKEY1,J0LJMPB1J0:JBKEY2,J1LJMPB2J1:JBKEY3,J2LJMPB3J2:LJMPB4;*;下面为延时程序的编写;*;延时26usDELYB1: MOV R3,#01HDL0: MOV R2,#0AH DJNZ R2,$ DJNZ R3,DL0 RET;延时10usDELYB2:MOV R5,#01HDL1: MOV R4,#02H DJNZ R4,$ DJNZ R5,DL0RET;延时17usDELYB3: MOV R5,#07H DJNZ R5,$ RET;延时5msDELYB4: MOV R6,#13HDL3: MOV R5,#82H DJNZ R5,$ DJNZ R6,DL0 RETEND;*;采用中断方式实现波形的切换;*ORG 0000HAJMP MAINORG 0003H;外部中断0入口地址AJMP JUCHIBO;方波,对应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 ; 输出对应于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:MOVDPTR,#2FFFH;设置D/A口地址 MOV A,#00H LOOP4: MOVXDPTR,A LCALLDELAY1;26us CJNEA,#0FFH,ADD1 SJMPLOOP3ADD1:INCASJMPLOOP4RETIZHENGXUAN: 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,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0B

温馨提示

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

评论

0/150

提交评论