《基于51系列单片机的多功能波形发生器及特定波形幅值调节.doc》由会员分享,可在线阅读,更多相关《基于51系列单片机的多功能波形发生器及特定波形幅值调节.doc(28页珍藏版)》请在三一办公上搜索。
1、 创新性实验研究报告 课程名称:基于51系列单片机的波形发生器研究实验项目名称 多功能波形发生器及特定波形幅值调节 姓名 XXX 学号 XXXXXX 手机 XXXXXXXXX Email XXXXXXXXXXXX 专 业 自动化 班级 XXXXXXX 指导教师及职称XXX 开课学期 2011 至2012 学年 第一 学期提交时间 2011 年 12 月 29 日一、实验摘要波形发生器是一种常用的信号源,广泛地应用于电子电路、自动控制系统和教学实验等领域。例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振
2、图像等,都需要功率或大或小、频率或高过低的信号。在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和DAC0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。本次创新性实验将由AT89C51单片机和DAC0832数模转换器构成波形发生器,此波形发生器可产生
3、方波、三角波、锯齿波、梯形波、阶梯波等多种波形,波形的幅值可以用程序进行改变,并可根据需要选择单极性输出,具有线路简单、结构紧凑、价格低廉、性能优越等优点。在本设计的基础上,加上按键用来更改不同波形之间的切换,实现不同波形的输出。二、实验目的在电子设备中,经常需要产生各种波形,本设计要求利用单片机和模数转换芯片组成波形发生器硬件系统,需要完成下列任务:(1) 能够通过按键控制,产生方波、三角波、锯齿波、梯形波、阶梯波五种波形。(2) 能够通过原理图调试进行改变各个波形的幅度。三、实验场地及仪器、设备和材料:(1)AT89C51芯片1个(2)DAC0832芯片1个(3)OPAMP放大器芯片1个(
4、4)电阻2个 电容3个 可调电阻1个 排阻1个(5)开关6个(6)Protues软件(7)晶振1个(8)示波器1台四、实验内容1、实验原理波形的产生是通过AT89C51单片机执行某一波形发生程序,向DAC0832转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。AT89C51单片机的最小系统有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器型,即输入数据经过两级缓冲器后,送D/A转换电路。第二种是单级缓冲器型,输入数据经输入寄存器直接送入DAC寄存器,然后送D/A转换电路。第三种是两个缓冲器直通,输入数据直接送D/A转换电路进行转换,本设计采用单缓冲
5、方式。此次实验设计由硬件设计和软件设计两部分组成,硬件部分利用proteus软件进行模拟仿真验证设计的正确性并产生不同波形,软件设计将利用汇编语言进行编程,通过Protues软件进行编译调试仿真,通过模拟示波器观察输出波形。实验原理框图如下所示: 图1.1 实验原理框图2、实验内容2.1 系统硬件设计本系统提供了五种不同的波形输出,通过五个按键控制相应的方波,锯齿波,三角波、梯形波和阶梯波。每次只能有一个键按下,没有按键按下时没有波形产生,按键输入信号给单片机,单片机对按键的情况进行处理,例如第一个按键按下时,系统需要产生一个方波,那么单片机循环输出0和1,那么通过DAC0832就通过运放循环
6、输出高低电平,这样系统就能够输出方波,同样的道理,锯齿波、三角波、梯形波和阶梯波的产生也可以采用相似的道理。本设计的硬件系统分为三个模块:单片机系统模块,DA转换模块,软件设计模块。2.2 系统各个模块的设计2.2.1单片机系统模块(1)配置 l 一个8位CPU,片内振荡器l 并行I/O口,32根I/O口线 l 一个串行口 l 两个定时/计数器 l 4K Byte 的 ROM l 128 Byte 的 RAMl 5个中断源,两个中断优先级l 可寻址64KB外部数据存储器空间 单片机内部结构图如下所示: 图2.2-1 单片机内部结构图(2)单片机管脚图及管脚功能介绍单片机管脚图如下: 图2.2-
7、2 AT89C51单片机管脚图及并行口分布VCC:供电电压。GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口
8、作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P
9、3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:管脚 备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0)P3.3 /INT1(外部中断1)P3.4 T0 (定时器0外部输入)P3.5 T1 (定时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机
10、器周期的高电平 时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两
11、次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2.2 晶振时钟模块单片机的工作过程是:取一条指令、译码、进行微操作,再取一条指令、译码、进行微操作,这样自动的、一步一步的由微操作依序完成相应的指令
12、规定的功能。各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序。AT89C51单片机的时钟信号通常由两种方式产生。一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2.2-3(a)所示。只要在单片机的XTAL1和XTAL2引脚外接晶振即可。图中,电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的震荡频率要小于12MHz,典型值6MHz、12MHz或11.0592MHz。外部时钟方式是把外部已有的时钟信号引入到单片机内,如图2.2-3(b)所示。此方式用于多片AT89C51单片机同时工作,并要求各单片机同步运行的场合。 图2.2-3 8
13、9C51单片机时钟方式实际应用中通常采用外接晶振的内部时钟方式,晶振的频率高一些时可以提高指令的执行速度,但相应的功耗和噪声也会增加,在满足系统功能的前提下,应选择低一些的晶振频率。当系统要与PC机通信时,应选择11.0592MHz的晶振,这样便于将波特率设定为标称值。2.2.3 复位电路模块复位是使单片机或系统中的其他部件处于某种确定的厨师状态。单片机的工作就是从复位开始的。当AT89C51的RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。复位信号变低时,单片机开始执行程序。实际操作中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,如
14、图2.2-4(a)所示 图2.2-4 单片机复位电路上电复位要求接通电源后,单片机自动实现复位操作。常用的上电复位电路如图2.2-4(a)所示,上电瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。该电路的典型的电阻和电容参数为:晶振:12MHz时,C1为10uF,R1为8.2K;晶振为6MHz时,C1为22uF,R1为1K,本电路选用C1为1nF,R1为10K, R2为10K。按键与上电均有效的复位电路如图2.2-4(b)所示,上电复位原理与图2.2-4(a)相同,另外在单片机运行期间
15、,还可以利用按键完成复位操作。晶振为6MHz时,R2为200。实际应用中如果单片机断电后,有可能在较短的时间内再次加电,可以在R1上并接一个放电二极管,这样可以有效的提高此种情况下复位的可能性。2.2.4 数模转换模块1.数模转换器的工作原理数模转换器是将数字量信号转换成与此数值成正比的模拟量。需要转换的数字量由一个二进制数字表示,每位二进制数字都有一定的权,在转换中,应将二进制数的每一位按照权的大小转换成相应的模拟量输出分量,然后将各个输出分量叠加,总和就是与数字量成正比的模拟量数值。上述D/A的转换,常用如图2.2-5所示的倒T形解码网络加以实现。 图2.2-5 倒T形电阻网络D/A转换器
16、电路设计如图2.2-5所示,包括由R-2R组成的电阻网络、模拟电子开关和集成运算放大器。对于电阻网络,无论从哪个R-2R节点看,等效电阻都是R,因此,从参考电压端输入的电流为:IR=VREF/R根据分流公式,各支路电流为:I7=I/21I6 =I/22I5 =I/23I4 =I/24I3 =I/25I2 =I/26I1 =I/27I0 =I/28于是,经过运算放大器输出的模拟电压VO为:VO=- RFIi= -Rfb VREF/R28(D727 +D626 +D525+D424+D323+D222+D121+D020)其中VREF进行D/A转换的系统提供的参考电压,Rfb为集成运算放大器的反馈
17、电阻,D7 D0取值为0或1,0表示切换开关与地相连,1表示与参考电压相连。通过上述电路,即完成了二进制数字信号到模拟电压信号的转换。2.数模转换器的主要技术指标D/A转换器的指标有很多,使用者最关心的几个指标如下。(1) 分辨率分辨率指输入给D/A转换器的单位数字量引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数)。显然,二进制位数越多,分辨率越高,即D/A转换器对输入量变化的敏感程度越高。例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为10V/2n,分辨率为10V/256=39.1mV,即输入的二进制最低位的变化可引起输出的模
18、拟电压变化39.1mV,该值占满量程的0.391%,常用1LSB表示。同理:10位D/A转换1LSB=9.77mV=0.1%满量程 12位D/A转换1LSB=2.44mV=0.024%满量程 16位D/A转换1LSB=0.076Mv=0.00076%满量程使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。(2) 转换精度转换精度以最大的静态转换误差的形式给出。这个转换误差包含非线性误差、比例系数误差等综合误差。应该注意,精度和分辨率是两个概念。精度是指转换后所得的实际值对于理想值的接近程度,而分辨率是指能够对转换结果发生影响的最小输入量,分辨率很高的D/A转换器并不一定具有很高
19、的精度。(3) 相对精度相对精度是指在满刻度已经校准的前提下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。通常用偏差几个LSB来表示和该偏差相对满刻度的百分比表示。(4) 建立时间 建立时间是描述D/A转换器转换快慢的一个参数,用于表明转换时间或转换速度。其值为从输入数字量到输出达到种植误差(1/2)LSB(最低有效位)时所需的时间。电流输出的转换时间较短,而电压的转换器,由于要加上完成I-V转换的运算放大器的延迟时间,因此转换时间要长一些。快速D/A转换器的转换时间可控制在1us以下。(5) 线性度 通常用非线性误差的大小表示D/A转换器的线性度,输入输出特性的偏差与满刻度
20、输出之比的百分数表示非线性误差。一定温度下的最大非线性误差一般为0.01%0.03%.3.DAC0832芯片主要特性与结构DAC0832系列为美国国家半导体公司生产的具有2个数据寄存器的8位分辨率的D/A转换芯片。此芯片与微处理器完全兼容,可以完全相互代换,并且价格低廉,接口简单,转换控制容易,在单片机应用系统中得到了广泛的应用。(1).DAC0832的主要特性l 分辨率为8为;l 转换时间为1us;l 可单缓冲、双缓冲或者直接数字转换;l 只需在满量程下调整其线性度;l 逻辑电平输入与TTL兼容;l 单一电源供电(+5V+15V);l 低功耗(0.2Mw);l 基准电压的范围为10V。(2)
21、DAC0832的内部结构DAC0832的内部结构框图如图2.2-6所示。它由8为输入锁存器、8为DAC寄存器、8为D/A转换器电路及转换控制电路构成,通过两个输入寄存器构成两级数据输入锁存。图2.2-6 DAC0832内部逻辑框图使用时,数据输入可以采用两级锁存(双锁存)、单级锁存(一级锁存,一级直通方式)或直接输入(两级直通)形式。上图中,2个与门电路组成据存期输出控制逻辑电路,该逻辑电路得功能是进行数据锁存控制,当ILE1(ILE2)=1是,寄存器的输出跟输入数据变化。3.DAC0832的引脚各引脚功能如下:DI0DI7:8位数据输入线。CS():片选信号输入,低电平有效。ILE:数据锁存
22、允许控制信号,高电平有效。输入锁存器的锁存信号LE1由ILE、CS()、WR()的逻辑组合产生。当ILE=1,CS()=0,WR1输入负脉冲时, 图3.6 DAC0832外部引脚图LE1()上产生正脉冲。当LE1()=1时,输入锁存器的状态随数据输入线的状态变化,LE1()的负跳变将数据输入线上的信息锁入输入寄存器。WR()1:输入寄存器写选通输入信号,低电平有效。上述两个信号控制输入寄存器是数据直通方式还是数据锁存方式,当ILE=1和WR()1=1时,为输入寄存器锁存方式。WR()2:DAC寄存器写选通输入信号(输入),低电平有效。XFER() :数据传送控制信号(输入),低电平有效。上述两
23、个信号控制DAC寄存器是数据直通方式,当WR()2=0和XFER()=0时,为DAC寄存器直通方式;当WR()2=1或XFER()=1时,为DAC寄存器锁存方式。IOUT1、IOUT2:电流输出,IOUT1+IOUT2=常数。Rfb:反馈电阻输入端。内部接反馈电阻,外部通过该引脚接运放输出端。为了取得电压输出,需要在电压输出端接运算放大器,Rfb即为预算放大器的反馈电阻端。Vref:基准电压,其值为-10V+10V。AGND:模拟信号地。DGND:数字信号地,为工作电源地和数字逻辑地,可在基准电源处进行单点共地。VCC:电源输入端,其值为+5V+15V。 4.DAC0832芯片与单片机的接口D
24、AC0832根据控制信号的接法可分为三种工作方式:直通方式、单缓冲方式、双缓冲方式。(1).单缓冲方式此时输入锁存器和DAC寄存器相应的控制信号引脚分别在一起,是数据直接写入DAC寄存器,立即进行D/A转换,(这种情况下,输入锁存器不起锁存作用)。此方式适用于只有一路模拟量输出,或有几路模拟量输出但是并不要求同步的系统。图2.2-7为单极性单路模拟量输出的DAC0832与AT89C51的接口电路。Vref接-5V时,IOUT1输出电流经运算放大器输出0+5V单极性电压。由于CS和XFER都与单片机的P2.7相连。因此,输入锁存器和DAC寄存器的地址都为7FFFH。CUP对DAC0832执行一次
25、写操作,则将一个数据直接写入DAC寄存器,DAC0832的输出模拟量随之变化。由于DAC0832具有数字量的输入锁存功能,所以数字量可以直接从从单片机的P0口送入到DAC0832。执行下面几条指令就能完成一次D/A转换:MOVDPTR,#07FFFH;指向DAC0832口地址(P2.7为0)MOVA,#dataMOVXDPTR,A;启动D/A转换单极性输出V0的正负由Vref的极性确定。当Vref的极性为正时,Vo为负;当Vref的极性为负时,Vo为正。在本系统中需要输出双极性模拟电压,因此要在系统后面再加一级运放,由二级运放得到双极性电压。图2.2-7 DAC0832单缓冲模式接口电路2.2
26、.5 波形显示模块1、OPAMP放大器应用 图2.2-8 OPAMP放大器原件示意图 运算放大器(Operational Amplifier, 简称OP、OPA、OPAMP)是一种直流耦合,差模(差动模式)输入、通常为单端输出(Differential-in, single-ended output)的高增益(gain)电压放大器,因为刚开始主要用于加法,乘法等运算电路中,因而得名。 通常使用运算放大器时,会将其输出端与其反相输入端(inverting input node)连接,形成一负反馈(negative feedback)组态。原因是运算放大器的电压增益非常大,范围从数百至数万倍不等,
27、使用负回授方可保证电路的稳定运作。但是这并不代表运算放大器不能连接成正反馈(positive feedback)组态,相反地,在很多需要产生震荡讯号的系统中,正回授组态的运算放大器是很常见的组成元件。 运算放大器有许多的规格参数,例如:低频增益、单位增益频率(unity-gain frequency)、相位边限(phase margin)、功耗、输出摆幅、共模抑制比(common-mode rejection ratio)、电源抑制比(PSRR,power-supply rejection ratio)、输入线性范围(input common mode range)、延迟率(slew rate
28、)、输入失调电压还有噪声等。2、运用Protues软件模拟示波器进行仿真 概述Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型
29、仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译。功能特点Protues软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点: (1)互动的电路仿真。用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,
30、部分IIC器件。 (2)仿真处理器及其外围电路。可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Protues建立了完备的电子设计开发环境。 智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP
31、图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 (1)Protues可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 (2)Protues可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。(3)除了现实存在的仪器外,Protues还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都
32、尽可能减少了仪器对测量结果的影响。 (4)Protues可提供的调试手段 Protues提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 软件仿真支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。 (1)、提供软件调试功能。 (2)、提供丰富的外围接口器件及其仿真。RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。 (3)、提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测
33、量外围电路的特性,培养学生实际硬件的调试能力。 2.3 系统软件设计1、系统软件设计原理框图原理框图如下所示: 图2.3-1 软件设计原理框图2、 方波的实现过程此波形的实现只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波了。在程序中初值分别为00H和0FFH,流程图如下图所示: 开 始给A设置初值MOV DPTR,#07FFFH MOVX DPTR,A设置输出的时间再设置一个初值放入A中MOVX DPTR,A输出一段时间方波的程
34、序清单如下: MOVDPTR,#07FFFHFB: MOV A,#0 MOVX DPTR,A ACALL DELAY MOV A,#0FFH MOVX DPTR,A ACALL DELAY JB P1.0,START AJMP FBDELAY: MOV 30H,#0F0H D1:DJNZ R0,D1 RET3、三角波的实现过程三角波的实现是设置一个初值,然后进行加数,同样是加到某个数之后再进行减数,减到初值之后就再返回到先前的操作。此程序输入的VREF的电压是5V,因此该波形输出的最大频率是初值为00H和最终值为0FFH,且步数为1,这样输出的波形是最大的。程序流程图如下图所示:给A设置初值M
35、OV DPTR,#07FFFHMOVX DPTR,AA加1判断A是否已满?否是A减1判断是否等于初值?是开 始否三角波的程序清单:SJB: MOVR6,#00H DA1: MOVA,R6 MOVXDPTR,A INC R6 CJNER6,#0FFH,DA1DA2: DECR6 MOVA,R6 MOVXDPTR,A CJNER6,#00H,DA2 JBP1.1,START AJMPSJB4、锯齿波的实现过程锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。在本程序中初值为00H.最大
36、值为OFFH。流程图如下图所示。 设置初值AMOV DPTR,#07FFFHMOVX DPTR,A使A一直加一到0FFH判断A是否已经满了?否重新设置初值A是开 始 锯齿波的程序清单如下:JCB:MOV R6,#00H DA0:MOVA,R6 MOVXDPTR,A INCR6 JBP1.2,START AJMPDA05、梯形波的实现过程梯形波输出跟锯齿波和三角波相似,只不过当加到顶峰后的一段时间内不改变A的值,过了一段时间后再将减少A的值,然后减到初始的值后也要持续一段时间,然后再进行加数,如此循环下去: 开 始给A设置初值MOV DPTR,#07FFFH是持续一段时间LCALL DELAY1
37、 A自减判断是否等于初值0否是持续一段时间MOVX DPTR,A AAAAAAAAAADD A,#01H判断A是否已满否梯形波的程序清单:TXB: MOVR5,#00HA1: MOVA,R5 MOVXDPTR,A INC R5 CJNER5,#0FFH,A1 LCALL DELAY1A2: DECR5 MOVA,R5 MOVXDPTR,A CJNER5,#00H,A2 LCALL DELAY1 JBP1.3,START AJMP TXBDELAY1: MOV R7,#60HL1: MOV R3,#10HDJNZ R3,$DJNZ R7,L1RET6、阶梯波的实现过程阶梯波的实现过程是首先定义一
38、个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。在本程序中初值为00H.最大值为OFFH。流程图如下图所示。 设置初值AMOV DPTR,#07FFFHMOVX DPTR,A使A增加10到0FFH判断A是否已经满了?否重新设置初值A是开 始阶梯梯形波的程序清单:JTB: MOV A,#0 MOV R1,#0AH LP: MOVX DPTR,A ACALL DELAY2 DJNZ R1,NEXT SJMPJTB NEXT: ADD A,#10 JBP1.4,START SJMPLPDELAY2: MOV 31
39、H,#0FFH D2: DJNZ 31H,D2 RET7、系统波形控制的实现过程要实现的各种波形通过开关的切换过程的流程图如下,通过开关状态进行选择:P1.0为0则输出方波,P1.1为0输出三角波,P1.2为0输出锯齿波,P1.3为1输出梯形波,P1.4为0输出阶梯波。开 始判断P1.0是否为1?判断P1.1是否为1?判断P1.2是否为1?判断P1.3是否为1?判断P.4是否为1?否否否否否是是是是是输出响应的波形3、实验步骤(1)选题后确定实验计划,搜集基本资料。(2)设计电路原理,选定器材及元器件。(3)手绘电路连接图,检查错误并改正。(4)利用Keil软件进行编程。(5)利用Protue
40、s仿真软件进行电路图的绘制及连接,同时进行模拟仿真。(6)联系指导教师,咨询相关问题并对电路进行完善。五、实验结果与分析1、实验现象、数据记录(1)、利用Keil软件进行编程调试(2)、利用Protues软件进行原理图绘制及波形仿真l 方波的调试对方波进行调试,要完成的功能包括产生方波、调节方波幅度。调试过程如下图: 图1 变阻器触头在中间时的方波波形(幅值适中) 图2 变阻器触头在最上边时的方波波形(幅值变大) 图3 变阻器触头在最下边时的方波波形(幅值变小)l 三角波的调试对三角波进行调试,要完成的功能包括产生三角波、调节三角波幅度。调试过程如下图: 图4 变阻器触头在中间时的三角波波形(
41、幅值适中) 图5 变阻器触头在最上边时的三角波波形(幅值变大) 图6 变阻器触头在最下边时的三角波波形(幅值变小)l 锯齿波的调试对锯齿波进行调试,要完成的功能包括产生锯齿波、调节锯齿波幅度。调试过程如下图: 图7 变阻器触头在中间时的锯齿波波形(幅值适中) 图8 变阻器触头在最上边时的锯齿波波形(幅值变大) 图9 变阻器触头在最下边时的锯齿波波形(幅值变小)l 梯形波的调试对梯形波进行调试,要完成的功能包括产生梯形波、调节梯形波幅度。调试过程如下图: 图10 变阻器触头在中间时的梯形波波形(幅值适中) 图11 变阻器触头在最上边时的梯形波波形(幅值变大) 图12 变阻器触头在最下边时的梯形波
42、波形(幅值变小)l 阶梯波的调试对阶梯波进行调试,要完成的功能包括产生阶梯波、调节阶梯波幅度。调试过程如下图: 图13 变阻器触头在中间时的阶梯波波形(幅值适中) 图14 变阻器触头在最上边时的阶梯波波形(幅值变大) 图15 变阻器触头在最下边时的阶梯波波形(幅值变小) 2、对实验现象、数据及观察结果的分析与讨论: 本次设计圆满完成了五种波形的产生与切换,并实现了各个波形的幅值调节与输出,通过Protues软件进行仿真得到了预期的效果。3、关键点:(1)、原理的设计与实现。(2)、Keil软件进行波形的编写与切换。(3)、Protues软件的应用与学习,学会利用软件绘制原理图并进行仿真记录。六
43、、实验结论1、晶振电路实现了模拟时钟信号的输出。2、复位电路实现了电路的手动复位和按键复位的结合。3、DAC0832数模转换电路实现了电压的输入与模拟波形的产生。4、单极性缓冲电路实现了波形的输出。5、通过调节变阻器的分压将电压输入VREF端口,进行特定波形的幅值调节。6、实验程序完成了五种波形的产生,通过按键的切换进行各个波形的输出,每当一次按键被按下,相应的波形输出。七、指导老师评语及得分: 签名: 年 月 日 附件:源程序等。1、Keil源程序: ORG 0000H MOV DPTR,#07FFFH MOV SP,#60H START: JNB P1.0,FB JNB P1.1,SJB JNB P1.2,JCB JNB P1.3,T